From 8b6ce47ccc6bb8c734b72786a6c4df10dad08643 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 24 Nov 2020 12:15:09 +0100 Subject: gnu: mupdf: Use only dynamic linking. * gnu/packages/pdf.scm (mupdf)[source]: Add patch. [arguments]: Build and find the shared library. (zathura-pdf-mupdf)[arguments]: Add a 'remove-libmupdfthird.a-requirement phase to deal with the now-missing static one. * gnu/packages/patches/mupdf-fix-linkage.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/patches/mupdf-fix-linkage.patch | 27 +++++++++++++++++++++++++++ gnu/packages/pdf.scm | 11 +++++++++++ 3 files changed, 39 insertions(+) create mode 100644 gnu/packages/patches/mupdf-fix-linkage.patch diff --git a/gnu/local.mk b/gnu/local.mk index 14b626c600..5277403196 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1367,6 +1367,7 @@ dist_patch_DATA = \ %D%/packages/patches/mumps-shared-libseq.patch \ %D%/packages/patches/mumps-shared-mumps.patch \ %D%/packages/patches/mumps-shared-pord.patch \ + %D%/packages/patches/mupdf-fix-linkage.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/musl-cross-locale.patch \ diff --git a/gnu/packages/patches/mupdf-fix-linkage.patch b/gnu/packages/patches/mupdf-fix-linkage.patch new file mode 100644 index 0000000000..4ffd1c6a77 --- /dev/null +++ b/gnu/packages/patches/mupdf-fix-linkage.patch @@ -0,0 +1,27 @@ +From: Tobias Geerinckx-Rice +Date: Tue, 24 Nov 2020 10:29:28 +0000 +Subject: [PATCH] gnu: mupdf: Fix linkage. + +Replace broken linkage to ‘build/shared-release/libmupdf.so’ with the +proper ‘-L$(libdir) -lmupdf’ incantation, and fix libmupdf.so's mode. + +--- mupdf-1.18.0-source.org/Makefile ++++ mupdf-1.18.0-source/Makefile +@@ -61,7 +61,7 @@ + ifdef RANLIB + RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@ + endif +-LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) ++LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $(subst $(MUPDF_LIB),-L$(libdir) -L$(OUT) -lmupdf,$^) $(LIBS) + TAGS_CMD = $(QUIET_TAGS) ctags -R --c-kinds=+p + WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@ + OBJCOPY_CMD = $(QUIET_OBJCOPY) $(MKTGTDIR) ; $(LD) -r -b binary -z noexecstack -o $@ $< +@@ -364,7 +364,7 @@ install: libs apps + install -m 644 include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf + + install -d $(DESTDIR)$(libdir) +- install -m 644 $(INSTALL_LIBS) $(DESTDIR)$(libdir) ++ install -m 755 $(INSTALL_LIBS) $(DESTDIR)$(libdir) + + install -d $(DESTDIR)$(bindir) + install -m 755 $(TOOL_APPS) $(VIEW_APPS) $(DESTDIR)$(bindir) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 9cb460972f..1899501122 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -526,6 +526,12 @@ using the DjVuLibre library.") "-Dlink-external=true") #:phases (modify-phases %standard-phases + (add-after 'unpack 'remove-libmupdfthird.a-requirement + (lambda _ + ;; Ignore a missing (apparently superfluous) static library. + (substitute* "meson.build" + ((".*mupdfthird.*") "")) + #t)) (add-before 'configure 'add-mujs-to-dependencies (lambda _ ;; Add mujs to the 'build_dependencies'. @@ -692,6 +698,7 @@ extracting content or merging files.") "mupdf-" version "-source.tar.xz")) (sha256 (base32 "16m5sksil22sshxy70xkslsb2qhvcqb1d95i9savnhds1xn4ybar")) + (patches (search-patches "mupdf-fix-linkage.patch")) (modules '((guix build utils))) (snippet '(begin @@ -730,6 +737,10 @@ extracting content or merging files.") "XCFLAGS=-fpic" "USE_SYSTEM_LIBS=yes" "USE_SYSTEM_MUJS=yes" + "shared=yes" + ;; Even with the linkage patch we must fix RUNPATH. + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib") (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases (delete 'configure)))) ; no configure script -- cgit v1.2.3