# Contributor: Sören Tempel # Contributor: Michael Zhou # Maintainer: Daniel Sabogal global pkgname := 'mupdf' global pkgver := '1.11' global pkgrel := '1' global pkgdesc := '"A lightweight PDF and XPS viewer'" global url := '"http://mupdf.com'" global arch := '"all'" global license := '"AGPL3+'" global depends := ''"" global makedepends := '"freetype-dev jpeg-dev jbig2dec-dev libx11-dev libxext-dev openjpeg-dev harfbuzz-dev glfw-dev'" global subpackages := ""$pkgname-doc $pkgname-dev $pkgname-x11:_x11 $pkgname-gl:_gl $pkgname-tools:_tools"" global options := '"!check'" global source := ""http://mupdf.com/downloads/archive/$pkgname-$pkgver-source.tar.gz shared-lib.patch openjpeg-2.1.patch CVE-2017-6060.patch "" # secfixes: # 1.11-r1: # - CVE-2017-6060 # 1.10a-r2: # - CVE-2017-5991 # 1.10a-r1: # - CVE-2017-5896 global builddir := ""$srcdir/$pkgname-$pkgver-source"" proc prepare { default_prepare || return 1 cd $builddir for file in [thirdparty/*] { test $(file##*/) != "mujs" && rm -rf $file } sed '/^JBIG2DEC_CFLAGS :=/s|$| -I./include/mupdf|' \ -i Makethird || return 1 } proc build { make HAVE_GLFW=yes SYS_GLFW_LIBS="$[pkgconf --libs glfw3 gl]" \ prefix=/usr -C $builddir || return 1 } proc package { make HAVE_GLFW=yes \ prefix=/usr DESTDIR="$pkgdir" \ -C $builddir install || return 1 ln -s libmupdf.so.0 "$pkgdir"/usr/lib/libmupdf.so ln -s libmupdfthird.so.0 "$pkgdir"/usr/lib/libmupdfthird.so } proc _x11 { global pkgdesc := '"A lightweight PDF and XPS viewer with X11 backend'" global depends := ''"" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/mupdf-x11 \ "$subpkgdir"/usr/bin/ || return 1 ln -s /usr/bin/mupdf-x11 "$subpkgdir"/usr/bin/mupdf } proc _gl { global pkgdesc := '"A lightweight PDF and XPS viewer with OpenGL backend'" global depends := ''"" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/mupdf-gl \ "$subpkgdir"/usr/bin/ || return 1 } proc _tools { global pkgdesc := '"Tools for a lightweight PDF and XPS viewer'" global depends := ''"" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/mutool \ "$pkgdir"/usr/bin/mujstest \ "$pkgdir"/usr/bin/muraster \ "$subpkgdir"/usr/bin/ || return 1 } global sha512sums := '"501670f540e298a8126806ebbd9db8b29866f663b7bbf26c9ade1933e42f0c00ad410b9d93f3ddbfb3e45c38722869095de28d832fe3fb3703c55cc9a01dbf63 mupdf-1.11-source.tar.gz b3ddbc22da894a8b9a0fa0c93711e2052b5d2ca29497473b6e15ffbae52faaafff9238619680de474c455ebd073c2d29ead4ff5d962fddb99f7ced27057fa77f shared-lib.patch f8283db9a510527e84afeeb6eea89948161899c149a559c4a699c533445b42f30e5bf520616ca69d7feb554529ad494a60c276a1eecc915723ec0f264bbc0ed0 openjpeg-2.1.patch 3e3f34e448967acb7772365065234c313cb014ebe6e3c3b3bcdbed2242b32ee5589ecd749d06fb4cd5f406eb37ca431e369c96b9adb3b5367d2e5296f1ca983e CVE-2017-6060.patch'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(mupdf)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(1.11)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(1)} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("A lightweight PDF and XPS viewer"))} spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://mupdf.com"))} spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[28])] spids: [28] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ ("AGPL3+"))} spids:[33])] spids: [33] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[38])] spids: [38] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ("freetype-dev jpeg-dev jbig2dec-dev libx11-dev libxext-dev\n") ("\topenjpeg-dev harfbuzz-dev glfw-dev") ) } spids: [42] ) ] spids: [42] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") ("-x11:_x11\n") ("\t") ($ VSub_Name "$pkgname") ("-gl:_gl ") ($ VSub_Name "$pkgname") ("-tools:_tools") ) } spids: [48] ) ] spids: [48] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ ("!check"))} spids:[63])] spids: [63] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://mupdf.com/downloads/archive/") ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver") ("-source.tar.gz\n") ("\tshared-lib.patch\n") ("\topenjpeg-2.1.patch\n") ("\tCVE-2017-6060.patch\n") ("\t") ) } spids: [68] ) ] spids: [68] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: { (DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver") (-source) ) } spids: [104] ) ] spids: [104] ) (FuncDef name: prepare body: (BraceGroup children: [ (AndOr children: [ (C {(default_prepare)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (ForEach iter_name: file iter_words: [{(thirdparty/) (Lit_Other "*")}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(Lit_Other "[")} { (DQ (BracedVarSub token: suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {("*") (Lit_Slash /)} ) spids: [154 159] ) ) } {(KW_Bang "!") (Lit_Other "=")} {(DQ (mujs))} {(Lit_Other "]")} ) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$file"))}) ] op_id: Op_DAmp ) ] spids: [148 182] ) spids: [143 146] ) (AndOr children: [ (C {(sed)} {(SQ <"/^JBIG2DEC_CFLAGS :=/s|$| -I./include/mupdf|">)} {(-i)} {(Makethird)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) ] spids: [118] ) spids: [114 117] ) (FuncDef name: build body: (BraceGroup children: [ (AndOr children: [ (C {(make)} {(Lit_VarLike "HAVE_GLFW=") (yes)} {(Lit_VarLike "SYS_GLFW_LIBS=") (DQ (CommandSubPart command_list: (CommandList children: [(C {(pkgconf)} {(--libs)} {(glfw3)} {(gl)})] ) left_token: spids: [221 229] ) ) } {(Lit_VarLike "prefix=") (/usr)} {(-C)} {(DQ ($ VSub_Name "$builddir"))} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) ] spids: [211] ) spids: [207 210] ) (FuncDef name: package body: (BraceGroup children: [ (AndOr children: [ (C {(make)} {(Lit_VarLike "HAVE_GLFW=") (yes)} {(Lit_VarLike "prefix=") (/usr)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(-C)} {(DQ ($ VSub_Name "$builddir"))} {(install)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(ln)} {(-s)} {(libmupdf.so.0)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/libmupdf.so)}) (C {(ln)} {(-s)} {(libmupdfthird.so.0)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/libmupdfthird.so)} ) ] spids: [256] ) spids: [252 255] ) (FuncDef name: _x11 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("A lightweight PDF and XPS viewer with X11 backend"))} spids: [325] ) ] spids: [325] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[331])] spids: [331] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)}) (AndOr children: [ (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/mupdf-x11)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(ln)} {(-s)} {(/usr/bin/mupdf-x11)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/mupdf)}) ] spids: [322] ) spids: [318 321] ) (FuncDef name: _gl body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("A lightweight PDF and XPS viewer with OpenGL backend"))} spids: [389] ) ] spids: [389] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[395])] spids: [395] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)}) (AndOr children: [ (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/mupdf-gl)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) ] spids: [386] ) spids: [382 385] ) (FuncDef name: _tools body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Tools for a lightweight PDF and XPS viewer"))} spids: [441] ) ] spids: [441] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[447])] spids: [447] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)}) (AndOr children: [ (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/mutool)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/mujstest)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/muraster)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) ] spids: [438] ) spids: [434 437] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "501670f540e298a8126806ebbd9db8b29866f663b7bbf26c9ade1933e42f0c00ad410b9d93f3ddbfb3e45c38722869095de28d832fe3fb3703c55cc9a01dbf63 mupdf-1.11-source.tar.gz\n" ) ( "b3ddbc22da894a8b9a0fa0c93711e2052b5d2ca29497473b6e15ffbae52faaafff9238619680de474c455ebd073c2d29ead4ff5d962fddb99f7ced27057fa77f shared-lib.patch\n" ) ( "f8283db9a510527e84afeeb6eea89948161899c149a559c4a699c533445b42f30e5bf520616ca69d7feb554529ad494a60c276a1eecc915723ec0f264bbc0ed0 openjpeg-2.1.patch\n" ) ( "3e3f34e448967acb7772365065234c313cb014ebe6e3c3b3bcdbed2242b32ee5589ecd749d06fb4cd5f406eb37ca431e369c96b9adb3b5367d2e5296f1ca983e CVE-2017-6060.patch" ) ) } spids: [500] ) ] spids: [500] ) ] )