summary refs log tree commit diff
path: root/pkgs/build-support/vm
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-03-02 13:22:31 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-03-02 13:22:31 +0000
commitf19aea6d5a94f930120894aefbe886d379c430eb (patch)
treeafdda1433eec00434431e45b4ddb643d73aadd4a /pkgs/build-support/vm
parentdf84d143c1d08d73909294cfd604bc899650c5e1 (diff)
downloadnixlib-f19aea6d5a94f930120894aefbe886d379c430eb.tar
nixlib-f19aea6d5a94f930120894aefbe886d379c430eb.tar.gz
nixlib-f19aea6d5a94f930120894aefbe886d379c430eb.tar.bz2
nixlib-f19aea6d5a94f930120894aefbe886d379c430eb.tar.lz
nixlib-f19aea6d5a94f930120894aefbe886d379c430eb.tar.xz
nixlib-f19aea6d5a94f930120894aefbe886d379c430eb.tar.zst
nixlib-f19aea6d5a94f930120894aefbe886d379c430eb.zip
* Added openSUSE 11.0.
* Create some device nodes in the RPM/Deb disk images, since modern
  distributions may not provide any device nodes (they're all
  generated by udev).

svn path=/nixpkgs/trunk/; revision=14293
Diffstat (limited to 'pkgs/build-support/vm')
-rw-r--r--pkgs/build-support/vm/default.nix42
1 files changed, 36 insertions, 6 deletions
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 1719d21d3fba..4ad67cd0ced9 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; };