mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-30 17:49:58 +03:00
Merge pull request #39425 from bgamari/git-cross
Allow git to be cross-compiled
This commit is contained in:
commit
4aefe8a48a
@ -4,6 +4,7 @@
|
|||||||
, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
|
, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
|
||||||
, libxslt, tcl, tk, makeWrapper, libiconv
|
, libxslt, tcl, tk, makeWrapper, libiconv
|
||||||
, svnSupport, subversionClient, perlLibs, smtpPerlLibs
|
, svnSupport, subversionClient, perlLibs, smtpPerlLibs
|
||||||
|
, perlSupport ? true
|
||||||
, guiSupport
|
, guiSupport
|
||||||
, withManual ? true
|
, withManual ? true
|
||||||
, pythonSupport ? true
|
, pythonSupport ? true
|
||||||
@ -12,9 +13,12 @@
|
|||||||
, darwin
|
, darwin
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
assert sendEmailSupport -> perlSupport;
|
||||||
|
assert svnSupport -> perlSupport;
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "2.16.3";
|
version = "2.16.3";
|
||||||
svn = subversionClient.override { perlBindings = true; };
|
svn = subversionClient.override { perlBindings = perlSupport; };
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@ -25,7 +29,7 @@ stdenv.mkDerivation {
|
|||||||
sha256 = "0j1dwvg5llnj3g0fp8hdgpms4hp90qw9f6509vqw30dhwplrjpfn";
|
sha256 = "0j1dwvg5llnj3g0fp8hdgpms4hp90qw9f6509vqw30dhwplrjpfn";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "gitweb" ];
|
outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
||||||
@ -44,9 +48,11 @@ stdenv.mkDerivation {
|
|||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [curl openssl zlib expat gettext cpio makeWrapper libiconv perl]
|
nativeBuildInputs = [ gettext perl ]
|
||||||
++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
|
++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
|
||||||
docbook_xsl docbook_xml_dtd_45 libxslt ]
|
docbook_xsl docbook_xml_dtd_45 libxslt ];
|
||||||
|
buildInputs = [curl openssl zlib expat cpio makeWrapper libiconv]
|
||||||
|
++ stdenv.lib.optionals perlSupport [ perl ]
|
||||||
++ stdenv.lib.optionals guiSupport [tcl tk]
|
++ stdenv.lib.optionals guiSupport [tcl tk]
|
||||||
++ stdenv.lib.optionals withpcre2 [ pcre2 ]
|
++ stdenv.lib.optionals withpcre2 [ pcre2 ]
|
||||||
++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ];
|
++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ];
|
||||||
@ -56,11 +62,21 @@ stdenv.mkDerivation {
|
|||||||
NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
|
NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
|
||||||
+ stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr";
|
+ stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr";
|
||||||
|
|
||||||
makeFlags = "prefix=\${out} PERL_PATH=${perl}/bin/perl SHELL_PATH=${stdenv.shell} "
|
configureFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||||
+ (if pythonSupport then "PYTHON_PATH=${python}/bin/python" else "NO_PYTHON=1")
|
"ac_cv_fread_reads_directories=yes"
|
||||||
+ (if stdenv.isSunOS then " INSTALL=install NO_INET_NTOP= NO_INET_PTON=" else "")
|
"ac_cv_snprintf_returns_bogus=no"
|
||||||
+ (if stdenv.isDarwin then " NO_APPLE_COMMON_CRYPTO=1" else " sysconfdir=/etc/ ")
|
];
|
||||||
+ (if stdenv.hostPlatform.isMusl then "NO_SYS_POLL_H=1 NO_GETTEXT=YesPlease" else "");
|
|
||||||
|
makeFlags = [
|
||||||
|
"prefix=\${out}"
|
||||||
|
"SHELL_PATH=${stdenv.shell}"
|
||||||
|
]
|
||||||
|
++ (if perlSupport then ["PERL_PATH=${perl}/bin/perl"] else ["NO_PERL=1"])
|
||||||
|
++ (if pythonSupport then ["PYTHON_PATH=${python}/bin/python"] else ["NO_PYTHON=1"])
|
||||||
|
++ stdenv.lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
|
||||||
|
++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc/"])
|
||||||
|
++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
|
||||||
|
++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1";
|
||||||
|
|
||||||
# build git-credential-osxkeychain if darwin
|
# build git-credential-osxkeychain if darwin
|
||||||
postBuild = stdenv.lib.optionalString stdenv.isDarwin ''
|
postBuild = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
@ -73,9 +89,7 @@ stdenv.mkDerivation {
|
|||||||
# so that `SPARSE_FLAGS' corresponds to the current architecture...
|
# so that `SPARSE_FLAGS' corresponds to the current architecture...
|
||||||
#doCheck = true;
|
#doCheck = true;
|
||||||
|
|
||||||
installFlags = "NO_INSTALL_HARDLINKS=1"
|
installFlags = "NO_INSTALL_HARDLINKS=1";
|
||||||
+ (if withpcre2 then " USE_LIBPCRE2=1" else "");
|
|
||||||
|
|
||||||
|
|
||||||
preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
@ -115,9 +129,10 @@ stdenv.mkDerivation {
|
|||||||
SCRIPT="$(cat <<'EOS'
|
SCRIPT="$(cat <<'EOS'
|
||||||
BEGIN{
|
BEGIN{
|
||||||
@a=(
|
@a=(
|
||||||
'${perl}/bin/perl', '${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk',
|
'${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk',
|
||||||
'${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname',
|
'${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname',
|
||||||
'${coreutils}/bin/wc', '${coreutils}/bin/tr'
|
'${coreutils}/bin/wc', '${coreutils}/bin/tr'
|
||||||
|
${stdenv.lib.optionalString perlSupport ", '${perl}/bin/perl'"}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
foreach $c (@a) {
|
foreach $c (@a) {
|
||||||
@ -133,12 +148,12 @@ stdenv.mkDerivation {
|
|||||||
substituteInPlace $out/libexec/git-core/git-sh-i18n \
|
substituteInPlace $out/libexec/git-core/git-sh-i18n \
|
||||||
--subst-var-by gettext ${gettext}
|
--subst-var-by gettext ${gettext}
|
||||||
|
|
||||||
# put in separate package for simpler maintenance
|
|
||||||
mv $out/share/gitweb $gitweb/
|
|
||||||
|
|
||||||
# Also put git-http-backend into $PATH, so that we can use smart
|
# Also put git-http-backend into $PATH, so that we can use smart
|
||||||
# HTTP(s) transports for pushing
|
# HTTP(s) transports for pushing
|
||||||
ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend
|
ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend
|
||||||
|
'' + stdenv.lib.optionalString perlSupport ''
|
||||||
|
# put in separate package for simpler maintenance
|
||||||
|
mv $out/share/gitweb $gitweb/
|
||||||
|
|
||||||
# wrap perl commands
|
# wrap perl commands
|
||||||
gitperllib=$out/lib/perl5/site_perl
|
gitperllib=$out/lib/perl5/site_perl
|
||||||
@ -184,7 +199,7 @@ stdenv.mkDerivation {
|
|||||||
'')
|
'')
|
||||||
|
|
||||||
+ stdenv.lib.optionalString withManual ''# Install man pages and Info manual
|
+ stdenv.lib.optionalString withManual ''# Install man pages and Info manual
|
||||||
make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${perl}/bin/perl" cmd-list.made install install-info \
|
make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES cmd-list.made install install-info \
|
||||||
-C Documentation ''
|
-C Documentation ''
|
||||||
|
|
||||||
+ (if guiSupport then ''
|
+ (if guiSupport then ''
|
||||||
|
Loading…
Reference in New Issue
Block a user