[PATCH 00/45] Fix builds and skip failing tests for the Hurd.

  • Done
  • quality assurance status badge
Details
4 participants
  • Janneke Nieuwenhuizen
  • Liliana Marie Prikler
  • Ludovic Courtès
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Janneke Nieuwenhuizen
Severity
normal
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:38
(address . guix-patches@gnu.org)
cover.1689690897.git.janneke@gnu.org
Hi!

Now that native builds work again on the Hurd, we need builds to succeed and
test suites to pass. Sadly, quite some packages have several problems with
their test suite. Notably e2fsprogs (+62), c-ares (+37), coreutils (+21),
python (+17), elfutils (+12), cmake (+11), curl (+9). And then there's a
problem with gnulib's stack tests that we see some recurrences of.

Some good news, previous commits that skipped tests for sed and libunistring
can now be reverted, because their test suites pass.

Also, most probably problematic tests in the guile test suite were fixed on
guile master. As I understand, Josselin is working on this, so way may want
to skip the patch for guile (or apply it anyway and revert it later).

Because many patches are almost trivial and similar, you may want to give some
specific comments to the non-trivial patches and possibly some general
comments for the trivial ones instead of a LGTM on every individual patch?

Greetings,
Janneke

Janneke Nieuwenhuizen (43):
Revert "gnu: libunistring: Fix make check for the Hurd."
gnu: guile: Skip hanging and failing pipe tests on the Hurd.
gnu: coreutils: Skip hanging and failing test on the Hurd.
gnu: grep: Update hanging and failing tests on the Hurd.
Revert "gnu: sed: Skip failing test on GNU/Hurd."
gnu: findutils: Move test-strerror_r from XFAIL to skip on the Hurd.
gnu: diffutils: Remove test-perror2 from XFAIL_TESTS on the Hurd.
gnu: gettext-minimal: Remove XFAIL_TESTS for the Hurd.
gnu: m4: Skip gnulib stack-overflow tests for the Hurd.
gnu: openssl: Build fix for the Hurd.
gnu: python: Support native build on the Hurd.
gnu: mpfr: Skip failing test on the Hurd.
gnu: elfutils: Skip failing tests on the Hurd.
gnu: libbsd: Skip failing test on the Hurd.
gnu: c-ares: Skip failing tests on the Hurd.
gnu: libgpg-error: Skip failing test on the Hurd.
gnu: libgcrypt: Skip hanging benchmark tests on the Hurd.
gnu: tcl: Remove failing tests on the Hurd..
gnu: curl: Skip failing test on the Hurd.
gnu: git: Skip failing test on the Hurd.
gnu: emacs: Depend on libc-for-target.
gnu: procps: Skip linux-version test for the Hurd.
gnu: e2fsprogs: Skip failing tests on the Hurd.
gnu: parted: Disable tests for the Hurd.
gnu: libpaper: Disable tests for the Hurd.
gnu: cairo: Support building for the Hurd.
gnu: openssl-1.1: Fix shared build for the Hurd.
gnu: ruby-2.6: Skip test on the Hurd.
gnu: tcsh: Skip substitution tests on the Hurd.
gnu: swig: Skip tests when building for the Hurd.
gnu: zstd: Skip tests when building for the Hurd.
gnu: cmake-bootstrap: Fix build for the Hurd.
gnu: cmake-minimal: Skip tests on the Hurd.
gnu: doxygen: Fix build for the Hurd.
gnu: graphite2: Skip test on the Hurd.
gnu: guile-git: Skip http proxy test on the Hurd.
gnu: glib: Disable tests for the Hurd.
gnu: ghostscript: Fix build for the Hurd.
gnu: harfbuzz: Support build for the Hurd.
gnu: pango: Support build for the Hurd.
gnu: fontforge: Support build on the Hurd.
gnu: po4a: Skip failing test on the Hurd.
gnu: guile-2.0: Skip failing tests on the Hurd.

gnu/local.mk | 5 +-
gnu/packages/adns.scm | 68 +++++++++--
gnu/packages/base.scm | 101 +++++++++-------
gnu/packages/cmake.scm | 48 +++++---
gnu/packages/compression.scm | 5 +-
gnu/packages/curl.scm | 19 ++-
gnu/packages/disk.scm | 1 +
gnu/packages/documentation.scm | 12 +-
gnu/packages/elf.scm | 23 ++++
gnu/packages/emacs.scm | 4 +-
gnu/packages/fontutils.scm | 108 +++++++++++++-----
gnu/packages/gettext.scm | 14 ++-
gnu/packages/ghostscript.scm | 20 +++-
gnu/packages/glib.scm | 3 +-
gnu/packages/gnupg.scm | 92 +++++++++------
gnu/packages/gtk.scm | 39 ++++---
gnu/packages/guile.scm | 40 ++++++-
gnu/packages/libbsd.scm | 12 +-
gnu/packages/libunistring.scm | 8 +-
gnu/packages/linux.scm | 85 +++++++++++++-
gnu/packages/m4.scm | 12 +-
gnu/packages/multiprecision.scm | 12 ++
gnu/packages/patches/doxygen-hurd.patch | 30 +++++
gnu/packages/patches/fontforge-hurd.patch | 82 +++++++++++++
.../patches/ghostscript-leptonica-hurd.patch | 78 +++++++++++++
gnu/packages/python.scm | 27 ++++-
gnu/packages/ruby.scm | 9 +-
gnu/packages/shells.scm | 9 +-
gnu/packages/swig.scm | 3 +
gnu/packages/tcl.scm | 10 +-
gnu/packages/tls.scm | 18 ++-
gnu/packages/version-control.scm | 11 +-
32 files changed, 820 insertions(+), 188 deletions(-)
create mode 100644 gnu/packages/patches/doxygen-hurd.patch
create mode 100644 gnu/packages/patches/fontforge-hurd.patch
create mode 100644 gnu/packages/patches/ghostscript-leptonica-hurd.patch


base-commit: 61835f33c6fee35457c7277e3216c10c15d0a391
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:39
[PATCH 01/43] Revert "gnu: libunistring: Fix make check for the Hurd."
(address . 64711@debbugs.gnu.org)
dddf7b1bde41bf99ccfa0b12239b012fcecb6f85.1689690897.git.janneke@gnu.org
This reverts commit 12e6a5923812abf180f03bea9e07dd99244a3fcd, which used
XFAIL_TESTS to have 'make check' pass with failing tests "test-perror2"
"test-strerror_r" that now pass with glibc-2.37 and libc-for-target in
commencement.
---
gnu/packages/libunistring.scm | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)

Toggle diff (35 lines)
diff --git a/gnu/packages/libunistring.scm b/gnu/packages/libunistring.scm
index e68b7d2378..eccd053a35 100644
--- a/gnu/packages/libunistring.scm
+++ b/gnu/packages/libunistring.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2022 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -28,7 +28,6 @@ (define-module (gnu packages libunistring)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
- #:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages base))
@@ -61,10 +60,7 @@ (define-public libunistring
(with-directory-excursion (string-append #$output "/lib")
(install-file "libunistring.a"
(string-append #$output:static "/lib"))
- (delete-file "libunistring.a")))))
- #:make-flags (if (target-hurd?)
- #~(list "XFAIL_TESTS=test-perror2 test-strerror_r")
- #~'())))
+ (delete-file "libunistring.a")))))))
(synopsis "C library for manipulating Unicode strings")
(description
"GNU libunistring is a library providing functions to manipulate
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:39
[PATCH 02/43] gnu: guile: Skip hanging and failing pipe tests on the Hurd.
(address . 64711@debbugs.gnu.org)
86a9ff0068ac21d4fa340f450f0835fa840111b2.1689690897.git.janneke@gnu.org
* gnu/packages/guile.scm (guile-3.0)[arguments]: When building on the Hurd,
add stage 'disable-popen.test-open-pipe' to avoid running the
open-input-pipe test (hangs) and open-output-pipe test (fails.
---
gnu/packages/guile.scm | 9 +++++++++
1 file changed, 9 insertions(+)

Toggle diff (22 lines)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 48bee600a9..ed20c1dfbc 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -378,6 +378,15 @@ (define-public guile-3.0
(search-patch "guile-hurd-posix-spawn.patch")))
(invoke "patch" "--force" "-p1" "-i" patch))))
#~())
+ #$@(if (system-hurd?)
+ #~((add-after 'unpack 'disable-popen.test-no-duplicate
+ ;; This test hangs on the Hurd.
+ (lambda _
+ (substitute* "test-suite/tests/popen.test"
+ (("\\(pass-if \"no duplicate\".*" all)
+ (string-append all " (when (string-ci= \"GNU\" (vector-ref (uname) 0)) (throw 'unresolved))
+"))))))
+ #~())
#$@(if (target-ppc32?)
#~((add-after 'unpack 'adjust-bootstrap-flags
(lambda _
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:39
[PATCH 04/43] gnu: grep: Update hanging and failing tests on the Hurd.
(address . 64711@debbugs.gnu.org)
30ff4538c1f67249b2720dcef60877b9a7cab7ad.1689690897.git.janneke@gnu.org
* gnu/packages/base.scm (grep)[arguments]: When building natively on the Hurd,
remove Rename phase 'skip-triple-backref-test' to 'skip-tests'. Remove
"tests/triple-backref" as it now passes. Add the hanging
"tests/hash-collision-perf" test, and the failing "tests/file" test.
---
gnu/packages/base.scm | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)

Toggle diff (38 lines)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index e941853d20..f1b027b0dc 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -134,21 +134,17 @@ (define-public grep
(string-append bin "/fgrep"))
(("^exec grep")
(string-append "exec " bin "/grep"))))))
- ,@(if (target-hurd?)
- '((add-before 'check 'skip-triple-backref-test
+ ,@(if (system-hurd?)
+ '((add-before 'check 'skip-test
(lambda _
- ;; This test is marked as malfunctioning on glibc systems
- ;; due to
- ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=11053>
- ;; and it triggers a segfault with glibc 2.33 on GNU/Hurd.
- ;; Skip it.
- (substitute* "tests/triple-backref"
- (("^warn_" all)
- (string-append "exit 77\n" all))))))
- '()))
- #:make-flags ,(if (target-hurd?)
- ''("XFAIL_TESTS=test-perror2 equiv-classes") ;XXX
- ''())))
+ (substitute*
+ ;; This test hangs
+ '("tests/hash-collision-perf"
+ ;; This test fails
+ "tests/file")
+ (("^#!.*" all)
+ (string-append all "exit 77;\n"))))))
+ '()))))
(synopsis "Print lines matching a pattern")
(description
"grep is a tool for finding text inside files. Text is found by
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:39
[PATCH 05/43] Revert "gnu: sed: Skip failing test on GNU/Hurd."
(address . 64711@debbugs.gnu.org)
109423da130ff371f106cfb758846d6632bf2426.1689690897.git.janneke@gnu.org
This reverts commit 779757047997d315d899b40c199be3709115cce4, as
the gnulib "tests-perror2" test now passes.
---
gnu/packages/base.scm | 4 ----
1 file changed, 4 deletions(-)

Toggle diff (17 lines)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index f1b027b0dc..00e59e6f46 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -183,10 +183,6 @@ (define-public sed
" CONFIG_HEADER='$(CONFIG_HEADER)'\t\t\\\n")))))
(modules '((guix build utils)))))
(build-system gnu-build-system)
- (arguments
- `(#:make-flags ,(if (target-hurd?)
- ''("XFAIL_TESTS=test-perror2")
- ''())))
(synopsis "Stream editor")
(native-inputs (list perl)) ;for tests
(description
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:39
[PATCH 03/43] gnu: coreutils: Skip hanging and failing test on the Hurd.
(address . 64711@debbugs.gnu.org)
53cd3ef833e0f894e620f8e3a43cdbe6e1f6f62b.1689690897.git.janneke@gnu.org
* gnu/packages/base.scm (coreutils)[arguments]: When building natively on the
Hurd, remove "test/df/unreadable.sh" and "test-perror2" from #:make-flags's
XFAIL_TESTS as they now pass. Move failing script tests from XFAIL_TESTS to
'remove-tests' phase. In phase 'remove-tests' rewrite substitute* to skip
tests instead of removing them. Add hanging and failing tests.
---
gnu/packages/base.scm | 47 ++++++++++++++++++++++++++++---------------
1 file changed, 31 insertions(+), 16 deletions(-)

Toggle diff (72 lines)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 55fe70309c..e941853d20 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -397,23 +397,13 @@ (define-public coreutils
(outputs '("out" "debug"))
(arguments
`(#:parallel-build? #f ; help2man may be called too early
- ,@(if (target-hurd?)
+ ,@(if (system-hurd?)
'(#:make-flags ; these tests fail deterministically
- (list (string-append "XFAIL_TESTS=tests/misc/env-S.pl"
- " tests/misc/kill.sh"
- " tests/misc/nice.sh"
- " tests/misc/pwd-long.sh"
- " tests/split/fail.sh"
-
- ;; /hurd/fifo issue:
- ;; <https://issues.guix.gnu.org/58803>.
- " tests/df/unreadable.sh"
-
+ (list (string-append "XFAIL_TESTS="
;; Gnulib tests.
" test-fdutimensat"
" test-futimens"
" test-linkat"
- " test-perror2"
" test-renameat"
" test-renameatu"
" test-utimensat")))
@@ -435,10 +425,35 @@ (define-public coreutils
(("#!/bin/sh") (string-append "#!" (which "sh"))))))
(add-after 'unpack 'remove-tests
(lambda _
- ,@(if (target-hurd?)
- '((substitute* "Makefile.in"
- ;; this test hangs
- (("^ *tests/misc/timeout-group.sh.*") ""))
+ ,@(if (system-hurd?)
+ '((substitute*
+ ;; These tests hang
+ '("tests/cp/sparse-to-pipe.sh"
+ "tests/split/fail.sh"
+ ;; These tests error
+ "tests/dd/nocache.sh"
+ ;; These tests fail
+ "tests/cp/sparse.sh"
+ "tests/cp/special-f.sh"
+ "tests/dd/bytes.sh"
+ "tests/dd/stats.sh"
+ "tests/ls/dangle.sh"
+ "tests/ls/follow-slink.sh"
+ "tests/ls/hyperlink.sh"
+ "tests/ls/infloop.sh"
+ "tests/ls/inode.sh"
+ "tests/ls/selinux-segfault.sh"
+ "tests/misc/env-S.pl"
+ "tests/misc/factor-parallel.sh"
+ "tests/misc/ls-misc.pl"
+ "tests/misc/nice.sh"
+ "tests/misc/pwd-long.sh"
+ "tests/misc/shred-passes.sh"
+ "tests/misc/stat-slash.sh"
+ "tests/rm/fail-eperm.xpl"
+ "tests/split/filter.sh")
+ (("^#!.*" all)
+ (string-append all "exit 77;\n")))
(substitute* "gnulib-tests/Makefile.in"
;; This test sometimes fails and sometimes
;; passes, but it does this consistently, so
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:39
[PATCH 06/43] gnu: findutils: Move test-strerror_r from XFAIL to skip on the Hurd.
(address . 64711@debbugs.gnu.org)
f1f6b17eaf223cc3864f20b38bf581bb8e1de58d.1689690897.git.janneke@gnu.org
* gnu/packages/base.scm (findutils)[arguments]: When building natively on the
Hurd, remove #:make-flags as "test-strerror_r" fails non-deterministically.
Instead, add 'skip-test' phase and skip it.
---
gnu/packages/base.scm | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

Toggle diff (27 lines)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 00e59e6f46..14479c4951 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -340,10 +340,16 @@ (define-public findutils
(substitute* '("tests/xargs/verbose-quote.sh"
"tests/find/exec-plus-last-file.sh")
(("#!/bin/sh")
- (string-append "#!" (which "sh")))))))
- #:make-flags ,(if (target-hurd?)
- ''("XFAIL_TESTS=test-strerror_r")
- ''())))
+ (string-append "#!" (which "sh"))))))
+ ,@(if (system-hurd?)
+ '((add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute*
+ ;; This test fails non-deterministically
+ "gnulib-tests/test-strerror_r.c"
+ (("(^| )main *\\(.*" all)
+ (string-append all "{\n exit (77);//"))))))
+ '()))))
(synopsis "Operating on files matching given criteria")
(description
"Findutils supplies the basic file directory searching utilities of the
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 07/43] gnu: diffutils: Remove test-perror2 from XFAIL_TESTS on the Hurd.
(address . 64711@debbugs.gnu.org)
02a949b8a5db06eb0d5a521cc7e6f09e75f1464b.1689690897.git.janneke@gnu.org
* gnu/packages/base.scm (diffutils)[arguments]: When building natively on the
Hurd, Move "large-subopt" test from #:make-flags' XFAIL_TESTS to a new
'skip-tests' phase. Remove #:make-flags for the Hurd, as "test-perror2" now
passes.
---
gnu/packages/base.scm | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 14479c4951..1fdfaf8a57 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -303,9 +303,15 @@ (define-public diffutils
(patches (search-patches "diffutils-fix-signal-processing.patch"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags ,(if (target-hurd?)
- ''("XFAIL_TESTS=test-perror2 large-subopt")
- ''())))
+ (list
+ #:phases (if (system-hurd?)
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute* "tests/large-subopt"
+ (("^#!.*" all)
+ (string-append all "exit 77;\n"))))))
+ #~%standard-phases)))
(native-inputs (list perl))
(synopsis "Comparing and merging files")
(description
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 08/43] gnu: gettext-minimal: Remove XFAIL_TESTS for the Hurd.
(address . 64711@debbugs.gnu.org)
aedee9f4c5051e2dba73527bf348f414fb377ec1.1689690897.git.janneke@gnu.org
* gnu/packages/gettext.scm (gettext-minimal)[arguments]: When building for the
Hurd, remove XTESTS_FAIL from, as "test-perror2" now passes.
---
gnu/packages/gettext.scm | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 114d8cf7af..0cb01154d3 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -133,10 +133,7 @@ (define-public gettext-minimal
#t)))))
;; When tests fail, we want to know the details.
- #:make-flags #~'("VERBOSE=yes"
- #$@(if (target-hurd?)
- '("XFAIL_TESTS=test-perror2")
- '()))))
+ #:make-flags #~'("VERBOSE=yes")))
(home-page "https://www.gnu.org/software/gettext/")
(synopsis
"Tools and documentation for translation (used to build other packages)")
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 09/43] gnu: m4: Skip gnulib stack-overflow tests for the Hurd.
(address . 64711@debbugs.gnu.org)
9db574983a7ebe9cf45773c7e68853c835fb83b8.1689690897.git.janneke@gnu.org
* gnu/packages/m4.scm (m4)[arguments]: When building for the Hurd, add stage
'skip-stack-overflow-tests'.
---
gnu/packages/m4.scm | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm
index fbc075a2cb..39b50b6800 100644
--- a/gnu/packages/m4.scm
+++ b/gnu/packages/m4.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,7 +24,8 @@ (define-module (gnu packages m4)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix utils))
(define-public m4
(package
@@ -54,6 +56,14 @@ (define-public m4
(substitute* "tests/test-execute.sh"
(("4 5 6")
"4 6"))))
+ ,@(if (target-hurd?)
+ '((add-after 'unpack 'skip-stack-overflow-tests
+ (lambda _
+ (substitute* '("tests/test-sigsegv-catch-stackoverflow1.c"
+ "tests/test-sigsegv-catch-stackoverflow2.c")
+ (("(^| )main *\\(.*" all)
+ (string-append all "{\n exit (77);//"))))))
+ '())
(add-after 'unpack 'configure-shell
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((/bin/sh (search-input-file (or native-inputs inputs)
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 10/43] gnu: openssl: Build fix for the Hurd.
(address . 64711@debbugs.gnu.org)
cf0c80a1834cbd7bfad74b8f69d416f61fb3799e.1689690897.git.janneke@gnu.org
* gnu/packages/tls.scm (openssl-3.0)[arguments]: When building on the Hurd,
add "hurd-x86" to #:configure-flags.
---
gnu/packages/tls.scm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

Toggle diff (21 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index d94b7c27f5..e8ed0d61a4 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -585,7 +585,13 @@ (define-public openssl-3.0
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(setenv "HASHBANGPERL"
(search-input-file (or native-inputs inputs)
- "/bin/perl"))))))))
+ "/bin/perl"))))))
+ ((#:configure-flags flags #~'())
+ (if (target-hurd? (%current-system))
+ #~(append
+ #$flags
+ '("hurd-x86"))
+ flags))))
(license license:asl2.0)))
(define-public openssl openssl-3.0)
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 11/43] gnu: python: Support native build on the Hurd.
(address . 64711@debbugs.gnu.org)
d3d9ce588783419b78c28ebbd3de39727f8644ea.1689690897.git.janneke@gnu.org
Running "test_concurrent_futures" and "test_venv" freeze the Hurd. Tests
"test_multiprocessing_forkserver" and "test_multiprocessing_spawn" run over
10mins. Debian simply skips all tests on the Hurd.

* gnu/packages/python.scm (python-3.10)[arguments]: When building for the
Hurd, add hanging and failing to #:make-flags's --exclude flag. Also, add
'disable-multi-processing' phase to avoid compileall.py hang during install.
---
gnu/packages/python.scm | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)

Toggle diff (51 lines)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 302f995b0f..51d5f598d7 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -457,7 +457,7 @@ (define-public python-3.10
(format #f "TESTOPTS=-j~d" (parallel-job-count))
;; test_mmap fails on low-memory systems
" --exclude test_mmap test_socket"
- ,@(if (target-hurd?)
+ ,@(if (system-hurd?)
'(" test_posix" ;multiple errors
" test_time"
" test_pty"
@@ -487,12 +487,33 @@ (define-public python-3.10
" test_open_unix_connection"
" test_open_unix_connection_error"
" test_read_pty_output"
- " test_write_pty")
+ " test_write_pty"
+ " test_concurrent_futures" ;freeze
+ " test_venv" ;freeze
+ " test_multiprocessing_forkserver" ;runs over 10min
+ " test_multiprocessing_spawn" ;runs over 10min
+ " test_builtin"
+ " test_capi"
+ " test_dbm_ndbm"
+ " test_exceptions"
+ " test_faulthandler"
+ " test_getopt"
+ " test_importlib"
+ " test_json"
+ " test_multiprocessing_fork"
+ " test_multiprocessing_main_handling"
+ " test_pdb "
+ " test_regrtest"
+ " test_sqlite")
'()))))
((#:phases phases)
`(modify-phases ,phases
,@(if (system-hurd?)
- `((delete 'patch-regen-for-hurd)) ;regen was removed after 3.5.9
+ `((delete 'patch-regen-for-hurd) ;regen was removed after 3.5.9
+ (add-after 'unpack 'disable-multi-processing
+ (lambda _
+ (substitute* "Makefile.pre.in"
+ (("-j0") "-j1")))))
'())
(add-after 'unpack 'remove-windows-binaries
(lambda _
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 12/43] gnu: mpfr: Skip failing test on the Hurd.
(address . 64711@debbugs.gnu.org)
e4f0657ff48efca27f22313001161a360b9aac3a.1689690897.git.janneke@gnu.org
* gnu/packages/multiprecision.scm (mpfr)[arguments]: When building natively on
the Hurd, add 'skip-tests' phase to skip "tsprintf".
---
gnu/packages/multiprecision.scm | 12 ++++++++++++
1 file changed, 12 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 51ba21162c..3aa5dccfab 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2018, 2019, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -126,6 +127,17 @@ (define-public mpfr
".tar.xz"))
(sha256 (base32
"14yr4sf4mys64nzbgnd997l6l4n8l9vsjnnvnb0lh4jh2ggpi8q6"))))
+ (arguments
+ (list
+ #:phases (if (system-hurd?)
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute*
+ "tests/tsprintf.c"
+ (("(^| )main *\\(.*" all)
+ (string-append all "{\n exit (77);//"))))))
+ #~%standard-phases)))
(build-system gnu-build-system)
(outputs '("out" "debug"))
(propagated-inputs (list gmp)) ; <mpfr.h> refers to <gmp.h>
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 14/43] gnu: libbsd: Skip failing test on the Hurd.
(address . 64711@debbugs.gnu.org)
e9f4c981d2fcf1a0d81167a85d0d84dbfa24e29a.1689690897.git.janneke@gnu.org
* gnu/packages/libbsd.scm (libbsd)[arguments]: When building natively on the
Hurd, add stage 'skip-tests'.
---
gnu/packages/libbsd.scm | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/libbsd.scm b/gnu/packages/libbsd.scm
index 79f1389081..46a11a61e2 100644
--- a/gnu/packages/libbsd.scm
+++ b/gnu/packages/libbsd.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,6 +24,7 @@ (define-module (gnu packages libbsd)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix gexp)
+ #:use-module (guix utils)
#:use-module (gnu packages crypto))
(define-public libbsd
@@ -64,7 +66,15 @@ (define-public libbsd
;; build container.
(substitute* "test/Makefile"
(("pwcache\\$\\(EXEEXT\\) ")
- "")))))))
+ ""))))
+ #$@(if (system-hurd?)
+ #~((add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute* "test/explicit_bzero.c"
+ (("(^| )main *\\(.*" all)
+ (string-append all
+ "{\n exit (77);//"))))))
+ #~()))))
(inputs
(list libmd))
(synopsis "Utility functions from BSD systems")
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 13/43] gnu: elfutils: Skip failing tests on the Hurd.
(address . 64711@debbugs.gnu.org)
a1da3871634c8408bca0158aecf2d989f9a26b7e.1689690897.git.janneke@gnu.org
* gnu/packages/elf.scm (elfutils)[arguments]: When building natively on the Hurd,
add phase 'skip-tests'.
---
gnu/packages/elf.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index d188099812..a100038f14 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -112,6 +113,28 @@ (define-public elfutils
(("run-reverse-sections-self.sh") "")
(("run-strip-strmerge.sh") "")
(("run-elflint-self.sh") "")))))
+ '())
+ ,@(if (system-hurd?)
+ `((add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute* '("tests/elfstrtab.c"
+ "tests/emptyfile.c")
+ (("elf_version \\(EV_CURRENT\\);" all)
+ "exit (77);"))
+ (substitute* '("tests/run-all-dwarf-ranges.sh"
+ "tests/run-allfcts-multi.sh"
+ "tests/run-attr-integrate-skel.sh"
+ "tests/run-bug1-test.sh"
+ "tests/run-copyadd-sections.sh"
+ "tests/run-deleted.sh"
+ "tests/run-get-units-split.sh"
+ "tests/run-native-test.sh"
+ "tests/run-readelf-loc.sh"
+ "tests/run-readelf-ranges.sh"
+ "tests/run-unit-info.sh"
+ "tests/run-varlocs.sh")
+ (("^#!.*" all)
+ (string-append all "exit 77;\n"))))))
'()))))
(native-inputs (list m4))
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 15/43] gnu: c-ares: Skip failing tests on the Hurd.
(address . 64711@debbugs.gnu.org)
a91a1c91bb0ed1a2baeacc58ae521158c47280ec.1689690897.git.janneke@gnu.org
* gnu/packages/adns.scm (c-ares)[arguments: When building natively on the
Hurd, add phases 'skip-tests' and 'filter-hurd-tests'.
---
gnu/packages/adns.scm | 68 ++++++++++++++++++++++++++++++++++++++-----
1 file changed, 61 insertions(+), 7 deletions(-)

Toggle diff (103 lines)
diff --git a/gnu/packages/adns.scm b/gnu/packages/adns.scm
index 913d885af4..ead40bce1b 100644
--- a/gnu/packages/adns.scm
+++ b/gnu/packages/adns.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2015, 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,9 +21,11 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages adns)
+ #:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages m4)
@@ -76,18 +79,69 @@ (define-public c-ares
"1kxviskwsaa7dcgscvssxa8ps88pdq7kq4z93gxvz7sam2l54z8s"))))
(build-system gnu-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'filter-live-tests
- (lambda _
- ;; Filter tests that require internet access.
- (setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*"))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'filter-live-tests
+ (lambda _
+ ;; Filter tests that require internet access.
+ (setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*")))
+ #$@(if (system-hurd?)
+ #~((add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute* "test/ares-test-main.cc"
+ (("(^| )main *\\(.*" all)
+ (string-append all " exit (77);\n")))))
+ (add-after 'filter-live-tests 'filter-hurd-tests
+ (lambda _
+ (setenv "GTEST_FILTER"
+ (string-append
+ (getenv "GTEST_FILTER")
+ ":.*Basic/2"
+ ":.*CancelImmediate/2"
+ ":.*CancelImmediateGetHostByAddr/2"
+ ":.*CancelLater/1"
+ ":.*FamilyUnspecified/2"
+ ":.*FamilyV6/2"
+ ":.*GetAddrInfoParallelLookups/1"
+ ":.*GetHostByAddrDestroy/2"
+ ":.*GetHostByNameCNAMENoData/2"
+ ":.*GetHostByNameDestroyAbsolute/2"
+ ":.*GetHostByNameDestroyRelative/2"
+ ":.*GetHostByNameParallelLookups/1"
+ ":.*HostAlias/2"
+ ":.*HostAliasMissing/2"
+ ":.*HostAliasMissingFile/2"
+ ":.*NotImplResponse/2"
+ ":.*RefusedResponse/2"
+ ":.*Resend/1"
+ ":.*RetryWithoutEDNS/2"
+ ":.*SearchDomains/2"
+ ":.*SearchDomainsBare/2"
+ ":.*SearchDomainsServFailOnAAAA/2"
+ ":.*SearchDomainsWithResentReply/1"
+ ":.*SearchHighNdots/2"
+ ":.*SearchNoDataThenFail/2"
+ ":.*SearchNoDataThenNoDataBare/2"
+ ":.*SearchNoDataThenSuccess/2"
+ ":.*ServFailResponse/2"
+ ":.*SimpleQuery/2"
+ ":.*SockCallback/2"
+ ":.*SockConfigureCallback/2"
+ ":.*SortListV4/2"
+ ":.*SortListV6/2"
+ ":.*ThirdServer/2"
+ ":.*TruncationRetry/1"
+ ":.*UnspecifiedFamilyCname6A4/2"
+ ":.*UnspecifiedFamilyV4/2"
+ ":.*UnspecifiedFamilyV6/2")))))
+ #~()))))
(native-inputs
(list pkg-config))
(home-page "https://c-ares.haxx.se/")
(synopsis "C library for asynchronous DNS requests")
(description
- "C-ares is a C library that performs DNS requests and name resolution
+ "C-ares is a C library that performs DNS requests and name resolution
asynchronously. It is intended for applications which need to perform DNS
queries without blocking, or need to perform multiple DNS queries in parallel.
The primary examples of such applications are servers which communicate with
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 16/43] gnu: libgpg-error: Skip failing test on the Hurd.
(address . 64711@debbugs.gnu.org)
e039a1f8c5ac72d04ce68eb4d573338f163c4ad9.1689690897.git.janneke@gnu.org
* gnu/packages/gnupg.scm (libgpg-error)[arguments]: When building natively on
the Hurd, add phase 'skip-tests'.
---
gnu/packages/gnupg.scm | 82 ++++++++++++++++++++++++------------------
1 file changed, 48 insertions(+), 34 deletions(-)

Toggle diff (111 lines)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 49d29ed9bd..4a9a8fbb57 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2021 Nikita Domnitskii <nikita@domnitskii.me>
;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -94,40 +95,42 @@ (define-public libgpg-error
(version "1.45")
(source
(origin
- (method url-fetch)
- (uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-"
- version ".tar.bz2"))
- (sha256
- (base32
- "09haz1kk48b8q0hd58g98whylah0fp121yfgjms7pzsbzgj8w3sp"))))
+ (method url-fetch)
+ (uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "09haz1kk48b8q0hd58g98whylah0fp121yfgjms7pzsbzgj8w3sp"))))
(build-system gnu-build-system)
(arguments
- (if (%current-target-system)
- `(#:modules ((guix build gnu-build-system)
- (guix build utils))
- #:phases
- (modify-phases %standard-phases
- ;; If this is left out, some generated header
- ;; files will be sprinkled with ‘\c’, which
- ;; the compiler won't like.
- (add-after 'unpack 'fix-gen-lock-obj.sh
- (lambda _
- (substitute* "src/gen-lock-obj.sh"
- (("if test -n `echo -n`") "if ! test -n `echo -n`"))))
- ;; When cross-compiling, some platform specific properties cannot
- ;; be detected. Create a symlink to the appropriate platform
- ;; file if required. Note that these platform files depend on
- ;; both the operating system and architecture!
- ;;
- ;; See Cross-Compiling section at:
- ;; https://github.com/gpg/libgpg-error/blob/master/README
- (add-after 'unpack 'cross-symlinks
- (lambda _
- (define (link triplet source)
- (symlink (string-append "lock-obj-pub." triplet ".h")
- (string-append "src/syscfg/lock-obj-pub."
- source ".h")))
- ,(let* ((target (%current-target-system))
+ (cond
+ ((%current-target-system)
+ (list
+ #:modules '((guix build gnu-build-system)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; If this is left out, some generated header
+ ;; files will be sprinkled with ‘\c’, which
+ ;; the compiler won't like.
+ (add-after 'unpack 'fix-gen-lock-obj.sh
+ (lambda _
+ (substitute* "src/gen-lock-obj.sh"
+ (("if test -n `echo -n`") "if ! test -n `echo -n`"))))
+ ;; When cross-compiling, some platform specific properties cannot
+ ;; be detected. Create a symlink to the appropriate platform
+ ;; file if required. Note that these platform files depend on
+ ;; both the operating system and architecture!
+ ;;
+ ;; See Cross-Compiling section at:
+ ;; https://github.com/gpg/libgpg-error/blob/master/README
+ (add-after 'unpack 'cross-symlinks
+ (lambda _
+ (define (link triplet source)
+ (symlink (string-append "lock-obj-pub." triplet ".h")
+ (string-append "src/syscfg/lock-obj-pub."
+ source ".h")))
+ #$(let* ((target (%current-target-system))
(architecture
(string-take target (string-index target #\-))))
(cond ((target-linux? target)
@@ -140,8 +143,19 @@ (define-public libgpg-error
;; configuration, as this is not correct for
;; all architectures.
(_ #t)))
- (#t #t)))))))
- '()))
+ (#t #t))))))))
+ ((system-hurd?)
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute*
+ "tests/t-syserror.c"
+ (("(^| )main *\\(.*" all)
+ (string-append all "{\n exit (77);//"))))))))
+ (else
+ '())))
(native-inputs (list gettext-minimal))
(home-page "https://gnupg.org")
(synopsis "Library of error values for GnuPG components")
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 17/43] gnu: libgcrypt: Skip hanging benchmark tests on the Hurd.
(address . 64711@debbugs.gnu.org)
6d5f627b409a5d4dc7ddc19cd22957685eb2d07f.1689690897.git.janneke@gnu.org
* gnu/packages/gnupg.scm (libgcrypt)[arguments]: When building natively on the
Hurd, add phase 'setenv' to set "GCRYPT_NO_BENCHMARKS".
---
gnu/packages/gnupg.scm | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 4a9a8fbb57..8d92c60bf2 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -204,7 +204,15 @@ (define-public libgcrypt
,@(if (%current-target-system)
;; When cross-compiling, _gcry_mpih_lshift etc are undefined.
`("--disable-asm")
- '()))))
+ '()))
+ ,@(if (system-hurd?)
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'setenv
+ (lambda _
+ (setenv "GCRYPT_NO_BENCHMARKS" "t")))))
+ '())))
(outputs '("out" "debug"))
(home-page "https://gnupg.org/")
(synopsis "Cryptographic function library")
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 18/43] gnu: tcl: Remove failing tests on the Hurd..
(address . 64711@debbugs.gnu.org)
b88acf64e32d76023be53a1e142ada4a193496de.1689690897.git.janneke@gnu.org
* gnu/packages/tcl.scm (tcl)[arguments]: When building natively on the Hurd,
add phase 'delete-tests'.
---
gnu/packages/tcl.scm | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

Toggle diff (30 lines)
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 2a5fbc6fe8..b69dba2254 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
@@ -69,7 +69,13 @@ (define-public tcl
;; Programs such as Ghostscript rely on it.
(with-directory-excursion bin
(symlink (car (find-files "." "tclsh"))
- "tclsh"))))))
+ "tclsh")))))
+ ,@(if (system-hurd?)
+ '((add-after 'unpack 'delete-tests
+ (lambda _
+ (delete-file "tests/chanio.test")
+ (delete-file "tests/socket.test"))))
+ '()))
;; By default, man pages are put in PREFIX/man, but we want them in
;; PREFIX/share/man. The 'validate-documentation-location' phase is
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 19/43] gnu: curl: Skip failing test on the Hurd.
(address . 64711@debbugs.gnu.org)
7620b5c7b0b746184ff5666719e0102059b14a3e.1689690897.git.janneke@gnu.org
* gnu/packages/curl.scm (curl)[arguments]: When building natively on the Hurd,
add phase 'skip-tests'.
---
gnu/packages/curl.scm | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 76fcc115cf..4e3c563570 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Jakub K?dzio?ka <kuba@kadziolka.net>
;;; Copyright © 2020 Dale Mellor <guix-devel-0brg6b@rdmp.org>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
@@ -125,7 +125,22 @@ (define-public curl
;; The top-level "make check" does "make -C tests quiet-test", which
;; is too quiet. Use the "test" target instead, which is more
;; verbose.
- (invoke "make" "-C" "tests" "test")))))))
+ (invoke "make" "-C" "tests" "test"))))
+ #$@(if (system-hurd?)
+ #~((add-after 'unpack 'skip-tests
+ (lambda _
+ (let ((port (open-file "tests/data/DISABLED" "a")))
+ (display "526\n" port)
+ (display "527\n" port)
+ (display "532\n" port)
+ (display "533\n" port)
+ (display "537\n" port)
+ (display "546\n" port)
+ (display "575\n" port)
+ (display "1021\n" port)
+ (display "1501\n" port)
+ (close port)))))
+ #~()))))
(synopsis "Command line tool for transferring data with URL syntax")
(description
"curl is a command line tool for transferring data with URL syntax,
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 20/43] gnu: git: Skip failing test on the Hurd.
(address . 64711@debbugs.gnu.org)
9b63cf847b0dc644fea5cd1baef6c91dd345b11d.1689690897.git.janneke@gnu.org
* gnu/packages/version-control.scm (git)[arguments]: When building natively on
the Hurd, add stage 'delete-tests/hurd'.
---
gnu/packages/version-control.scm | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

Toggle diff (31 lines)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index ecdb1d1781..2f70655ac1 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -28,7 +28,7 @@
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 John D. Boy <jboy@bius.moe>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021, 2022, 2023 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
@@ -570,7 +570,14 @@ (define-public git
(manpages (assoc-ref inputs "git-manpages")))
(mkdir-p man)
(with-directory-excursion man
- (invoke "tar" "xvf" manpages))))))))
+ (invoke "tar" "xvf" manpages)))))
+ ,@(if (system-hurd?)
+ '((add-after 'unpack 'delete-tests/hurd
+ (lambda _
+ (delete-file "t/t0052-simple-ipc.sh")
+ (delete-file "t/t5562-http-backend-content-length.sh")
+ (delete-file "t/t9902-completion.sh"))))
+ '()))))
(native-search-paths
;; For HTTPS access, Git needs a single-file certificate bundle, specified
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 21/43] gnu: emacs: Depend on libc-for-target.
(address . 64711@debbugs.gnu.org)
1ae38ee32d483d5003d0728b9b63676f9ae50f08.1689690897.git.janneke@gnu.org
* gnu/packages/emacs.scm (emacs)[inputs]: Change glibc to (libc-for-target).
---
gnu/packages/emacs.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 437564f6f0..d3689c2474 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2017, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2017, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -310,7 +310,7 @@ (define-public emacs
;; For native compilation
binutils
- glibc
+ (libc-for-target)
libgccjit
;; Required for "core" functionality, such as dired and compression.
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 22/43] gnu: procps: Skip linux-version test for the Hurd.
(address . 64711@debbugs.gnu.org)
4731c0f34c71c0554e235fa8b47b74be18173347.1689690897.git.janneke@gnu.org
* gnu/packages/linux.scm (procps)[arguments]: When building natively on the
Hurd, add stage 'skip-tests'.
---
gnu/packages/linux.scm | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

Toggle diff (31 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 39503de6ff..190c28cb60 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -42,7 +42,7 @@
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
@@ -2390,7 +2390,14 @@ (define-public procps
(let* ((out #$output)
(dup (append-map (cut find-files out <>)
'("^kill" "^uptime"))))
- (for-each delete-file dup)))))))
+ (for-each delete-file dup))))
+ #$@(if (system-hurd?)
+ #~((add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute* "library/tests/test_version.c"
+ (("^int main\\(.*" all)
+ (string-append all "{\n exit (77);//"))))))
+ #~()))))
(inputs (list ncurses))
(native-inputs (list pkg-config))
(home-page "https://gitlab.com/procps-ng/procps/")
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 23/43] gnu: e2fsprogs: Skip failing tests on the Hurd.
(address . 64711@debbugs.gnu.org)
02f3ee45f249be83aee4be35f9ed49109dfd074c.1689690897.git.janneke@gnu.org
* gnu/packages/linux.scm (e2fsprogs)[arguments]: When building natively on the
Hurd, add phase 'skip-tests'.
---
gnu/packages/linux.scm | 74 ++++++++++++++++++++++++++++++++++++++++--
1 file changed, 72 insertions(+), 2 deletions(-)

Toggle diff (94 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 190c28cb60..81658534b5 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2505,7 +2505,7 @@ (define-public e2fsprogs
perl
procps))
(arguments
- '(;; util-linux is the preferred source for some of the libraries and
+ `(;; util-linux is the preferred source for some of the libraries and
;; commands, so disable them (see, e.g.,
;; <http://git.buildroot.net/buildroot/commit/?id=e1ffc2f791b33633>.)
#:configure-flags (list "--disable-libblkid"
@@ -2552,7 +2552,77 @@ (define-public e2fsprogs
(let ((archives (find-files lib "\\.a$")))
(for-each (lambda (file)
(chmod file #o666))
- archives))))))))
+ archives)))))
+ ,@(if (system-hurd?)
+ '((add-after 'unpack 'skip-tests
+ (lambda _
+ (with-directory-excursion "tests"
+ (for-each
+ (lambda (directory)
+ (delete-file-recursively directory))
+ '("d_bad_ostype"
+ "f_detect_junk"
+ "f_extent_oobounds"
+ "j_ext_long_revoke_trans"
+ "j_ext_long_trans"
+ "j_long_revoke_trans"
+ "j_long_revoke_trans_mcsum_32bit"
+ "j_long_revoke_trans_mcsum_64bit"
+ "j_long_trans"
+ "j_long_trans_mcsum_32bit"
+ "j_long_trans_mcsum_64bit"
+ "j_short_revoke_trans"
+ "j_short_revoke_trans_mcsum_64bit"
+ "j_short_trans_64bit"
+ "j_short_trans"
+ "j_short_trans_mcsum_64bit"
+ "j_short_trans_old_csum"
+ "j_short_trans_open_recover"
+ "j_short_trans_recover"
+ "j_short_trans_recover_mcsum_64bit"
+ "j_short_uncommitted_trans"
+ "j_short_uncommitted_trans_mcsum_64bit"
+ "m_error_behavior"
+ "m_minrootdir"
+ "m_rootdir"
+ "r_32to64bit_expand_full"
+ "r_expand_full"
+ "r_fixup_lastbg_big"
+ "t_change_uuid"
+ "t_change_uuid_mcsum"
+ "t_change_uuid_mcsum_mounted"
+ "t_change_uuid_mcsum_seed_mounted"
+ "t_change_uuid_mounted"
+ "t_disable_changed_csum_seed"
+ "t_disable_changed_csum_seed_mounted"
+ "t_disable_csum_seed"
+ "t_disable_meta_csum_and_seed"
+ "t_enable_csum_seed"
+ "t_format_csum_seed"
+ "t_replay_and_set"
+ "u_compound_rollback"
+ "u_corrupt_blk_csum"
+ "u_corrupt_blk_csum_force"
+ "u_corrupt_key_csum"
+ "u_debugfs_opt"
+ "u_dryrun"
+ "u_e2fsck_opt"
+ "u_errorout"
+ "u_force"
+ "u_force_dryrun"
+ "u_incomplete"
+ "u_mke2fs_opt"
+ "u_mke2fs_opt_oddsize"
+ "u_offset"
+ "u_onefile_bad"
+ "u_resize2fs_opt"
+ "u_revert_64bitmcsum_onefile"
+ "u_revert_all_onefile"
+ "u_revert_upgrade_to_64bitmcsum"
+ "u_tune2fs_opt"
+ "u_undo_undo"
+ "u_wrong_fs"))))))
+ '()))))
(home-page "https://e2fsprogs.sourceforge.net/")
(synopsis "Creating and checking ext2/ext3/ext4 file systems")
(description
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 24/43] gnu: parted: Disable tests for the Hurd.
(address . 64711@debbugs.gnu.org)
b0848644b83eb7041ae365641bc2beff0936e31c.1689690897.git.janneke@gnu.org
* gnu/packages/disk.scm (parted)[argument]: Set #:tests? to #false when
building for the Hurd.
---
gnu/packages/disk.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 6306504503..35ffcf173e 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -259,6 +259,7 @@ (define-public parted
#:configure-flags (if (target-hurd?)
#~'("--disable-device-mapper")
#~'())
+ #:tests? (not (target-hurd?))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-locales-and-python
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 25/43] gnu: libpaper: Disable tests for the Hurd.
(address . 64711@debbugs.gnu.org)
1db7ca6153a323af76ba72404da543a7e597c024.1689690897.git.janneke@gnu.org
* gnu/packages/ghostscript.scm (libpaper)[arguments]: When building for the
Hurd, set #:tests? to #false.
---
gnu/packages/ghostscript.scm | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

Toggle diff (30 lines)
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 8d35f1195c..94807fdd94 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020, 2022 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -89,9 +89,11 @@ (define-public libpaper
(native-inputs
(list help2man))
(arguments
- '(#:configure-flags '("--disable-static"
- ;; Tests require a relocatable build.
- "--enable-relocatable")))
+ (list #:configure-flags ''("--disable-static"
+ ;; Tests require a relocatable build.
+ "--enable-relocatable")
+ ;; --enable-relocate is broken on the Hurd
+ #:tests? (not (target-hurd?))))
(outputs '("out" "debug"))
(home-page "https://github.com/rrthomas/libpaper")
(synopsis "Library for handling paper sizes")
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 26/43] gnu: cairo: Support building for the Hurd.
(address . 64711@debbugs.gnu.org)
b9816b12ede7922cc392788e9d8d29758a7ff389.1689690897.git.janneke@gnu.org
Gobject-introspection and libdrm does not build for the Hurd. Poppler depends
on nss, which does not build for the Hurd.

* gnu/packages/gtk.scm (cairo)[native-inputs]: When building for the Hurd, do
not include gobject-introspection.
[inputs]: Likewise, do not include libdrm, poppler.
---
gnu/packages/gtk.scm | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 9621357b99..eb69a88221 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -35,6 +35,7 @@
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -194,15 +195,21 @@ (define-public cairo
(assoc-ref %outputs "doc")
"/share/gtk-doc/html"))))
(native-inputs
- `(("gobject-introspection" ,gobject-introspection)
+ `(,@(if (target-hurd?)
+ '()
+ `(("gobject-introspection" ,gobject-introspection)))
("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(inputs
`(("bash-minimal" ,bash-minimal) ;for glib-or-gtk-wrap
- ("drm" ,libdrm)
+ ,@(if (target-hurd?)
+ '()
+ `(("drm" ,libdrm)))
("ghostscript" ,ghostscript)
("libspectre" ,libspectre)
- ("poppler" ,poppler)))
+ ,@(if (target-hurd?)
+ '()
+ `(("poppler" ,poppler)))))
(propagated-inputs
`( ;; ("cogl" ,cogl)
;; ("directfb" ,directfb)
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 27/43] gnu: openssl-1.1: Fix shared build for the Hurd.
(address . 64711@debbugs.gnu.org)
0645e6a1b8e60469607b9b041de89203ab860a26.1689690897.git.janneke@gnu.org
* gnu/packages/tls.scm (openssl-1.1)[arguments]: When building for the Hurd,
add phase 'patch-configure'.
(openssl)[arguments]: And delete it again.
---
gnu/packages/tls.scm | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

Toggle diff (32 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index e8ed0d61a4..021c125983 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -470,6 +470,13 @@ (define-public openssl-1.1
#$(target->openssl-target
(%current-target-system))))))
#~())
+ #$@(if (target-hurd?)
+ #~((add-after 'unpack 'patch-configure
+ (lambda _
+ (substitute* "config"
+ (("case \"\\$GUESSOS\" in.*" all)
+ (string-append all "hurd-x86*) OUT=hurd-x86;;\n"))))))
+ #~())
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
;; It's not a shebang so patch-source-shebangs misses it.
@@ -585,7 +592,10 @@ (define-public openssl-3.0
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(setenv "HASHBANGPERL"
(search-input-file (or native-inputs inputs)
- "/bin/perl"))))))
+ "/bin/perl"))))
+ #$@(if (target-hurd?)
+ #~((delete 'patch-configure))
+ #~())))
((#:configure-flags flags #~'())
(if (target-hurd? (%current-system))
#~(append
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 28/43] gnu: ruby-2.6: Skip test on the Hurd.
(address . 64711@debbugs.gnu.org)
4d7dc7a5460436c781a102073ea2ad0072fd597b.1689690897.git.janneke@gnu.org
* gnu/packages/ruby.scm (ruby-2.7)[arguments]: When building natively on the
Hurd, add phase 'skip-tests'.
---
gnu/packages/ruby.scm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

Toggle diff (29 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b96daad0ff..e0dca646ac 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -33,6 +33,7 @@
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -195,7 +196,13 @@ (define-public ruby-2.7
"test/ruby/test_system.rb"
"tool/rbinstall.rb")
(("/bin/sh") (which "sh")))
- #t)))))
+ #t))
+ ,@(if (system-hurd?)
+ '((add-after 'unpack 'skip-tests
+ (lambda _
+ (delete-file "bootstraptest/test_io.rb")
+ (delete-file "test/ruby/test_io.rb"))))
+ '()))))
(native-inputs
(list autoconf))))
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 29/43] gnu: tcsh: Skip substitution tests on the Hurd.
(address . 64711@debbugs.gnu.org)
8ab5dcc2085075a27089a970420f0609fcc8de7f.1689690897.git.janneke@gnu.org
* gnu/packages/shells.scm (tcsh)[arguments]: When building natively on the
Hurd, add phase 'skip-tests'.
---
gnu/packages/shells.scm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

Toggle diff (29 lines)
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 0dae9ee954..aef22efd01 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2019 Meiyo Peng <meiyo.peng@gmail.com>
;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2019, 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
@@ -416,6 +416,13 @@ (define-public tcsh
(("CC_FOR_GETHOST=\"cc\"")
"CC_FOR_GETHOST=\"gcc\"")))))
#~())
+ #$@(if (system-hurd?)
+ #~((add-after 'unpack 'skip-tests
+ (lambda _
+ (substitute* "tests/testsuite.at"
+ (("m4_include\\(\\[subst.at\\]\\)" all)
+ (string-append "# " all))))))
+ #~())
(add-before 'check 'patch-test-scripts
(lambda _
;; Take care of pwd
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 30/43] gnu: swig: Skip tests when building for the Hurd.
(address . 64711@debbugs.gnu.org)
fcd0e7ece3a57bde5b65953532090a2d42ac681f.1689690897.git.janneke@gnu.org
* gnu/packages/swig.scm (swig)[arguments]: When building for the Hurd,
set #:tests? to #false.
---
gnu/packages/swig.scm | 3 +++
1 file changed, 3 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm
index 6e2fb8b4e9..42996fa812 100644
--- a/gnu/packages/swig.scm
+++ b/gnu/packages/swig.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,6 +26,7 @@ (define-module (gnu packages swig)
#:use-module (guix download)
#:use-module (guix licenses)
#:use-module (guix build-system gnu)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages boost)
#:use-module (gnu packages guile)
@@ -54,6 +56,7 @@ (define-public swig
perl))
;;("python" ,python-wrapper)
(inputs (list pcre))
+ (arguments (list #:tests? (not (target-hurd?))))
(home-page "https://swig.org/")
(synopsis
"Interface compiler that connects C/C++ code to higher-level languages")
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 32/43] gnu: cmake-bootstrap: Fix build for the Hurd.
(address . 64711@debbugs.gnu.org)
5a941cef6cc90582dd786f29d3a5e057921b65c0.1689690897.git.janneke@gnu.org
* gnu/packages/cmake.scm (%common-disabled-tests/hurd): New variable.
(cmake-bootstrap) [inputs]: Include libuv for the Hurd too.
[arguments]: Add %common-disabled-tests/hurd to #:make-flags for the Hurd.
Also add a 'patch-hurd' phase to fix the build.
---
gnu/packages/cmake.scm | 43 +++++++++++++++++++++++++++---------------
1 file changed, 28 insertions(+), 15 deletions(-)

Toggle diff (78 lines)
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 821b8808f7..9064ca3822 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
@@ -136,6 +136,19 @@ (define %common-disabled-tests
;; This test fails for unknown reason.
"RunCMake.file-GET_RUNTIME_DEPENDENCIES"))
+(define %common-disabled-tests/hurd
+ '("CTestTestTimeout"
+ "CTestTestRerunFailed"
+ "RunCMake.CompilerChange"
+ "RunCMake.ctest_test"
+ "RunCMake.file"
+ "RunCMake.BundleUtilities"
+ "RunCMake.configure_file"
+ "RunCMake.CTestTimeout"
+ "RunCMake.CTestTimeoutAfterMatch"
+ "RunCMake.CommandLine"
+ "RunCMake.CTestCommandLine"))
+
(define %preserved-third-party-files
'(;; 'Source/cm_getdate.c' includes archive_getdate.c wholesale, so it must
;; be available along with the required headers.
@@ -190,7 +203,10 @@ (define-public cmake-bootstrap
"CTestTestSubdir" ; This test fails to build 2 of the 3 tests.
;; This test fails when ARGS (below) is in use, see
;; <https://gitlab.kitware.com/cmake/cmake/issues/17165>.
- "CTestCoverageCollectGCOV")))
+ "CTestCoverageCollectGCOV"
+ #$@(if (target-hurd?)
+ %common-disabled-tests/hurd
+ #~()))))
(list
(string-append
;; These arguments apply for the tests only.
@@ -210,20 +226,17 @@ (define-public cmake-bootstrap
;; CMake uses its own configure script.
(replace 'configure
(lambda* (#:key (configure-flags '()) #:allow-other-keys)
- (apply invoke "./configure" configure-flags))))))
+ (apply invoke "./configure" configure-flags)))
+ #$@(if (target-hurd?)
+ #~((add-after 'unpack 'patch-hurd
+ (lambda _
+ ;; Version 3.25.0 has a similar fix.
+ (substitute* "Utilities/cmlibuv/src/unix/udp.c"
+ (("!defined\\(__QNX__\\)")
+ "!defined(__GNU__)")))))
+ #~()))))
(inputs
- (append
- (if (target-hurd?)
- '()
- (list libuv)) ;not supported on the Hurd
- (list bzip2
- curl
- expat
- file
- jsoncpp
- libarchive
- rhash
- zlib)))
+ (list libuv bzip2 curl expat file jsoncpp libarchive rhash zlib))
(native-search-paths
(list (search-path-specification
(variable "CMAKE_PREFIX_PATH")
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 31/43] gnu: zstd: Skip tests when building for the Hurd.
(address . 64711@debbugs.gnu.org)
b57fb3688e1486add7f61e0bcfe38f3818aa5914.1689690897.git.janneke@gnu.org
* gnu/packages/compression.scm(zstd)[arguments]: When building for the Hurd,
set #:tests? to #false.
:
---
gnu/packages/compression.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 09ac57668d..e4d3293f9d 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -24,7 +24,7 @@
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2019, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020, 2021 Lars-Dominik Braun <lars@6xq.net>
@@ -1660,7 +1660,8 @@ (define-public zstd
"HAVE_LZMA=0"
;; Not currently detected, but be explicit & avoid surprises later.
"HAVE_LZ4=0"
- "HAVE_ZLIB=0")))
+ "HAVE_ZLIB=0")
+ #:tests? ,(not (target-hurd?))))
(home-page "https://facebook.github.io/zstd/")
(synopsis "Zstandard real-time compression algorithm")
(description "Zstandard (@command{zstd}) is a lossless compression algorithm
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 33/43] gnu: cmake-minimal: Skip tests on the Hurd.
(address . 64711@debbugs.gnu.org)
93356f3c2b804e7e6483df30446c4448c9133ac1.1689690897.git.janneke@gnu.org
* gnu/packages/cmake.scm (cmake-minimal)[arguments]: When building natively on
the Hurd, add %common-disabled-tests/hurd to skipped tests in phase 'check'.
---
gnu/packages/cmake.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 9064ca3822..bc14286070 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -324,7 +324,10 @@ (define-public cmake-minimal
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
(let ((skipped-tests (list #$@%common-disabled-tests
;; This test requires the bundled libuv.
- "BootstrapTest")))
+ "BootstrapTest"
+ #$@(if (system-hurd?)
+ %common-disabled-tests/hurd
+ #~()))))
(if tests?
(begin
(invoke "ctest" "-j" (if parallel-tests?
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 34/43] gnu: doxygen: Fix build for the Hurd.
(address . 64711@debbugs.gnu.org)
4afd686f160440b3af9d16481c9a7e3d3e3a241f.1689690897.git.janneke@gnu.org
* gnu/packages/patches/doxygen-hurd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/documentation.scm (doxygen)[arguments]: When building for the
Hurd, add new phase 'apply-patch' and use it.
---
gnu/local.mk | 1 +
gnu/packages/documentation.scm | 12 +++++++++-
gnu/packages/patches/doxygen-hurd.patch | 30 +++++++++++++++++++++++++
3 files changed, 42 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/doxygen-hurd.patch

Toggle diff (87 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 0d0f8c1937..84c4167723 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1066,6 +1066,7 @@ dist_patch_DATA = \
%D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/dovecot-opensslv3.patch \
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
+ %D%/packages/patches/doxygen-hurd.patch \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.patch \
%D%/packages/patches/dune-common-skip-failing-tests.patch \
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index ec70ca4d8f..5d455431d3 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Maxim Cournoyer <maxim.counoyer@gmail.com>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,6 +41,7 @@ (define-module (gnu packages documentation)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix deprecation)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
@@ -224,7 +226,15 @@ (define-public doxygen
(let ((/bin/sh (search-input-file inputs "/bin/sh")))
(substitute* "src/portable.cpp"
(("/bin/sh")
- /bin/sh))))))))
+ /bin/sh)))))
+ #$@(if (target-hurd?)
+ #~((add-after 'unpack 'apply-patch
+ (lambda _
+ (let ((patch-file
+ #$(local-file
+ (search-patch "doxygen-hurd.patch"))))
+ (invoke "patch" "--force" "-p1" "-i" patch-file)))))
+ #~()))))
(synopsis "Generate documentation from annotated sources")
(description "Doxygen is the de facto standard tool for generating
documentation from annotated C++ sources, but it also supports other popular
diff --git a/gnu/packages/patches/doxygen-hurd.patch b/gnu/packages/patches/doxygen-hurd.patch
new file mode 100644
index 0000000000..a40923184b
--- /dev/null
+++ b/gnu/packages/patches/doxygen-hurd.patch
@@ -0,0 +1,30 @@
+Upstream status: Adapted from upstream.
+
+From d3d968e5835f449d7ea715f45160db81ea906303 Mon Sep 17 00:00:00 2001
+From: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Tue, 16 Aug 2022 20:29:54 +0200
+Subject: [PATCH] Fix build on GNU/Hurd
+
+There is no path length limitation there, even via pathconf. But glibc
+provides a getcwd function that allocates the buffer dynamically so we can
+just leverage that.
+---
+ include/ghc/filesystem.hpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/filesystem/filesystem.hpp.orig 2022-08-11 22:14:32.000000000 +0200
++++ b/filesystem/filesystem.hpp 2023-06-13 07:26:25.310000000 +0200
+@@ -4081,6 +4081,13 @@
+ return path();
+ }
+ return path(std::wstring(buffer.get()), path::native_format);
++#elif defined(__GLIBC__)
++ std::unique_ptr<char, decltype(&std::free)> buffer { ::getcwd(NULL, 0), std::free };
++ if (buffer == nullptr) {
++ ec = detail::make_system_error();
++ return path();
++ }
++ return path(buffer.get());
+ #else
+ size_t pathlen = static_cast<size_t>(std::max(int(::pathconf(".", _PC_PATH_MAX)), int(PATH_MAX)));
+ std::unique_ptr<char[]> buffer(new char[pathlen + 1]);
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 35/43] gnu: graphite2: Skip test on the Hurd.
(address . 64711@debbugs.gnu.org)
ca5defa90daa521c1a455b1ce3c8b36be7c67417.1689690897.git.janneke@gnu.org
* gnu/packages/fontutils.scm (graphite2)[arguments]: When building natively on
the Hurd, replace phase 'check' to set make-flags to skip "awamicmp3" test.
---
gnu/packages/fontutils.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index e5170b5ae3..64b15fbf05 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2022 Felipe Balbi <balbi@kernel.org>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1369,6 +1370,25 @@ (define-public graphite2
(list python python-fonttools-minimal))
(inputs
(list freetype))
+ (arguments
+ (if (system-hurd?)
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ ;; cmake-build-system ignores #:make-flags for make check
+ (lambda* (#:key test-target tests? parallel-tests?
+ #:allow-other-keys)
+ (if tests?
+ (let ((jobs (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")))
+ (invoke "make"
+ (string-append
+ "ARGS=-j " jobs " --exclude-regex ^awamicmp3$")
+ test-target))
+ (format #t "test suite not run~%"))))))
+ '()))
(synopsis "Reimplementation of the SIL Graphite text processing engine")
(description
"Graphite2 is a reimplementation of the SIL Graphite text processing
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 36/43] gnu: guile-git: Skip http proxy test on the Hurd.
(address . 64711@debbugs.gnu.org)
b2204774a82b7cb4695e2aaf9bf7582ebca8a0b8.1689690897.git.janneke@gnu.org
* gnu/packages/guile.scm (guile-git)[arguments]: When building natively on the
Hurd, add phase 'skip-tests/hurd'.
---
gnu/packages/guile.scm | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

Toggle diff (28 lines)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index ed20c1dfbc..e9bed75fb1 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -838,7 +838,20 @@ (define-public guile-git
(lambda _
(substitute* "Makefile.am"
((".*tests/blob\\.scm.*") ""))))))
- '())))
+ '())
+ ,@(if (system-hurd?)
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'skip-tests/hurd
+ (lambda _
+ (substitute* "tests/proxy.scm"
+ (("\\(test-begin.*" all)
+ (string-append
+ all
+ "(when (string-ci= \"GNU\" (vector-ref (uname) 0))\n"
+ " (test-skip 1))\n")))))))
+ '())))
(native-inputs
(list pkg-config autoconf automake texinfo guile-3.0 guile-bytestructures))
(inputs
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 37/43] gnu: glib: Disable tests for the Hurd.
(address . 64711@debbugs.gnu.org)
ac66fb4e8ea35e1965bc2fab1e0673fd438f2294.1689690897.git.janneke@gnu.org
* gnu/packages/glib.scm (glib)[arguments]: When building for the Hurd,
set #:tests? to #false.
---
gnu/packages/glib.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index e988e8dc87..bcbc1f22b1 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Arthur Margerit <ruhtra.mar@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
@@ -241,6 +241,7 @@ (define glib
"debug"))
(arguments
(list
+ #:tests? (not (target-hurd?))
#:disallowed-references
(cons tzdata-for-tests
;; Verify glib-mkenums, gtester, ... use the cross-compiled
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 38/43] gnu: ghostscript: Fix build for the Hurd.
(address . 64711@debbugs.gnu.org)
d56ec2c9eaff6620d299c23d86e4b351129146b0.1689690897.git.janneke@gnu.org
* gnu/packages/patches/ghostscript-leptonica-hurd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/ghostscript.scm (ghostscript)[arguments]: When building for the
Hurd, add phase 'patch-leptonica' and use it.
---
gnu/local.mk | 3 +-
gnu/packages/ghostscript.scm | 10 +++
.../patches/ghostscript-leptonica-hurd.patch | 78 +++++++++++++++++++
3 files changed, 89 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/ghostscript-leptonica-hurd.patch

Toggle diff (121 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 84c4167723..45b1c1356b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1238,8 +1238,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-bloomfilter-ghc9.2.patch \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \
- %D%/packages/patches/ghostscript-CVE-2023-36664.patch \
- %D%/packages/patches/ghostscript-CVE-2023-36664-fixup.patch \
+ %D%/packages/patches/ghostscript-leptonica-hurd.patch \
%D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 94807fdd94..2d7f07fb40 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -201,6 +201,16 @@ (define-public ghostscript
'()))
#:phases
#~(modify-phases %standard-phases
+ #$@(if (target-hurd?)
+ #~((add-after 'unpack 'patch-leptonica
+ (lambda _
+ (let ((patch-file
+ #$(local-file
+ (search-patch
+ "ghostscript-leptonica-hurd.patch"))))
+ (with-directory-excursion "leptonica"
+ (invoke "patch" "--force" "-p1" "-i" patch-file))))))
+ #~())
(add-before 'configure 'create-output-directory
(lambda _
;; The configure script refuses to function if the directory
diff --git a/gnu/packages/patches/ghostscript-leptonica-hurd.patch b/gnu/packages/patches/ghostscript-leptonica-hurd.patch
new file mode 100644
index 0000000000..124365b3e6
--- /dev/null
+++ b/gnu/packages/patches/ghostscript-leptonica-hurd.patch
@@ -0,0 +1,78 @@
+Upstream status: This patch was taken from leptonica upstream.
+
+Backported to ghostscripts bundled leptonica.
+
+From f04da7c816feb1d5f689c34f3d0e7e3621edf1f5 Mon Sep 17 00:00:00 2001
+From: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Wed, 1 Feb 2023 19:35:43 +0100
+Subject: [PATCH] Fix GNU/Hurd build
+
+There is no PATH_MAX limitation on GNU/Hurd, and realpath() can be
+safely be used with its second parameter set to NULL (as required by
+posix since its version 2001).
+---
+ src/sarray1.c | 29 +++++++++++++++++++++++------
+ 1 file changed, 23 insertions(+), 6 deletions(-)
+
+--- a/src/sarray1.c 2023-06-13 12:31:13.393672916 +0200
++++ a/src/sarray1.c 2023-06-13 12:34:13.574237149 +0200
+@@ -1953,7 +1953,11 @@
+ SARRAY *
+ getFilenamesInDirectory(const char *dirname)
+ {
++#if _POSIX_VERSION >= 200112 || defined(__GLIBC__)
++char *dir;
++#else
+ char dir[PATH_MAX + 1];
++#endif
+ char *realdir, *stat_path, *ignore;
+ size_t size;
+ SARRAY *safiles;
+@@ -1976,17 +1980,28 @@
+ * If the file or directory exists, realpath returns its path;
+ else it returns NULL.
+ * If the second arg to realpath is passed in, the canonical path
+- is returned there. Use a buffer of sufficient size. If the
+- second arg is NULL, the path is malloc'd and returned if the
+- file or directory exists.
+- We pass in a buffer for the second arg, and check that the canonical
+- directory path was made. The existence of the directory is checked
+- later, after its actual path is returned by genPathname(). */
++ is returned there. Use a buffer of sufficient size.
++ We pass in a buffer for the second arg, and check that the
++ canonical directory path was made. The existence of the
++ directory is checked later, after its actual path is returned by
++ genPathname().
++ With GNU libc or Posix 2001, if the second arg is NULL, the path
++ is malloc'd and returned if the file or directory exists.
++ */
++#if _POSIX_VERSION >= 200112 || defined(__GLIBC__)
++ dir = realpath(dirname, NULL);
++ if (dir == NULL)
++ return (SARRAY *)ERROR_PTR("dir not made", __func__, NULL);
++#else
+ dir[0] = '\0'; /* init empty in case realpath() fails to write it */
+ ignore = realpath(dirname, dir);
+ if (dir[0] == '\0')
+ return (SARRAY *)ERROR_PTR("dir not made", procName, NULL);
++#endif
+ realdir = genPathname(dir, NULL);
++#if _POSIX_VERSION >= 200112 || defined(__GLIBC__)
++ LEPT_FREE(dir);
++#endif
+ if ((pdir = opendir(realdir)) == NULL) {
+ LEPT_FREE(realdir);
+ return (SARRAY *)ERROR_PTR("pdir not opened", procName, NULL);
+@@ -1998,10 +2013,12 @@
+ stat_ret = fstatat(dfd, pdirentry->d_name, &st, 0);
+ #else
+ size = strlen(realdir) + strlen(pdirentry->d_name) + 2;
++#if _POSIX_VERSION < 200112 && !defined(__GLIBC__)
+ if (size > PATH_MAX) {
+ L_ERROR("size = %zu too large; skipping\n", procName, size);
+ continue;
+ }
++#endif
+ stat_path = (char *)LEPT_CALLOC(size, 1);
+ snprintf(stat_path, size, "%s/%s", realdir, pdirentry->d_name);
+ stat_ret = stat(stat_path, &st);
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 39/43] gnu: harfbuzz: Support build for the Hurd.
(address . 64711@debbugs.gnu.org)
9fc9a0ae11de8c4484558c0cbac047330ca909f6.1689690897.git.janneke@gnu.org
* gnu/packages/gtk.scm (harfbuzz)[native-inputs]: Do not include
gobject-introspection when building for the Hurd.
---
gnu/packages/gtk.scm | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index eb69a88221..853696c7f5 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -276,11 +276,13 @@ (define-public harfbuzz
;; There are all in the Requires or Requires.private field of '.pc'.
(list glib graphite2 icu4c))
(native-inputs
- (list `(,glib "bin") ;for glib-mkenums
- gobject-introspection
- pkg-config
- python-wrapper
- which))
+ `((,glib "bin") ;for glib-mkenums
+ ,@(if (target-hurd?)
+ '()
+ (list gobject-introspection))
+ ,pkg-config
+ ,python-wrapper
+ ,which))
(arguments
(list #:configure-flags
#~(list "--with-graphite2"
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 40/43] gnu: pango: Support build for the Hurd.
(address . 64711@debbugs.gnu.org)
da11d1165f646f350af8e8b4fc614f374dc02f59.1689690897.git.janneke@gnu.org
* gnu/packages/gtk.scm (pango)[native-inputs]: Do not include
gobject-introspection when building for the Hurd.
---
gnu/packages/gtk.scm | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)

Toggle diff (27 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 853696c7f5..15dea2852b 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -401,12 +401,14 @@ (define-public pango
(list bash-minimal
zlib))
(native-inputs
- (list `(,glib "bin") ;glib-mkenums, etc.
- gobject-introspection ;g-ir-compiler, etc.
- help2man
- perl
- pkg-config
- python-wrapper))
+ `((,glib "bin") ;glib-mkenums, etc.
+ ,@(if (target-hurd?)
+ '()
+ (list gobject-introspection)) ;g-ir-compiler, etc.
+ ,help2man
+ ,perl
+ ,pkg-config
+ ,python-wrapper))
(synopsis "Text and font handling library")
(description "Pango is a library for laying out and rendering of text, with
an emphasis on internationalization. Pango can be used anywhere that text
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 41/43] gnu: fontforge: Support build on the Hurd.
(address . 64711@debbugs.gnu.org)
9e077daf4be3ff7e412008ab06ae801bbd4c030c.1689690897.git.janneke@gnu.org
* 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(-)
create mode 100644 gnu/packages/patches/fontforge-hurd.patch

Toggle diff (202 lines)
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 @@ (define-public fontforge
("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
+
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 42/43] gnu: po4a: Skip failing test on the Hurd.
(address . 64711@debbugs.gnu.org)
7077d91e7b9a284c85a4677a059a767095509639.1689690897.git.janneke@gnu.org
* gnu/packages/gettext.scm (po4a)[arguments]: When building natively on the
Hurd, add phase 'skip-tests/hurd'.
---
gnu/packages/gettext.scm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 0cb01154d3..99a4d4edbc 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -279,7 +279,14 @@ (define-public po4a
(add-before 'check 'disable-failing-tests
(lambda _
;; FIXME: fails despite of importing SGMLS
- (delete-file "t/fmt-sgml.t"))))))
+ (delete-file "t/fmt-sgml.t")))
+ #$@(if (system-hurd?)
+ #~((add-after 'unpack 'skip-tests/hurd
+ (lambda _
+ (delete-file "t/cfg-multi.t")
+ (delete-file "t/cfg-single.t")
+ (delete-file "t/cfg-split.t"))))
+ #~()))))
(native-inputs
(list gettext-minimal
perl-module-build
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:40
[PATCH 43/43] gnu: guile-2.0: Skip failing tests on the Hurd.
(address . 64711@debbugs.gnu.org)
0e04074adec5abd0d5c621c7d2853326dc9f2e56.1689690897.git.janneke@gnu.org
* gnu/packages/guile.scm (guile-2.0)[arguments]: When building natively on the
Hurd, add stage 'disable-threads.tests'...
(guile-2.2): ...and when building natively on the Hurd, delete it again.
---
gnu/packages/guile.scm | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index e9bed75fb1..9aefead3b3 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -212,8 +212,13 @@ (define-public guile-2.0
(rename-file "test-suite/tests/srfi-18.test" "srfi-18.test")
;; failed to remove 't-guild-compile-7215.go.tdL7yC
(substitute* "test-suite/standalone/Makefile.in"
- (("test-guild-compile ") ""))
- #t)))
+ (("test-guild-compile ") "")))))
+ '())
+ ,@(if (system-hurd?)
+ '((add-after 'unpack 'disable-threads.tests
+ (lambda _
+ ;; Many tests hang, esp. (join-thread ..), also others.
+ (rename-file "test-suite/tests/threads.test" "threads.test"))))
'())
(add-before 'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
@@ -286,7 +291,12 @@ (define-public guile-2.2
(if (target-x86-32?) ;<https://issues.guix.gnu.org/49368>
`(append '("--disable-static")
'("CFLAGS=-g -O2 -fexcess-precision=standard"))
- flags))))
+ flags))
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ #$@(if (system-hurd?)
+ #~((delete 'disable-threads.tests))
+ '())))))
(properties '((timeout . 72000) ;20 hours
(max-silent-time . 36000))) ;10 hours (needed on ARM
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 16:48
Re: [bug#64711] [PATCH 00/43] Fix builds and skip failing tests for the Hurd.
(address . 64711@debbugs.gnu.org)
87sf9le0nl.fsf@gnu.org
Janneke Nieuwenhuizen writes:

The 00/45 should really be 00/43:

Toggle quote (1 lines)
> Janneke Nieuwenhuizen (43):
[..]

as I decided to skip two non-build fix/test-skip patches for now.

Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
L
L
Liliana Marie Prikler wrote on 18 Jul 2023 17:54
Re: [bug#64711] [PATCH 21/43] gnu: emacs: Depend on libc-for-target.
(name . Andrew Tropin)(address . andrew@trop.in)
4744b7dff1f50f2f800a46b7d272af2f373b6490.camel@gmail.com
Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
Nieuwenhuizen:
Toggle quote (31 lines)
> * gnu/packages/emacs.scm (emacs)[inputs]: Change glibc to (libc-for-
> target).
> ---
>  gnu/packages/emacs.scm | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 437564f6f0..d3689c2474 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -12,7 +12,7 @@
>  ;;; Copyright © 2017, 2019, 2020 Maxim Cournoyer
> <maxim.cournoyer@gmail.com>
>  ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
>  ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
> -;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
> +;;; Copyright © 2017, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
>  ;;; Copyright © 2018, 2023 Efraim Flashner <efraim@flashner.co.il>
>  ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
>  ;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice
> <me@tobias.gr>
> @@ -310,7 +310,7 @@ (define-public emacs
>  
>             ;; For native compilation
>             binutils
> -           glibc
> +           (libc-for-target)
>             libgccjit
>  
>             ;; Required for "core" functionality, such as dired and
> compression.
LGTM
L
L
Liliana Marie Prikler wrote on 18 Jul 2023 17:56
Re: [bug#64711] [PATCH 37/43] gnu: glib: Disable tests for the Hurd.
99d408f562d64c2b3744463dbdbe6c1e5bff2c69.camel@gmail.com
Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
Nieuwenhuizen:
Toggle quote (29 lines)
> * gnu/packages/glib.scm (glib)[arguments]: When building for the
> Hurd,
> set #:tests? to #false.
> ---
>  gnu/packages/glib.scm | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
> index e988e8dc87..bcbc1f22b1 100644
> --- a/gnu/packages/glib.scm
> +++ b/gnu/packages/glib.scm
> @@ -14,7 +14,7 @@
>  ;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
>  ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
>  ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
> -;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
> +;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
>  ;;; Copyright © 2020 Arthur Margerit <ruhtra.mar@gmail.com>
>  ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
>  ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
> @@ -241,6 +241,7 @@ (define glib
>                 "debug"))
>      (arguments
>       (list
> +      #:tests? (not (target-hurd?))
>        #:disallowed-references
>        (cons tzdata-for-tests
>              ;; Verify glib-mkenums, gtester, ... use the cross-
> compiled
Instead of disabling tests altogether, can we just disable those that
fail on the Hurd?
L
L
Liliana Marie Prikler wrote on 18 Jul 2023 17:57
Re: [bug#64711] [PATCH 26/43] gnu: cairo: Support building for the Hurd.
5b9d5c38a26b504ca4cb4f87a778149fba0f0bf7.camel@gmail.com
Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
Nieuwenhuizen:
Toggle quote (8 lines)
> Gobject-introspection and libdrm does not build for the Hurd. 
> Poppler depends
> on nss, which does not build for the Hurd.
>
> * gnu/packages/gtk.scm (cairo)[native-inputs]: When building for the
> Hurd, do
> not include gobject-introspection.
> [inputs]: Likewise, do not include libdrm, poppler.
Could we provide a minimal gobject-introspection that builds for the
hurd?

Cheers
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 18:32
Re: [bug#64711] [PATCH 37/43] gnu: glib: Disable tests for the Hurd.
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
87lefddvtm.fsf@gnu.org
Liliana Marie Prikler writes:

Toggle quote (6 lines)
> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
> Nieuwenhuizen:
>> * gnu/packages/glib.scm (glib)[arguments]: When building for the
>> Hurd,
>> set #:tests? to #false.

[..]
Toggle quote (7 lines)
>> +      #:tests? (not (target-hurd?))

>> compiled

> Instead of disabling tests altogether, can we just disable those that
> fail on the Hurd?

We probably can, and I have tried to do so in most cases. However,
identifying those tests can be quite time consuming. I'm not sure how
many tests failed here, and note that some tests will hang or crash the
Hurd, so if we decide to do this, I would appreciate some help :-)

Ludo on the other hand, argued against having more than ~20 (IIRC) test
exceptions and using #:tests? #f instead.

My idea was to get guix to build natively, and guix pull to work. Once
we get those to work, we can possibly look forward to more contributors
to this.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 18:33
Re: [bug#64711] [PATCH 26/43] gnu: cairo: Support building for the Hurd.
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
87h6q1dvrf.fsf@gnu.org
Liliana Marie Prikler writes:

Toggle quote (14 lines)
> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
> Nieuwenhuizen:
>> Gobject-introspection and libdrm does not build for the Hurd. 
>> Poppler depends
>> on nss, which does not build for the Hurd.
>>
>> * gnu/packages/gtk.scm (cairo)[native-inputs]: When building for the
>> Hurd, do
>> not include gobject-introspection.
>> [inputs]: Likewise, do not include libdrm, poppler.

> Could we provide a minimal gobject-introspection that builds for the
> hurd?

That would be nice. Note that Debian doesn't support
gobject-introspection on the Hurd, unless I'm mistaken.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 18:39
Re: [bug#64711] [PATCH 21/43] gnu: emacs: Depend on libc-for-target.
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
87cz0pdvhm.fsf@gnu.org
Liliana Marie Prikler writes:

Toggle quote (5 lines)
> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
> Nieuwenhuizen:
>> * gnu/packages/emacs.scm (emacs)[inputs]: Change glibc to (libc-for-
>> target).

[..]

Toggle quote (13 lines)
>> @@ -310,7 +310,7 @@ (define-public emacs
>>  
>>             ;; For native compilation
>>             binutils
>> -           glibc
>> +           (libc-for-target)
>>             libgccjit
>>  
>>             ;; Required for "core" functionality, such as dired and
>> compression.

> LGTM

Thanks! Pushed to master as 772eaa69f31457aa19ca4dc4ce755c791d722054.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
L
L
Ludovic Courtès wrote on 18 Jul 2023 19:53
Re: bug#64711: [PATCH 00/45] Fix builds and skip failing tests for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)(address . 64711@debbugs.gnu.org)
87pm4phzsu.fsf_-_@gnu.org
Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (3 lines)
> * gnu/packages/tls.scm (openssl-3.0)[arguments]: When building on the Hurd,
> add "hurd-x86" to #:configure-flags.

[...]

Toggle quote (3 lines)
> + ((#:configure-flags flags #~'())
> + (if (target-hurd? (%current-system))

Should it be (target-hurd?) with no arguments, so it also affects
cross-compilation? If not, maybe add “;native builds” or similar as a
margin comment to make it clear that it’s on purpose.

Toggle quote (4 lines)
> + #~(append
> + #$flags
> + '("hurd-x86"))

On a single line please. :-)

Ludo’.
L
L
Ludovic Courtès wrote on 18 Jul 2023 19:57
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)(address . 64711@debbugs.gnu.org)
87ilahhzkv.fsf_-_@gnu.org
Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (3 lines)
> * gnu/packages/multiprecision.scm (mpfr)[arguments]: When building natively on
> the Hurd, add 'skip-tests' phase to skip "tsprintf".

[...]

Toggle quote (2 lines)
> + #:phases (if (system-hurd?)

A side note on this, which predates this patch series: there no other
‘system-’ predicate; I think it may have been clearer to use
(target-hurd?) or (and (not (%current-target-system)) (target-hurd?)) or
similar, as is done for other platforms.

Toggle quote (3 lines)
> + (substitute*
> + "tests/tsprintf.c"

On a single line please. :-)

(I wonder why it’s failing; is it a problem of precision on 32-bit
platforms, or just on i586?)

Ludo’.
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 20:04
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 64711@debbugs.gnu.org)
878rbddrjr.fsf@gnu.org
Ludovic Courtès writes:

Toggle quote (13 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> * gnu/packages/tls.scm (openssl-3.0)[arguments]: When building on the Hurd,
>> add "hurd-x86" to #:configure-flags.
>
> [...]
>
>> + ((#:configure-flags flags #~'())
>> + (if (target-hurd? (%current-system))
>
> Should it be (target-hurd?) with no arguments, so it also affects
> cross-compilation?

No, but I'll change it to "(system-hurd?)" (chronologically, I only
decided to add system-hurd two weeks later).

Toggle quote (3 lines)
> If not, maybe add “;native builds” or similar as a
> margin comment to make it clear that it’s on purpose.

Using system-hurd? is probably indicative enough, but because it *must*
not be used when cross building, I'll add a comment.

Toggle quote (7 lines)
>
>> + #~(append
>> + #$flags
>> + '("hurd-x86"))
>
> On a single line please. :-)

Changed to

(if (system-hurd?)
#~(append #$flags '("hurd-x86")) ;must not be used when
;cross-compiling!
flags))))

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
M
M
Maxim Cournoyer wrote on 18 Jul 2023 22:04
Re: [bug#64711] [PATCH 40/43] gnu: pango: Support build for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87sf9lt28s.fsf@gmail.com
Hi Janneke,

Thanks for your efforts on this.

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (29 lines)
> * gnu/packages/gtk.scm (pango)[native-inputs]: Do not include
> gobject-introspection when building for the Hurd.
> ---
> gnu/packages/gtk.scm | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
> index 853696c7f5..15dea2852b 100644
> --- a/gnu/packages/gtk.scm
> +++ b/gnu/packages/gtk.scm
> @@ -401,12 +401,14 @@ (define-public pango
> (list bash-minimal
> zlib))
> (native-inputs
> - (list `(,glib "bin") ;glib-mkenums, etc.
> - gobject-introspection ;g-ir-compiler, etc.
> - help2man
> - perl
> - pkg-config
> - python-wrapper))
> + `((,glib "bin") ;glib-mkenums, etc.
> + ,@(if (target-hurd?)
> + '()
> + (list gobject-introspection)) ;g-ir-compiler, etc.
> + ,help2man
> + ,perl
> + ,pkg-config
> + ,python-wrapper))

Stylistically, I think it'd be better to use append (and 'if') here than
quasiquotes (to avoid having to unquote all inputs).

Otherwise it LGTM.

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 18 Jul 2023 22:05
Re: [bug#64711] [PATCH 37/43] gnu: glib: Disable tests for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87o7k9t27a.fsf@gmail.com
Hello,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (28 lines)
> Liliana Marie Prikler writes:
>
>> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
>> Nieuwenhuizen:
>>> * gnu/packages/glib.scm (glib)[arguments]: When building for the
>>> Hurd,
>>> set #:tests? to #false.
>
> [..]
>>> +      #:tests? (not (target-hurd?))
>
>>> compiled
>
>> Instead of disabling tests altogether, can we just disable those that
>> fail on the Hurd?
>
> We probably can, and I have tried to do so in most cases. However,
> identifying those tests can be quite time consuming. I'm not sure how
> many tests failed here, and note that some tests will hang or crash the
> Hurd, so if we decide to do this, I would appreciate some help :-)
>
> Ludo on the other hand, argued against having more than ~20 (IIRC) test
> exceptions and using #:tests? #f instead.
>
> My idea was to get guix to build natively, and guix pull to work. Once
> we get those to work, we can possibly look forward to more contributors
> to this.

I agree with Liliana that it's nicer to disable just these tests that
fail, but in light of what you wrote, your approach seems reasonable.

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 18 Jul 2023 22:06
Re: [bug#64711] [PATCH 26/43] gnu: cairo: Support building for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87jzuxt267.fsf@gmail.com
Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (19 lines)
> Liliana Marie Prikler writes:
>
>> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
>> Nieuwenhuizen:
>>> Gobject-introspection and libdrm does not build for the Hurd. 
>>> Poppler depends
>>> on nss, which does not build for the Hurd.
>>>
>>> * gnu/packages/gtk.scm (cairo)[native-inputs]: When building for the
>>> Hurd, do
>>> not include gobject-introspection.
>>> [inputs]: Likewise, do not include libdrm, poppler.
>
>> Could we provide a minimal gobject-introspection that builds for the
>> hurd?
>
> That would be nice. Note that Debian doesn't support
> gobject-introspection on the Hurd, unless I'm mistaken.

I wonder what prevents gobject-introspection from running on the Hurd?

--
Thanks,
Maxim
L
L
Ludovic Courtès wrote on 18 Jul 2023 22:13
Re: bug#64711: [PATCH 00/45] Fix builds and skip failing tests for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)(address . 64711@debbugs.gnu.org)
87y1jdgeqf.fsf_-_@gnu.org
Hello!

Great work!

A general comment: these changes to test suites were made based on
feedback from non-chrooted builds, whose outcome is influenced by system
state such as running translators. Until we have chroot builds, I think
we should be cautious and not invest too much time.

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (6 lines)
> * gnu/packages/base.scm (coreutils)[arguments]: When building natively on the
> Hurd, remove "test/df/unreadable.sh" and "test-perror2" from #:make-flags's
> XFAIL_TESTS as they now pass. Move failing script tests from XFAIL_TESTS to
> 'remove-tests' phase. In phase 'remove-tests' rewrite substitute* to skip
> tests instead of removing them. Add hanging and failing tests.

[...]

Toggle quote (29 lines)
> + '((substitute*
> + ;; These tests hang
> + '("tests/cp/sparse-to-pipe.sh"
> + "tests/split/fail.sh"
> + ;; These tests error
> + "tests/dd/nocache.sh"
> + ;; These tests fail
> + "tests/cp/sparse.sh"
> + "tests/cp/special-f.sh"
> + "tests/dd/bytes.sh"
> + "tests/dd/stats.sh"
> + "tests/ls/dangle.sh"
> + "tests/ls/follow-slink.sh"
> + "tests/ls/hyperlink.sh"
> + "tests/ls/infloop.sh"
> + "tests/ls/inode.sh"
> + "tests/ls/selinux-segfault.sh"
> + "tests/misc/env-S.pl"
> + "tests/misc/factor-parallel.sh"
> + "tests/misc/ls-misc.pl"
> + "tests/misc/nice.sh"
> + "tests/misc/pwd-long.sh"
> + "tests/misc/shred-passes.sh"
> + "tests/misc/stat-slash.sh"
> + "tests/rm/fail-eperm.xpl"
> + "tests/split/filter.sh")
> + (("^#!.*" all)
> + (string-append all "exit 77;\n")))

For example, I wonder how reliable this long list is. Some of these
tests may fiddle with /proc, /etc/fstab, and other things not under
control, which means some might suddenly pass for some reason. So I
wonder if we should just #:tests? #f in this case.

Thoughts?

(With other, higher-level test suites with a couple of failures, it’s
probably still a good idea to skip individual tests instead of the whole
test suite.)

Ludo’.
M
M
Maxim Cournoyer wrote on 18 Jul 2023 22:13
Re: [bug#64711] [PATCH 39/43] gnu: harfbuzz: Support build for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87fs5lt1u6.fsf@gmail.com
Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (27 lines)
> * gnu/packages/gtk.scm (harfbuzz)[native-inputs]: Do not include
> gobject-introspection when building for the Hurd.
> ---
> gnu/packages/gtk.scm | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
> index eb69a88221..853696c7f5 100644
> --- a/gnu/packages/gtk.scm
> +++ b/gnu/packages/gtk.scm
> @@ -276,11 +276,13 @@ (define-public harfbuzz
> ;; There are all in the Requires or Requires.private field of '.pc'.
> (list glib graphite2 icu4c))
> (native-inputs
> - (list `(,glib "bin") ;for glib-mkenums
> - gobject-introspection
> - pkg-config
> - python-wrapper
> - which))
> + `((,glib "bin") ;for glib-mkenums
> + ,@(if (target-hurd?)
> + '()
> + (list gobject-introspection))
> + ,pkg-config
> + ,python-wrapper
> + ,which))

Here also (basically when it's touching label-free inputs), I'd use
append with a conditional to avoid the unquote noise.

Otherwise LGTM.

--
Thanks,
Maxim
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 22:15
Re: [bug#64711] [PATCH 40/43] gnu: pango: Support build for the Hurd.
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
874jm1dliy.fsf@gnu.org
Maxim Cournoyer writes:

Hi Maxim,

Toggle quote (2 lines)
> Thanks for your efforts on this.

Sure. It's been fun, but a lot of work (world rebuilds) indeed. Things
will get a lot better once we have CI for these native Hurd builds.

Toggle quote (34 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
>> * gnu/packages/gtk.scm (pango)[native-inputs]: Do not include
>> gobject-introspection when building for the Hurd.
>> ---
>> gnu/packages/gtk.scm | 14 ++++++++------
>> 1 file changed, 8 insertions(+), 6 deletions(-)
>>
>> diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
>> index 853696c7f5..15dea2852b 100644
>> --- a/gnu/packages/gtk.scm
>> +++ b/gnu/packages/gtk.scm
>> @@ -401,12 +401,14 @@ (define-public pango
>> (list bash-minimal
>> zlib))
>> (native-inputs
>> - (list `(,glib "bin") ;glib-mkenums, etc.
>> - gobject-introspection ;g-ir-compiler, etc.
>> - help2man
>> - perl
>> - pkg-config
>> - python-wrapper))
>> + `((,glib "bin") ;glib-mkenums, etc.
>> + ,@(if (target-hurd?)
>> + '()
>> + (list gobject-introspection)) ;g-ir-compiler, etc.
>> + ,help2man
>> + ,perl
>> + ,pkg-config
>> + ,python-wrapper))
>
> Stylistically, I think it'd be better to use append (and 'if') here than
> quasiquotes (to avoid having to unquote all inputs).

Okay, I can change it to

(cons `(,glib "bin") ;glib-mkenums, etc.
(append (if (target-hurd?)
'()
(list gobject-introspection)) ;g-ir-compiler, etc.
(list help2man
perl
pkg-config
python-wrapper)))

Toggle quote (2 lines)
> Otherwise it LGTM.

Thanks!

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
L
L
Ludovic Courtès wrote on 18 Jul 2023 22:18
Re: bug#64711: [PATCH 00/45] Fix builds and skip failing tests for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87pm4pgehb.fsf_-_@gnu.org
Hi,

(+Cc: Josselin.)

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (4 lines)
> * gnu/packages/guile.scm (guile-3.0)[arguments]: When building on the Hurd,
> add stage 'disable-popen.test-open-pipe' to avoid running the
> open-input-pipe test (hangs) and open-output-pipe test (fails.

[...]

Toggle quote (8 lines)
> + #~((add-after 'unpack 'disable-popen.test-no-duplicate
> + ;; This test hangs on the Hurd.
> + (lambda _
> + (substitute* "test-suite/tests/popen.test"
> + (("\\(pass-if \"no duplicate\".*" all)
> + (string-append all " (when (string-ci= \"GNU\" (vector-ref (uname) 0)) (throw 'unresolved))
> +"))))))

Maybe write:

(string-append all
(object->string '(when …)))

Out of curiosity, is there a bug report for this one? IIRC, the test
suite of Guile 3.0.9 + ‘guile-hurd-posix-spawn.patch’ used to pass on
glibc 2.35.

As discussed on IRC, skipping this test is not great in that it’ll
likely come to haunt us. However, like you write, we can do that for
now in the interest of making progress :-) and remove it with a proper
fix once we have it.

So… LGTM!

Ludo’.
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 22:23
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 64711@debbugs.gnu.org)
87wmyxc6l7.fsf@gnu.org
Ludovic Courtès writes:

Hi!

Toggle quote (2 lines)
> Great work!

Thank yout!

Toggle quote (5 lines)
> A general comment: these changes to test suites were made based on
> feedback from non-chrooted builds, whose outcome is influenced by system
> state such as running translators. Until we have chroot builds, I think
> we should be cautious and not invest too much time.

That's a helpful perspective, thanks for sharing.

[snip coreutil's long list of failing patches]

Toggle quote (7 lines)
> For example, I wonder how reliable this long list is. Some of these
> tests may fiddle with /proc, /etc/fstab, and other things not under
> control, which means some might suddenly pass for some reason. So I
> wonder if we should just #:tests? #f in this case.
>
> Thoughts?

In this case, having invested the time to identify hanging and failing
tests, I would suggent to keep the list; but I'm also fine with using
#:tests? #f when more than, say 15 tests fail?

What I failed to mention, is that I looked into what Debian is doing for
cases like these, and without exception they just skip the test suite
for the Hurd, even for critical packages such as coreutils and python.
Toggle quote (5 lines)
>
> (With other, higher-level test suites with a couple of failures, it’s
> probably still a good idea to skip individual tests instead of the whole
> test suite.)

Noted. Now I'm wondering whether glib should be considered to have
higher level tests. It would have been nice if I kept some kind of
record on this. It will be a bit less painful te re-check once CI built
most upto glib, dunno.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 18 Jul 2023 22:23
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 64711@debbugs.gnu.org)
87v8ehc6kz.fsf@gnu.org
Ludovic Courtès writes:

Hi!

Toggle quote (2 lines)
> Great work!

Thank you!

Toggle quote (5 lines)
> A general comment: these changes to test suites were made based on
> feedback from non-chrooted builds, whose outcome is influenced by system
> state such as running translators. Until we have chroot builds, I think
> we should be cautious and not invest too much time.

That's a helpful perspective, thanks for sharing.

[snip coreutil's long list of failing patches]

Toggle quote (7 lines)
> For example, I wonder how reliable this long list is. Some of these
> tests may fiddle with /proc, /etc/fstab, and other things not under
> control, which means some might suddenly pass for some reason. So I
> wonder if we should just #:tests? #f in this case.
>
> Thoughts?

In this case, having invested the time to identify hanging and failing
tests, I would suggent to keep the list; but I'm also fine with using
#:tests? #f when more than, say 15 tests fail?

What I failed to mention, is that I looked into what Debian is doing for
cases like these, and without exception they just skip the test suite
for the Hurd, even for critical packages such as coreutils and python.
Toggle quote (5 lines)
>
> (With other, higher-level test suites with a couple of failures, it’s
> probably still a good idea to skip individual tests instead of the whole
> test suite.)

Noted. Now I'm wondering whether glib should be considered to have
higher level tests. It would have been nice if I kept some kind of
record on this. It will be a bit less painful te re-check once CI built
most upto glib, dunno.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
L
L
Ludovic Courtès wrote on 18 Jul 2023 22:23
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)(address . 64711@debbugs.gnu.org)
87jzuxge9t.fsf_-_@gnu.org
Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (5 lines)
> * gnu/packages/base.scm (grep)[arguments]: When building natively on the Hurd,
> remove Rename phase 'skip-triple-backref-test' to 'skip-tests'. Remove
> "tests/triple-backref" as it now passes. Add the hanging
> "tests/hash-collision-perf" test, and the failing "tests/file" test.

[...]

Toggle quote (22 lines)
> + '((add-before 'check 'skip-test
> (lambda _
> - ;; This test is marked as malfunctioning on glibc systems
> - ;; due to
> - ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=11053>
> - ;; and it triggers a segfault with glibc 2.33 on GNU/Hurd.
> - ;; Skip it.
> - (substitute* "tests/triple-backref"
> - (("^warn_" all)
> - (string-append "exit 77\n" all))))))
> - '()))
> - #:make-flags ,(if (target-hurd?)
> - ''("XFAIL_TESTS=test-perror2 equiv-classes") ;XXX
> - ''())))
> + (substitute*
> + ;; This test hangs
> + '("tests/hash-collision-perf"
> + ;; This test fails
> + "tests/file")
> + (("^#!.*" all)
> + (string-append all "exit 77;\n"))))))

Are there any hints in the log files of these two tests?

Contrary to Coreutils, this is less likely to be an environment issue—or
if it is, that might be clear from the log. So having an idea of what’s
failing and ideally a reference to a bug report upstream would be great.
Maybe not a blocker, but something we should do.

Ludo’.
L
L
Ludovic Courtès wrote on 18 Jul 2023 22:29
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)(address . 64711@debbugs.gnu.org)
87cz0pge0c.fsf@gnu.org
Hey!

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (8 lines)
> Also, most probably problematic tests in the guile test suite were fixed on
> guile master. As I understand, Josselin is working on this, so way may want
> to skip the patch for guile (or apply it anyway and revert it later).
>
> Because many patches are almost trivial and similar, you may want to give some
> specific comments to the non-trivial patches and possibly some general
> comments for the trivial ones instead of a LGTM on every individual patch?

So modulo the few comments I sent, I think this looks good.

There’s a couple of things to check (which I haven’t do):

• Make sure x86_64-linux derivations (for instance) are unchanged.
That is, ‘./pre-inst-env guix build libreoffice -d’ should produce
the same thing before and after this patch series, on x86_64-linux.
(Pro tip: replace ‘-d’ with ‘-n’; if there are substitutes, it means
it hasn’t changed. :-))

• Make sure ‘guix build sed --target=i586-pc-gnu’ still works.
Probably the derivation should be unchanged, but maybe it’s OK if it
changes (sometimes avoiding a cross-rebuild would require extra
boilerplate that we’d rather not have).

• And well, ‘guix build sed -s i586-gnu’ should work as well, but
that’s the whole point of this series!

Thanks a lot for all the work!

Ludo’.
M
M
Maxim Cournoyer wrote on 19 Jul 2023 02:56
Re: [bug#64711] [PATCH 40/43] gnu: pango: Support build for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
871qh4n2hd.fsf@gmail.com
Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

[...]

Toggle quote (11 lines)
> Okay, I can change it to
>
> (cons `(,glib "bin") ;glib-mkenums, etc.
> (append (if (target-hurd?)
> '()
> (list gobject-introspection)) ;g-ir-compiler, etc.
> (list help2man
> perl
> pkg-config
> python-wrapper)))

You can avoid 'cons' by moving `(,glib "bin") to the front of the
trailing list (the one starting with help2man ...), I think.

--
Thanks,
Maxim
J
J
Janneke Nieuwenhuizen wrote on 19 Jul 2023 07:23
Re: bug#64711: [PATCH 00/45] Fix builds and skip failing tests for the Hurd.
(name . Ludovic Courtès)(address . ludo@gnu.org)
875y6gcw4j.fsf@gnu.org
Ludovic Courtès writes:

Hi!

Toggle quote (23 lines)
> (+Cc: Josselin.)
>
> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> * gnu/packages/guile.scm (guile-3.0)[arguments]: When building on the Hurd,
>> add stage 'disable-popen.test-open-pipe' to avoid running the
>> open-input-pipe test (hangs) and open-output-pipe test (fails.
>
> [...]
>
>> + #~((add-after 'unpack 'disable-popen.test-no-duplicate
>> + ;; This test hangs on the Hurd.
>> + (lambda _
>> + (substitute* "test-suite/tests/popen.test"
>> + (("\\(pass-if \"no duplicate\".*" all)
>> + (string-append all " (when (string-ci= \"GNU\" (vector-ref (uname) 0)) (throw 'unresolved))
>> +"))))))
>
> Maybe write:
>
> (string-append all
> (object->string '(when …)))

That's a neat trick; changed to

(string-append
all
(object->string
'(when (string-ci= "GNU"
(vector-ref (uname) 0))
(throw 'unresolved)))))))))

Toggle quote (2 lines)
> Out of curiosity, is there a bug report for this one?

Sorry, no! I was kinda hoping this would resolve itself somehow, I
think. Let's make sure there's a bug report if we still need this
after Josselin's work.

Toggle quote (3 lines)
> IIRC, the test suite of Guile 3.0.9 + ‘guile-hurd-posix-spawn.patch’
> used to pass on glibc 2.35.

Ok, good to know.

Toggle quote (7 lines)
> As discussed on IRC, skipping this test is not great in that it’ll
> likely come to haunt us. However, like you write, we can do that for
> now in the interest of making progress :-) and remove it with a proper
> fix once we have it.
>
> So… LGTM!

Thanks!

Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 19 Jul 2023 08:14
Re: [bug#64711] [PATCH 40/43] gnu: pango: Support build for the Hurd.
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87v8egbf7l.fsf@gnu.org
Maxim Cournoyer writes:

Hello,

Toggle quote (18 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
> [...]
>
>> Okay, I can change it to
>>
>> (cons `(,glib "bin") ;glib-mkenums, etc.
>> (append (if (target-hurd?)
>> '()
>> (list gobject-introspection)) ;g-ir-compiler, etc.
>> (list help2man
>> perl
>> pkg-config
>> python-wrapper)))
>
> You can avoid 'cons' by moving `(,glib "bin") to the front of the
> trailing list (the one starting with help2man ...), I think.

Eh..I think that I don't understand; you mean moving `(,glib ,bin) after
gobject-introspection like this?

(append (if (target-hurd?)
'()
(list gobject-introspection)) ;g-ir-compiler, etc.
(list
`(,glib "bin") ;glib-mkenums, etc.
help2man
perl
pkg-config
python-wrapper)))

That will trigger a rebuild that I would like to avoid.

We could avoid cons by doing

(append (list `(,glib "bin")) ;glib-mkenums, etc.
(if (target-hurd?)
'()
(list gobject-introspection)) ;g-ir-compiler, etc.
(list
help2man
perl
pkg-config
python-wrapper))

perhaps the best option?

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 19 Jul 2023 08:27
Re: bug#64711: [PATCH 00/45] Fix builds and skip failing tests for the Hurd.
(name . Ludovic Courtès)(address . ludo@gnu.org)
87r0p4belg.fsf@gnu.org
Ludovic Courtès writes:

Hi!

Toggle quote (23 lines)
> (+Cc: Josselin.)
>
> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> * gnu/packages/guile.scm (guile-3.0)[arguments]: When building on the Hurd,
>> add stage 'disable-popen.test-open-pipe' to avoid running the
>> open-input-pipe test (hangs) and open-output-pipe test (fails.
>
> [...]
>
>> + #~((add-after 'unpack 'disable-popen.test-no-duplicate
>> + ;; This test hangs on the Hurd.
>> + (lambda _
>> + (substitute* "test-suite/tests/popen.test"
>> + (("\\(pass-if \"no duplicate\".*" all)
>> + (string-append all " (when (string-ci= \"GNU\" (vector-ref (uname) 0)) (throw 'unresolved))
>> +"))))))
>
> Maybe write:
>
> (string-append all
> (object->string '(when …)))

That's a neat trick; changed to

(string-append
all
(object->string
'(when (string-ci= "GNU"
(vector-ref (uname) 0))
(throw 'unresolved)))))))))

Toggle quote (2 lines)
> Out of curiosity, is there a bug report for this one?

Sorry, no! I was kinda hoping this would resolve itself somehow, I
think. Let's make sure there's a bug report if we still need this
after Josselin's work.

Toggle quote (3 lines)
> IIRC, the test suite of Guile 3.0.9 + ‘guile-hurd-posix-spawn.patch’
> used to pass on glibc 2.35.

Ok, good to know.

Toggle quote (7 lines)
> As discussed on IRC, skipping this test is not great in that it’ll
> likely come to haunt us. However, like you write, we can do that for
> now in the interest of making progress :-) and remove it with a proper
> fix once we have it.
>
> So… LGTM!

Thanks!

Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 19 Jul 2023 11:30
Re: [bug#64711] [PATCH 26/43] gnu: cairo: Support building for the Hurd.
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87h6q0b64q.fsf@gnu.org
Maxim Cournoyer writes:

Hi!

Toggle quote (23 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
>> Liliana Marie Prikler writes:
>>
>>> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
>>> Nieuwenhuizen:
>>>> Gobject-introspection and libdrm does not build for the Hurd. 
>>>> Poppler depends
>>>> on nss, which does not build for the Hurd.
>>>>
>>>> * gnu/packages/gtk.scm (cairo)[native-inputs]: When building for the
>>>> Hurd, do
>>>> not include gobject-introspection.
>>>> [inputs]: Likewise, do not include libdrm, poppler.
>>
>>> Could we provide a minimal gobject-introspection that builds for the
>>> hurd?
>>
>> That would be nice. Note that Debian doesn't support
>> gobject-introspection on the Hurd, unless I'm mistaken.
>
> I wonder what prevents gobject-introspection from running on the Hurd?

Find build log attached.

Janneke
--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
M
M
Maxim Cournoyer wrote on 19 Jul 2023 18:22
Re: [bug#64711] [PATCH 40/43] gnu: pango: Support build for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87sf9jkh14.fsf@gmail.com
Hi Janneke,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (37 lines)
> Maxim Cournoyer writes:
>
> Hello,
>
>> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>>
>> [...]
>>
>>> Okay, I can change it to
>>>
>>> (cons `(,glib "bin") ;glib-mkenums, etc.
>>> (append (if (target-hurd?)
>>> '()
>>> (list gobject-introspection)) ;g-ir-compiler, etc.
>>> (list help2man
>>> perl
>>> pkg-config
>>> python-wrapper)))
>>
>> You can avoid 'cons' by moving `(,glib "bin") to the front of the
>> trailing list (the one starting with help2man ...), I think.
>
> Eh..I think that I don't understand; you mean moving `(,glib ,bin) after
> gobject-introspection like this?
>
> (append (if (target-hurd?)
> '()
> (list gobject-introspection)) ;g-ir-compiler, etc.
> (list
> `(,glib "bin") ;glib-mkenums, etc.
> help2man
> perl
> pkg-config
> python-wrapper)))
>
> That will trigger a rebuild that I would like to avoid.

Ah, apologies, I had not thought about this causing rebuilds.

Toggle quote (14 lines)
> We could avoid cons by doing
>
> (append (list `(,glib "bin")) ;glib-mkenums, etc.
> (if (target-hurd?)
> '()
> (list gobject-introspection)) ;g-ir-compiler, etc.
> (list
> help2man
> perl
> pkg-config
> python-wrapper))
>
> perhaps the best option?

Either ways are fine, sorry for the noise :-).

--
Thanks,
Maxim
J
J
Janneke Nieuwenhuizen wrote on 19 Jul 2023 22:51
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87h6pzvd56.fsf@gnu.org
Maxim Cournoyer writes:

Hi Maxim,

Toggle quote (10 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
>> Maxim Cournoyer writes:
>>
>> Hello,
>>
>>> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>>>
>>> [...]

[..]

Toggle quote (4 lines)
>> That will trigger a rebuild that I would like to avoid.
>
> Ah, apologies, I had not thought about this causing rebuilds.

Yeah, tricky.

Toggle quote (16 lines)
>> We could avoid cons by doing
>>
>> (append (list `(,glib "bin")) ;glib-mkenums, etc.
>> (if (target-hurd?)
>> '()
>> (list gobject-introspection)) ;g-ir-compiler, etc.
>> (list
>> help2man
>> perl
>> pkg-config
>> python-wrapper))
>>
>> perhaps the best option?
>
> Either ways are fine, sorry for the noise :-).

No problem, thanks for chiming in and caring enough about stylistics!
I like the last variant probably slightly better, so I'll keep that
for harfbuzz and pango.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
M
M
Maxim Cournoyer wrote on 20 Jul 2023 05:14
Re: [bug#64711] [PATCH 26/43] gnu: cairo: Support building for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87v8efmg00.fsf@gmail.com
Hi Janneke,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (29 lines)
> Maxim Cournoyer writes:
>
> Hi!
>
>> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>>
>>> Liliana Marie Prikler writes:
>>>
>>>> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
>>>> Nieuwenhuizen:
>>>>> Gobject-introspection and libdrm does not build for the Hurd. 
>>>>> Poppler depends
>>>>> on nss, which does not build for the Hurd.
>>>>>
>>>>> * gnu/packages/gtk.scm (cairo)[native-inputs]: When building for the
>>>>> Hurd, do
>>>>> not include gobject-introspection.
>>>>> [inputs]: Likewise, do not include libdrm, poppler.
>>>
>>>> Could we provide a minimal gobject-introspection that builds for the
>>>> hurd?
>>>
>>> That would be nice. Note that Debian doesn't support
>>> gobject-introspection on the Hurd, unless I'm mistaken.
>>
>> I wonder what prevents gobject-introspection from running on the Hurd?
>
> Find build log attached.

J
J
Janneke Nieuwenhuizen wrote on 20 Jul 2023 10:19
Re: [bug#64711] [PATCH 37/43] gnu: glib: Disable tests for the Hurd.
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
877cqvuh9c.fsf@gnu.org
Maxim Cournoyer writes:

Hello!

Toggle quote (33 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
>> Liliana Marie Prikler writes:
>>
>>> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
>>> Nieuwenhuizen:
>>>> * gnu/packages/glib.scm (glib)[arguments]: When building for the
>>>> Hurd,
>>>> set #:tests? to #false.
>>
>> [..]
>>>> +      #:tests? (not (target-hurd?))
>>
>>>> compiled
>>
>>> Instead of disabling tests altogether, can we just disable those that
>>> fail on the Hurd?
>>
>> We probably can, and I have tried to do so in most cases. However,
>> identifying those tests can be quite time consuming. I'm not sure how
>> many tests failed here, and note that some tests will hang or crash the
>> Hurd, so if we decide to do this, I would appreciate some help :-)
>>
>> Ludo on the other hand, argued against having more than ~20 (IIRC) test
>> exceptions and using #:tests? #f instead.
>>
>> My idea was to get guix to build natively, and guix pull to work. Once
>> we get those to work, we can possibly look forward to more contributors
>> to this.
>
> I agree with Liliana that it's nicer to disable just these tests that
> fail, but in light of what you wrote, your approach seems reasonable.

Yes, I agree that if we want to make Hurd better and enabble us to
create a bug report it sure helps if we have more information.

Yesterday I decided to have another look into this. I have identified
20 tests that TIMEOUT after 600s, and 37 FAIL and instead of setting
#:tests? to #false, I have added them to the `disable-failing-tests'
phase when building on the Hurd. See attached patch.

Greetings,
Janneke
--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 20 Jul 2023 10:27
Re: bug#64711: [PATCH 00/45] Fix builds and skip failing tests for the Hurd.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 64711-done@debbugs.gnu.org)
871qh3ugwx.fsf@gnu.org
Ludovic Courtès writes:

Hi,

Toggle quote (12 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> Also, most probably problematic tests in the guile test suite were fixed on
>> guile master. As I understand, Josselin is working on this, so way may want
>> to skip the patch for guile (or apply it anyway and revert it later).
>>
>> Because many patches are almost trivial and similar, you may want to give some
>> specific comments to the non-trivial patches and possibly some general
>> comments for the trivial ones instead of a LGTM on every individual patch?
>
> So modulo the few comments I sent, I think this looks good.

\o/

Toggle quote (8 lines)
> There’s a couple of things to check (which I haven’t do):
>
> • Make sure x86_64-linux derivations (for instance) are unchanged.
> That is, ‘./pre-inst-env guix build libreoffice -d’ should produce
> the same thing before and after this patch series, on x86_64-linux.
> (Pro tip: replace ‘-d’ with ‘-n’; if there are substitutes, it means
> it hasn’t changed. :-))

Ah, that's a nice trick. Checked! What I did, was after developing
each patch (only) check that x86_64 package didn't get rebuilt.

Toggle quote (5 lines)
> • Make sure ‘guix build sed --target=i586-pc-gnu’ still works.
> Probably the derivation should be unchanged, but maybe it’s OK if it
> changes (sometimes avoiding a cross-rebuild would require extra
> boilerplate that we’d rather not have).

Checked! (It changed, of course).

Toggle quote (3 lines)
> • And well, ‘guix build sed -s i586-gnu’ should work as well, but
> that’s the whole point of this series!

Checked! -- but here I cheated a bit, I've only checked this before
rebasing.

Toggle quote (2 lines)
> Thanks a lot for all the work!

Thank you (and other reviewers) for all the help!

Pushed to master as 6547d3852b11966271535962110d9e68f50c95fc

Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
Closed
M
M
Maxim Cournoyer wrote on 20 Jul 2023 20:08
Re: [bug#64711] [PATCH 37/43] gnu: glib: Disable tests for the Hurd.
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87h6pylaky.fsf@gmail.com
Hi Janneke,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (45 lines)
> Maxim Cournoyer writes:
>
> Hello!
>
>> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>>
>>> Liliana Marie Prikler writes:
>>>
>>>> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
>>>> Nieuwenhuizen:
>>>>> * gnu/packages/glib.scm (glib)[arguments]: When building for the
>>>>> Hurd,
>>>>> set #:tests? to #false.
>>>
>>> [..]
>>>>> +      #:tests? (not (target-hurd?))
>>>
>>>>> compiled
>>>
>>>> Instead of disabling tests altogether, can we just disable those that
>>>> fail on the Hurd?
>>>
>>> We probably can, and I have tried to do so in most cases. However,
>>> identifying those tests can be quite time consuming. I'm not sure how
>>> many tests failed here, and note that some tests will hang or crash the
>>> Hurd, so if we decide to do this, I would appreciate some help :-)
>>>
>>> Ludo on the other hand, argued against having more than ~20 (IIRC) test
>>> exceptions and using #:tests? #f instead.
>>>
>>> My idea was to get guix to build natively, and guix pull to work. Once
>>> we get those to work, we can possibly look forward to more contributors
>>> to this.
>>
>> I agree with Liliana that it's nicer to disable just these tests that
>> fail, but in light of what you wrote, your approach seems reasonable.
>
> Yes, I agree that if we want to make Hurd better and enabble us to
> create a bug report it sure helps if we have more information.
>
> Yesterday I decided to have another look into this. I have identified
> 20 tests that TIMEOUT after 600s, and 37 FAIL and instead of setting
> #:tests? to #false, I have added them to the `disable-failing-tests'
> phase when building on the Hurd. See attached patch.

Well done pushing the investigation!

Are you sure these failures are Hurd-only? When I see timeouts related
to dbus tests, I often think the problem may be attributed to #30948,
because dbus often waits for processes to die completely but are left as
zombies in the build container due to incorrect signal handling from the
Guile PID 1 there. But since the glib package currently builds for
x86_64 at least, that's probably not it...

LGTM.

--
Thanks,
Maxim
J
J
Janneke Nieuwenhuizen wrote on 21 Jul 2023 19:22
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
871qh1i3if.fsf@gnu.org
Maxim Cournoyer writes:

Hi Maxim,

Toggle quote (49 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
>> Maxim Cournoyer writes:
>>
>> Hello!
>>
>>> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>>>
>>>> Liliana Marie Prikler writes:
>>>>
>>>>> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
>>>>> Nieuwenhuizen:
>>>>>> * gnu/packages/glib.scm (glib)[arguments]: When building for the
>>>>>> Hurd,
>>>>>> set #:tests? to #false.
>>>>
>>>> [..]
>>>>>> +      #:tests? (not (target-hurd?))
>>>>
>>>>>> compiled
>>>>
>>>>> Instead of disabling tests altogether, can we just disable those that
>>>>> fail on the Hurd?
>>>>
>>>> We probably can, and I have tried to do so in most cases. However,
>>>> identifying those tests can be quite time consuming. I'm not sure how
>>>> many tests failed here, and note that some tests will hang or crash the
>>>> Hurd, so if we decide to do this, I would appreciate some help :-)
>>>>
>>>> Ludo on the other hand, argued against having more than ~20 (IIRC) test
>>>> exceptions and using #:tests? #f instead.
>>>>
>>>> My idea was to get guix to build natively, and guix pull to work. Once
>>>> we get those to work, we can possibly look forward to more contributors
>>>> to this.
>>>
>>> I agree with Liliana that it's nicer to disable just these tests that
>>> fail, but in light of what you wrote, your approach seems reasonable.
>>
>> Yes, I agree that if we want to make Hurd better and enabble us to
>> create a bug report it sure helps if we have more information.
>>
>> Yesterday I decided to have another look into this. I have identified
>> 20 tests that TIMEOUT after 600s, and 37 FAIL and instead of setting
>> #:tests? to #false, I have added them to the `disable-failing-tests'
>> phase when building on the Hurd. See attached patch.
>
> Well done pushing the investigation!

Thanks, and thanks for push ;)

Toggle quote (2 lines)
> Are you sure these failures are Hurd-only?

No, not 100%, but...

Toggle quote (6 lines)
> When I see timeouts related to dbus tests, I often think the problem
> may be attributed to #30948, because dbus often waits for processes to
> die completely but are left as zombies in the build container due to
> incorrect signal handling from the Guile PID 1 there. But since the
> glib package currently builds for x86_64 at least,

...yeah, I didn't check if some problems are 32bit related, for example.

that's probably not it...

Toggle quote (2 lines)
> LGTM.

\o/
Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 21 Jul 2023 20:27
Re: [bug#64711] [PATCH 26/43] gnu: cairo: Support building for the Hurd.
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87wmytglwl.fsf@gnu.org
Maxim Cournoyer writes:

Hi Maxim,

Toggle quote (27 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
>> Maxim Cournoyer writes:
>>
>> Hi!
>>
>>> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>>>
>>>> Liliana Marie Prikler writes:
>>>>
>>>>> Am Dienstag, dem 18.07.2023 um 16:40 +0200 schrieb Janneke
>>>>> Nieuwenhuizen:
>>>>>> Gobject-introspection and libdrm does not build for the Hurd. 
>>>>>> Poppler depends
>>>>>> on nss, which does not build for the Hurd.
>>>>>>
>>>>>> * gnu/packages/gtk.scm (cairo)[native-inputs]: When building for the
>>>>>> Hurd, do
>>>>>> not include gobject-introspection.
>>>>>> [inputs]: Likewise, do not include libdrm, poppler.
>>>>
>>>>> Could we provide a minimal gobject-introspection that builds for the
>>>>> hurd?
>>>>
>>>> That would be nice. Note that Debian doesn't support
>>>> gobject-introspection on the Hurd, unless I'm mistaken.

I was mistaken; I've checked it again and gobject-introspection is
installable for the Hurd.

Toggle snippet (3 lines)
ii gobject-introspection 1.74.0-3 hurd-i386 Generate interface introspection data for GObject libraries

Toggle quote (7 lines)
>>> I wonder what prevents gobject-introspection from running on the Hurd?
>>
>> Find build log attached.
>
> Interesting. Debian carries no Hurd patch for it [0], and upstream
> doesn't seem to know about this issue [1].

Hmm? Interesting indeed...

Toggle quote (3 lines)
> [1] https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/?sort=created_date&state=opened&search=getauxval&first_page_size=20

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
?