commit:     da7c28ccf0ad7b3a35d0adbd0ed2ad50640e718f
Author:     Virgil Dupras <vdupras <AT> gentoo <DOT> org>
AuthorDate: Sun Oct  7 13:39:48 2018 +0000
Commit:     Virgil Dupras <vdupras <AT> gentoo <DOT> org>
CommitDate: Sun Oct  7 17:40:50 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da7c28cc

app-text/mupdf: bump to 1.14.0

Many things changed upstream in this release, which prompts many changes
in the ebuild.

1. Drop the "static" USE flag. It was already broken in 1.13 because
options weren't passed to the static `emake` call like is was in the
main `emake` invocation. In addition to that, building a static binary
requires "media-gfx/graphite2[+static-libs]" which doesn't exist.

2. Drop "lcms" USE flag. See bug #667788.

3. Always link to dev-lang/mujs. mupdf can't build without being linked
to mujs now. The best we can do it to disable JS with the "FZ_ENABLE_JS"
flag, which is what the "javascript" USE flag does.

4. Make "javascript" USE flag enabled by default, which is in line with
upstream's behavior.

5. Make "vanilla" USE flag enabled by default. The patch it enables
doesn't seem very useful and I couldn't track it's *raison d'ĂȘtre* in
git/cvs history: it's been there since the first commit.

6. Simplify ebuild and remove obsolete seds. The "sed" invocations I've
removed have been verified and either point to absent files or replace
nothing.

7. Don't remove third party libs. The new "USE_SYSTEM_LIBS" flag being
used is a reliable way to ensure that the correct libraries are used.

8. Fix "curl" USE flag. See bug #664646

Closes: https://bugs.gentoo.org/664646
Closes: https://bugs.gentoo.org/667788

Signed-off-by: Virgil Dupras <vdupras <AT> gentoo.org>
Package-Manager: Portage-2.3.50, Repoman-2.3.11

 app-text/mupdf/Manifest                            |   1 +
 app-text/mupdf/files/mupdf-1.14-CFLAGS.patch       |  13 +++
 app-text/mupdf/files/mupdf-1.14-debug-build.patch  |  13 +++
 .../mupdf/files/mupdf-1.14-openssl-curl-x11.patch  |  52 +++++++++
 app-text/mupdf/mupdf-1.14.0.ebuild                 | 123 +++++++++++++++++++++
 5 files changed, 202 insertions(+)

diff --git a/app-text/mupdf/Manifest b/app-text/mupdf/Manifest
index 6e813b10936..f5f8f290123 100644
--- a/app-text/mupdf/Manifest
+++ b/app-text/mupdf/Manifest
@@ -1 +1,2 @@
 DIST mupdf-1.13.0-source.tar.gz 51425034 BLAKE2B 
7f4a1c84b5840991cc7879f3617165579f4db1f7a010a8313b0eaf94ad59af60bb3d0e4a0f2acc14d2c7511dd0f8b96c89c51e360ab379ba32590b887dd3be6a
 SHA512 
d7fca7292e612959893a728d35964cf7b4e607385bdd72e81b8ca1de6ab642f999b734afbbf32d75400cd29b7e178ec360e65c91d7b1e1a53c2a04ff0adbd707
+DIST mupdf-1.14.0-source.tar.xz 41602372 BLAKE2B 
bb680038344af16c7231a18a009c0d04c5f50b3fcbaf061c9f5907f35d79eea93eeced7c2a43a06a963b93b39c74d0246c5fdad35655953d1aa5efb79737265a
 SHA512 
bd41125dac1a81b7dbbfbb5f5e06e70bb601854731e0945983688da5d8d7c0bca9771fff2e4b6d9c36dbead6146f0a866ed7427d58e13d02ed6dfd94dcfe54bf

diff --git a/app-text/mupdf/files/mupdf-1.14-CFLAGS.patch 
b/app-text/mupdf/files/mupdf-1.14-CFLAGS.patch
new file mode 100644
index 00000000000..90972e8c53e
--- /dev/null
+++ b/app-text/mupdf/files/mupdf-1.14-CFLAGS.patch
@@ -0,0 +1,13 @@
+diff --git a/Makerules b/Makerules
+index fc9bf998..82f10b28 100644
+--- a/Makerules
++++ b/Makerules
+@@ -21,8 +21,6 @@ SANITIZE_FLAGS += -fsanitize=address
+ SANITIZE_FLAGS += -fsanitize=leak
+ 
+ ifeq ($(build),debug)
+-  CFLAGS += -pipe -g
+-  LDFLAGS += -g $(LDREMOVEUNREACH)
+ else ifeq ($(build),release)
+   CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer
+   LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s

diff --git a/app-text/mupdf/files/mupdf-1.14-debug-build.patch 
b/app-text/mupdf/files/mupdf-1.14-debug-build.patch
new file mode 100644
index 00000000000..6f8b5b96a97
--- /dev/null
+++ b/app-text/mupdf/files/mupdf-1.14-debug-build.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 37fc48e6..bd8c6049 100644
+--- a/Makefile
++++ b/Makefile
+@@ -3,7 +3,7 @@
+ -include user.make
+ 
+ ifndef build
+-  build := release
++  build := debug
+ endif
+ 
+ ifndef OUT

diff --git a/app-text/mupdf/files/mupdf-1.14-openssl-curl-x11.patch 
b/app-text/mupdf/files/mupdf-1.14-openssl-curl-x11.patch
new file mode 100644
index 00000000000..a1284a63d67
--- /dev/null
+++ b/app-text/mupdf/files/mupdf-1.14-openssl-curl-x11.patch
@@ -0,0 +1,52 @@
+diff --git a/Makerules b/Makerules
+index fc9bf998..5c0fffa4 100644
+--- a/Makerules
++++ b/Makerules
+@@ -113,10 +113,14 @@ else ifeq ($(OS),Linux)
+       SYS_ZLIB_LIBS := $(shell pkg-config --libs zlib)
+   endif
+ 
++  WANT_CURL ?= yes
++  ifeq "$(WANT_CURL)" "yes"
+   HAVE_CURL := $(shell pkg-config --exists libcurl && echo yes)
+   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
+   endif
+ 
+   HAVE_GLUT := yes
+@@ -125,17 +129,29 @@ else ifeq ($(OS),Linux)
+       SYS_GLUT_LIBS := -lglut -lGL
+   endif
+ 
++  WANT_X11 ?= yes
++  ifeq "$(WANT_X11)" "yes"
+   HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes)
+   ifeq ($(HAVE_X11),yes)
+       X11_CFLAGS := $(shell pkg-config --cflags x11 xext)
+       X11_LIBS := $(shell pkg-config --libs x11 xext)
+   endif
++  endif
+ 
+-  HAVE_LIBCRYPTO := $(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo 
yes)
+-  ifeq ($(HAVE_LIBCRYPTO),yes)
++  WANT_OPENSSL ?= yes
++  ifeq "$(WANT_OPENSSL)" "yes"
++  ifeq "$(shell pkg-config --exists 'libcrypto >= 2.0.0' && echo libre)" 
"libre"
++  ifeq "$(shell pkg-config --exists 'libcrypto >= 2.7.0' && echo yes)" "yes"
++    HAVE_LIBCRYPTO := yes
++      LIBCRYPTO_CFLAGS := $(shell pkg-config --cflags libcrypto) 
-DHAVE_LIBCRYPTO
++      LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto)
++  endif
++  else ifeq "$(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes)" 
"yes"
++    HAVE_LIBCRYPTO := yes
+       LIBCRYPTO_CFLAGS := $(shell pkg-config --cflags libcrypto) 
-DHAVE_LIBCRYPTO
+       LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto)
+   endif
++  endif
+ 
+   HAVE_PTHREAD := yes
+   ifeq ($(HAVE_PTHREAD),yes)

diff --git a/app-text/mupdf/mupdf-1.14.0.ebuild 
b/app-text/mupdf/mupdf-1.14.0.ebuild
new file mode 100644
index 00000000000..8c23107fc6d
--- /dev/null
+++ b/app-text/mupdf/mupdf-1.14.0.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2018 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 ~sparc ~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?]
+       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/openssl:0=[static-libs?] )
+       libressl? ( dev-libs/libressl:0=[static-libs?] )
+       opengl? ( >=media-libs/freeglut-3.0.0:= )
+       X? (
+               x11-libs/libX11[static-libs?]
+               x11-libs/libXext[static-libs?]
+       )"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig"
+
+REQUIRED_USE="
+       opengl? ( !static-libs )
+       curl? ( X )"
+
+S=${WORKDIR}/${P}-source
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.14-CFLAGS.patch
+       "${FILESDIR}"/${PN}-1.14-debug-build.patch
+       "${FILESDIR}"/${PN}-1.10a-add-desktop-pc-xpm-files.patch
+       # See bug #662352
+       "${FILESDIR}"/${PN}-1.14-openssl-curl-x11.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
+
+       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
+
+       if use static-libs; then
+               cp -a "${S}" "${S}"-static || die
+       fi
+}
+
+_emake() {
+       # When HAVE_OBJCOPY is yes, we end up with a lot of QA warnings.
+       emake \
+               HAVE_GLUT=$(usex opengl yes no) \
+               WANT_CURL=$(usex curl) \
+               WANT_OPENSSL=$(usex openssl) \
+               WANT_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 -C "${S}"-static build/debug/lib${PN}{,-js-none}.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
+
+       use static-libs && \
+               dolib.a "${S}"-static/build/debug/lib${PN}{,-js-none}.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
+}

Reply via email to