Commit Graph

365 Commits

Author SHA1 Message Date
aszlig
5241bb1d5e
vm/windows: Avoid shadowing the Nix store.
This is done by putting the non-initrd /nix/store into a subdirectory,
which we then chroot to and pass along the SSH command.

Also, we now collect the exit code after the chroot command and power
off the VM thereafter, because the store is no longer shadowed and we
have still access to the busybox inside the initrd.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:51:58 +01:00
aszlig
a1d7974acd
vm/windows: Remove Samba from installMode.
This should trim down possible dependencies on the base installation and
hereby reduce the need for reinstallation of the damn VM to only changes
that affect the Windows installation and the base Cygwin + OpenSSH
setup.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:51:58 +01:00
aszlig
fedf13e6cf
vm/windows: Implement and use "xchg" share.
This now finally introduces our xchg share and also uses it for
exchanging state while suspending a VM. However, accessing the _real_
Nix store still isn't possible because we're shadowing the directory in
the initrd.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:51:58 +01:00
aszlig
0ce1fd07fe
vm/windows: Reintroduce setting up /nix/store.
Now we're doing this at the point where we're saving the VM state.
Unfortunately it's not quite right, because the controller VM is shut
down _before_ we're saving the state, so the share gets disconnected
despite autodisconnect being deactivated during setup.

We can get around this issue by finally introducing the xchg share,
which is the last item to be implemented before we can merge to master.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:51:57 +01:00
aszlig
aa65a7057f
vm/windows: Properly escape shell command.
Security-wise it's not a big issue because we're still sandboxed, but I
really don't want to write something like \\\\\\\\192.168.0.2\\\\share
in order to set up network shares.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:51:57 +01:00
aszlig
cfa859d792
vm/windows: Don't init /nix/store on install.
We're going to do this during the suspendedVM phase, so we're able to
more easily change the shares without reinstalling the whole VM.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:51:57 +01:00
aszlig
3e91192f07
vm/windows: Wait for VDE switch to startup.
This could possibly cause flapping whenever qemu is too fast in starting
up. As we are running with the shell's -e flag, the socat check also
ensures that the VDE switch is properly started and causes the whole
build to fail, should it not start up within 20 seconds.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:51:56 +01:00
aszlig
c731467e2c
vm/windows: Split install into several stages.
These stages are in particular:

 * Install of the bare Windows VM with Cygwin and shut down.
 * Boot up the same VM again without the installation media and dump the
   VMs memory to state.gz.
 * Resume from state.gz and build whatever we want to build.

Every single stage involves a new "controller", which is more like an
abstraction on the Nix side that constructs the madness described in
276b72fb93.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:51:56 +01:00
aszlig
5105e7f0bf
vm/windows: Update sha256 of Cygwin's setup.ini.
This is kinda stupid to do every little time the file is automatically
regenerated upstream. But let's see how often that happens and whether
it will become a major annoyance or not, and if yes, we might be forced
to include it in our source tree.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:50:55 +01:00
aszlig
9b1862ca1f
vm/windows: Move creating SSH key into install/.
This SSH key is specifically only for accessing the installed Cygwin
within the Windows VM, so we only need to expose the private key. Yes,
you heard right, the private key. It's not security-relevant because the
machine is completely read-only, only exposed to the filesystem and
networking is not available.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:50:54 +01:00
aszlig
4e21215d52
vm/windows: Move the installer into install/.
At least the largest portion of the installer, because in the end we
don't want the installer to *actually* save the state but only prepare
the base image.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:50:54 +01:00
aszlig
276b72fb93
vm: Introduce new Windows VM installer for Cygwin.
After quite a lot of fighting against Windows and its various
limitations, this new is the base architecture for installing and
accessing the Windows VM and thus the Cygwin environment inside it:

                .------------.
          .---> | vde_switch |
          |     `-[#]----[#]-'
          |        |      |
         ,'       .'      `---.___
       ,'    192.168.0.1          `.
       |          |            192.168.0.2
      ,'    _____[#]____           |
    ,'     |            |   ______[#]______
    |      | Windows VM |  |    .--'       |
    |      |____________|  |    |          |
    |             |  /|\   |  .-|          |
    | .---------. |   |    |  | |          |
  .-|-| manager |-'   |    |  | |          |
  | | `---------'     |    |  | |          |
  | |                 |    |  | |          |
  | | .-------------. |    | Samba         |
  | | | BOOTSTRAP   | |    |  | |          |
  | | |-------------| |    |  | |   .------|
  | `-| spawn VMs   |-+--> |  | `---| xchg | <-------.
  |   |-------------|      |  | .---^------|         |
  |   | install     |---.  |  `-| nixstore | <----.  |
  |   |-------------|   |  |    `----------|      |  |
  |---| suspend VM  |   |  |               |      |  |
  |   `------.------'   |  | Controller VM |      |  |
  |          |          |  |_______________|      |  |
  |       .--'          |         /|\            VirtIO
  |       |           __|__________:____________  |  |
  |      \|/         |  |          `.           | |  |
  | .------------.   |  |           :           | |  |
  | | REAL BUILD |   |  |   .-------^--------.  | |  |
  | |------------|   |  `-> | serial console |  | |  |
  `-| revive VM  |   |      `----------------'  | |  |
    |------------|   |------------.             | |  |
    | build      |-->| /nix/store >>>-----------|-'  |
    |------------|   |------------|             |    |
    | collect    |<--| xchg       >>>-----------|----'
    `-----.------'   |------------'             |
          |          |                          |
         \|/         |    |  |  __   ___  |     |
                     |    |--| |  | (__  -|-    |
    F I N I S H E D  |    |  | |__| ___)  |     |
                     |__________________________|

This might look a bit overwhelming, but let me try to explain:

We're starting at the base derivation ("BOOTSTRAP" above), where we
actually install the Cygwin envirenment. Over there we basically fire up
a vde_switch process and two virtual machines: One is the Windows
machine, the other is a NixOS machine, which serves as some kind of
proxy between the host and the Windows machine.

The reason we're doing this, is because we don't have a lot of options
for sharing files between a stock Windows machine and the host. In
earlier experiments, I've tried to communicate with the Windows guest by
using pipes and OpenSSH, but obviously this wasn't a big speed rush (or
to say it bluntly: It was fucking slow).

Using TCP/IP directly for accessing the guest would have been another
option, but it could lead to possible errors when the port or a range of
ports are in use at the Host system. Also, we would need to punch a hole
into the sandbox of the Nix builder (as it doesn't allow networking),
which in turn will possibly undermine deterministic builds/runs (well,
at least as deterministic as it can be, we're running Windows,
remember?).

So, let's continue: The responsibility of the NixOS (controller) VM is
to just wait until an SSH port becomes available on the Windows VM,
whereas the Windows VM itself is installed using an unattended
installation file provided via a virtual floppy image.

With the installation of the basic Windows OS, we directly install
Cygwin and start up an OpenSSH service.

At this point the bootstrapping is almost finished and as soon as the
port is available, the controller VM sets up Samba shares and makes it
available as drive letters within Windows and as bind mounts (for
example /nix/store) within Cygwin.

Finally we're making a snapshot of the memory of the Windows VM in order
to revive it within a few seconds when we want to build something.

Now, the build process itself is fairly straightforward: Revive VM and
build based on existing store derivations and collect the result _and_
the exit code from the xchg share/directory.

Conclusion: This architecture may sound a bit complicated, but we're
trying to achieve deterministic and reproducable builds and/or test
runs.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-26 04:50:53 +01:00
Petr Rockai
97721af469 VMs: Add Fedora 17 to the list of distros (only had 16 and 18). 2014-02-15 12:57:21 +01:00
Eelco Dolstra
8ba1fdef00 debian: Update to 7.4 2014-02-14 20:29:43 +01:00
Shea Levy
b529a34b4a Add Fedora 20
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-19 20:50:46 -05:00
Rob Vermaas
1625743902 Fix Fedora8 vm builds. 2014-01-15 21:32:38 +01:00
Rob Vermaas
ed9520bfb5 Allow specifying extra qemu flags using QEMU_OPTS. Replace CentOS 6.3 with CentOS 6.5 (6.3 is removed from site). 2014-01-14 22:51:26 +01:00
Eelco Dolstra
3abcd7e268 debian: Update to 7.3 2014-01-06 15:51:00 +01:00
Eelco Dolstra
4747796a9e Build RPMs for i686 rather than i386
The default target (i386-linux) causes flags like "-march i386" to be
added, which breaks on recent Fedora releases (18 and up), resulting
in errors like:

  /usr/lib/gcc/i686-redhat-linux/4.7.2/../../../../include/c++/4.7.2/ext/atomicity.h:48: undefined reference to `__atomic_fetch_add_4'

So set the target to i686-linux.

http://hydra.nixos.org/build/6567357
2013-10-23 12:55:07 +02:00
Eelco Dolstra
391de89913 Debian 7: Update to 7.2
Also rename "debian70" to "debian7" to reflect the Wheezy's new
versioning scheme.
2013-10-23 11:30:51 +02:00
Eelco Dolstra
d6f97c3601 Debian 6: Update to 6.0.8 2013-10-23 11:17:20 +02:00
Eelco Dolstra
27e91e0044 Add Fedora 19 2013-10-23 11:15:45 +02:00
Eelco Dolstra
34fcf33c0b Add Ubuntu 13.10 2013-10-23 11:08:12 +02:00
Eelco Dolstra
d846e97656 VM builds: Use Linux 3.10
3.4 apparently gives corrupt 9pfs data on x86.  See e.g.

  http://hydra.nixos.org/build/5661036

where reading /nix/store/kfldnrrsq0lbbv13gjxdfb3vb1sbaz88-vm-run-stage2
gives garbage.  Strangely it doesn't happen here:

  http://hydra.nixos.org/build/5658978

Ah well.
2013-08-07 14:48:22 +02:00
Eelco Dolstra
4342a32deb VM builds: Reduce kernel verbosity 2013-08-01 14:35:31 +02:00
Eelco Dolstra
d077851b7d VM builds: Use the default kernel 2013-08-01 14:35:31 +02:00
Eelco Dolstra
b5fcb5b67d Use the qemu-kvm wrapper 2013-07-31 14:53:35 +02:00
aszlig
69dccda3c0
VM builds: Update debian Wheezy image to v7.1.
Wheezy has been released on June 15th and on all mirrors the SHA256 hash
of Packages.bz2 has changed to reflect the new release, so let's update.

Here is the release announcement from Debian:

http://www.debian.org/News/2013/20130615

It also seems that the versioning scheme has changed in version 7.x, so
they seem to have switched to a two digit versioning scheme. This means,
that the attribute name "debian70..." should really be something like
"debian7...", but I'm keeping the attribute as-is to not break
references.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-07-30 05:59:59 +02:00
aszlig
cd4b5e1a35
fillDiskWithDebs: Create fake start-stop-daemon.
This is needed in order to prevent services from starting while
populating the image with the contents of the .deb files. The procedure
used here is exactly the same as used in debootstrap.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-07-30 05:59:40 +02:00
Eelco Dolstra
59aca26975 * Use 'or'. 2013-07-15 14:33:27 +02:00
Rob Vermaas
da7db90068 Add CentOS 6.4 to vm images 2013-07-05 17:52:42 +02:00
Rob Vermaas
51a22a8f8a Add loopback network device and localhost entry to /etc/hosts for VM tests. 2013-07-05 15:02:43 +02:00
Eelco Dolstra
9f5f30a7e6 Remove runInGenericVM
It's not used anywhere and probably doesn't work anymore.
2013-07-05 00:17:04 +02:00
Eelco Dolstra
0e386d0c13 VM builds: Use 9p/virtfs instead of CIFS
9p (with caching enabled) is much faster than CIFS and doesn't require
Samba or virtual networking.  For instance, building GNU Hello with
CIFS takes ~323s on my laptop, but with 9p it takes 54s.

More measurements will be needed to see if "cache=fscache" is really
faster than "cache=loose" (the former seems to be a little bit
faster).
2013-07-05 00:17:04 +02:00
Eelco Dolstra
9efe759dd8 VM builds: Increase the default memory size to 512 MB 2013-07-05 00:17:04 +02:00
Eelco Dolstra
2321f2d55c VM builds: Panic on OOM 2013-07-05 00:17:04 +02:00
Eelco Dolstra
5f8571405b VM builds: Use ext4 instead of ext2 2013-07-05 00:17:03 +02:00
Eelco Dolstra
ed37a6b465 VM builds: Use qemu instead of the obsolete qemu-kvm 2013-07-05 00:17:03 +02:00
Eelco Dolstra
7afc1149d9 testRPMImage: Use x86_64 image 2013-07-04 18:27:26 +02:00
Eelco Dolstra
5cfa68ab50 Reinstate sec=none
Seems to be required, despite the subsequent sec=ntlm. But the NixOS
VM tests work fine without this flag :-S

http://hydra.nixos.org/build/5451901
2013-07-03 14:38:56 +02:00
Eelco Dolstra
75e34854f6 Remove redundant cifs option 2013-07-02 17:03:29 +02:00
Shea Levy
dd42dd480b runInLinuxImage: Fix derivation overriding.
This only ever worked because runInLinuxVM happened to call
overrideDerivation, which itself erroneously passed arbitrarily-added
attributes to the new call to derivation.

Hopefully this time Eelco won't have to revert my change ;)

Signed-off-by: Shea Levy <shea@shealevy.com>
2013-05-15 01:15:16 -04:00
Eelco Dolstra
9f9620f566 Doh 2013-05-13 22:04:33 +02:00
Eelco Dolstra
278b255388 Restore unintentionally deleted line 2013-05-13 18:15:02 +02:00
Eelco Dolstra
9df603b300 Use Linux 3.9 for VM builds
This seems to fix CIFS hangs like: http://hydra.nixos.org/build/4916655
2013-05-13 18:12:12 +02:00
Eelco Dolstra
6fb4c62f25 Fix some old Fedora builds
http://hydra.nixos.org/build/4949447
2013-05-13 17:47:20 +02:00
Eelco Dolstra
5815d18460 Add Fedora 18 2013-05-08 14:08:59 +02:00
Eelco Dolstra
e7480d9cb7 Add Debian 7.0 2013-05-07 11:19:46 +02:00
Eelco Dolstra
1073187f78 Add Ubuntu 13.04 2013-05-03 14:01:32 +02:00
Eelco Dolstra
fb600a5d99 Debian VM image: Update to 6.0.7 2013-03-15 12:48:35 +01:00
Eelco Dolstra
b643316a42 VM builds: Use BusyBox
http://hydra.nixos.org/build/3510928
2012-12-18 16:57:11 +01:00
Lluís Batlle i Rossell
62fa1b8782 Adding ext4 to vmTools. Otherwise, nixos build-vm fails with 'useBootLoader'. 2012-12-16 21:43:35 +01:00
Eelco Dolstra
7f115621ca Add Ubuntu 12.10 2012-12-04 20:06:07 +01:00
Eelco Dolstra
85650db656 Update Debian Squeeze to 6.0.6 2012-12-04 19:58:21 +01:00
Eelco Dolstra
b29d424115 Get deb-closure.pl to work with the latest dpkg 2012-12-04 19:56:31 +01:00
Eelco Dolstra
2ab46949cf Add universe repo for older Ubuntu releases 2012-09-13 17:15:58 -04:00
Eelco Dolstra
fc35bed470 Fix incorrect version of Ubuntu Maverick (10.10) 2012-09-13 17:15:58 -04:00
Eelco Dolstra
20de8c8086 Make the "universe" repository available to the Ubuntu image generator
Also fix Ubuntu 12.04 name from "oneiric" to "precise".
2012-08-27 13:53:07 -04:00
Eelco Dolstra
bacc6ab790 Remove trailing whitespace 2012-08-27 13:53:07 -04:00
Eelco Dolstra
395718e927 Create /dev/random and /dev/urandom in VMs
WWW::Curl needs this to prevent "Fatal: no entropy gathering module
detected".
2012-08-27 13:53:07 -04:00
Eelco Dolstra
a54734e087 vmTools: Provide hook to add more Samba shares 2012-08-16 10:55:13 -04:00
Rob Vermaas
0cbfd8ff04 * update hashes for debian queeze
svn path=/nixpkgs/trunk/; revision=34316
2012-06-01 17:53:53 +00:00
Eelco Dolstra
b6917d3b73 * Added Ubuntu 12.04.
svn path=/nixpkgs/trunk/; revision=34055
2012-05-11 02:04:14 +00:00
Eelco Dolstra
9aa30ba705 * Pass -cpu kvm64 to keep GMP from barfing.
svn path=/nixpkgs/trunk/; revision=33848
2012-04-19 18:44:02 +00:00
Eelco Dolstra
8b0bc7a745 * Add modules required by Linux 3.2.
svn path=/nixpkgs/trunk/; revision=33742
2012-04-11 07:45:12 +00:00
Ludovic Courtès
9d125d64bf VM: Upgrade to Debian 5.0.10.
svn path=/nixpkgs/trunk/; revision=33008
2012-03-12 08:13:10 +00:00
Ludovic Courtès
0a433261c5 VM: Make sure `smbd' is in QEMU's $PATH.
svn path=/nixpkgs/trunk/; revision=32987
2012-03-11 14:23:32 +00:00
Ludovic Courtès
5d159f8a06 runInGenericVM: Use whatever the current system is.
svn path=/nixpkgs/trunk/; revision=32970
2012-03-10 11:44:47 +00:00
Ludovic Courtès
2f01e58e61 vmTools: Use stdenv's glibc in `initrd-utils'.
svn path=/nixpkgs/trunk/; revision=32878
2012-03-08 09:40:45 +00:00
Eelco Dolstra
ed325cd1ae * We accidentally lost xz support in rpm. This broke RPM builds
(http://hydra.nixos.org/build/2230623).

svn path=/nixpkgs/trunk/; revision=32847
2012-03-07 09:47:22 +00:00
Eelco Dolstra
5e4c7aa8f3 * This substitution causes bash to hang. Urgh. Bash's pattern
substitutions aren't very reliable.

svn path=/nixpkgs/trunk/; revision=32830
2012-03-06 18:49:44 +00:00
Yury G. Kudryashov
5144a19987 svn merge ^/nixpkgs/trunk
There were a few merge conflicts due to ensureDir->mkdir -p migration

svn path=/nixpkgs/branches/stdenv-updates/; revision=32174
2012-02-10 10:24:30 +00:00
Eelco Dolstra
f680a3c175 * Put back the Ubuntu 10.10 images that I accidentally removed.
svn path=/nixpkgs/trunk/; revision=32141
2012-02-08 11:38:46 +00:00
Eelco Dolstra
c303784a89 * Debian 6.0.4.
svn path=/nixpkgs/trunk/; revision=32112
2012-02-07 13:19:03 +00:00
Eelco Dolstra
78ab1dd995 * Added Fedora 16 images.
svn path=/nixpkgs/trunk/; revision=32110
2012-02-07 13:14:25 +00:00
Eelco Dolstra
b22276deea * Add disk images for Ubuntu 11.10.
svn path=/nixpkgs/trunk/; revision=32109
2012-02-07 12:38:32 +00:00
Yury G. Kudryashov
215a07c1a9 svn merge ^/nixpkgs/trunk
Merge conflicts:
* unzip (almost trivial)
* dvswitch (trivial)
* gmp (copied result of `git merge`)

The last item introduced gmp-5.0.3, thus full rebuild.
+ensureDir->mkdir -p in TeX packages was catched by git but not svn.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32091
2012-02-06 23:03:12 +00:00
Rob Vermaas
d52b0c377f rpmclosure, remove exit
svn path=/nixpkgs/trunk/; revision=31965
2012-02-02 09:54:16 +00:00
Rob Vermaas
6a3feaa3dc rpmclosure, also take into account rel attribute when versions are the same
svn path=/nixpkgs/trunk/; revision=31964
2012-02-02 09:53:45 +00:00
Eelco Dolstra
c556a6ea46 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless
function, so obsolete it.

svn path=/nixpkgs/branches/stdenv-updates/; revision=31644
2012-01-18 20:16:00 +00:00
Yury G. Kudryashov
08761e83fc Merge trunk
svn path=/nixpkgs/branches/stdenv-updates/; revision=31207
2012-01-02 14:12:40 +00:00
Rob Vermaas
a8785e7b72 use simple version compare in stead of timestamps to determine newer package
svn path=/nixpkgs/trunk/; revision=31108
2011-12-27 12:56:07 +00:00
Eelco Dolstra
c044d7f56f * Forgot a few utillinuxng references.
svn path=/nixpkgs/branches/stdenv-updates/; revision=30866
2011-12-13 12:57:32 +00:00
Eelco Dolstra
4d0b546566 * Update Debian Squeeze to 6.0.3.
svn path=/nixpkgs/trunk/; revision=30310
2011-11-07 23:05:50 +00:00
Rob Vermaas
40f1e4e289 * rpm-closure.pl: add possibility to use multiple repositories
* default.nix: do not assume fixed filesystem type when mounting, to allow using other filesystems


svn path=/nixpkgs/trunk/; revision=29757
2011-10-11 13:22:09 +00:00
Ludovic Courtès
e1fb6adbe8 Update Debian Lenny (5.0.9).
svn path=/nixpkgs/trunk/; revision=29699
2011-10-06 13:27:58 +00:00
Eelco Dolstra
eb9a0145ea * Don't mount the entire host filesystem, but just /nix/store and a
temporary directory.  This is necessary to isolate NixOS VMs from
  the host filesystem for security.

svn path=/nixpkgs/trunk/; revision=28427
2011-08-09 14:05:40 +00:00
Eelco Dolstra
b6d96e9782 * For building Fedora disk images, use the "Everything" repo rather
than the "Fedora" repo, since the latter doesn't contain some
  packages (like perl-DBD-SQLite).

svn path=/nixpkgs/trunk/; revision=28389
2011-08-08 14:01:16 +00:00
Eelco Dolstra
4e7e83a7ee * Debian Squeeze updated to 6.0.2.1.
svn path=/nixpkgs/trunk/; revision=28385
2011-08-08 13:16:20 +00:00
Eelco Dolstra
aa5646ff3b * For some reason Samba insists on setting the g+w bit on newly
created directories, which is a security risk.  So create $out with
  the proper permissions before starting the VM.

svn path=/nixpkgs/trunk/; revision=27095
2011-05-02 14:55:16 +00:00
Eelco Dolstra
377b97a37b * Drop the unnecessary boot=on flag.
svn path=/nixpkgs/trunk/; revision=26104
2011-02-24 21:48:32 +00:00
Eelco Dolstra
167c520570 * Added Debian 6.0 and Ubuntu 10.10.
svn path=/nixpkgs/trunk/; revision=25968
2011-02-14 16:52:32 +00:00
Rob Vermaas
81019cbdb9 vmTools: add some arguments with previous defaults
svn path=/nixpkgs/trunk/; revision=25742
2011-02-01 12:11:05 +00:00
Rob Vermaas
ebf9889a9e extractmtdfs: bigger size mtdram, extractfs: support cramfs
svn path=/nixpkgs/trunk/; revision=25739
2011-01-31 18:02:46 +00:00
Rob Vermaas
06be15cb76 add hfs/hfsplus/squashfs support to extractfs
svn path=/nixpkgs/trunk/; revision=25737
2011-01-31 15:26:03 +00:00
Eelco Dolstra
7f4a312e35 * Handle FreeBSD filesystems.
svn path=/nixpkgs/trunk/; revision=25624
2011-01-19 10:59:26 +00:00
Rob Vermaas
ba23376718 added vm function to extract some filesystem
svn path=/nixpkgs/trunk/; revision=25622
2011-01-19 09:06:12 +00:00
Rob Vermaas
adeb63e4c2 remove aterm242fixes
svn path=/nixpkgs/trunk/; revision=25407
2011-01-05 09:42:56 +00:00
Eelco Dolstra
04ec671c8a * Run smbd in its own session / process group (setsid) because smbd
now kills its process group when it exits.  Without setsid, this
  ends up killing the parent (i.e., the builder).
* Use port 445 instead of 139 because the CIFS kernel module tries
  port 445 first.  If there is an actual Samba running on the host, it
  would end up connecting to that one instead of our own and fail.

svn path=/nixpkgs/trunk/; revision=25017
2010-12-06 19:03:32 +00:00
Rob Vermaas
f26b267858 fix debian lenny hashes
svn path=/nixpkgs/trunk/; revision=24986
2010-12-06 08:03:11 +00:00
Rob Vermaas
a074da499c vm/default.nix: updating debian lenny hashes
svn path=/nixpkgs/trunk/; revision=23674
2010-09-07 14:33:46 +00:00
Eelco Dolstra
3cdc3c4abe * Mark the VM builds as requiring KVM support.
svn path=/nixpkgs/trunk/; revision=23526
2010-08-29 21:27:06 +00:00
Rob Vermaas
105d0e540b startSamba: reintroduce force user option set to current user
svn path=/nixpkgs/trunk/; revision=23242
2010-08-19 08:31:13 +00:00
Rob Vermaas
fa7ec152db revert earlier change
svn path=/nixpkgs/trunk/; revision=23222
2010-08-18 11:03:36 +00:00
Rob Vermaas
b2c12ca3e9 added 'force user = root' to smb.conf to prevent permissions problems in vms caused by unknown uids
svn path=/nixpkgs/trunk/; revision=23220
2010-08-18 10:13:48 +00:00
Eelco Dolstra
1df1f9faac * Debian 5.0.5.
svn path=/nixpkgs/trunk/; revision=22654
2010-07-19 07:55:18 +00:00
Eelco Dolstra
3d442ad185 * Apply a patch that is apparently required to make the kernel work
properly on Amazon EC2.
* Always apply the CIFS timeout patch.  It's rather annoying to have
  to build a separate kernel for the VM tests.

svn path=/nixpkgs/trunk/; revision=22630
2010-07-18 21:10:46 +00:00
Eelco Dolstra
b3bd6e9eee * Doh.
svn path=/nixpkgs/trunk/; revision=22350
2010-06-20 23:24:52 +00:00
Eelco Dolstra
cb5bcfa04a * In the VM tests, apply a patch to increase the 15s timeout on CIFS
operations to 120s.  This is necessary if the host is heavily
  loaded.  For instance, in the Hydra build farm, if there are many
  concurrent jobs, VM builds often fail because they hit the timeout.

svn path=/nixpkgs/trunk/; revision=22347
2010-06-20 20:52:08 +00:00
Eelco Dolstra
0f77615483 svn path=/nixpkgs/trunk/; revision=22333 2010-06-18 19:57:11 +00:00
Eelco Dolstra
7a1dde5d25 * Fix the download of discontinued openSUSE releases.
svn path=/nixpkgs/trunk/; revision=22324
2010-06-18 11:49:57 +00:00
Eelco Dolstra
124f4dc7dd * Doh.
svn path=/nixpkgs/trunk/; revision=22289
2010-06-16 06:56:12 +00:00
Eelco Dolstra
1626db66f5 * Make the script to start Samba available to the VM stuff in NixOS.
* Use socat's "exec" and "nofork" options to reduce the number of
  processes.  Also, if smbd exits abnormally, exit from the smbd
  restart loop.

svn path=/nixpkgs/trunk/; revision=22279
2010-06-15 16:13:10 +00:00
Eelco Dolstra
22f7cf6976 svn path=/nixpkgs/trunk/; revision=22266 2010-06-14 18:42:52 +00:00
Eelco Dolstra
98dff00f52 * Clean up diskImages/diskImageFuns/diskImageExtraFuns.
svn path=/nixpkgs/trunk/; revision=22265
2010-06-14 18:42:18 +00:00
Eelco Dolstra
ef674da49e * Cleanup the definition of `diskImages' using mapAttrs.
svn path=/nixpkgs/trunk/; revision=22263
2010-06-14 17:34:02 +00:00
Eelco Dolstra
c0d2c74038 * Added Ubuntu 10.04 "Lucid".
svn path=/nixpkgs/trunk/; revision=22261
2010-06-14 17:05:26 +00:00
Eelco Dolstra
81fa7ae7b2 * Added Fedora 13.
svn path=/nixpkgs/trunk/; revision=22259
2010-06-14 16:48:36 +00:00
Eelco Dolstra
b570419efa * Urgh, if $TMPDIR is very long we run into the 108 character limit on
Unix domain socket paths.  So use ./samba instead of $TMPDIR/samba.

svn path=/nixpkgs/trunk/; revision=22256
2010-06-14 11:18:57 +00:00
Eelco Dolstra
cc27927f8a * Hack to prevent the socat process from hanging the builder.
svn path=/nixpkgs/trunk/; revision=22251
2010-06-14 07:39:13 +00:00
Eelco Dolstra
88a5d8915a * Support repeated mounting of the CIFS share. Necessary because the
mount tends to timeout if the host is heavily loaded.

svn path=/nixpkgs/trunk/; revision=22250
2010-06-14 00:18:54 +00:00
Eelco Dolstra
1f8e6d4814 * The -smb flag in QEMU/KVM is unreliable: it doesn't work without the
-no-kvm-irqchip flag, and on the Hydra machines only works on the
  rather old KVM 76.  So as a workaround, don't use -smb, but use
  QEMU's "guestfwd" feature to forward 10.0.2.4:139 in the guest to a
  Unix domain socket on the host connected to Samba.
* Use "cache=writeback" to improve performance a lot.
* Use "werror=report" to make QEMU crash instead of hang if the host
  filesystem is full.

svn path=/nixpkgs/trunk/; revision=22249
2010-06-13 23:49:16 +00:00
Eelco Dolstra
6dddd07402 * vmTools: don't use klibc anymore. Just use utillinux/bash/etc.
svn path=/nixpkgs/trunk/; revision=22209
2010-06-10 12:28:04 +00:00
Eelco Dolstra
b8c2a1bebe svn path=/nixpkgs/trunk/; revision=22125 2010-06-03 14:29:12 +00:00
Eelco Dolstra
8e0860b5ca * Debian 4.0 updated to r9.
svn path=/nixpkgs/trunk/; revision=22079
2010-06-01 10:44:36 +00:00
Lluís Batlle i Rossell
9bcb6277f3 Changing linux kernel references from vmlinuz to bzImage.
This way we get a simpler kernel build script.

svn path=/nixpkgs/trunk/; revision=20094
2010-02-18 11:34:48 +00:00
Eelco Dolstra
a617a7c239 * Sync with the trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=19786
2010-02-03 14:23:43 +00:00
Eelco Dolstra
1c92df1384 * Debian 5.0.4.
svn path=/nixpkgs/trunk/; revision=19748
2010-02-01 15:17:34 +00:00
Lluís Batlle i Rossell
bcba809460 Updating from trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=19654
2010-01-25 18:52:07 +00:00
Eelco Dolstra
b3625c242b * Add the ext3 module to the initrd. The Amazon image generator needs
it.

svn path=/nixpkgs/trunk/; revision=19585
2010-01-20 21:09:33 +00:00
Lluís Batlle i Rossell
3e10ba6bb9 Fixing an evaluation error: kernelPackages -> linuxPackages
svn path=/nixpkgs/branches/stdenv-updates/; revision=19077
2009-12-22 09:23:17 +00:00
Eelco Dolstra
798c6f3960 * Include the ext2 and unix modules in the initrd.
* Don't assume that /dev/vda has major 253, since that's not always
  the case.
* Use Linux 2.6.32.

svn path=/nixpkgs/trunk/; revision=19031
2009-12-18 12:10:35 +00:00
Eelco Dolstra
b2c9e50203 * Added Fedora 12. This requires the latest RPM, because the RPMs are
compressed with xz.

svn path=/nixpkgs/trunk/; revision=18868
2009-12-09 22:35:46 +00:00
Eelco Dolstra
519e7870b6 * Move `modifyDerivation' from build-support/vm to lib and rename it
to `overrideDerivation'.

svn path=/nixpkgs/trunk/; revision=18466
2009-11-19 16:43:58 +00:00
Eelco Dolstra
d843b24fbe * Added Ubuntu 9.10 ("Karmic Koala").
svn path=/nixpkgs/trunk/; revision=18142
2009-11-05 14:49:17 +00:00
Rob Vermaas
3653e372b0 dash as default shell for debian/ubuntu systems
svn path=/nixpkgs/trunk/; revision=17590
2009-10-02 09:34:37 +00:00
Rob Vermaas
c2fe94783d svn path=/nixpkgs/trunk/; revision=17588 2009-10-02 09:11:42 +00:00
Rob Vermaas
a00a2ffdba add functions for adding extra virtual packges to images, leave old one for backw.compatibility for now
svn path=/nixpkgs/trunk/; revision=17561
2009-10-01 07:49:55 +00:00
Rob Vermaas
4d5141bd2c extra deb/rpm changes
svn path=/nixpkgs/trunk/; revision=17560
2009-10-01 07:25:50 +00:00
Eelco Dolstra
23c0f1c25e * Added openSUSE 11.1.
svn path=/nixpkgs/trunk/; revision=17397
2009-09-24 07:40:30 +00:00
Eelco Dolstra
36df4d3bc2 svn path=/nixpkgs/trunk/; revision=17387 2009-09-23 20:46:22 +00:00
Eelco Dolstra
f467c6d131 * Retry CIFS mounts a few times. Hopefully this fixes problems such
as in http://hydra.nixos.org/build/79029 (i.e. "CIFS VFS: No
  response for cmd 114 mid 1", "CIFS VFS: cifs_mount failed w/return
  code = -112").

svn path=/nixpkgs/trunk/; revision=17365
2009-09-23 15:17:47 +00:00
Eelco Dolstra
251c7207cf * Revert to KVM 76 in the VM build functions. The latest qemu-kvm has
weird performance and data corruption regressions in the build farm.

svn path=/nixpkgs/trunk/; revision=17364
2009-09-23 14:24:37 +00:00
Eelco Dolstra
15c8ec03a0 svn path=/nixpkgs/trunk/; revision=17248 2009-09-18 14:07:52 +00:00
Eelco Dolstra
04c225a4c7 * Debian 5.0.3.
svn path=/nixpkgs/trunk/; revision=17247
2009-09-18 14:05:45 +00:00
Eelco Dolstra
0b063ec39f * Use qemu-kvm.
svn path=/nixpkgs/trunk/; revision=17243
2009-09-18 10:42:50 +00:00
Rob Vermaas
0806854b24 changed mem size for rpm/deb build vms, added version specific packages for fedora9++
svn path=/nixpkgs/trunk/; revision=16136
2009-07-02 12:53:25 +00:00
Eelco Dolstra
674211ac9d * Revive klibc 1.5 for now since vmtools still uses its insmod.
svn path=/nixpkgs/trunk/; revision=16040
2009-06-25 08:22:51 +00:00
Eelco Dolstra
cee3ca1228 svn path=/nixpkgs/trunk/; revision=15909 2009-06-09 14:32:31 +00:00
Eelco Dolstra
813909d153 * Fedora 11 uses SHA-256 hashes instead of SHA-1 in primary.xml.
svn path=/nixpkgs/trunk/; revision=15908
2009-06-09 14:25:45 +00:00
Eelco Dolstra
d8cc981d90 * Fedora 11. Completely untested.
svn path=/nixpkgs/trunk/; revision=15907
2009-06-09 14:10:16 +00:00
Rob Vermaas
a46e339352 typo
svn path=/nixpkgs/trunk/; revision=15846
2009-06-03 19:20:13 +00:00
Rob Vermaas
59ae0e5bae svn path=/nixpkgs/trunk/; revision=15845 2009-06-03 19:19:24 +00:00
Eelco Dolstra
cf54a62384 svn path=/nixpkgs/trunk/; revision=15178 2009-04-20 12:52:24 +00:00
Eelco Dolstra
ac24816344 * Move all the Perl packages out of all-packages.nix into a separate
file, perl-packages.nix.

svn path=/nixpkgs/trunk/; revision=15171
2009-04-20 12:08:09 +00:00
Eelco Dolstra
c5197de22d * Bump the names as well.
svn path=/nixpkgs/trunk/; revision=15031
2009-04-14 13:36:16 +00:00
Rob Vermaas
edca05ee30 build-support/vm/default.nix: updated debian hashes
svn path=/nixpkgs/trunk/; revision=15020
2009-04-14 08:05:10 +00:00
Rob Vermaas
518eab2313 pkgs/build-support/vm/default.nix typo
svn path=/nixpkgs/trunk/; revision=14975
2009-04-09 14:38:08 +00:00
Rob Vermaas
39ba8d06ec pkgs/build-support/vm/default.nix: added ubuntu 904
svn path=/nixpkgs/trunk/; revision=14974
2009-04-09 14:29:19 +00:00
Eelco Dolstra
4962864417 * Fixed the mount-cifs source URL (copied from the stdenv-branch).
svn path=/nixpkgs/trunk/; revision=14958
2009-04-09 08:12:16 +00:00
Eelco Dolstra
84a0bd9c83 * Use qcow2.
svn path=/nixpkgs/trunk/; revision=14296
2009-03-02 14:31:33 +00:00
Eelco Dolstra
f19aea6d5a * 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
2009-03-02 13:22:31 +00:00
Eelco Dolstra
a8b75358b3 svn path=/nixpkgs/trunk/; revision=14219 2009-02-24 12:14:48 +00:00
Eelco Dolstra
7782a3189e * Added Debian 5.0 (Lenny). Added the "login" package to the base
image, otherwise the post-installs script of the "passwd" package
  will fail because /etc/login.defs is missing.  This also fixes the
  Ubuntu 8.10 image generation, woohoo!

svn path=/nixpkgs/trunk/; revision=14217
2009-02-24 10:56:42 +00:00
Eelco Dolstra
dab3b03a14 * Debian 4.0r7.
svn path=/nixpkgs/trunk/; revision=14202
2009-02-23 10:58:48 +00:00
Eelco Dolstra
3cc0c9b44e svn path=/nixpkgs/trunk/; revision=13917 2009-01-30 14:00:18 +00:00
Eelco Dolstra
82ab4c6105 * buildRPM: Set the %_topdir variable to a known location, otherwise
we run into trouble on Fedora 10 (RPM 4.6), where the default is no
  longer /usr/src/something but $HOME/something.

svn path=/nixpkgs/trunk/; revision=13466
2008-11-27 18:58:37 +00:00
Eelco Dolstra
5dad580963 * Added Fedora 10.
svn path=/nixpkgs/trunk/; revision=13428
2008-11-26 11:14:39 +00:00
Eelco Dolstra
c90bd0756c * Automatically build Debian packages using checkinstall, as suggested
by Pjotr Prins a while back.  This could also be used to generate
  RPMs for packages that don't have a spec-file.

* Added checkinstall to Nixpkgs.  However we don't use our own build
  yet because with it "make install" segfaults in a Debian VM, while
  the pre-built binary does work.

svn path=/nixpkgs/trunk/; revision=13400
2008-11-25 02:20:41 +00:00
Eelco Dolstra
da8bcbd9a5 * Moved more stuff from the release tree.
svn path=/nixpkgs/trunk/; revision=13395
2008-11-25 00:20:51 +00:00
Eelco Dolstra
957a8b876a svn path=/nixpkgs/trunk/; revision=13280 2008-11-13 12:45:08 +00:00
Eelco Dolstra
d22734c3e7 svn path=/nixpkgs/trunk/; revision=13273 2008-11-12 17:19:12 +00:00
Eelco Dolstra
8a3757b7f1 * Added Ubuntu 8.10. It doesn't work yet though (the passwd package
fails to install).

svn path=/nixpkgs/trunk/; revision=13272
2008-11-12 17:15:09 +00:00
Eelco Dolstra
4f61f1a7bc * Debian 4.0r5.
svn path=/nixpkgs/trunk/; revision=13261
2008-11-12 12:07:35 +00:00
Eelco Dolstra
000ba65363 * fail() is long gone.
svn path=/nixpkgs/trunk/; revision=13155
2008-10-29 17:19:49 +00:00
Eelco Dolstra
bcf24b6683 * KVM 76.
svn path=/nixpkgs/trunk/; revision=13023
2008-10-09 13:33:29 +00:00
Eelco Dolstra
617a289fa7 * Provide some more disk space by default. Qcow makes it cheap anyway.
svn path=/nixpkgs/trunk/; revision=12880
2008-09-18 10:45:22 +00:00
Eelco Dolstra
93456721f5 * Ubuntu 8.04 Hardy (i386 and amd64).
svn path=/nixpkgs/trunk/; revision=12850
2008-09-12 13:34:41 +00:00
Eelco Dolstra
8745d2f85d * Added an x86_64 (amd64) image for Debian.
* Updated Debian 4.0 to r4a.  Dropped the revision ("r3", "r4a") from
  the attribute name since Debian doesn't seem to keep old revisions
  available anyway.

svn path=/nixpkgs/trunk/; revision=12849
2008-09-12 13:17:52 +00:00
Eelco Dolstra
119473aac6 * Add RPM builds for Fedora 9 (x86_64).
svn path=/nixpkgs/trunk/; revision=12847
2008-09-12 12:24:07 +00:00
Eelco Dolstra
6fdbb17f99 * Print the uname.
svn path=/nixpkgs/trunk/; revision=12846
2008-09-12 12:06:40 +00:00
Eelco Dolstra
4632fa1449 * Mirrors for ancient SUSE releases.
svn path=/nixpkgs/trunk/; revision=12821
2008-09-08 07:44:43 +00:00
Eelco Dolstra
e3ec3f4782 * -no-kvm-irqchip seems to prevent random KVM networking hangs on
2.6.25 kernels.

svn path=/nixpkgs/trunk/; revision=12807
2008-09-05 11:39:51 +00:00
Eelco Dolstra
74087918ff * KVM updated to version 74. This one finally has good performance
for userspace networking / Samba again.
* vmtools: use KVM 74 and Linux 2.6.26, and use virtio for networking
  / disk access.

svn path=/nixpkgs/trunk/; revision=12768
2008-08-29 14:08:54 +00:00
Eelco Dolstra
5b732a061f * QEMU_SMBD_COMMAND is gone.
svn path=/nixpkgs/trunk/; revision=12719
2008-08-26 11:39:10 +00:00
Eelco Dolstra
a3d259adf0 * Remove `~' from Debian package filenames (they're not allowed in the
Nix store at top-level for portability reasons).  (NIX-106)

svn path=/nixpkgs/trunk/; revision=12133
2008-06-17 07:53:09 +00:00
Eelco Dolstra
402eaefd76 * Doh!
svn path=/nixpkgs/trunk/; revision=11922
2008-05-28 15:21:06 +00:00
Eelco Dolstra
7345e814aa * Use kernelPackages.
svn path=/nixpkgs/trunk/; revision=11897
2008-05-26 13:30:17 +00:00
Eelco Dolstra
9037d9287a * Added a Fedora 9 image.
svn path=/nixpkgs/trunk/; revision=11865
2008-05-21 09:35:15 +00:00
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
Martin Bravenboer
2086656c45 getopt is in util-linux on opensuse
svn path=/nixpkgs/trunk/; revision=11620
2008-04-13 21:04:21 +00:00
Martin Bravenboer
4dfe3d704f suse doesn't have getopt ...
svn path=/nixpkgs/trunk/; revision=11619
2008-04-13 20:55:21 +00:00
Martin Bravenboer
a99990c5f6 Added getopt to the opensuse package list.
svn path=/nixpkgs/trunk/; revision=11617
2008-04-13 20:31:07 +00:00
Martin Bravenboer
d3411fd235 svn path=/nixpkgs/trunk/; revision=11605 2008-04-12 05:19:37 +00:00
Martin Bravenboer
ec52a66db4 Install all RPMs at the same time
svn path=/nixpkgs/trunk/; revision=11603
2008-04-12 05:03:36 +00:00
Eelco Dolstra
2f52d09204 * Use another Red Hat mirror.
svn path=/nixpkgs/trunk/; revision=11577
2008-04-11 16:20:09 +00:00
Eelco Dolstra
631586df47 * Don't run the RPM post-install scripts for Fedora 2/3. It seems to
hang.

svn path=/nixpkgs/trunk/; revision=11575
2008-04-11 15:36:03 +00:00
Eelco Dolstra
75222355db * Image generation for openSUSE 10.3.
svn path=/nixpkgs/trunk/; revision=11570
2008-04-11 11:52:40 +00:00
Eelco Dolstra
9c8f2009f8 * Generate the Fedora 5 RPM closure automatically.
svn path=/nixpkgs/trunk/; revision=11514
2008-04-09 12:51:54 +00:00
Eelco Dolstra
d000918941 * Moved the Debian and RPM closure generators to vm/default.nix.
* In addition to the `diskImages' set, there now is a `diskImageFuns'
  set that holds functions to build a disk image for a specific
  distribution, given a list of names of top-level packages that
  should be included in the image.  This makes it easier to customise
  an image (e.g. if you want to build an RPM in an image with some
  very specific dependencies that aren't in the default image).

* Added Fedora 6.

svn path=/nixpkgs/trunk/; revision=11513
2008-04-09 12:02:15 +00:00