me
/
guix
Archived
1
0
Fork 0

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.
Janneke Nieuwenhuizen 2023-06-13 14:49:10 +02:00
parent 825a7be431
commit 8c5891d50b
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
3 changed files with 141 additions and 30 deletions

View File

@ -1146,6 +1146,7 @@ dist_patch_DATA = \
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \ %D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \
%D%/packages/patches/fluxbox-1.3.7-no-dynamic-cursor.patch \ %D%/packages/patches/fluxbox-1.3.7-no-dynamic-cursor.patch \
%D%/packages/patches/fontconfig-cache-ignore-mtime.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/foobillard++-pkg-config.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \

View File

@ -1534,37 +1534,65 @@ definitions.")
("python" ,python) ("python" ,python)
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments (arguments
'(#:configure-flags '(;; TODO: Provide GTK+ for the Wayland-friendly GDK (list
;; backend, instead of the legacy X11 backend. #:configure-flags #~'( ;; TODO: Provide GTK+ for the Wayland-friendly GDK
;; Currently it introduces a circular dependency. ;; backend, instead of the legacy X11 backend.
"-DENABLE_X11=ON") ;; Currently it introduces a circular dependency.
"-DENABLE_X11=ON")
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'do-not-override-RPATH (add-after 'unpack 'do-not-override-RPATH
(lambda _ (lambda _
;; Do not attempt to set a default RPATH, as our ld-wrapper ;; Do not attempt to set a default RPATH, as our ld-wrapper
;; already does the right thing. ;; already does the right thing.
(substitute* "CMakeLists.txt" (substitute* "CMakeLists.txt"
(("^set_default_rpath\\(\\)") (("^set_default_rpath\\(\\)")
"")) ""))
#t)) #t))
(add-after 'install 'set-library-path #$@(if (target-hurd?)
(lambda* (#:key inputs outputs #:allow-other-keys) #~((add-after 'unpack 'apply-hurd-patch
(let ((out (assoc-ref outputs "out")) (lambda _
(potrace (dirname (let ((patch-file
(search-input-file inputs "bin/potrace")))) #$(local-file
(wrap-program (string-append out "/bin/fontforge") (search-patch "fontforge-hurd.patch"))))
;; Fontforge dynamically opens libraries. (invoke "patch" "--force" "-p1" "-i" patch-file)))))
`("LD_LIBRARY_PATH" ":" prefix #~())
,(map (lambda (input) #$@(if (system-hurd?)
(string-append (assoc-ref inputs input) #~((replace 'check
"/lib")) ;; cmake-build-system ignores #:make-flags for make check
'("libtiff" "libjpeg" "libpng" "libungif" (lambda* (#:key test-target tests? parallel-tests?
"libxml2" "zlib" "libspiro" "freetype" #:allow-other-keys)
"pango" "cairo" "fontconfig"))) (let ((skip '("test0001_py" "test0001_pyhook")))
;; Checks for potrace program at runtime (if tests?
`("PATH" ":" prefix (,potrace))) (let ((jobs
#t)))))) (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") (synopsis "Outline font editor")
(description (description
"FontForge allows you to create and modify postscript, truetype and "FontForge allows you to create and modify postscript, truetype and

View File

@ -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