nixpkgs/pkgs/build-support/vm/test.nix
Eelco Dolstra 03f51200c2 * A function `runInGenericVM' that performs a build in an arbitrary VM
image (i.e., it can contain any OS that obeys the interface
  documented in the comment).  See `testFreeBSD' for an example that
  performs a build of the ATerm library on FreeBSD 7.0.  This will be
  used in the build farm to perform builds for platforms for which we
  cannot synthesize VM images automatically.

svn path=/nixpkgs/trunk/; revision=11753
2008-04-29 12:32:17 +00:00

70 lines
1.3 KiB
Nix

with import ../../.. {};
with vmTools;
rec {
# Run the PatchELF derivation in a VM.
buildPatchelfInVM = runInLinuxVM patchelf;
testRPMImage = makeImageTestScript diskImages.fedora8i386;
buildPatchelfRPM = buildRPM {
name = "patchelf-rpm";
src = patchelf.src;
diskImage = diskImages.fedora5i386;
};
testUbuntuImage = makeImageTestScript diskImages.ubuntu710i386;
buildInDebian = runInLinuxImage (stdenv.mkDerivation {
name = "deb-compile";
src = nixUnstable.src;
diskImage = diskImages.debian40r3i386;
memSize = 512;
phases = "sysInfoPhase unpackPhase patchPhase configurePhase buildPhase checkPhase installPhase fixupPhase distPhase";
sysInfoPhase = ''
dpkg-query --list
'';
});
testFreeBSD = runInGenericVM {
name = "aterm-freebsd";
src = aterm242fixes.src;
diskImage = "/tmp/freebsd-7.0.qcow";
postPreVM = ''
cp $src aterm.tar.bz2
'';
buildCommand = ''
set > /tmp/my-env
. /mnt/saved-env
. /tmp/my-env
unset TEMP
unset TEMPDIR
unset TMP
unset TMPDIR
set -x
echo "Hello World!!!"
mkdir /mnt/out
echo "bar" > /mnt/out/foo
cd /tmp
tar xvf /mnt/aterm.tar.bz2
cd aterm-*
./configure --prefix=/mnt/out
make
make install
'';
};
}