diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2015-10-03 13:33:13 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2015-10-03 13:33:37 +0200 |
commit | 5227fb1dd53fcb5918b9342dff4868f4ad68427e (patch) | |
tree | d6cd521e3f67944031216a27f740f28f22b73b41 /pkgs/build-support/vm | |
parent | d6dd3b8bd1eaeeb21dfdb5051cd4732c748ce5d7 (diff) | |
parent | 33373d939a19f465228ddede6d38ce9032b5916b (diff) | |
download | nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.gz nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.bz2 nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.lz nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.xz nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.tar.zst nixlib-5227fb1dd53fcb5918b9342dff4868f4ad68427e.zip |
Merge commit staging+systemd into closure-size
Many non-conflict problems weren't (fully) resolved in this commit yet.
Diffstat (limited to 'pkgs/build-support/vm')
-rw-r--r-- | pkgs/build-support/vm/default.nix | 102 |
1 files changed, 90 insertions, 12 deletions
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 9d45fc2d3a74..b80dc7d9765d 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -113,12 +113,17 @@ rec { mkdir -p /fs/dev mount -o bind /dev /fs/dev + mkdir -p /fs/dev /fs/dev/shm + mount -t tmpfs -o "mode=1777" none /fs/dev/shm + echo "mounting Nix store..." mkdir -p /fs/nix/store mount -t 9p store /fs/nix/store -o trans=virtio,version=9p2000.L,msize=262144,cache=loose - mkdir -p /fs/tmp + mkdir -p /fs/tmp /fs/run /fs/var mount -t tmpfs -o "mode=1777" none /fs/tmp + mount -t tmpfs -o "mode=755" none /fs/run + ln -sfn /run /fs/var/run echo "mounting host's temporary directory..." mkdir -p /fs/tmp/xchg @@ -135,15 +140,7 @@ rec { echo "127.0.0.1 localhost" > /fs/etc/hosts echo "starting stage 2 ($command)" - test -n "$command" - - set +e - chroot /fs $command $out - echo $? > /fs/tmp/xchg/in-vm-exit - - mount -o remount,ro dummy /fs - - poweroff -f + exec switch_root /fs $command $out ''; @@ -176,12 +173,28 @@ rec { ${coreutils}/bin/ln -s ${bash}/bin/sh /bin/sh fi + # Set up automatic kernel module loading. + export MODULE_DIR=${linux}/lib/modules/ + ${coreutils}/bin/cat <<EOF > /run/modprobe + #! /bin/sh + export MODULE_DIR=$MODULE_DIR + exec ${kmod}/bin/modprobe "\$@" + EOF + ${coreutils}/bin/chmod 755 /run/modprobe + echo /run/modprobe > /proc/sys/kernel/modprobe + # For debugging: if this is the second time this image is run, # then don't start the build again, but instead drop the user into # an interactive shell. if test -n "$origBuilder" -a ! -e /.debug; then + exec < /dev/null ${coreutils}/bin/touch /.debug - exec $origBuilder $origArgs + $origBuilder $origArgs + echo $? > /tmp/xchg/in-vm-exit + + ${busybox}/bin/mount -o remount,ro dummy / + + ${busybox}/bin/poweroff -f else export PATH=/bin:/usr/bin:${coreutils}/bin echo "Starting interactive shell..." @@ -682,7 +695,17 @@ rec { runCommand "${name}.nix" { buildInputs = [ perl dpkg ]; } '' for i in ${toString packagesLists}; do echo "adding $i..." - bunzip2 < $i >> ./Packages + case $i in + *.xz | *.lzma) + xz -d < $i >> ./Packages + ;; + *.bz2) + bunzip2 < $i >> ./Packages + ;; + *.gz) + gzip -dc < $i >> ./Packages + ;; + esac done # Work around this bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=452279 @@ -1560,6 +1583,40 @@ rec { packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; }; + ubuntu1504i386 = { + name = "ubuntu-15.04-vivid-i386"; + fullName = "Ubuntu 15.04 Vivid (i386)"; + packagesLists = + [ (fetchurl { + url = mirror://ubuntu/dists/vivid/main/binary-i386/Packages.bz2; + sha256 = "0bf587152fa3fc3524bf3a3caaf46ea43cc640a27b2b448577232f014a3ec1e4"; + }) + (fetchurl { + url = mirror://ubuntu/dists/vivid/universe/binary-i386/Packages.bz2; + sha256 = "3452cff96eb715ca36b73d4d0cdffbf06064cbc30b1097e334a2e493b94c7fac"; + }) + ]; + urlPrefix = mirror://ubuntu; + packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + }; + + ubuntu1504x86_64 = { + name = "ubuntu-15.04-vivid-amd64"; + fullName = "Ubuntu 15.04 Vivid (amd64)"; + packagesList = + [ (fetchurl { + url = mirror://ubuntu/dists/vivid/main/binary-amd64/Packages.bz2; + sha256 = "8f22c9bd389822702e65713e816250aa0d5829d6b3d75fd34f068de5f93de1d9"; + }) + (fetchurl { + url = mirror://ubuntu/dists/vivid/universe/binary-amd64/Packages.bz2; + sha256 = "feb88768e245a63ee04b0f3bcfc8899a1f03b2f831646dc2a59e4e58884b5cb9"; + }) + ]; + urlPrefix = mirror://ubuntu; + packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + }; + debian40i386 = { name = "debian-4.0r9-etch-i386"; fullName = "Debian 4.0r9 Etch (i386)"; @@ -1652,6 +1709,27 @@ rec { packages = commonDebianPackages; }; + debian8i386 = { + name = "debian-8.1-jessie-i386"; + fullName = "Debian 8.1 Jessie (i386)"; + packagesList = fetchurl { + url = mirror://debian/dists/jessie/main/binary-i386/Packages.xz; + sha256 = "e658c2aebc3c0bc529e89de3ad916a71372f0a80161111d86a7dab1026644507"; + }; + urlPrefix = mirror://debian; + packages = commonDebianPackages; + }; + + debian8x86_64 = { + name = "debian-8.1-jessie-amd64"; + fullName = "Debian 8.1 Jessie (amd64)"; + packagesList = fetchurl { + url = mirror://debian/dists/jessie/main/binary-amd64/Packages.xz; + sha256 = "265907f3cb05aff5f653907e9babd4704902f78cd5e355d4cd4ae590e4d5b043"; + }; + urlPrefix = mirror://debian; + packages = commonDebianPackages; + }; }; |