Skip to content

Commit

Permalink
Merge commit 'a889454869e4f7d5ba6067ebcc0ba7fcd26e4417'
Browse files Browse the repository at this point in the history
Merge staging. It includes fixes for cc-wrapper parsing speed and
some other minor things.

http://hydra.nixos.org/eval/1375094
  • Loading branch information
domenkozar committed Jul 14, 2017
2 parents f93050e + a889454 commit 0eb4f6f
Show file tree
Hide file tree
Showing 19 changed files with 62 additions and 38 deletions.
4 changes: 2 additions & 2 deletions pkgs/build-support/cc-wrapper/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -275,9 +275,9 @@ stdenv.mkDerivation {
# Propagate the wrapped cc so that if you install the wrapper,
# you get tools like gcov, the manpages, etc. as well (including
# for binutils and Glibc).
echo ${cc} ${cc.man or ""} ${binutils_bin} ${if libc == null then "" else libc_bin} > $out/nix-support/propagated-user-env-packages
printLines ${cc} ${cc.man or ""} ${binutils_bin} ${if libc == null then "" else libc_bin} > $out/nix-support/propagated-user-env-packages
echo ${toString extraPackages} > $out/nix-support/propagated-native-build-inputs
printLines ${toString extraPackages} > $out/nix-support/propagated-native-build-inputs
''

+ optionalString (targetPlatform.isSunOS && nativePrefix != "") ''
Expand Down
2 changes: 1 addition & 1 deletion pkgs/build-support/gcc-wrapper-old/builder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -211,5 +211,5 @@ cp -p $utils $out/nix-support/utils.sh
# tools like gcov, the manpages, etc. as well (including for binutils
# and Glibc).
if test -z "$nativeTools"; then
echo $gcc $binutils $libc $libc_bin > $out/nix-support/propagated-user-env-packages
printLines $gcc $binutils $libc $libc_bin > $out/nix-support/propagated-user-env-packages
fi
2 changes: 1 addition & 1 deletion pkgs/build-support/setup-hooks/multiple-outputs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ _multioutPropagateDev() {

mkdir -p "${!propagaterOutput}"/nix-support
for output in $propagatedBuildOutputs; do
echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/$propagatedBuildInputsFile
echo "${!output}" >> "${!propagaterOutput}"/nix-support/$propagatedBuildInputsFile
done
}

2 changes: 1 addition & 1 deletion pkgs/build-support/trivial-builders.nix
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ rec {
mkdir -p $out/nix-support
cp ${script} $out/nix-support/setup-hook
'' + lib.optionalString (deps != []) ''
echo ${toString deps} > $out/nix-support/propagated-native-build-inputs
printLines ${toString deps} > $out/nix-support/propagated-native-build-inputs
'' + lib.optionalString (substitutions != {}) ''
substituteAll ${script} $out/nix-support/setup-hook
'');
Expand Down
2 changes: 1 addition & 1 deletion pkgs/desktops/kde-4.14/kde-package/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ rec {
};})
''
mkdir -pv $out/nix-support
echo "${toString list}" | tee $out/nix-support/propagated-user-env-packages
printLines ${toString list} | tee $out/nix-support/propagated-user-env-packages
'';

# Given manifest module data, return the module
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/compilers/openjdk-darwin/8.nix
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ let
# any package that depends on the JRE has $CLASSPATH set up
# properly.
mkdir -p $out/nix-support
echo -n "${setJavaClassPath}" > $out/nix-support/propagated-native-build-inputs
printLines ${setJavaClassPath} > $out/nix-support/propagated-native-build-inputs
install_name_tool -change /usr/X11/lib/libfreetype.6.dylib ${freetype}/lib/libfreetype.6.dylib $out/jre/lib/libfontmanager.dylib
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/compilers/openjdk-darwin/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ let
# any package that depends on the JRE has $CLASSPATH set up
# properly.
mkdir -p $out/nix-support
echo -n "${setJavaClassPath}" > $out/nix-support/propagated-native-build-inputs
printLines ${setJavaClassPath} > $out/nix-support/propagated-native-build-inputs
install_name_tool -change /usr/X11/lib/libfreetype.6.dylib ${freetype}/lib/libfreetype.6.dylib $out/jre/lib/libfontmanager.dylib
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/compilers/openjdk/7.nix
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ let
# any package that depends on the JRE has $CLASSPATH set up
# properly.
mkdir -p $jre/nix-support
echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-native-build-inputs
printLines ${setJavaClassPath} > $jre/nix-support/propagated-native-build-inputs
# Set JAVA_HOME automatically.
mkdir -p $out/nix-support
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/compilers/openjdk/8.nix
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ let
# any package that depends on the JRE has $CLASSPATH set up
# properly.
mkdir -p $jre/nix-support
echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-native-build-inputs
printLines ${setJavaClassPath} > $jre/nix-support/propagated-native-build-inputs
# Set JAVA_HOME automatically.
mkdir -p $out/nix-support
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ let result = stdenv.mkDerivation rec {
ln -s $jrePath/lib/${architecture}/libnpjp2.so $jrePath/lib/${architecture}/plugins
mkdir -p $out/nix-support
echo -n "${setJavaClassPath}" > $out/nix-support/propagated-native-build-inputs
printLines ${setJavaClassPath} > $out/nix-support/propagated-native-build-inputs
# Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
--- swift/utils/build-script-impl 2017-01-23 12:47:20.401326309 -0600
+++ swift-pax/utils/build-script-impl 2017-01-23 13:24:10.339366996 -0600
@@ -1823,6 +1823,16 @@ function set_lldb_xcodebuild_options() {
@@ -1823,6 +1823,17 @@ function set_lldb_xcodebuild_options() {
fi
}

+## XXX: Taken from nixpkgs /pkgs/stdenv/generic/setup.sh
+isELF() {
+ local fn="$1"
+ local fd
+ local magic
+ exec {fd}< "$fn"
+ read -n 4 -u $fd magic
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/compilers/zulu/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ in stdenv.mkDerivation rec {
find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
mkdir -p $out/nix-support
echo -n "${setJavaClassPath}" > $out/nix-support/propagated-native-build-inputs
printLines ${setJavaClassPath} > $out/nix-support/propagated-native-build-inputs
# Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/haskell-modules/generic-builder.nix
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ stdenv.mkDerivation ({
${optionalString isGhcjs ''
for exeDir in "$out/bin/"*.jsexe; do
exe="''${exeDir%.jsexe}"
printf '%s\n' '#!${nodejs}/bin/node' > "$exe"
printLines '#!${nodejs}/bin/node' > "$exe"
cat "$exeDir/all.js" >> "$exe"
chmod +x "$exe"
done
Expand Down
2 changes: 1 addition & 1 deletion pkgs/misc/misc.nix
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ in
*/
collection = {list, name} : runCommand "collection-${name}" {} ''
mkdir -p $out/nix-support
echo ${builtins.toString list} > $out/nix-support/propagated-user-env-packages
printLines ${builtins.toString list} > $out/nix-support/propagated-user-env-packages
'';

/* creates a derivation symlinking references C/C++ libs into one include and lib directory called $out/cdt-envs/${name}
Expand Down
5 changes: 3 additions & 2 deletions pkgs/stdenv/generic/builder.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
export PATH=
for i in $initialPath; do
if [ "$i" = / ]; then i=; fi
PATH=$PATH${PATH:+:}$i/bin
Expand All @@ -15,4 +14,6 @@ cat "$setup" >> $out/setup
# Allow the user to install stdenv using nix-env and get the packages
# in stdenv.
mkdir $out/nix-support
echo $propagatedUserEnvPkgs > $out/nix-support/propagated-user-env-packages
if [ "$propagatedUserEnvPkgs" ]; then
printf '%s\n' $propagatedUserEnvPkgs > $out/nix-support/propagated-user-env-packages
fi
17 changes: 7 additions & 10 deletions pkgs/stdenv/generic/make-derivation.nix
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,10 @@ rec {

dependencies' = let
justMap = map lib.chooseDevOutputs dependencies;
nativeBuildInputs = lib.elemAt justMap 0
nativeBuildInputs = lib.head justMap
++ lib.optional separateDebugInfo ../../build-support/setup-hooks/separate-debug-info.sh
++ lib.optional stdenv.hostPlatform.isWindows ../../build-support/setup-hooks/win-dll-link.sh;
buildInputs = lib.elemAt justMap 1
# TODO(@Ericson2314): Should instead also be appended to `nativeBuildInputs`.
++ lib.optional separateDebugInfo ../../build-support/setup-hooks/separate-debug-info.sh;
in [ nativeBuildInputs buildInputs ];
in [ nativeBuildInputs ] ++ lib.tail justMap;

propagatedDependencies' = map lib.chooseDevOutputs propagatedDependencies;

Expand All @@ -64,15 +62,14 @@ rec {
"__impureHostDeps" "__propagatedImpureHostDeps"
"sandboxProfile" "propagatedSandboxProfile"])
// (let
# TODO(@Ericson2314): Reversing of dep lists is just temporary to avoid Darwin mass rebuild.
computedSandboxProfile =
lib.concatMap (input: input.__propagatedSandboxProfile or []) (stdenv.extraBuildInputs ++ lib.concatLists (lib.reverseList dependencies'));
lib.concatMap (input: input.__propagatedSandboxProfile or []) (stdenv.extraBuildInputs ++ lib.concatLists dependencies');
computedPropagatedSandboxProfile =
lib.concatMap (input: input.__propagatedSandboxProfile or []) (lib.concatLists (lib.reverseList propagatedDependencies'));
lib.concatMap (input: input.__propagatedSandboxProfile or []) (lib.concatLists propagatedDependencies');
computedImpureHostDeps =
lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (stdenv.extraBuildInputs ++ lib.concatLists (lib.reverseList dependencies')));
lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (stdenv.extraBuildInputs ++ lib.concatLists dependencies'));
computedPropagatedImpureHostDeps =
lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (lib.concatLists (lib.reverseList propagatedDependencies')));
lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (lib.concatLists propagatedDependencies'));
in
{
builder = attrs.realBuilder or stdenv.shell;
Expand Down
32 changes: 22 additions & 10 deletions pkgs/stdenv/generic/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@ runHook() {
shift
local var="$hookName"
if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
eval "local -a dummy=(\"\${$var[@]}\")"
for hook in "_callImplicitHook 0 $hookName" "${dummy[@]}"; do
local -n var
local hook
for hook in "_callImplicitHook 0 $hookName" "${var[@]}"; do
_eval "$hook" "$@"
done
return 0
Expand All @@ -32,8 +33,9 @@ runOneHook() {
shift
local var="$hookName"
if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
eval "local -a dummy=(\"\${$var[@]}\")"
for hook in "_callImplicitHook 1 $hookName" "${dummy[@]}"; do
local -n var
local hook
for hook in "_callImplicitHook 1 $hookName" "${var[@]}"; do
if _eval "$hook" "$@"; then
return 0
fi
Expand Down Expand Up @@ -192,6 +194,7 @@ _addRpathPrefix() {
# Return success if the specified file is an ELF object.
isELF() {
local fn="$1"
local fd
local magic
exec {fd}< "$fn"
read -n 4 -u $fd magic
Expand All @@ -203,6 +206,7 @@ isELF() {
# "#!").
isScript() {
local fn="$1"
local fd
local magic
if ! [ -x /bin/sh ]; then return 0; fi
exec {fd}< "$fn"
Expand All @@ -211,6 +215,11 @@ isScript() {
if [[ "$magic" =~ \#! ]]; then return 0; else return 1; fi
}

# printf unfortunately will print a trailing newline regardless
printLines() {
[[ $# -gt 0 ]] || return 0
printf '%s\n' "$@"
}

######################################################################
# Initialisation.
Expand Down Expand Up @@ -296,9 +305,12 @@ findInputs() {
fi

if [ -f "$pkg/nix-support/$propagatedBuildInputsFile" ]; then
for i in $(cat "$pkg/nix-support/$propagatedBuildInputsFile"); do
findInputs "$i" $var $propagatedBuildInputsFile
local fd pkgNext
exec {fd}<"$pkg/nix-support/$propagatedBuildInputsFile"
while IFS= read -r -u $fd pkgNext; do
findInputs "$pkgNext" $var $propagatedBuildInputsFile
done
exec {fd}<&-
fi
}

Expand Down Expand Up @@ -790,17 +802,17 @@ fixupPhase() {
fi
if [ -n "$propagated" ]; then
mkdir -p "${!outputDev}/nix-support"
echo "$propagated" > "${!outputDev}/nix-support/propagated-native-build-inputs"
printLines $propagated > "${!outputDev}/nix-support/propagated-native-build-inputs"
fi
else
if [ -n "$propagatedBuildInputs" ]; then
mkdir -p "${!outputDev}/nix-support"
echo "$propagatedBuildInputs" > "${!outputDev}/nix-support/propagated-build-inputs"
printLines $propagatedBuildInputs > "${!outputDev}/nix-support/propagated-build-inputs"
fi

if [ -n "$propagatedNativeBuildInputs" ]; then
mkdir -p "${!outputDev}/nix-support"
echo "$propagatedNativeBuildInputs" > "${!outputDev}/nix-support/propagated-native-build-inputs"
printLines $propagatedNativeBuildInputs > "${!outputDev}/nix-support/propagated-native-build-inputs"
fi
fi

Expand All @@ -813,7 +825,7 @@ fixupPhase() {

if [ -n "$propagatedUserEnvPkgs" ]; then
mkdir -p "${!outputBin}/nix-support"
echo "$propagatedUserEnvPkgs" > "${!outputBin}/nix-support/propagated-user-env-packages"
printLines $propagatedUserEnvPkgs > "${!outputBin}/nix-support/propagated-user-env-packages"
fi

runHook postFixup
Expand Down
4 changes: 3 additions & 1 deletion pkgs/tools/networking/network-manager/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ stdenv.mkDerivation rec {
--replace /usr/bin/ping6 ${inetutils}/bin/ping
substituteInPlace src/devices/nm-arping-manager.c \
--replace '("arping", NULL, NULL);' '("arping", "${iputils}/bin/arping", NULL);'
substituteInPlace src/NetworkManagerUtils.c --replace /sbin/modprobe ${kmod}/bin/modprobe
substituteInPlace data/84-nm-drivers.rules \
--replace /bin/sh ${stdenv.shell}
substituteInPlace data/85-nm-unmanaged.rules \
Expand All @@ -43,6 +42,8 @@ stdenv.mkDerivation rec {
--replace /bin/kill ${coreutils}/bin/kill
substituteInPlace clients/common/nm-vpn-helpers.c \
--subst-var-by openconnect ${openconnect}
substituteInPlace src/nm-core-utils.c \
--subst-var-by modprobeBinPath ${kmod}/bin/modprobe
# to enable link-local connections
configureFlags="$configureFlags --with-udev-dir=$out/lib/udev"
'';
Expand Down Expand Up @@ -79,6 +80,7 @@ stdenv.mkDerivation rec {
url = "https://github.com/NetworkManager/NetworkManager/commit/4e8eddd100bbc8429806a70620c90b72cfd29cb1.patch";
})
./openconnect_helper_path.patch
./modprobe.patch
];

buildInputs = [ systemd libgudev libnl libuuid polkit ppp libndp
Expand Down
11 changes: 11 additions & 0 deletions pkgs/tools/networking/network-manager/modprobe.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/src/nm-core-utils.c 2017-02-15 13:10:27.000000000 +0100
+++ b/src/nm-core-utils.c 2017-07-06 14:28:41.575815695 +0200
@@ -419,7 +419,7 @@

/* construct the argument list */
argv = g_ptr_array_sized_new (4);
- g_ptr_array_add (argv, "/sbin/modprobe");
+ g_ptr_array_add (argv, "@modprobeBinPath@");
g_ptr_array_add (argv, (char *) arg1);

va_start (ap, arg1);

0 comments on commit 0eb4f6f

Please sign in to comment.