guile: fix cross

The upstream patch fixes an include error.

Adding autoreconfHook fixes

       > make -C libguile scmconfig.h
       > make[1]: Entering directory '/build/guile-3.0.10/libguile'
       >  cd .. && /nix/store/xy4jjgw87sbgwylm5kn047d9gkbhsr9x-bash-5.2p37/bin/bash /build/guile-3.0.10/build-aux/missing automake-1.16 --gnu libguile/Makefile
       > /build/guile-3.0.10/build-aux/missing: line 81: automake-1.16: command not found
       > WARNING: 'automake-1.16' is missing on your system.
       >          You should only need it if you modified 'Makefile.am' or
       >          'configure.ac' or m4 files included by 'configure.ac'.
       >          The 'automake' program is part of the GNU Automake package:
       >          <https://www.gnu.org/software/automake>
       >          It also requires GNU Autoconf, GNU m4 and Perl in order to run:
       >          <https://www.gnu.org/software/autoconf>
       >          <https://www.gnu.org/software/m4/>
       >          <https://www.perl.org/>
       > make[1]: *** [Makefile:2734: Makefile.in] Error 127
       > make[1]: Leaving directory '/build/guile-3.0.10/libguile'
       > make: *** [Makefile:2615: libguile/scmconfig.h] Error 2

which occurs because we patch a Makefile.am .
This commit is contained in:
Stefan Frijters
2025-06-14 15:47:08 +02:00
parent d935de4ff2
commit a1fd80fb9b
+20 -5
View File
@@ -14,6 +14,7 @@
libxcrypt,
makeWrapper,
pkg-config,
autoreconfHook,
pkgsBuildBuild,
readline,
writeScript,
@@ -39,13 +40,19 @@ builder rec {
];
setOutputFlags = false; # $dev gets into the library otherwise
depsBuildBuild = [
buildPackages.stdenv.cc
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile_3_0;
depsBuildBuild =
[
buildPackages.stdenv.cc
]
++ lib.optional (
!lib.systems.equals stdenv.hostPlatform stdenv.buildPlatform
) pkgsBuildBuild.guile_3_0;
nativeBuildInputs = [
makeWrapper
pkg-config
];
] ++ lib.optional (!lib.systems.equals stdenv.hostPlatform stdenv.buildPlatform) autoreconfHook;
buildInputs =
[
libffi
@@ -72,16 +79,24 @@ builder rec {
libxcrypt
];
strictDeps = true;
# According to
# https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/guile.scm?h=a39207f7afd977e4e4299c6f0bb34bcb6d153818#n405
# starting with Guile 3.0.8, parallel builds can be done
# bit-reproducibly as long as we're not cross-compiling
enableParallelBuilding = stdenv.buildPlatform == stdenv.hostPlatform;
enableParallelBuilding = lib.systems.equals stdenv.buildPlatform stdenv.hostPlatform;
patches =
[
./eai_system.patch
]
# Fix cross-compilation, can be removed at next release (as well as the autoreconfHook)
# Include this only conditionally so we don't have to run the autoreconfHook for the native build.
++ lib.optional (!lib.systems.equals stdenv.hostPlatform stdenv.buildPlatform) (fetchpatch {
url = "https://cgit.git.savannah.gnu.org/cgit/guile.git/patch/?id=c117f8edc471d3362043d88959d73c6a37e7e1e9";
hash = "sha256-GFwJiwuU8lT1fNueMOcvHh8yvA4HYHcmPml2fY/HSjw=";
})
++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch
++ lib.optional stdenv.hostPlatform.isDarwin (fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch";