mbox series

[bug#64711,00/45] Fix builds and skip failing tests for the Hurd.

Message ID cover.1689690897.git.janneke@gnu.org
Headers show
Series Fix builds and skip failing tests for the Hurd. | expand

Message

Janneke Nieuwenhuizen July 18, 2023, 2:38 p.m. UTC
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

Comments

Ludovic Courtès July 18, 2023, 8:29 p.m. UTC | #1
Hey!

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.

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’.
Janneke Nieuwenhuizen July 20, 2023, 8:27 a.m. UTC | #2
Ludovic Courtès writes:

Hi,

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

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

>   • 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).

>   • 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.

> Thanks a lot for all the work!

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

Pushed to master as 6547d3852b11966271535962110d9e68f50c95fc

Janneke