summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-04-10 11:17:52 +0200
committerVladimír Čunát <vcunat@gmail.com>2016-04-10 11:17:52 +0200
commit30f14243c33f1b386273d08a4776aa679c42143d (patch)
treebd123d5c2ab4fef012ae7de6a225c092f8d611b8 /pkgs/build-support
parent50fccad5828fb459760fd7578951bb961a18c0fc (diff)
parent2463e0917318581da94e7ba92703b63128c40424 (diff)
downloadnixlib-30f14243c33f1b386273d08a4776aa679c42143d.tar
nixlib-30f14243c33f1b386273d08a4776aa679c42143d.tar.gz
nixlib-30f14243c33f1b386273d08a4776aa679c42143d.tar.bz2
nixlib-30f14243c33f1b386273d08a4776aa679c42143d.tar.lz
nixlib-30f14243c33f1b386273d08a4776aa679c42143d.tar.xz
nixlib-30f14243c33f1b386273d08a4776aa679c42143d.tar.zst
nixlib-30f14243c33f1b386273d08a4776aa679c42143d.zip
Merge branch 'master' into closure-size
Comparison to master evaluations on Hydra:
  - 1255515 for nixos
  - 1255502 for nixpkgs
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/build-fhs-userenv/default.nix9
-rw-r--r--pkgs/build-support/emacs/wrapper.nix26
-rw-r--r--pkgs/build-support/setup-hooks/use-old-cxx-abi.sh1
-rw-r--r--pkgs/build-support/vm/default.nix19
4 files changed, 32 insertions, 23 deletions
diff --git a/pkgs/build-support/build-fhs-userenv/default.nix b/pkgs/build-support/build-fhs-userenv/default.nix
index a7e1bd11977a..a38f0a4f623d 100644
--- a/pkgs/build-support/build-fhs-userenv/default.nix
+++ b/pkgs/build-support/build-fhs-userenv/default.nix
@@ -1,5 +1,5 @@
 { runCommand, lib, writeText, writeScriptBin, stdenv, ruby } :
-{ env, runScript ? "bash", extraBindMounts ? [], extraInstallCommands ? "", importMeta ? {} } :
+{ env, runScript ? "bash", extraBindMounts ? [], extraInstallCommands ? "", meta ? {}, passthru ? {} } :
 
 let
   name = env.pname;
@@ -27,9 +27,9 @@ let
   '';
 
 in runCommand name {
-  meta = importMeta;
-  passthru.env =
-    runCommand "${name}-shell-env" {
+  inherit meta;
+  passthru = passthru // {
+    env = runCommand "${name}-shell-env" {
       shellHook = ''
         export CHROOTENV_EXTRA_BINDS="${lib.concatStringsSep ":" extraBindMounts}:$CHROOTENV_EXTRA_BINDS"
         exec ${chroot-user}/bin/chroot-user ${env} bash -l ${init "bash"} "$(pwd)"
@@ -40,6 +40,7 @@ in runCommand name {
       echo >&2 ""
       exit 1
     '';
+  };
 } ''
   mkdir -p $out/bin
   cat <<EOF >$out/bin/${name}
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index efee43d852ea..7be4d21bfa8d 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -51,8 +51,11 @@ stdenv.mkDerivation {
   inherit emacs explicitRequires;
   phases = [ "installPhase" ];
   installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/share/emacs/site-lisp
+    readonly SHARE="share/emacs-with-packages"
+
+    mkdir -p "$out/bin"
+    mkdir -p "$out/$SHARE/bin"
+    mkdir -p "$out/$SHARE/site-lisp"
 
     local requires
     for pkg in $explicitRequires; do
@@ -60,29 +63,32 @@ stdenv.mkDerivation {
     done
     # requires now holds all requested packages and their transitive dependencies
 
-    siteStart="$out/share/emacs/site-lisp/site-start.el"
+    siteStart="$out/$SHARE/site-lisp/site-start.el"
 
     # Begin the new site-start.el by loading the original, which sets some
     # NixOS-specific paths. Paths are searched in the reverse of the order
     # they are specified in, so user and system profile paths are searched last.
     cat >"$siteStart" <<EOF
 (load-file "$emacs/share/emacs/site-lisp/site-start.el")
-(add-to-list 'load-path "$out/share/emacs/site-lisp")
+(add-to-list 'load-path "$out/$SHARE/site-lisp")
+(add-to-list 'exec-path "$out/$SHARE/bin")
 EOF
 
     linkPath() {
       local pkg=$1
-      local path=$2
+      local origin_path=$2
+      local dest_path=$3
+
       # Add the path to the search path list, but only if it exists
-      if [[ -d "$pkg/$path" ]]; then
-        lndir -silent "$pkg/$path" "$out/$path"
+      if [[ -d "$pkg/$origin_path" ]]; then
+        lndir -silent "$pkg/$origin_path" "$out/$dest_path"
       fi
     }
 
     # Add a package's paths to site-start.el
     linkEmacsPackage() {
-      linkPath "$1" "bin"
-      linkPath "$1" "share/emacs/site-lisp"
+      linkPath "$1" "bin" "$SHARE/bin"
+      linkPath "$1" "share/emacs/site-lisp" "$SHARE/site-lisp"
     }
 
     # First, link all the explicitly-required packages.
@@ -103,7 +109,7 @@ EOF
       local progname=$(basename "$prog")
       rm -f "$out/bin/$progname"
       makeWrapper "$prog" "$out/bin/$progname" \
-        --suffix EMACSLOADPATH ":" "$out/share/emacs/site-lisp:"
+        --suffix EMACSLOADPATH ":" "$out/$SHARE/site-lisp:"
     done
 
     mkdir -p $out/share
diff --git a/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh b/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh
new file mode 100644
index 000000000000..53335d7a9a7a
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh
@@ -0,0 +1 @@
+export NIX_CFLAGS_COMPILE+=" -D_GLIBCXX_USE_CXX11_ABI=0"
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index dd093dfc2ca7..e670e1ef2258 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -414,12 +414,12 @@ rec {
   fillDiskWithRPMs =
     { size ? 4096, rpms, name, fullName, preInstall ? "", postInstall ? ""
     , runScripts ? true, createRootFS ? defaultCreateRootFS
+    , QEMU_OPTS ? "", memSize ? 512
     , unifiedSystemDir ? false
     }:
 
     runInLinuxVM (stdenv.mkDerivation {
-      inherit name preInstall postInstall rpms;
-      memSize = 512;
+      inherit name preInstall postInstall rpms QEMU_OPTS memSize;
       preVM = createEmptyImage {inherit size fullName;};
 
       buildCommand = ''
@@ -685,10 +685,11 @@ rec {
     , packages, extraPackages ? []
     , preInstall ? "", postInstall ? "", archs ? ["noarch" "i386"]
     , runScripts ? true, createRootFS ? defaultCreateRootFS
+    , QEMU_OPTS ? "", memSize ? 512
     , unifiedSystemDir ? false }:
 
     fillDiskWithRPMs {
-      inherit name fullName size preInstall postInstall runScripts createRootFS unifiedSystemDir;
+      inherit name fullName size preInstall postInstall runScripts createRootFS unifiedSystemDir QEMU_OPTS memSize;
       rpms = import (rpmClosureGenerator {
         inherit name packagesLists urlPrefixes archs;
         packages = packages ++ extraPackages;
@@ -1780,22 +1781,22 @@ rec {
     };
 
     debian8i386 = {
-      name = "debian-8.3-jessie-i386";
-      fullName = "Debian 8.3 Jessie (i386)";
+      name = "debian-8.4-jessie-i386";
+      fullName = "Debian 8.4 Jessie (i386)";
       packagesList = fetchurl {
         url = mirror://debian/dists/jessie/main/binary-i386/Packages.xz;
-        sha256 = "1240d404bd99afbeec042c08fdab049f0b5a984a393cac7c221553ab08f637f5";
+        sha256 = "1j8swc1nzsi20vbcmya2sv0fzcnz7lhwb32lxabgcwm3xlkzlg58";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
     };
 
     debian8x86_64 = {
-      name = "debian-8.3-jessie-amd64";
-      fullName = "Debian 8.3 Jessie (amd64)";
+      name = "debian-8.4-jessie-amd64";
+      fullName = "Debian 8.4 Jessie (amd64)";
       packagesList = fetchurl {
         url = mirror://debian/dists/jessie/main/binary-amd64/Packages.xz;
-        sha256 = "ec937c1b3bbfe4803f0fa43681b19d089eb6b355455ac7caa17ec8e9ff604e56";
+        sha256 = "0kipisyjkhczghzqj4a8y1n4az9c4c8lsj8sw7js13b053lpj6ga";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;