diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 1719d21d3fb..4ad67cd0ced 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -31,6 +31,15 @@ rec { allowedReferences = []; # prevent accidents like glibc being included in the initrd }; + + createDeviceNodes = dev: + '' + mknod ${dev}/null c 1 3 + mknod ${dev}/zero c 1 5 + mknod ${dev}/tty c 5 0 + mknod ${dev}/vda b 253 0 + ''; + stage1Init = writeScript "vm-run-stage1" '' #! ${klibcShrunk}/bin/sh.shared -e @@ -75,10 +84,7 @@ rec { done mount -t tmpfs none /dev - mknod /dev/null c 1 3 - mknod /dev/zero c 1 5 - mknod /dev/tty c 5 0 - mknod /dev/vda b 253 0 + ${createDeviceNodes "/dev"} ipconfig 10.0.2.15:::::eth0:none @@ -230,6 +236,7 @@ rec { touch /mnt/.debug mkdir /mnt/proc /mnt/dev /mnt/sys /mnt/bin + ${createDeviceNodes "/mnt/dev"} ''; @@ -748,6 +755,28 @@ rec { archs = ["noarch" "i586"]; } // args); + opensuse110i386 = args: makeImageFromRPMDist ({ + name = "opensuse-11.0-i586"; + fullName = "openSUSE 11.0 (i586)"; + packagesList = fetchurl { + url = mirror://opensuse/distribution/11.0/repo/oss/suse/repodata/primary.xml.gz; + sha256 = "13rv855aj8p3h1zpsji5xa1wpkhgq94gcxzvg05l2b68b15q3mwn"; + }; + urlPrefix = mirror://opensuse/distribution/11.0/repo/oss/suse/; + archs = ["noarch" "i586"]; + } // args); + + opensuse110x86_64 = args: makeImageFromRPMDist ({ + name = "opensuse-11.0-x86_64"; + fullName = "openSUSE 11.0 (x86_64)"; + packagesList = fetchurl { + url = mirror://opensuse/distribution/11.0/repo/oss/suse/repodata/primary.xml.gz; + sha256 = "13rv855aj8p3h1zpsji5xa1wpkhgq94gcxzvg05l2b68b15q3mwn"; + }; + urlPrefix = mirror://opensuse/distribution/11.0/repo/oss/suse/; + archs = ["noarch" "x86_64"]; + } // args); + # Interestingly, the SHA-256 hashes provided by Ubuntu in # http://nl.archive.ubuntu.com/ubuntu/dists/{gutsy,hardy}/Release are # wrong, but the SHA-1 and MD5 hashes are correct. Intrepid is fine. @@ -876,7 +905,6 @@ rec { "automake" "bzip2" "curl" - "devs" "diffutils" "findutils" "gawk" @@ -964,7 +992,9 @@ rec { fedora9x86_64 = diskImageFuns.fedora9x86_64 { packages = commonFedoraPackages; }; fedora10i386 = diskImageFuns.fedora10i386 { packages = commonFedoraPackages; }; fedora10x86_64 = diskImageFuns.fedora10x86_64 { packages = commonFedoraPackages; }; - opensuse103i386 = diskImageFuns.opensuse103i386 { packages = commonOpenSUSEPackages; }; + opensuse103i386 = diskImageFuns.opensuse103i386 { packages = commonOpenSUSEPackages ++ ["devs"]; }; + opensuse110i386 = diskImageFuns.opensuse110i386 { packages = commonOpenSUSEPackages; }; + opensuse110x86_64 = diskImageFuns.opensuse110x86_64 { packages = commonOpenSUSEPackages; }; ubuntu710i386 = diskImageFuns.ubuntu710i386 { packages = commonDebianPackages; }; ubuntu804i386 = diskImageFuns.ubuntu804i386 { packages = commonDebianPackages; };