guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: gnu: mupdf: Use only dynamic linking.


From: guix-commits
Subject: 02/03: gnu: mupdf: Use only dynamic linking.
Date: Tue, 24 Nov 2020 10:04:16 -0500 (EST)

nckx pushed a commit to branch master
in repository guix.

commit 8b6ce47ccc6bb8c734b72786a6c4df10dad08643
Author: Tobias Geerinckx-Rice <me@tobias.gr>
AuthorDate: Tue Nov 24 12:15:09 2020 +0100

    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(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 14b626c..5277403 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 0000000..4ffd1c6
--- /dev/null
+++ b/gnu/packages/patches/mupdf-fix-linkage.patch
@@ -0,0 +1,27 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+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 9cb4609..1899501 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]