Unverified Commit a1fd80fb authored by Stefan Frijters's avatar Stefan Frijters
Browse files

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 .
parent d935de4f
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
@@ -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 = [
  depsBuildBuild =
    [
      buildPackages.stdenv.cc
  ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile_3_0;
    ]
    ++ 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";