summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVirgil Dupras <vdupras@gentoo.org>2019-02-19 15:22:34 -0500
committerVirgil Dupras <vdupras@gentoo.org>2019-02-19 16:01:02 -0500
commita5247eb5569e7573eba63db4cf5e6012607e1a6d (patch)
treeecc58105b023374e47a0382ea2308a194ed22cee /app-text/mupdf
parentnet-libs/webkit-gtk: security cleanup (diff)
downloadgentoo-a5247eb5569e7573eba63db4cf5e6012607e1a6d.tar.gz
gentoo-a5247eb5569e7573eba63db4cf5e6012607e1a6d.tar.bz2
gentoo-a5247eb5569e7573eba63db4cf5e6012607e1a6d.zip
app-text/mupdf: fix libressl and openssl
openssl's requirements is actually 1.1+. prior to this change, mupdf compiled with openssl support unless openssl 1.1+ was installed. libressl support requires a patch to work properly. Also, other minor fixes. See closed bugs. Closes: https://bugs.gentoo.org/671062 Closes: https://bugs.gentoo.org/623732 Closes: https://bugs.gentoo.org/669698 Closes: https://bugs.gentoo.org/670832 Signed-off-by: Virgil Dupras <vdupras@gentoo.org> Package-Manager: Portage-2.3.51, Repoman-2.3.11
Diffstat (limited to 'app-text/mupdf')
-rw-r--r--app-text/mupdf/files/mupdf-1.14-libressl.patch45
-rw-r--r--app-text/mupdf/files/mupdf-1.14-r3-openssl-curl-x11.patch35
-rw-r--r--app-text/mupdf/mupdf-1.14.0-r3.ebuild132
3 files changed, 212 insertions, 0 deletions
diff --git a/app-text/mupdf/files/mupdf-1.14-libressl.patch b/app-text/mupdf/files/mupdf-1.14-libressl.patch
new file mode 100644
index 000000000000..fcc0a7205c1c
--- /dev/null
+++ b/app-text/mupdf/files/mupdf-1.14-libressl.patch
@@ -0,0 +1,45 @@
+From 8561b744ac95ab6145a1163fa1d7c490a3329465 Mon Sep 17 00:00:00 2001
+From: William <wonko@undefined.re>
+Date: Mon, 12 Nov 2018 16:50:07 +0100
+Subject: [PATCH] hardcode missing ssl functions
+
+---
+ source/helpers/pkcs7/pkcs7-openssl.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/source/helpers/pkcs7/pkcs7-openssl.c b/source/helpers/pkcs7/pkcs7-openssl.c
+index 58dbf65..2b1f9e9 100644
+--- a/source/helpers/pkcs7/pkcs7-openssl.c
++++ b/source/helpers/pkcs7/pkcs7-openssl.c
+@@ -511,6 +511,28 @@ static void signer_drop_designated_name(pdf_pkcs7_signer *signer, pdf_pkcs7_desi
+ fz_free(osigner->ctx, dn);
+ }
+
++int
++PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag)
++{
++ return OBJ_obj2nid(bag->type);
++}
++
++const STACK_OF(PKCS12_SAFEBAG) *
++PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag)
++{
++ if (OBJ_obj2nid(bag->type) != NID_safeContentsBag)
++ return NULL;
++ return bag->value.safes;
++}
++
++const PKCS8_PRIV_KEY_INFO *
++PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag)
++{
++ if (PKCS12_SAFEBAG_get_nid(bag) != NID_keyBag)
++ return NULL;
++ return bag->value.keybag;
++}
++
+ static void add_from_bags(X509 **pX509, EVP_PKEY **pPkey, const STACK_OF(PKCS12_SAFEBAG) *bags, const char *pw);
+
+ static void add_from_bag(X509 **pX509, EVP_PKEY **pPkey, PKCS12_SAFEBAG *bag, const char *pw)
+--
+2.19.1
+
diff --git a/app-text/mupdf/files/mupdf-1.14-r3-openssl-curl-x11.patch b/app-text/mupdf/files/mupdf-1.14-r3-openssl-curl-x11.patch
new file mode 100644
index 000000000000..79efe32c0e41
--- /dev/null
+++ b/app-text/mupdf/files/mupdf-1.14-r3-openssl-curl-x11.patch
@@ -0,0 +1,35 @@
+diff --git a/Makerules b/Makerules
+index fc9bf998..f1fd93cb 100644
+--- a/Makerules
++++ b/Makerules
+@@ -113,10 +113,11 @@ else ifeq ($(OS),Linux)
+ SYS_ZLIB_LIBS := $(shell pkg-config --libs zlib)
+ endif
+
+- HAVE_CURL := $(shell pkg-config --exists libcurl && echo yes)
++ HAVE_CURL ?= not-unless-portage-tells-me
+ ifeq ($(HAVE_CURL),yes)
+ SYS_CURL_CFLAGS := $(shell pkg-config --cflags libcurl)
+- SYS_CURL_LIBS := $(shell pkg-config --libs libcurl)
++ # We have to forcibly add -lpthread to avoid linking errors.
++ SYS_CURL_LIBS := $(shell pkg-config --libs libcurl) -lpthread
+ endif
+
+ HAVE_GLUT := yes
+@@ -125,13 +126,14 @@ else ifeq ($(OS),Linux)
+ SYS_GLUT_LIBS := -lglut -lGL
+ endif
+
+- HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes)
++ HAVE_X11 ?= not-unless-portage-tells-me
+ ifeq ($(HAVE_X11),yes)
+ X11_CFLAGS := $(shell pkg-config --cflags x11 xext)
+ X11_LIBS := $(shell pkg-config --libs x11 xext)
+ endif
+
+- HAVE_LIBCRYPTO := $(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes)
++
++ HAVE_LIBCRYPTO ?= not-unless-portage-tells-me
+ ifeq ($(HAVE_LIBCRYPTO),yes)
+ LIBCRYPTO_CFLAGS := $(shell pkg-config --cflags libcrypto) -DHAVE_LIBCRYPTO
+ LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto)
diff --git a/app-text/mupdf/mupdf-1.14.0-r3.ebuild b/app-text/mupdf/mupdf-1.14.0-r3.ebuild
new file mode 100644
index 000000000000..1b153620923f
--- /dev/null
+++ b/app-text/mupdf/mupdf-1.14.0-r3.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic toolchain-funcs xdg
+
+DESCRIPTION="a lightweight PDF viewer and toolkit written in portable C"
+HOMEPAGE="https://mupdf.com/"
+SRC_URI="https://mupdf.com/downloads/archive/${P}-source.tar.xz"
+
+LICENSE="AGPL-3"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="X curl +javascript libressl opengl openssl static-libs +vanilla"
+
+RDEPEND="
+ >=dev-lang/mujs-1.0.4
+ media-libs/freetype:2=[static-libs?]
+ media-libs/harfbuzz:=[static-libs?,truetype]
+ media-libs/jbig2dec:=[static-libs?]
+ media-libs/libpng:0=[static-libs?]
+ >=media-libs/openjpeg-2.1:2=[static-libs?]
+ virtual/jpeg[static-libs?]
+ curl? ( net-misc/curl[static-libs?] )
+ libressl? ( >=dev-libs/libressl-2.8:0=[static-libs?] )
+ opengl? ( >=media-libs/freeglut-3.0.0:= )
+ openssl? ( >=dev-libs/openssl-1.1:0=[static-libs?] )
+ X? (
+ x11-libs/libX11[static-libs?]
+ x11-libs/libXext[static-libs?]
+ )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+REQUIRED_USE="
+ libressl? ( !openssl )
+ opengl? ( !static-libs )
+ curl? ( X )"
+
+S=${WORKDIR}/${P}-source
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.14-CFLAGS.patch
+ "${FILESDIR}"/${PN}-1.14-Makefile.patch
+ "${FILESDIR}"/${PN}-1.10a-add-desktop-pc-xpm-files.patch
+ # See bugs #662352
+ "${FILESDIR}"/${PN}-1.14-r3-openssl-curl-x11.patch
+ # bug #672998
+ "${FILESDIR}"/${PN}-1.14-fix-big-endian.patch
+)
+
+src_prepare() {
+ xdg_src_prepare
+ use hppa && append-cflags -ffunction-sections
+
+ use javascript || \
+ sed -e '/* #define FZ_ENABLE_JS/ a\#define FZ_ENABLE_JS 0' \
+ -i include/mupdf/fitz/config.h
+
+ use vanilla || eapply \
+ "${FILESDIR}"/${PN}-1.3-zoom-2.patch
+
+ # See bug #670832
+ use libressl && eapply "${FILESDIR}"/${PN}-1.14-libressl.patch
+
+ sed -e "1iOS = Linux" \
+ -e "1iCC = $(tc-getCC)" \
+ -e "1iLD = $(tc-getLD)" \
+ -e "1iAR = $(tc-getAR)" \
+ -e "1iverbose = yes" \
+ -e "1ibuild = debug" \
+ -e "1iprefix = ${ED}usr" \
+ -e "1ilibdir = ${ED}usr/$(get_libdir)" \
+ -e "1idocdir = ${ED}usr/share/doc/${PF}" \
+ -i Makerules || die
+}
+
+_emake() {
+ # When HAVE_OBJCOPY is yes, we end up with a lot of QA warnings.
+ local have_libcrypto=no
+ if use openssl || use libressl ; then
+ have_libcrypto=yes
+ fi
+ emake \
+ GENTOO_PV=${PV} \
+ HAVE_GLUT=$(usex opengl) \
+ HAVE_CURL=$(usex curl) \
+ HAVE_LIBCRYPTO=$have_libcrypto \
+ HAVE_X11=$(usex X) \
+ USE_SYSTEM_LIBS=yes \
+ USE_SYSTEM_MUJS=yes \
+ HAVE_OBJCOPY=no \
+ "$@"
+}
+
+src_compile() {
+ _emake XCFLAGS="-fpic"
+
+ use curl && _emake extra-apps
+
+ use static-libs && \
+ _emake build/debug/lib${PN}.a
+}
+
+src_install() {
+ if use X || use opengl ; then
+ domenu platform/debian/${PN}.desktop
+ doicon platform/debian/${PN}.xpm
+ else
+ rm docs/man/${PN}.1
+ fi
+
+ _emake install
+
+ dosym libmupdf.so.${PV} /usr/$(get_libdir)/lib${PN}.so
+
+ use static-libs && \
+ dolib.a build/debug/lib${PN}.a
+ if use opengl ; then
+ einfo "mupdf symlink points to mupdf-gl (bug 616654)"
+ dosym ${PN}-gl /usr/bin/${PN}
+ elif use X ; then
+ einfo "mupdf symlink points to mupdf-x11 (bug 616654)"
+ dosym ${PN}-x11 /usr/bin/${PN}
+ fi
+ use curl && dobin build/debug/${PN}-x11-curl
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins platform/debian/${PN}.pc
+
+ dodoc README CHANGES CONTRIBUTORS
+}