From da7c28ccf0ad7b3a35d0adbd0ed2ad50640e718f Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 7 Oct 2018 09:39:48 -0400 Subject: app-text/mupdf: bump to 1.14.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 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(+) create mode 100644 app-text/mupdf/files/mupdf-1.14-CFLAGS.patch create mode 100644 app-text/mupdf/files/mupdf-1.14-debug-build.patch create mode 100644 app-text/mupdf/files/mupdf-1.14-openssl-curl-x11.patch create mode 100644 app-text/mupdf/mupdf-1.14.0.ebuild (limited to 'app-text') diff --git a/app-text/mupdf/Manifest b/app-text/mupdf/Manifest index 6e813b109360..f5f8f290123a 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 000000000000..90972e8c53ea --- /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 000000000000..6f8b5b96a973 --- /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 000000000000..a1284a63d670 --- /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 000000000000..8c23107fc6de --- /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 +} -- cgit v1.2.3-18-g5258