summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD130
1 files changed, 130 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..5d693d5fd452
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,130 @@
+# Maintainer: valoq <valoq@mailbox.org>
+
+_pkgbase=mupdf
+pkgbase=${_pkgbase}-seccomp
+pkgname=(libmupdf-seccomp mupdf-seccomp)
+pkgver=1.11
+_pkgver=1.11
+pkgrel=1
+pkgdesc='Mupdf with seccomp filter'
+arch=('i686' 'x86_64')
+url='http://mupdf.com'
+license=('AGPL3')
+conflicts=(libmupdf mupdf)
+makedepends=('curl' 'desktop-file-utils' 'freetype2' 'glfw' 'harfbuzz'
+ 'jbig2dec' 'libjpeg' 'mesa-libgl' 'openjpeg2' 'openssl' 'libxext')
+source=("https://mupdf.com/downloads/mupdf-${pkgver/_/}-source.tar.gz"
+ '0001-mupdf-openjpeg.patch'
+ 'mupdf.desktop'
+ 'mupdf.xpm'
+ 'seccomp.patch')
+
+sha256sums=('209474a80c56a035ce3f4958a63373a96fad75c927c7b1acdc553fc85855f00a'
+ '01ad0365bc7be670a7a11603cb48ef89d85d804029dcf5420aa70846fe5dce4a'
+ '70f632e22902ad4224b1d88696702b3ba4eb3c28eb7acf735f06d16e6884a078'
+ 'a435f44425f5432c074dee745d8fbaeb879038ec1f1ec64f037c74662f09aca8'
+ '7b2936c31fea61b9623eb9a40d81818d1d1dd12f029222d2722b9002e723e5b4')
+
+
+prepare() {
+ cd ${_pkgbase}-${_pkgver/_/}-source
+
+ # remove bundled packages, we want our system libraries
+ rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,jpeg,openjpeg,mujs,zlib}
+
+ # fix function for openjpeg 2.2.x
+ patch -Np1 < "${srcdir}/0001-mupdf-openjpeg.patch"
+
+ # fix includes for jbig2dec
+ sed '/^JBIG2DEC_CFLAGS :=/s|$| -I./include/mupdf|' -i Makethird
+
+ # apply seccomp patch
+ patch -Np1 < "${srcdir}/seccomp.patch"
+
+ # embedding CJK fonts into binaries is madness...
+ sed '/* #define TOFU_CJK /c #define TOFU_CJK 1' -i include/mupdf/fitz/config.h
+ sed '/* #define TOFU /c #define TOFU 1' -i include/mupdf/fitz/config.h
+ sed '/* #define TOFU_CJK_EXT /c #define TOFU_CJK_EXT 1' -i include/mupdf/fitz/config.h
+ sed '/* #define TOFU_EMOJI /c #define TOFU_EMOJI 1' -i include/mupdf/fitz/config.h
+ sed '/* #define TOFU_HISTORIC /c #define TOFU_HISTORIC 1' -i include/mupdf/fitz/config.h
+ sed '/* #define TOFU_SYMBOL /c #define TOFU_SYMBOL 1' -i include/mupdf/fitz/config.h
+ sed '/* #define TOFU_SIL /c #define TOFU_SIL 1' -i include/mupdf/fitz/config.h
+
+ # disable XPS
+ sed '/* #define FZ_ENABLE_XPS /c #define FZ_ENABLE_XPS 0' -i include/mupdf/fitz/config.h
+
+ # disable SVG
+ sed '/* #define FZ_ENABLE_SVG /c #define FZ_ENABLE_SVG 0' -i include/mupdf/fitz/config.h
+
+ # disable CBZ
+ sed '/* #define FZ_ENABLE_CBZ /c #define FZ_ENABLE_CBZ 0' -i include/mupdf/fitz/config.h
+
+ # disable IMG
+ sed '/* #define FZ_ENABLE_IMG /c #define FZ_ENABLE_IMG 0' -i include/mupdf/fitz/config.h
+
+ # disable TIFF
+ sed '/* #define FZ_ENABLE_TIFF /c #define FZ_ENABLE_TIFF 0' -i include/mupdf/fitz/config.h
+
+ # disable HTML
+ sed '/* #define FZ_ENABLE_HTML /c #define FZ_ENABLE_HTML 0' -i include/mupdf/fitz/config.h
+
+ # disable EPUB
+ sed '/* #define FZ_ENABLE_EPUB /c #define FZ_ENABLE_EPUB 0' -i include/mupdf/fitz/config.h
+
+ # disable GPRF
+ sed '/* #define FZ_ENABLE_GPRF /c #define FZ_ENABLE_GPRF 0' -i include/mupdf/fitz/config.h
+
+ # disable JS
+ sed '/* #define FZ_ENABLE_JS /c #define FZ_ENABLE_JS 0' -i include/mupdf/fitz/config.h
+}
+
+build() {
+ CFLAGS+=' -fPIC -fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2'
+ CXXFLAGS+=' -fPIC -fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2'
+ LDFLAGS+=' -pie'
+ export CFLAGS CXXFLAGS LDFLAGS
+
+# CFLAGS+=' -fPIC'
+# CXXFLAGS+=' -fPIC'
+# export CFLAGS CXXFLAGS
+
+# HAVE_GLFW='yes'
+# SYS_GLFW_CFLAGS="$(pkg-config --cflags glfw3)"
+# SYS_GLFW_LIBS="$(pkg-config --libs glfw3) -lGL"
+# export HAVE_GLFW SYS_GLFW_CFLAGS SYS_GLFW_LIBS
+
+ cd ${_pkgbase}-${_pkgver/_/}-source
+ make build=release
+}
+
+#the libmupdf package does not contain any seccomp functionalty. Seccomp is process based.
+package_libmupdf-seccomp() {
+pkgdesc='Library for Lightweight PDF viewer'
+
+ cd ${_pkgbase}-${_pkgver/_/}-source
+
+ make build=release prefix="$pkgdir"/usr install
+
+ rm -rf "$pkgdir"/usr/{bin,share/man}
+ mv "$pkgdir"/usr/share/doc/mupdf "$pkgdir"/usr/share/doc/libmupdf
+
+ find "$pkgdir"/usr/include "$pkgdir"/usr/share "$pkgdir"/usr/lib \
+ -type f -exec chmod 0644 {} +
+}
+
+package_mupdf-seccomp() {
+ pkgdesc='Lightweight PDF viewer with seccomp filter'
+ depends=('curl' 'desktop-file-utils' 'freetype2' 'harfbuzz' 'jbig2dec'
+ 'libjpeg' 'openjpeg2' 'openssl')
+
+ cd ${_pkgbase}-${_pkgver/_/}-source
+
+ install -D -m0755 build/release/mupdf-x11 "$pkgdir"/usr/bin/mupdf
+ install -D -m0644 docs/man/mupdf.1 "$pkgdir"/usr/share/man/man1/mupdf.1
+ install -d "$pkgdir"/usr/share/doc/mupdf
+ install -m0644 README COPYING CHANGES "$pkgdir"/usr/share/doc/mupdf
+ install -D -m0644 ../mupdf.desktop "$pkgdir"/usr/share/applications/mupdf.desktop
+ install -D -m0644 ../mupdf.xpm "$pkgdir"/usr/share/pixmaps/mupdf.xpm
+}
+
+