* Put all the RPM/Debian images in an attribute set `diskImage'.
svn path=/nixpkgs/trunk/; revision=11181
This commit is contained in:
parent
113fafd778
commit
fd2a77eeb0
@ -210,7 +210,7 @@ rec {
|
|||||||
qemu-img create -f qcow $diskImage "${toString size}M"
|
qemu-img create -f qcow $diskImage "${toString size}M"
|
||||||
|
|
||||||
mkdir $out/nix-support
|
mkdir $out/nix-support
|
||||||
echo ${fullName} > $out/nix-support/full-name
|
echo "${fullName}" > $out/nix-support/full-name
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
@ -368,18 +368,28 @@ rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
eval "$preBuild"
|
||||||
|
|
||||||
# Hacky: RPM looks for <basename>.spec inside the tarball, so
|
# Hacky: RPM looks for <basename>.spec inside the tarball, so
|
||||||
# strip off the hash.
|
# strip off the hash.
|
||||||
stripHash "$src"
|
stripHash "$src"
|
||||||
srcName="$strippedName"
|
srcName="$strippedName"
|
||||||
ln -s "$src" "$srcName"
|
cp "$src" "$srcName" # `ln' doesn't work always work: RPM requires that the file is owned by root
|
||||||
|
|
||||||
rpmbuild -vv -ta "$srcName"
|
rpmbuild -vv -ta "$srcName" || fail
|
||||||
|
|
||||||
|
eval "$postBuild"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
ensureDir $out/rpms
|
ensureDir $out/rpms
|
||||||
find /usr/src -name "*.rpm" -exec cp {} $out/rpms \;
|
find /usr/src -name "*.rpm" -exec cp {} $out/rpms \;
|
||||||
|
|
||||||
|
for i in $out/rpms/*.rpm; do
|
||||||
|
header "Generated RPM/SRPM: $i"
|
||||||
|
rpm -qip $i
|
||||||
|
stopNest
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@ -462,4 +472,59 @@ rec {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* A bunch of disk images. */
|
||||||
|
|
||||||
|
diskImages = {
|
||||||
|
|
||||||
|
redhat9i386 = fillDiskWithRPMs {
|
||||||
|
name = "redhat-9-i386-image";
|
||||||
|
fullName = "Red Hat Linux 9 (i386)";
|
||||||
|
size = 768;
|
||||||
|
rpms = import ./rpm/redhat-9-i386.nix {inherit fetchurl;};
|
||||||
|
};
|
||||||
|
|
||||||
|
suse90i386 = fillDiskWithRPMs {
|
||||||
|
name = "suse-9.0-i386-image";
|
||||||
|
fullName = "SUSE Linux 9.0 (i386)";
|
||||||
|
size = 768;
|
||||||
|
rpms = import ./rpm/suse-9-i386.nix {inherit fetchurl;};
|
||||||
|
};
|
||||||
|
|
||||||
|
fedora2i386 = fillDiskWithRPMs {
|
||||||
|
name = "fedora-core-2-i386-image";
|
||||||
|
fullName = "Fedora Core 2 (i386)";
|
||||||
|
size = 768;
|
||||||
|
rpms = import ./rpm/fedora-2-i386.nix {inherit fetchurl;};
|
||||||
|
};
|
||||||
|
|
||||||
|
fedora3i386 = fillDiskWithRPMs {
|
||||||
|
name = "fedora-core-3-i386-image";
|
||||||
|
fullName = "Fedora Core 3 (i386)";
|
||||||
|
size = 768;
|
||||||
|
rpms = import ./rpm/fedora-3-i386.nix {inherit fetchurl;};
|
||||||
|
};
|
||||||
|
|
||||||
|
fedora5i386 = fillDiskWithRPMs {
|
||||||
|
name = "fedora-core-5-i386-image";
|
||||||
|
fullName = "Fedora Core 5 (i386)";
|
||||||
|
size = 768;
|
||||||
|
rpms = import ./rpm/fedora-5-i386.nix {inherit fetchurl;};
|
||||||
|
};
|
||||||
|
|
||||||
|
ubuntu710i386 = fillDiskWithDebs {
|
||||||
|
name = "ubuntu-7.10-gutsy-i386-image";
|
||||||
|
fullName = "Ubuntu 7.10 Gutsy (i386)";
|
||||||
|
size = 512;
|
||||||
|
debs = import ./deb/ubuntu-7.10-gutsy-i386.nix {inherit fetchurl;};
|
||||||
|
};
|
||||||
|
|
||||||
|
debian40r3i386 = fillDiskWithDebs {
|
||||||
|
name = "debian-4.0r3-etch-i386-image";
|
||||||
|
fullName = "Debian 4.0r3 Etch (i386)";
|
||||||
|
size = 512;
|
||||||
|
debs = import ./deb/debian-4.0r3-etch-i386.nix {inherit fetchurl;};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
pkgs:
|
|
||||||
|
|
||||||
rec {
|
|
||||||
|
|
||||||
stdenv = pkgs.stdenv;
|
|
||||||
|
|
||||||
|
|
||||||
fillDiskWithRPMs = {size ? 1024, rpms, name, fullName, postInstall ? null}:
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
builder = ./fill-disk-with-rpms.sh;
|
|
||||||
worker = ./fill-disk-worker.sh;
|
|
||||||
buildInputs = [pkgs.uml pkgs.utillinux];
|
|
||||||
inherit (pkgs) sysvinit e2fsprogs rpm;
|
|
||||||
inherit rpms size name fullName postInstall;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
runInUML = args: stdenv.mkDerivation (args // {
|
|
||||||
inherit (args) name image;
|
|
||||||
builder = ./run-in-uml.sh;
|
|
||||||
actualBuilder = args.builder;
|
|
||||||
boot = ./run-in-uml-boot.sh;
|
|
||||||
buildInputs = [pkgs.uml pkgs.utillinux];
|
|
||||||
inherit (pkgs) sysvinit utillinux;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
redhat90Image = fillDiskWithRPMs {
|
|
||||||
rpms = (import ./redhat-9-packages.nix) {inherit (pkgs) fetchurl;};
|
|
||||||
name = "redhat-9.0";
|
|
||||||
fullName = "Red Hat 9.0";
|
|
||||||
postInstall = ./redhat-postinstall.sh;
|
|
||||||
};
|
|
||||||
|
|
||||||
suse90Image = fillDiskWithRPMs {
|
|
||||||
rpms = (import ./suse-9-packages.nix) {inherit (pkgs) fetchurl;};
|
|
||||||
name = "suse-9.0";
|
|
||||||
fullName = "SuSE 9.0";
|
|
||||||
};
|
|
||||||
|
|
||||||
fedora2Image = fillDiskWithRPMs {
|
|
||||||
rpms = (import ./fedora-2-packages.nix) {inherit (pkgs) fetchurl;};
|
|
||||||
name = "fedora-core-2";
|
|
||||||
fullName = "Fedora Core 2";
|
|
||||||
postInstall = ./fedora-postinstall.sh;
|
|
||||||
};
|
|
||||||
|
|
||||||
fedora3Image = fillDiskWithRPMs {
|
|
||||||
rpms = (import ./fedora-3-packages.nix) {inherit (pkgs) fetchurl;};
|
|
||||||
name = "fedora-core-3";
|
|
||||||
fullName = "Fedora Core 3";
|
|
||||||
postInstall = ./fedora-postinstall.sh;
|
|
||||||
};
|
|
||||||
|
|
||||||
fedora5Image = fillDiskWithRPMs {
|
|
||||||
rpms = (import ./fedora-5-packages.nix) {inherit (pkgs) fetchurl;};
|
|
||||||
name = "fedora-core-5";
|
|
||||||
fullName = "Fedora Core 5";
|
|
||||||
};
|
|
||||||
}
|
|
@ -8,47 +8,23 @@ rec {
|
|||||||
buildPatchelfInVM = runInLinuxVM patchelf;
|
buildPatchelfInVM = runInLinuxVM patchelf;
|
||||||
|
|
||||||
|
|
||||||
rpmImage = fillDiskWithRPMs {
|
testRPMImage = makeImageTestScript diskImages.fedora5i386;
|
||||||
name = "fedora-image";
|
|
||||||
fullName = "Fedora Core 3";
|
|
||||||
size = 1024;
|
|
||||||
rpms = import ./rpm/fedora-3-packages.nix {inherit fetchurl;};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
testRPMImage = makeImageTestScript rpmImage;
|
|
||||||
|
|
||||||
|
|
||||||
buildPatchelfRPM = buildRPM {
|
buildPatchelfRPM = buildRPM {
|
||||||
name = "patchelf-rpm";
|
name = "patchelf-rpm";
|
||||||
src = patchelf.src;
|
src = patchelf.src;
|
||||||
diskImage = rpmImage;
|
diskImage = diskImages.fedora5i386;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
ubuntuImage = fillDiskWithDebs {
|
testUbuntuImage = makeImageTestScript diskImages.ubuntu710i386;
|
||||||
name = "ubuntu-image";
|
|
||||||
fullName = "Ubuntu 7.10 Gutsy";
|
|
||||||
size = 256;
|
|
||||||
debs = import ./deb/ubuntu-7.10-gutsy-i386.nix {inherit fetchurl;};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
debianImage = fillDiskWithDebs {
|
|
||||||
name = "debian-image";
|
|
||||||
fullName = "Debian 4.0r3 Etch";
|
|
||||||
size = 256;
|
|
||||||
debs = import ./deb/debian-4.0r3-etch-i386.nix {inherit fetchurl;};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
testUbuntuImage = makeImageTestScript ubuntuImage;
|
|
||||||
|
|
||||||
|
|
||||||
buildInDebian = runInLinuxImage (stdenv.mkDerivation {
|
buildInDebian = runInLinuxImage (stdenv.mkDerivation {
|
||||||
name = "deb-compile";
|
name = "deb-compile";
|
||||||
src = nixUnstable.src;
|
src = nixUnstable.src;
|
||||||
diskImage = debianImage;
|
diskImage = diskImages.debian40r3i386;
|
||||||
memSize = 512;
|
memSize = 512;
|
||||||
phases = "sysInfoPhase unpackPhase patchPhase configurePhase buildPhase checkPhase installPhase fixupPhase distPhase";
|
phases = "sysInfoPhase unpackPhase patchPhase configurePhase buildPhase checkPhase installPhase fixupPhase distPhase";
|
||||||
sysInfoPhase = ''
|
sysInfoPhase = ''
|
||||||
|
Loading…
x
Reference in New Issue
Block a user