[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
51/67: gnu: fontforge: Support build on the Hurd.
From: |
guix-commits |
Subject: |
51/67: gnu: fontforge: Support build on the Hurd. |
Date: |
Tue, 18 Jul 2023 10:16:10 -0400 (EDT) |
janneke pushed a commit to branch hurd-team
in repository guix.
commit 2549b14a521a7995be2975018d7db137a8d911d1
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Tue Jun 13 14:49:10 2023 +0200
gnu: fontforge: Support build on the Hurd.
* gnu/packages/patches/fontforge-hurd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/fontutils.scm (fontforge)[arguments]: When building natively
on
the Hurd, add new phase 'apply-hurd-patch' and use it, and replace phase
'check' to skip two tests.
---
gnu/local.mk | 1 +
gnu/packages/fontutils.scm | 88 ++++++++++++++++++++-----------
gnu/packages/patches/fontforge-hurd.patch | 82 ++++++++++++++++++++++++++++
3 files changed, 141 insertions(+), 30 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 45b1c1356b..5befa67e6e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1147,6 +1147,7 @@ dist_patch_DATA =
\
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \
%D%/packages/patches/fluxbox-1.3.7-no-dynamic-cursor.patch \
%D%/packages/patches/fontconfig-cache-ignore-mtime.patch \
+ %D%/packages/patches/fontforge-hurd.patch \
%D%/packages/patches/foobillard++-pkg-config.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 64b15fbf05..2cfaa45c37 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -1534,37 +1534,65 @@ definitions.")
("python" ,python)
("zlib" ,zlib)))
(arguments
- '(#:configure-flags '(;; TODO: Provide GTK+ for the Wayland-friendly GDK
- ;; backend, instead of the legacy X11 backend.
- ;; Currently it introduces a circular dependency.
- "-DENABLE_X11=ON")
+ (list
+ #:configure-flags #~'( ;; TODO: Provide GTK+ for the Wayland-friendly GDK
+ ;; backend, instead of the legacy X11 backend.
+ ;; Currently it introduces a circular dependency.
+ "-DENABLE_X11=ON")
#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'do-not-override-RPATH
- (lambda _
- ;; Do not attempt to set a default RPATH, as our ld-wrapper
- ;; already does the right thing.
- (substitute* "CMakeLists.txt"
- (("^set_default_rpath\\(\\)")
- ""))
- #t))
- (add-after 'install 'set-library-path
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (potrace (dirname
- (search-input-file inputs "bin/potrace"))))
- (wrap-program (string-append out "/bin/fontforge")
- ;; Fontforge dynamically opens libraries.
- `("LD_LIBRARY_PATH" ":" prefix
- ,(map (lambda (input)
- (string-append (assoc-ref inputs input)
- "/lib"))
- '("libtiff" "libjpeg" "libpng" "libungif"
- "libxml2" "zlib" "libspiro" "freetype"
- "pango" "cairo" "fontconfig")))
- ;; Checks for potrace program at runtime
- `("PATH" ":" prefix (,potrace)))
- #t))))))
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'do-not-override-RPATH
+ (lambda _
+ ;; Do not attempt to set a default RPATH, as our ld-wrapper
+ ;; already does the right thing.
+ (substitute* "CMakeLists.txt"
+ (("^set_default_rpath\\(\\)")
+ ""))
+ #t))
+ #$@(if (target-hurd?)
+ #~((add-after 'unpack 'apply-hurd-patch
+ (lambda _
+ (let ((patch-file
+ #$(local-file
+ (search-patch "fontforge-hurd.patch"))))
+ (invoke "patch" "--force" "-p1" "-i" patch-file)))))
+ #~())
+ #$@(if (system-hurd?)
+ #~((replace 'check
+ ;; cmake-build-system ignores #:make-flags for make check
+ (lambda* (#:key test-target tests? parallel-tests?
+ #:allow-other-keys)
+ (let ((skip '("test0001_py" "test0001_pyhook")))
+ (if tests?
+ (let ((jobs
+ (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")))
+ (invoke "make"
+ (string-append "ARGS=-j " jobs
+ " --exclude-regex ^"
+ (string-join skip "\\|")
+ "$")
+ test-target))
+ (format #t "test suite not run~%"))))))
+ #~())
+ (add-after 'install 'set-library-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (potrace (dirname
+ (search-input-file inputs "bin/potrace"))))
+ (wrap-program (string-append out "/bin/fontforge")
+ ;; Fontforge dynamically opens libraries.
+ `("LD_LIBRARY_PATH" ":" prefix
+ ,(map (lambda (input)
+ (string-append (assoc-ref inputs input)
+ "/lib"))
+ '("libtiff" "libjpeg" "libpng" "libungif"
+ "libxml2" "zlib" "libspiro" "freetype"
+ "pango" "cairo" "fontconfig")))
+ ;; Checks for potrace program at runtime
+ `("PATH" ":" prefix (,potrace)))
+ #t))))))
(synopsis "Outline font editor")
(description
"FontForge allows you to create and modify postscript, truetype and
diff --git a/gnu/packages/patches/fontforge-hurd.patch
b/gnu/packages/patches/fontforge-hurd.patch
new file mode 100644
index 0000000000..20d62b8ce2
--- /dev/null
+++ b/gnu/packages/patches/fontforge-hurd.patch
@@ -0,0 +1,82 @@
+Upstream status: Taken from upstream.
+
+From dca87c025665f0f010f906a4eba96da9794a4d04 Mon Sep 17 00:00:00 2001
+From: Anthony Fok <foka@debian.org>
+Date: Thu, 16 Jun 2022 02:40:23 -0600
+Subject: [PATCH] Define PATH_MAX and MAXPATHLEN for GNU/Hurd compatibility
+
+Special thanks to @henrich, @ucko and @kilobyte for reporting the issue
+and offering suggestions on a fix.
+
+See also https://bugs.debian.org/877795
+
+Fixes #3119
+---
+ inc/basics.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/inc/basics.h b/inc/basics.h
+index b8d65823b..14590c5b1 100644
+--- a/inc/basics.h
++++ b/inc/basics.h
+@@ -123,5 +123,13 @@ static inline int imax(int a, int b)
+ last = newitem; \
+ }
+
++#ifdef __GNU__
++# ifndef PATH_MAX
++# define PATH_MAX 4096
++# endif
++# ifndef MAXPATHLEN
++# define MAXPATHLEN 4096
++# endif
++#endif
+
+ #endif /* FONTFORGE_BASICS_H */
+--
+2.40.1
+
+From e0480f143f27f8f2686b5b14d7d302fe22f35002 Mon Sep 17 00:00:00 2001
+From: Anthony Fok <foka@debian.org>
+Date: Thu, 16 Jun 2022 03:06:56 -0600
+Subject: [PATCH] Undefine "extended" macro temporarily on GNU Hurd
+
+GNU Mach microkernel header files (gnumach-dev 1.8+git20201129) added to
+struct i386_xfp_save in /usr/include/i386-gnu/include/mach/i386/fp_reg.h
+a new "extended" field which happens to collide with the macro definition
+"#define extended double" in FontForge, leading to FTBFS on GNU Hurd.
+
+This issue may be circumvented by temporarily undefining the "extended"
+macro before loading `<gio/gio.h>` and friends, and redefining the
+"extended" macro right after.
+---
+ inc/ffglib.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/inc/ffglib.h b/inc/ffglib.h
+index f3419f0ab..25fe9ebde 100644
+--- a/inc/ffglib.h
++++ b/inc/ffglib.h
+@@ -26,11 +26,19 @@
+ #define GMenuItem GMenuItem_GIO
+ #define GTimer GTimer_GTK
+
++#ifdef __GNU__
++# undef extended
++#endif
++
+ #include <gio/gio.h>
+ #include <glib-object.h>
+ #include <glib.h>
+ #include <glib/gstdio.h>
+
++#ifdef __GNU__
++# define extended double
++#endif
++
+ #undef GList
+ #undef GMenuItem
+ #undef GTimer
+--
+2.40.1
+
- 22/67: gnu: mpfr: Skip failing test on the Hurd., (continued)
- 22/67: gnu: mpfr: Skip failing test on the Hurd., guix-commits, 2023/07/18
- 28/67: gnu: tcl: Remove failing tests on the Hurd.., guix-commits, 2023/07/18
- 24/67: gnu: libbsd: Skip failing test on the Hurd., guix-commits, 2023/07/18
- 30/67: gnu: git: Skip failing test on the Hurd., guix-commits, 2023/07/18
- 31/67: gnu: emacs: Depend on libc-for-target., guix-commits, 2023/07/18
- 26/67: gnu: libgpg-error: Skip failing test on the Hurd., guix-commits, 2023/07/18
- 06/67: gnu: commencement: hurd-headers-boot0: Update to 0.9.git20230216., guix-commits, 2023/07/18
- 53/67: gnu: guile-2.0: Skip failing tests on the Hurd., guix-commits, 2023/07/18
- 44/67: gnu: doxygen: Fix build for the Hurd., guix-commits, 2023/07/18
- 35/67: gnu: libpaper: Disable tests for the Hurd., guix-commits, 2023/07/18
- 51/67: gnu: fontforge: Support build on the Hurd.,
guix-commits <=
- 42/67: gnu: cmake-bootstrap: Fix build for the Hurd., guix-commits, 2023/07/18
- 46/67: gnu: guile-git: Skip http proxy test on the Hurd., guix-commits, 2023/07/18
- 34/67: gnu: parted: Disable tests for the Hurd., guix-commits, 2023/07/18
- 37/67: gnu: openssl-1.1: Fix shared build for the Hurd., guix-commits, 2023/07/18
- 57/67: build: Build gnu/packages/*.go in five steps., guix-commits, 2023/07/18
- 55/67: system: hurd: Add swap-services to hurd-default-essential-services., guix-commits, 2023/07/18
- 59/67: gnu: guix: Disable some test on 32bit., guix-commits, 2023/07/18
- 62/67: gnu: guix: Update to 1.4.0-9.dc1edb2ba6., guix-commits, 2023/07/18
- 56/67: gnu: hurd: Support native build on the Hurd., guix-commits, 2023/07/18
- 64/67: DRAFT hurd-boot: Support second boot., guix-commits, 2023/07/18