Merge pull request #168413 from a-m-joseph/libtool-purity-fix-put-file-in-bootstrap
fixLibtool(): replace /usr/bin/file in ./configure, add file to common-path.nix
This commit is contained in:
commit
f174277eed
|
@ -12,4 +12,12 @@
|
||||||
pkgs.bash
|
pkgs.bash
|
||||||
pkgs.patch
|
pkgs.patch
|
||||||
pkgs.xz.bin
|
pkgs.xz.bin
|
||||||
|
|
||||||
|
# The `file` command is added here because an enormous number of
|
||||||
|
# packages have a vendored dependency upon `file` in their
|
||||||
|
# `./configure` script, due to libtool<=2.4.6, or due to
|
||||||
|
# libtool>=2.4.7 in which the package author decided to set FILECMD
|
||||||
|
# when running libtoolize. In fact, file-5.4.6 *depends on itself*
|
||||||
|
# and tries to invoke `file` from its own ./configure script.
|
||||||
|
pkgs.file
|
||||||
]
|
]
|
||||||
|
|
|
@ -486,6 +486,7 @@ rec {
|
||||||
gmp
|
gmp
|
||||||
libiconv
|
libiconv
|
||||||
brotli.lib
|
brotli.lib
|
||||||
|
file
|
||||||
] ++ lib.optional haveKRB5 libkrb5) ++
|
] ++ lib.optional haveKRB5 libkrb5) ++
|
||||||
(with pkgs."${finalLlvmPackages}"; [
|
(with pkgs."${finalLlvmPackages}"; [
|
||||||
libcxx
|
libcxx
|
||||||
|
@ -561,6 +562,7 @@ rec {
|
||||||
gmp
|
gmp
|
||||||
libiconv
|
libiconv
|
||||||
brotli.lib
|
brotli.lib
|
||||||
|
file
|
||||||
] ++ lib.optional haveKRB5 libkrb5) ++
|
] ++ lib.optional haveKRB5 libkrb5) ++
|
||||||
(with pkgs."${finalLlvmPackages}"; [
|
(with pkgs."${finalLlvmPackages}"; [
|
||||||
libcxx
|
libcxx
|
||||||
|
@ -737,6 +739,7 @@ rec {
|
||||||
brotli.lib
|
brotli.lib
|
||||||
cc.expand-response-params
|
cc.expand-response-params
|
||||||
libxml2.out
|
libxml2.out
|
||||||
|
file
|
||||||
] ++ lib.optional haveKRB5 libkrb5
|
] ++ lib.optional haveKRB5 libkrb5
|
||||||
++ lib.optionals localSystem.isAarch64 [
|
++ lib.optionals localSystem.isAarch64 [
|
||||||
pkgs.updateAutotoolsGnuConfigScriptsHook
|
pkgs.updateAutotoolsGnuConfigScriptsHook
|
||||||
|
|
|
@ -1021,6 +1021,21 @@ configurePhase() {
|
||||||
echo "fixing libtool script $i"
|
echo "fixing libtool script $i"
|
||||||
fixLibtool "$i"
|
fixLibtool "$i"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# replace `/usr/bin/file` with `file` in any `configure`
|
||||||
|
# scripts with vendored libtool code. Preserve mtimes to
|
||||||
|
# prevent some packages (e.g. libidn2) from spontaneously
|
||||||
|
# autoreconf'ing themselves
|
||||||
|
CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXX)
|
||||||
|
find . \
|
||||||
|
-executable \
|
||||||
|
-type f \
|
||||||
|
-name configure \
|
||||||
|
-execdir grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; \
|
||||||
|
-execdir touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; \
|
||||||
|
-execdir sed -i s_/usr/bin/file_file_g {} \; \
|
||||||
|
-execdir touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;
|
||||||
|
rm -f "$CONFIGURE_MTIME_REFERENCE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then
|
if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then
|
||||||
|
|
|
@ -417,7 +417,7 @@ in
|
||||||
# Simple executable tools
|
# Simple executable tools
|
||||||
concatMap (p: [ (getBin p) (getLib p) ]) [
|
concatMap (p: [ (getBin p) (getLib p) ]) [
|
||||||
gzip bzip2 xz bash binutils.bintools coreutils diffutils findutils
|
gzip bzip2 xz bash binutils.bintools coreutils diffutils findutils
|
||||||
gawk gnumake gnused gnutar gnugrep gnupatch patchelf ed
|
gawk gnumake gnused gnutar gnugrep gnupatch patchelf ed file
|
||||||
]
|
]
|
||||||
# Library dependencies
|
# Library dependencies
|
||||||
++ map getLib (
|
++ map getLib (
|
||||||
|
|
Loading…
Reference in a new issue