diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix index 942a2158b15f..063b9bf6c7af 100644 --- a/nixos/lib/testing.nix +++ b/nixos/lib/testing.nix @@ -37,7 +37,7 @@ rec { # `driver' is the script that runs the network. runTests = driver: stdenv.mkDerivation { - name = "vm-test-run"; + name = "vm-test-run-${driver.testName}"; requiredSystemFeatures = [ "kvm" "nixos-test" ]; @@ -68,9 +68,10 @@ rec { makeTest = - { testScript, makeCoverageReport ? false, ... } @ t: + { testScript, makeCoverageReport ? false, name ? "unnamed", ... } @ t: let + testDriverName = "nixos-test-driver-${name}"; nodes = buildVirtualNetwork ( t.nodes or (if t ? machine then { machine = t.machine; } else { })); @@ -88,10 +89,11 @@ rec { # Generate onvenience wrappers for running the test driver # interactively with the specified network, and for starting the # VMs from the command line. - driver = runCommand "nixos-test-driver" + driver = runCommand testDriverName { buildInputs = [ makeWrapper]; testScript = testScript'; preferLocalBuild = true; + testName = name; } '' mkdir -p $out/bin diff --git a/nixos/tests/avahi.nix b/nixos/tests/avahi.nix index b6f18087c56f..3898ddb4e8e6 100644 --- a/nixos/tests/avahi.nix +++ b/nixos/tests/avahi.nix @@ -1,6 +1,7 @@ # Test whether `avahi-daemon' and `libnss-mdns' work as expected. import ./make-test.nix { + name = "avahi"; nodes = { one = diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix index b58657a5ecdb..002e012f65f0 100644 --- a/nixos/tests/bittorrent.nix +++ b/nixos/tests/bittorrent.nix @@ -23,6 +23,7 @@ let in { + name = "bittorrent"; nodes = { tracker = diff --git a/nixos/tests/check-filesystems.nix b/nixos/tests/check-filesystems.nix index 09401f9a3f44..71aa9649840f 100644 --- a/nixos/tests/check-filesystems.nix +++ b/nixos/tests/check-filesystems.nix @@ -6,6 +6,8 @@ with import ../lib/build-vms.nix { inherit nixos nixpkgs system; }; rec { + name = "check-filesystems"; + nodes = { share = {pkgs, config, ...}: { services.nfs.server.enable = true; diff --git a/nixos/tests/containers.nix b/nixos/tests/containers.nix index 8ad9cd6e0d79..f7dc8eb491d6 100644 --- a/nixos/tests/containers.nix +++ b/nixos/tests/containers.nix @@ -1,6 +1,7 @@ # Test for NixOS' container support. import ./make-test.nix { + name = "containers"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/firefox.nix b/nixos/tests/firefox.nix index b42d473b8025..77a6f6ac9e71 100644 --- a/nixos/tests/firefox.nix +++ b/nixos/tests/firefox.nix @@ -1,4 +1,5 @@ import ./make-test.nix ({ pkgs, ... }: { + name = "firefox"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/firewall.nix b/nixos/tests/firewall.nix index d10e10b1d91c..16922508c7c5 100644 --- a/nixos/tests/firewall.nix +++ b/nixos/tests/firewall.nix @@ -1,6 +1,7 @@ # Test the firewall module. import ./make-test.nix { + name = "firewall"; nodes = { walled = diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix index f1a6ce633313..44668f57fc1e 100644 --- a/nixos/tests/gnome3.nix +++ b/nixos/tests/gnome3.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "gnome3"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/gnome3_12.nix b/nixos/tests/gnome3_12.nix index 92a1919b8cb2..439674b69d5d 100644 --- a/nixos/tests/gnome3_12.nix +++ b/nixos/tests/gnome3_12.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "gnome3_12"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/influxdb.nix b/nixos/tests/influxdb.nix index 278b264170fa..9f8ea061b960 100644 --- a/nixos/tests/influxdb.nix +++ b/nixos/tests/influxdb.nix @@ -1,6 +1,8 @@ # This test runs influxdb and checks if influxdb is up and running import ./make-test.nix { + name = "influxdb"; + nodes = { one = { config, pkgs, ... }: { services.influxdb.enable = true; diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 98e8142a0dfd..1cd1aa63a55b 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -215,10 +215,11 @@ let ''; - makeInstallerTest = + makeInstallerTest = name: { createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda" }: makeTest { inherit iso; + name = "installer-" + name; nodes = if testChannel then { inherit webserver; } else { }; testScript = testScriptFun { inherit createPartitions testChannel useEFI grubVersion grubDevice; @@ -233,7 +234,7 @@ in { # The (almost) simplest partitioning scheme: a swap partition and # one big filesystem partition. - simple = makeInstallerTest + simple = makeInstallerTest "simple" { createPartitions = '' $machine->succeed( @@ -251,7 +252,7 @@ in { }; # Same as the previous, but now with a separate /boot partition. - separateBoot = makeInstallerTest + separateBoot = makeInstallerTest "separateBoot" { createPartitions = '' $machine->succeed( @@ -273,7 +274,7 @@ in { # Create two physical LVM partitions combined into one volume group # that contains the logical swap and root partitions. - lvm = makeInstallerTest + lvm = makeInstallerTest "lvm" { createPartitions = '' $machine->succeed( @@ -295,7 +296,7 @@ in { ''; }; - swraid = makeInstallerTest + swraid = makeInstallerTest "swraid" { createPartitions = '' $machine->succeed( @@ -328,7 +329,7 @@ in { }; # Test a basic install using GRUB 1. - grub1 = makeInstallerTest + grub1 = makeInstallerTest "grub1" { createPartitions = '' $machine->succeed( @@ -348,7 +349,7 @@ in { }; # Test an EFI install. - efi = makeInstallerTest + efi = makeInstallerTest "efi" { createPartitions = '' $machine->succeed( @@ -369,6 +370,7 @@ in { # Rebuild the CD configuration with a little modification. rebuildCD = makeTest { inherit iso; + name = "rebuild-CD"; nodes = { }; testScript = '' diff --git a/nixos/tests/ipv6.nix b/nixos/tests/ipv6.nix index eb15363d3c32..af6fec6bfbf5 100644 --- a/nixos/tests/ipv6.nix +++ b/nixos/tests/ipv6.nix @@ -2,6 +2,7 @@ # solicication/advertisement using radvd works. import ./make-test.nix { + name = "ipv6"; nodes = { client = { config, pkgs, ... }: { }; diff --git a/nixos/tests/jenkins.nix b/nixos/tests/jenkins.nix index ad7ea78ac49b..28027c294bc6 100644 --- a/nixos/tests/jenkins.nix +++ b/nixos/tests/jenkins.nix @@ -4,6 +4,7 @@ # 3. jenkins service not started on slave node import ./make-test.nix { + name = "jenkins"; nodes = { diff --git a/nixos/tests/kde4.nix b/nixos/tests/kde4.nix index 99a82a6b95df..90c37397821e 100644 --- a/nixos/tests/kde4.nix +++ b/nixos/tests/kde4.nix @@ -1,4 +1,5 @@ import ./make-test.nix ({ pkgs, ... }: { + name = "kde4"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/kexec.nix b/nixos/tests/kexec.nix index b09287682c01..0f0565a60e95 100644 --- a/nixos/tests/kexec.nix +++ b/nixos/tests/kexec.nix @@ -1,6 +1,7 @@ # Test whether fast reboots via kexec work. import ./make-test.nix { + name = "kexec"; machine = { config, pkgs, ... }: { virtualisation.vlans = [ ]; }; diff --git a/nixos/tests/login.nix b/nixos/tests/login.nix index 44c53c231c81..e8373219ca68 100644 --- a/nixos/tests/login.nix +++ b/nixos/tests/login.nix @@ -1,6 +1,7 @@ import ./make-test.nix ({ pkgs, latestKernel ? false, ... }: { + name = "login"; machine = { config, pkgs, lib, ... }: diff --git a/nixos/tests/logstash.nix b/nixos/tests/logstash.nix index e6aba7a10126..7284cde7a33c 100644 --- a/nixos/tests/logstash.nix +++ b/nixos/tests/logstash.nix @@ -2,6 +2,7 @@ # elasticsearch is started. import ./make-test.nix { + name = "logstash"; nodes = { one = diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix index 8caef146ec87..c03db6c43353 100644 --- a/nixos/tests/misc.nix +++ b/nixos/tests/misc.nix @@ -1,6 +1,7 @@ # Miscellaneous small tests that don't warrant their own VM run. import ./make-test.nix { + name = "misc"; machine = { config, lib, pkgs, ... }: diff --git a/nixos/tests/mpich.nix b/nixos/tests/mpich.nix index 13cd0960d07c..a4ef7b624267 100644 --- a/nixos/tests/mpich.nix +++ b/nixos/tests/mpich.nix @@ -1,6 +1,8 @@ # Simple example to showcase distributed tests using NixOS VMs. import ./make-test.nix { + name = "mpich"; + nodes = { master = { config, pkgs, ... }: { diff --git a/nixos/tests/mumble.nix b/nixos/tests/mumble.nix index 68ab8b642b01..32aae9161399 100644 --- a/nixos/tests/mumble.nix +++ b/nixos/tests/mumble.nix @@ -7,6 +7,8 @@ let }; in { + name = "mumble"; + nodes = { server = { config, pkgs, ... }: { services.murmur.enable = true; diff --git a/nixos/tests/munin.nix b/nixos/tests/munin.nix index acc4b949ab57..31676c10df1b 100644 --- a/nixos/tests/munin.nix +++ b/nixos/tests/munin.nix @@ -2,6 +2,7 @@ # machine. import ./make-test.nix { + name = "munin"; nodes = { one = diff --git a/nixos/tests/mysql-replication.nix b/nixos/tests/mysql-replication.nix index 7d0cf6d85a1a..5786fdbc58cd 100644 --- a/nixos/tests/mysql-replication.nix +++ b/nixos/tests/mysql-replication.nix @@ -6,6 +6,8 @@ let in { + name = "mysql-replication"; + nodes = { master = { pkgs, config, ... }: diff --git a/nixos/tests/mysql.nix b/nixos/tests/mysql.nix index 566d03baf367..0a753b9b625b 100644 --- a/nixos/tests/mysql.nix +++ b/nixos/tests/mysql.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "mysql"; nodes = { master = diff --git a/nixos/tests/nat.nix b/nixos/tests/nat.nix index 02981469e106..5fdcc0e97ca9 100644 --- a/nixos/tests/nat.nix +++ b/nixos/tests/nat.nix @@ -5,6 +5,7 @@ # for the client. import ./make-test.nix { + name = "nat"; nodes = { client = diff --git a/nixos/tests/nfs.nix b/nixos/tests/nfs.nix index 864d05626b67..61b2431c04c7 100644 --- a/nixos/tests/nfs.nix +++ b/nixos/tests/nfs.nix @@ -17,6 +17,7 @@ let in { + name = "nfs"; nodes = { client1 = client; diff --git a/nixos/tests/openssh.nix b/nixos/tests/openssh.nix index d4ce95e49f70..692618c5a84d 100644 --- a/nixos/tests/openssh.nix +++ b/nixos/tests/openssh.nix @@ -16,6 +16,7 @@ let ]; in { + name = "openssh"; nodes = { diff --git a/nixos/tests/partition.nix b/nixos/tests/partition.nix index 120ecaad8812..72fd37e041e5 100644 --- a/nixos/tests/partition.nix +++ b/nixos/tests/partition.nix @@ -63,6 +63,8 @@ let logvol / --size=1000 --grow --fstype=ext4 --name=root --vgname=nixos ''; in { + name = "partitiion"; + machine = { config, pkgs, ... }: { environment.systemPackages = [ pkgs.pythonPackages.nixpart diff --git a/nixos/tests/phabricator.nix b/nixos/tests/phabricator.nix index 8a8c6cb784cc..53038474c91a 100644 --- a/nixos/tests/phabricator.nix +++ b/nixos/tests/phabricator.nix @@ -1,4 +1,5 @@ import ./make-test.nix ({ pkgs, ... }: { + name = "phabricator"; nodes = { storage = diff --git a/nixos/tests/printing.nix b/nixos/tests/printing.nix index 16f9812d93b5..a55e077c2696 100644 --- a/nixos/tests/printing.nix +++ b/nixos/tests/printing.nix @@ -1,6 +1,7 @@ # Test printing via CUPS. import ./make-test.nix ({pkgs, ... }: { + name = "printing"; nodes = { diff --git a/nixos/tests/proxy.nix b/nixos/tests/proxy.nix index 88dbdb2720fb..01f0f3fe17a3 100644 --- a/nixos/tests/proxy.nix +++ b/nixos/tests/proxy.nix @@ -14,6 +14,7 @@ let in { + name = "proxy"; nodes = { proxy = diff --git a/nixos/tests/quake3.nix b/nixos/tests/quake3.nix index 3ff12fd57c06..b16cb179982a 100644 --- a/nixos/tests/quake3.nix +++ b/nixos/tests/quake3.nix @@ -13,6 +13,7 @@ let in rec { + name = "quake3"; makeCoverageReport = true; diff --git a/nixos/tests/rabbitmq.nix b/nixos/tests/rabbitmq.nix index ffcdde9d87f2..3ef3f92764c9 100644 --- a/nixos/tests/rabbitmq.nix +++ b/nixos/tests/rabbitmq.nix @@ -1,6 +1,7 @@ # This test runs rabbitmq and checks if rabbitmq is up and running. import ./make-test.nix ({ pkgs, ... }: { + name = "rabbitmq"; nodes = { one = { config, pkgs, ... }: { diff --git a/nixos/tests/simple.nix b/nixos/tests/simple.nix index e21b919cdf80..62d748d64296 100644 --- a/nixos/tests/simple.nix +++ b/nixos/tests/simple.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "simple" machine = { config, pkgs, ... }: { }; diff --git a/nixos/tests/subversion.nix b/nixos/tests/subversion.nix index e6746dc08287..50277edbdd89 100644 --- a/nixos/tests/subversion.nix +++ b/nixos/tests/subversion.nix @@ -32,6 +32,7 @@ let in { + name = "subversion"; nodes = { webserver = diff --git a/nixos/tests/tomcat.nix b/nixos/tests/tomcat.nix index 3b0b1bb79117..f3ee3477b5ac 100644 --- a/nixos/tests/tomcat.nix +++ b/nixos/tests/tomcat.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "tomcat"; nodes = { server = diff --git a/nixos/tests/trac.nix b/nixos/tests/trac.nix index 3f17dafaca15..87a2d328b4a6 100644 --- a/nixos/tests/trac.nix +++ b/nixos/tests/trac.nix @@ -1,4 +1,5 @@ import ./make-test.nix ({ pkgs, ... }: { + name = "trac"; nodes = { storage = diff --git a/nixos/tests/udisks2.nix b/nixos/tests/udisks2.nix index e0c57d7c34d6..1d2f79e4f6c1 100644 --- a/nixos/tests/udisks2.nix +++ b/nixos/tests/udisks2.nix @@ -10,6 +10,7 @@ let in { + name = "udisks2"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/xfce.nix b/nixos/tests/xfce.nix index ded37943e51d..ced0c6b9826b 100644 --- a/nixos/tests/xfce.nix +++ b/nixos/tests/xfce.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "xfce"; machine = { config, pkgs, ... }: diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix index 482866969a11..fd548296220e 100644 --- a/pkgs/applications/version-management/git-and-tools/default.nix +++ b/pkgs/applications/version-management/git-and-tools/default.nix @@ -95,4 +95,7 @@ rec { darcsToGit = callPackage ./darcs-to-git { }; gitflow = callPackage ./gitflow { }; + + git-remote-hg = callPackage ./git-remote-hg { }; + } diff --git a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix new file mode 100644 index 000000000000..ffeb299f49b5 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix index c7c639f2adb8..9ffccac1e0f4 100644 --- a/pkgs/development/libraries/gperftools/default.nix +++ b/pkgs/development/libraries/gperftools/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "0ks9gsnhxrs2vccc6ha9m8xmj83lmw09xcws4zc0k57q4jcy5bgk"; }; - buildInputs = [ libunwind ]; + buildInputs = stdenv.lib.optional stdenv.isLinux libunwind; # some packages want to link to the static tcmalloc_minimal # to drop the runtime dependency on gperftools @@ -19,6 +19,6 @@ stdenv.mkDerivation rec { meta = { homepage = https://code.google.com/p/gperftools/; description = "Fast, multi-threaded malloc() and nifty performance analysis tools"; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; }; } diff --git a/pkgs/development/libraries/nix-plugins/default.nix b/pkgs/development/libraries/nix-plugins/default.nix new file mode 100644 index 000000000000..3b4f7da94f3d --- /dev/null +++ b/pkgs/development/libraries/nix-plugins/default.nix @@ -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; + }; +} diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix index f61b9eb818ae..b81ab7cad424 100644 --- a/pkgs/tools/package-management/nix/unstable.nix +++ b/pkgs/tools/package-management/nix/unstable.nix @@ -14,7 +14,9 @@ stdenv.mkDerivation rec { 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 # would end up using the wrong bzip2 when cross-compiling. diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 89a1a5bad980..3354569488b9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5708,6 +5708,10 @@ let newt = callPackage ../development/libraries/newt { }; + nix-plugins = callPackage ../development/libraries/nix-plugins { + nix = pkgs.nixUnstable; + }; + nspr = callPackage ../development/libraries/nspr { }; nss = lowPrio (callPackage ../development/libraries/nss { });