From a1fd80fb9bf9d00ab00d46b6ead93672a4e17f6d Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Jun 2025 14:47:34 +0200 Subject: [PATCH] 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: > > It also requires GNU Autoconf, GNU m4 and Perl in order to run: > > > > 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 . --- pkgs/development/interpreters/guile/3.0.nix | 25 ++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/pkgs/development/interpreters/guile/3.0.nix b/pkgs/development/interpreters/guile/3.0.nix index 473c05ea8383..ed0acd26e532 100644 --- a/pkgs/development/interpreters/guile/3.0.nix +++ b/pkgs/development/interpreters/guile/3.0.nix @@ -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";