git: fix darwin to linux cross-compilation (#348010)

This commit is contained in:
Emily 2024-10-12 23:03:23 +01:00 committed by GitHub
commit d9bac064aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View File

@ -20,6 +20,7 @@
, gzip # needed at runtime by gitweb.cgi
, withSsh ? false
, sysctl
, deterministic-host-uname # trick Makefile into targeting the host platform when cross-compiling
, doInstallCheck ? !stdenv.hostPlatform.isDarwin # extremely slow on darwin
, tests
}:
@ -84,7 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
done
'';
nativeBuildInputs = [ gettext perlPackages.perl makeWrapper pkg-config ]
nativeBuildInputs = [ deterministic-host-uname gettext perlPackages.perl makeWrapper pkg-config ]
++ lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
docbook_xsl docbook_xml_dtd_45 libxslt ];
buildInputs = [ curl openssl zlib expat cpio (if stdenv.hostPlatform.isFreeBSD then libiconvReal else libiconv) bash ]
@ -130,8 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
# acceptable version.
#
# See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706
++ lib.optional stdenv.hostPlatform.isDarwin "TKFRAMEWORK=/nonexistent"
++ lib.optional (stdenv.hostPlatform.isFreeBSD && stdenv.hostPlatform != stdenv.buildPlatform) "uname_S=FreeBSD";
++ lib.optional stdenv.hostPlatform.isDarwin "TKFRAMEWORK=/nonexistent";
disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
stdenv.shellPackage

View File

@ -31,7 +31,7 @@ substituteAll {
then "GNU/Linux"
else if forPlatform.isDarwin
then "Darwin" # darwin isn't in host-os.m4 so where does this come from?
else if stdenv.buildPlatform.isFreeBSD
else if forPlatform.isFreeBSD
then "FreeBSD"
else "unknown";