Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Aycan iRiCAN 2014-06-28 17:32:15 +03:00
commit 83e224cacb
44 changed files with 128 additions and 13 deletions

View File

@ -37,7 +37,7 @@ rec {
# `driver' is the script that runs the network. # `driver' is the script that runs the network.
runTests = driver: runTests = driver:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "vm-test-run"; name = "vm-test-run-${driver.testName}";
requiredSystemFeatures = [ "kvm" "nixos-test" ]; requiredSystemFeatures = [ "kvm" "nixos-test" ];
@ -68,9 +68,10 @@ rec {
makeTest = makeTest =
{ testScript, makeCoverageReport ? false, ... } @ t: { testScript, makeCoverageReport ? false, name ? "unnamed", ... } @ t:
let let
testDriverName = "nixos-test-driver-${name}";
nodes = buildVirtualNetwork ( nodes = buildVirtualNetwork (
t.nodes or (if t ? machine then { machine = t.machine; } else { })); t.nodes or (if t ? machine then { machine = t.machine; } else { }));
@ -88,10 +89,11 @@ rec {
# Generate onvenience wrappers for running the test driver # Generate onvenience wrappers for running the test driver
# interactively with the specified network, and for starting the # interactively with the specified network, and for starting the
# VMs from the command line. # VMs from the command line.
driver = runCommand "nixos-test-driver" driver = runCommand testDriverName
{ buildInputs = [ makeWrapper]; { buildInputs = [ makeWrapper];
testScript = testScript'; testScript = testScript';
preferLocalBuild = true; preferLocalBuild = true;
testName = name;
} }
'' ''
mkdir -p $out/bin mkdir -p $out/bin

View File

@ -1,6 +1,7 @@
# Test whether `avahi-daemon' and `libnss-mdns' work as expected. # Test whether `avahi-daemon' and `libnss-mdns' work as expected.
import ./make-test.nix { import ./make-test.nix {
name = "avahi";
nodes = { nodes = {
one = one =

View File

@ -23,6 +23,7 @@ let
in in
{ {
name = "bittorrent";
nodes = nodes =
{ tracker = { tracker =

View File

@ -6,6 +6,8 @@
with import ../lib/build-vms.nix { inherit nixos nixpkgs system; }; with import ../lib/build-vms.nix { inherit nixos nixpkgs system; };
rec { rec {
name = "check-filesystems";
nodes = { nodes = {
share = {pkgs, config, ...}: { share = {pkgs, config, ...}: {
services.nfs.server.enable = true; services.nfs.server.enable = true;

View File

@ -1,6 +1,7 @@
# Test for NixOS' container support. # Test for NixOS' container support.
import ./make-test.nix { import ./make-test.nix {
name = "containers";
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -1,4 +1,5 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "firefox";
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -1,6 +1,7 @@
# Test the firewall module. # Test the firewall module.
import ./make-test.nix { import ./make-test.nix {
name = "firewall";
nodes = nodes =
{ walled = { walled =

View File

@ -1,4 +1,5 @@
import ./make-test.nix { import ./make-test.nix {
name = "gnome3";
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -1,4 +1,5 @@
import ./make-test.nix { import ./make-test.nix {
name = "gnome3_12";
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -1,6 +1,8 @@
# This test runs influxdb and checks if influxdb is up and running # This test runs influxdb and checks if influxdb is up and running
import ./make-test.nix { import ./make-test.nix {
name = "influxdb";
nodes = { nodes = {
one = { config, pkgs, ... }: { one = { config, pkgs, ... }: {
services.influxdb.enable = true; services.influxdb.enable = true;

View File

@ -215,10 +215,11 @@ let
''; '';
makeInstallerTest = makeInstallerTest = name:
{ createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda" }: { createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda" }:
makeTest { makeTest {
inherit iso; inherit iso;
name = "installer-" + name;
nodes = if testChannel then { inherit webserver; } else { }; nodes = if testChannel then { inherit webserver; } else { };
testScript = testScriptFun { testScript = testScriptFun {
inherit createPartitions testChannel useEFI grubVersion grubDevice; inherit createPartitions testChannel useEFI grubVersion grubDevice;
@ -233,7 +234,7 @@ in {
# The (almost) simplest partitioning scheme: a swap partition and # The (almost) simplest partitioning scheme: a swap partition and
# one big filesystem partition. # one big filesystem partition.
simple = makeInstallerTest simple = makeInstallerTest "simple"
{ createPartitions = { createPartitions =
'' ''
$machine->succeed( $machine->succeed(
@ -251,7 +252,7 @@ in {
}; };
# Same as the previous, but now with a separate /boot partition. # Same as the previous, but now with a separate /boot partition.
separateBoot = makeInstallerTest separateBoot = makeInstallerTest "separateBoot"
{ createPartitions = { createPartitions =
'' ''
$machine->succeed( $machine->succeed(
@ -273,7 +274,7 @@ in {
# Create two physical LVM partitions combined into one volume group # Create two physical LVM partitions combined into one volume group
# that contains the logical swap and root partitions. # that contains the logical swap and root partitions.
lvm = makeInstallerTest lvm = makeInstallerTest "lvm"
{ createPartitions = { createPartitions =
'' ''
$machine->succeed( $machine->succeed(
@ -295,7 +296,7 @@ in {
''; '';
}; };
swraid = makeInstallerTest swraid = makeInstallerTest "swraid"
{ createPartitions = { createPartitions =
'' ''
$machine->succeed( $machine->succeed(
@ -328,7 +329,7 @@ in {
}; };
# Test a basic install using GRUB 1. # Test a basic install using GRUB 1.
grub1 = makeInstallerTest grub1 = makeInstallerTest "grub1"
{ createPartitions = { createPartitions =
'' ''
$machine->succeed( $machine->succeed(
@ -348,7 +349,7 @@ in {
}; };
# Test an EFI install. # Test an EFI install.
efi = makeInstallerTest efi = makeInstallerTest "efi"
{ createPartitions = { createPartitions =
'' ''
$machine->succeed( $machine->succeed(
@ -369,6 +370,7 @@ in {
# Rebuild the CD configuration with a little modification. # Rebuild the CD configuration with a little modification.
rebuildCD = makeTest rebuildCD = makeTest
{ inherit iso; { inherit iso;
name = "rebuild-CD";
nodes = { }; nodes = { };
testScript = testScript =
'' ''

View File

@ -2,6 +2,7 @@
# solicication/advertisement using radvd works. # solicication/advertisement using radvd works.
import ./make-test.nix { import ./make-test.nix {
name = "ipv6";
nodes = nodes =
{ client = { config, pkgs, ... }: { }; { client = { config, pkgs, ... }: { };

View File

@ -4,6 +4,7 @@
# 3. jenkins service not started on slave node # 3. jenkins service not started on slave node
import ./make-test.nix { import ./make-test.nix {
name = "jenkins";
nodes = { nodes = {

View File

@ -1,4 +1,5 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "kde4";
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -1,6 +1,7 @@
# Test whether fast reboots via kexec work. # Test whether fast reboots via kexec work.
import ./make-test.nix { import ./make-test.nix {
name = "kexec";
machine = { config, pkgs, ... }: machine = { config, pkgs, ... }:
{ virtualisation.vlans = [ ]; }; { virtualisation.vlans = [ ]; };

View File

@ -1,6 +1,7 @@
import ./make-test.nix ({ pkgs, latestKernel ? false, ... }: import ./make-test.nix ({ pkgs, latestKernel ? false, ... }:
{ {
name = "login";
machine = machine =
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:

View File

@ -2,6 +2,7 @@
# elasticsearch is started. # elasticsearch is started.
import ./make-test.nix { import ./make-test.nix {
name = "logstash";
nodes = { nodes = {
one = one =

View File

@ -1,6 +1,7 @@
# Miscellaneous small tests that don't warrant their own VM run. # Miscellaneous small tests that don't warrant their own VM run.
import ./make-test.nix { import ./make-test.nix {
name = "misc";
machine = machine =
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:

View File

@ -1,6 +1,8 @@
# Simple example to showcase distributed tests using NixOS VMs. # Simple example to showcase distributed tests using NixOS VMs.
import ./make-test.nix { import ./make-test.nix {
name = "mpich";
nodes = { nodes = {
master = master =
{ config, pkgs, ... }: { { config, pkgs, ... }: {

View File

@ -7,6 +7,8 @@ let
}; };
in in
{ {
name = "mumble";
nodes = { nodes = {
server = { config, pkgs, ... }: { server = { config, pkgs, ... }: {
services.murmur.enable = true; services.murmur.enable = true;

View File

@ -2,6 +2,7 @@
# machine. # machine.
import ./make-test.nix { import ./make-test.nix {
name = "munin";
nodes = { nodes = {
one = one =

View File

@ -6,6 +6,8 @@ let
in in
{ {
name = "mysql-replication";
nodes = { nodes = {
master = master =
{ pkgs, config, ... }: { pkgs, config, ... }:

View File

@ -1,4 +1,5 @@
import ./make-test.nix { import ./make-test.nix {
name = "mysql";
nodes = { nodes = {
master = master =

View File

@ -5,6 +5,7 @@
# for the client. # for the client.
import ./make-test.nix { import ./make-test.nix {
name = "nat";
nodes = nodes =
{ client = { client =

View File

@ -17,6 +17,7 @@ let
in in
{ {
name = "nfs";
nodes = nodes =
{ client1 = client; { client1 = client;

View File

@ -16,6 +16,7 @@ let
]; ];
in { in {
name = "openssh";
nodes = { nodes = {

View File

@ -63,6 +63,8 @@ let
logvol / --size=1000 --grow --fstype=ext4 --name=root --vgname=nixos logvol / --size=1000 --grow --fstype=ext4 --name=root --vgname=nixos
''; '';
in { in {
name = "partitiion";
machine = { config, pkgs, ... }: { machine = { config, pkgs, ... }: {
environment.systemPackages = [ environment.systemPackages = [
pkgs.pythonPackages.nixpart pkgs.pythonPackages.nixpart

View File

@ -1,4 +1,5 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "phabricator";
nodes = { nodes = {
storage = storage =

View File

@ -1,6 +1,7 @@
# Test printing via CUPS. # Test printing via CUPS.
import ./make-test.nix ({pkgs, ... }: { import ./make-test.nix ({pkgs, ... }: {
name = "printing";
nodes = { nodes = {

View File

@ -14,6 +14,7 @@ let
in in
{ {
name = "proxy";
nodes = nodes =
{ proxy = { proxy =

View File

@ -13,6 +13,7 @@ let
in in
rec { rec {
name = "quake3";
makeCoverageReport = true; makeCoverageReport = true;

View File

@ -1,6 +1,7 @@
# This test runs rabbitmq and checks if rabbitmq is up and running. # This test runs rabbitmq and checks if rabbitmq is up and running.
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "rabbitmq";
nodes = { nodes = {
one = { config, pkgs, ... }: { one = { config, pkgs, ... }: {

View File

@ -1,4 +1,5 @@
import ./make-test.nix { import ./make-test.nix {
name = "simple"
machine = { config, pkgs, ... }: { }; machine = { config, pkgs, ... }: { };

View File

@ -32,6 +32,7 @@ let
in in
{ {
name = "subversion";
nodes = nodes =
{ webserver = { webserver =

View File

@ -1,4 +1,5 @@
import ./make-test.nix { import ./make-test.nix {
name = "tomcat";
nodes = { nodes = {
server = server =

View File

@ -1,4 +1,5 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "trac";
nodes = { nodes = {
storage = storage =

View File

@ -10,6 +10,7 @@ let
in in
{ {
name = "udisks2";
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -1,4 +1,5 @@
import ./make-test.nix { import ./make-test.nix {
name = "xfce";
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -95,4 +95,7 @@ rec {
darcsToGit = callPackage ./darcs-to-git { }; darcsToGit = callPackage ./darcs-to-git { };
gitflow = callPackage ./gitflow { }; gitflow = callPackage ./gitflow { };
git-remote-hg = callPackage ./git-remote-hg { };
} }

View File

@ -0,0 +1,35 @@
{ stdenv, fetchgit, mercurial, makeWrapper,
asciidoc, xmlto, dbus, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
}:
stdenv.mkDerivation rec {
rev = "185852eac44c25ae2e8d3b3fb6c9630e754e6363";
version = "v0.2-185852eac44c25ae2e8d3b3fb6c9630e754e6363";
name = "git-remote-hg-${version}";
src = fetchgit {
inherit rev;
url = "git://github.com/felipec/git-remote-hg.git";
sha256 = "1hc65nvxq7if1imwffyxia0i6vnkbax09gfcl9vq9yffzi8xzzfy";
};
buildInputs = [ mercurial.python mercurial makeWrapper
asciidoc xmlto dbus docbook_xsl docbook_xml_dtd_45 libxslt libxml2
];
doCheck = false;
installFlags = "HOME=\${out}";
postInstall = ''
wrapProgram $out/bin/git-remote-hg \
--prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages}"
'';
meta = with stdenv.lib; {
homepage = "https://github.com/felipec/git-remote-hg";
description = "semi-official Mercurial bridge from Git project, once installed, it allows you to clone, fetch and push to and from Mercurial repositories as if they were Git ones";
license = licenses.gpl2;
maintainers = [ maintainers.garbas ];
};
}

View File

@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "0ks9gsnhxrs2vccc6ha9m8xmj83lmw09xcws4zc0k57q4jcy5bgk"; sha256 = "0ks9gsnhxrs2vccc6ha9m8xmj83lmw09xcws4zc0k57q4jcy5bgk";
}; };
buildInputs = [ libunwind ]; buildInputs = stdenv.lib.optional stdenv.isLinux libunwind;
# some packages want to link to the static tcmalloc_minimal # some packages want to link to the static tcmalloc_minimal
# to drop the runtime dependency on gperftools # to drop the runtime dependency on gperftools
@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
meta = { meta = {
homepage = https://code.google.com/p/gperftools/; homepage = https://code.google.com/p/gperftools/;
description = "Fast, multi-threaded malloc() and nifty performance analysis tools"; description = "Fast, multi-threaded malloc() and nifty performance analysis tools";
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
}; };
} }

View File

@ -0,0 +1,25 @@
{ stdenv, fetchgit, nix }:
stdenv.mkDerivation {
name = "nix-plugins-1.0.0";
src = fetchgit {
url = git://github.com/shlevy/nix-plugins.git;
rev = "refs/tags/1.0.0";
sha256 = "e624de55cabc9014e77f21978d657089ae94ce161584b3d9dc3c9763658421b3";
};
buildInputs = [ nix ];
buildFlags = [ "NIX_INCLUDE=${nix}/include" ];
installFlags = [ "PREFIX=$(out)" ];
meta = {
description = "Collection of miscellaneous plugins for the nix expression language";
homepage = https://github.com/shlevy/nix-plugins;
license = stdenv.lib.licenses.mit;
maintaners = [ stdenv.lib.maintainers.shlevy ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -14,7 +14,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ perl pkgconfig ]; nativeBuildInputs = [ perl pkgconfig ];
buildInputs = [ curl openssl boehmgc sqlite ]; buildInputs = [ curl openssl sqlite ];
propagatedBuildInputs = [ boehmgc ];
# Note: bzip2 is not passed as a build input, because the unpack phase # Note: bzip2 is not passed as a build input, because the unpack phase
# would end up using the wrong bzip2 when cross-compiling. # would end up using the wrong bzip2 when cross-compiling.

View File

@ -5708,6 +5708,10 @@ let
newt = callPackage ../development/libraries/newt { }; newt = callPackage ../development/libraries/newt { };
nix-plugins = callPackage ../development/libraries/nix-plugins {
nix = pkgs.nixUnstable;
};
nspr = callPackage ../development/libraries/nspr { }; nspr = callPackage ../development/libraries/nspr { };
nss = lowPrio (callPackage ../development/libraries/nss { }); nss = lowPrio (callPackage ../development/libraries/nss { });