From ba459a0bf380a4da440c3162ffeecd03d11be301 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sat, 18 Dec 2010 17:56:04 +0000 Subject: [PATCH 01/10] * Fix the broken installer (http://hydra.nixos.org/build/811980). The hardware scan was generating a hardware.nix containing "pkgs.linuxPackages" without having "pkgs" in scope. Also, it shouldn't define boot.kernelPackages. svn path=/nixos/trunk/; revision=25192 --- modules/installer/tools/nixos-hardware-scan.pl | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/modules/installer/tools/nixos-hardware-scan.pl b/modules/installer/tools/nixos-hardware-scan.pl index b26358e1078..38220c4fb78 100644 --- a/modules/installer/tools/nixos-hardware-scan.pl +++ b/modules/installer/tools/nixos-hardware-scan.pl @@ -103,7 +103,7 @@ sub pciCheck { $device eq "0x432c" || $device eq "0x432d" || $device eq "0x4353" || $device eq "0x4357") ) { - push @modulePackages, "kernelPackages.broadcom_sta"; + push @modulePackages, "config.boot.kernelPackages.broadcom_sta"; push @kernelModules, "wl"; } @@ -242,7 +242,7 @@ my $attrs = multiLineList(" ", removeDups @attrs); print < Date: Sat, 18 Dec 2010 18:07:25 +0000 Subject: [PATCH 02/10] * Fix an evaluation error in tests.installer.rebuildCD. svn path=/nixos/trunk/; revision=25193 --- tests/installer.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/installer.nix b/tests/installer.nix index eead83053ed..994d1173c2d 100644 --- a/tests/installer.nix +++ b/tests/installer.nix @@ -304,7 +304,7 @@ in { testScript = '' # damn, it's costly to evaluate nixos-rebuild (1G of ram) - my $machine = Machine->new({ cdrom => glob("${iso}/iso/*.iso"), qemuFlags => '${qemuNICFlags 1 1} -m 1024' }); + my $machine = Machine->new({ cdrom => glob("${iso}/iso/*.iso"), qemuFlags => '${qemuNICFlags 1 1 1} -m 1024' }); $machine->start; # Make sure that we don't try to download anything. From 5d7b524bd3ef3ab536eafeacfd80b708021a1e0a Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Mon, 20 Dec 2010 14:14:29 +0000 Subject: [PATCH 03/10] updated hydra mirror module svn path=/nixos/trunk/; revision=25211 --- modules/services/backup/hydra-mirror.nix | 61 +++++++++++++++++++----- 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/modules/services/backup/hydra-mirror.nix b/modules/services/backup/hydra-mirror.nix index a328a9a159a..35be60987ec 100644 --- a/modules/services/backup/hydra-mirror.nix +++ b/modules/services/backup/hydra-mirror.nix @@ -3,16 +3,30 @@ with pkgs.lib; let - cfg = config.services.hydraChannelMirror ; + + cfg = config.services.hydraChannelMirror; + mirrorChannel = pkgs.fetchsvn { url = https://svn.nixos.org/repos/nix/release/trunk/channels/mirror-channel.pl; - rev = 24132; - sha256 = "02xvswbbr2sj9k1wfraa0j9053vf6w88nhk15qwzs8nkm180n820"; + rev = 25210; + sha256 = "0gspqid1rpsj1z1mr29nakh7di278nlv6v2knafvmm3g8ah3yxgz"; }; - cronjob = jobset : '' - ${cfg.period} root ENABLE_PATCHES=1 PATH=${config.environment.nix}/libexec/nix:$PATH perl -I${config.environment.nix}/libexec/nix ${mirrorChannel} ${cfg.hydraURL}/jobset/${jobset.project}/${jobset.jobset}/channel/latest ${cfg.dataDir}/channels/${jobset.relURL} ${cfg.dataDir}/nars ${cfg.mirrorURL}/nars ${cfg.dataDir}/patches ${cfg.mirrorURL}/patches ${if jobset.nixexprs == "" then "" else "${cfg.hydraURL}/job/${jobset.project}/${jobset.jobset}/${jobset.nixexprs}/latest/download-by-type/file/source-dist"} >> ${cfg.dataDir}/logs/${jobset.name}.log - ''; + + cronjob = jobset: + "${cfg.period} ${cfg.user}" + + optionalString cfg.enableBinaryPatches " ENABLE_PATCHES=1" + + " perl -I${config.environment.nix}/libexec/nix ${mirrorChannel}" + + " ${cfg.hydraURL}/jobset/${jobset.project}/${jobset.jobset}/channel/latest" + + " ${cfg.dataDir}/${jobset.project}/channels/${jobset.name}" + + " ${cfg.dataDir}/nars" + + " ${cfg.mirrorURL}/nars" + + " ${cfg.dataDir}/patches" + + " ${cfg.mirrorURL}/patches" + + " ${if jobset.nixexprs == "" then "" else "${cfg.hydraURL}/job/${jobset.project}/${jobset.jobset}/${jobset.nixexprs}/latest/download-by-type/file/source-dist"}" + + " >> ${cfg.dataDir}/logs/${jobset.name}.log 2>&1\n"; + in + { options = { @@ -33,8 +47,15 @@ in ''; }; + user = mkOption { + default = "hydra-mirror"; + description = '' + User running the Hydra mirror script. + ''; + }; + jobsets = mkOption { - default = [ rec { name = "nixpkgs-unstable"; project = "nixpkgs"; jobset = "trunk"; nixexprs = "tarball"; relURL = "nixpkgs/channels/${name}"; } ]; + default = [ { name = "nixpkgs-unstable"; project = "nixpkgs"; jobset = "trunk"; nixexprs = "tarball"; } ]; description = '' List of jobsets to mirror. ''; @@ -60,25 +81,41 @@ in Location of Hydra mirror data ''; }; + + enableBinaryPatches = mkOption { + default = false; + description = '' + Whether to enable generating binary patches for the mirrored channels. + ''; + }; }; }; config = mkIf cfg.enable { - services.cron.systemCronJobs = map cronjob cfg.jobsets ; + users.extraUsers = singleton + { name = cfg.user; }; + + services.cron.systemCronJobs = map cronjob cfg.jobsets; system.activationScripts.hydraChannelMirror = stringAfter [ "stdio" "users" ] '' mkdir -m 0755 -p ${cfg.dataDir} + chown ${cfg.user} ${cfg.dataDir} + mkdir -m 0755 -p ${cfg.dataDir}/nars + chown ${cfg.user} ${cfg.dataDir}/nars + mkdir -m 0755 -p ${cfg.dataDir}/patches - mkdir -m 0755 -p ${cfg.dataDir}/channels - ln -fs ${cfg.dataDir}/nars ${cfg.dataDir}/channels/nars - ln -fs ${cfg.dataDir}/patches ${cfg.dataDir}/channels/patches + chown ${cfg.user} ${cfg.dataDir}/patches + mkdir -m 0755 -p ${cfg.dataDir}/logs + chown ${cfg.user} ${cfg.dataDir}/logs + ${concatMapStrings (j : '' - mkdir -m 0755 -p ${cfg.dataDir}/channels/${j.relURL} + mkdir -m 0755 -p ${cfg.dataDir}/{j.project}/channels/${j.name} + chown ${cfg.user} ${cfg.dataDir}/{j.project}/channels/${j.name} '') cfg.jobsets} ''; From e1c4b6a1f51aab68899bdcaae2e75cf5fe9de695 Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Mon, 20 Dec 2010 14:17:30 +0000 Subject: [PATCH 04/10] hydra-mirror.nix: forgot description for user svn path=/nixos/trunk/; revision=25212 --- modules/services/backup/hydra-mirror.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/backup/hydra-mirror.nix b/modules/services/backup/hydra-mirror.nix index 35be60987ec..dc37e4e92d5 100644 --- a/modules/services/backup/hydra-mirror.nix +++ b/modules/services/backup/hydra-mirror.nix @@ -95,7 +95,7 @@ in config = mkIf cfg.enable { users.extraUsers = singleton - { name = cfg.user; }; + { name = cfg.user; description = "Hydra mirror"; }; services.cron.systemCronJobs = map cronjob cfg.jobsets; From c8afc67f6a55c3d9bd0711a980f9e15535780219 Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Tue, 21 Dec 2010 10:57:19 +0000 Subject: [PATCH 05/10] lib/testing.nix: vm state of nixos machines in network changed location svn path=/nixos/trunk/; revision=25222 --- lib/testing.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/testing.nix b/lib/testing.nix index 6c7a9edac69..3cf0bc5bf40 100644 --- a/lib/testing.nix +++ b/lib/testing.nix @@ -179,10 +179,9 @@ rec { ''; vmRunCommand = writeText "vm-run" '' - ${coreutils}/bin/mkdir -p client - export > client/saved-env + ${coreutils}/bin/mkdir -p vm-state-client + export > vm-state-client/saved-env export PATH=${qemu_kvm}/bin:${coreutils}/bin - cp ${./test-driver/Machine.pm} Machine.pm export tests='${testscript}' ${testDriver}/bin/nixos-test-driver ${vms}/vms/*/bin/run-*-vm ''; # */ From edcf526c32bc4ee798d5500f6a90f24f95bd5da2 Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Wed, 22 Dec 2010 13:32:16 +0000 Subject: [PATCH 06/10] Added svnserve module, to serve Subversion repositories through the SVN protocol svn path=/nixos/trunk/; revision=25235 --- modules/module-list.nix | 1 + modules/services/misc/svnserve.nix | 46 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 modules/services/misc/svnserve.nix diff --git a/modules/module-list.nix b/modules/module-list.nix index 0d342413250..3d2a11db5bb 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -73,6 +73,7 @@ ./services/misc/nix-gc.nix ./services/misc/nixos-manual.nix ./services/misc/rogue.nix + ./services/misc/svnserve.nix ./services/misc/synergy.nix ./services/misc/virtualbox.nix ./services/monitoring/monit.nix diff --git a/modules/services/misc/svnserve.nix b/modules/services/misc/svnserve.nix new file mode 100644 index 00000000000..c1acf5723d8 --- /dev/null +++ b/modules/services/misc/svnserve.nix @@ -0,0 +1,46 @@ +# SVN server +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + cfg = config.services.svnserve; + +in + +{ + + ###### interface + + options = { + + services.svnserve = { + + enable = mkOption { + default = false; + description = "Whether to enable svnserve to serve Subversion repositories through the SVN protocol."; + }; + + svnBaseDir = mkOption { + default = "/repos"; + description = "Base directory from which Subversion repositories are accessed."; + }; + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + jobs.svnserve = { + startOn = "started network-interfaces"; + stopOn = "stopping network-interfaces"; + + preStart = "mkdir -p ${cfg.svnBaseDir}"; + + exec = "${pkgs.subversion}/bin/svnserve -r ${cfg.svnBaseDir} -d --foreground --pid-file=/var/run/svnserve.pid"; + }; + }; +} From 70402c939712e962c927f96a68ce7d898ed2fc89 Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Wed, 22 Dec 2010 13:32:51 +0000 Subject: [PATCH 07/10] Adapted Disnix module to publish the svnBaseDir and to support the postgresql and subversion types svn path=/nixos/trunk/; revision=25236 --- modules/services/misc/disnix.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/services/misc/disnix.nix b/modules/services/misc/disnix.nix index ef4d7922e98..0773b61c551 100644 --- a/modules/services/misc/disnix.nix +++ b/modules/services/misc/disnix.nix @@ -12,6 +12,8 @@ let enableAxis2WebService = config.services.tomcat.axis2.enable; enableEjabberdDump = config.services.ejabberd.enable; enableMySQLDatabase = config.services.mysql.enable; + enablePostgreSQLDatabase = config.services.postgresql.enable; + enableSubversionRepository = config.services.svnserve.enable; enableTomcatWebApplication = config.services.tomcat.enable; }); in @@ -93,6 +95,7 @@ in // optionalAttrs (config.services.httpd.enable) { documentRoot = config.services.httpd.documentRoot; } // optionalAttrs (config.services.mysql.enable) { mysqlPort = config.services.mysql.port; } // optionalAttrs (config.services.tomcat.enable) { tomcatPort = 8080; } + // optionalAttrs (config.services.svnserve.enable) { svnBaseDir = config.services.svnserve.svnBaseDir; } // optionalAttrs (cfg.publishInfrastructure.enableAuthentication) ( optionalAttrs (config.services.mysql.enable) { mysqlUsername = "root"; mysqlPassword = builtins.readFile config.services.mysql.rootPassword; }) ) From c65c03099f9ce1678d96bb8503fac7307411ccdf Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 23 Dec 2010 11:00:20 +0000 Subject: [PATCH 08/10] * Use "initctl restart". svn path=/nixos/trunk/; revision=25249 --- modules/services/networking/dhclient.nix | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/modules/services/networking/dhclient.nix b/modules/services/networking/dhclient.nix index 7d45350fe6b..52612ee403b 100644 --- a/modules/services/networking/dhclient.nix +++ b/modules/services/networking/dhclient.nix @@ -114,17 +114,8 @@ in powerManagement.resumeCommands = '' export PATH=${config.system.build.upstart}/sbin:$PATH - - restart() { - local job="$1" - if initctl status "$job" 2> /dev/null | grep -q 'running'; then - initctl stop "$job" - initctl start "$job" - fi - } - - restart wpa_supplicant - restart dhclient + initctl restart wpa_supplicant + initctl restart dhclient ''; }; From 6ba45109a1d5a3045b8d1046af0589cb984124e9 Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Fri, 24 Dec 2010 16:34:18 +0000 Subject: [PATCH 09/10] Integers must be converted to strings, of course svn path=/nixos/trunk/; revision=25274 --- modules/services/misc/disnix.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/misc/disnix.nix b/modules/services/misc/disnix.nix index 0773b61c551..f3dd55b64d9 100644 --- a/modules/services/misc/disnix.nix +++ b/modules/services/misc/disnix.nix @@ -132,7 +132,7 @@ in let infrastructureAttrValue = getAttr infrastructureAttrName (cfg.infrastructure); in if builtins.isInt infrastructureAttrValue then - ''${infrastructureAttrName}=${infrastructureAttrValue} \ + ''${infrastructureAttrName}=${toString infrastructureAttrValue} \ '' else ''${infrastructureAttrName}=\"${infrastructureAttrValue}\" \ From 09c30053a2b257f8a425f9277673cad71eace625 Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Fri, 24 Dec 2010 16:42:31 +0000 Subject: [PATCH 10/10] Also pass the location of NixOS as argument to the deployment expression svn path=/nixos/trunk/; revision=25275 --- .../tools/nixos-deploy-network/nixos-deploy-network.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/installer/tools/nixos-deploy-network/nixos-deploy-network.sh b/modules/installer/tools/nixos-deploy-network/nixos-deploy-network.sh index dc2b2198cfc..f1668ce780d 100644 --- a/modules/installer/tools/nixos-deploy-network/nixos-deploy-network.sh +++ b/modules/installer/tools/nixos-deploy-network/nixos-deploy-network.sh @@ -63,5 +63,5 @@ fi # Deploy the network -vms=`nix-build $NIXOS/modules/installer/tools/nixos-deploy-network/deploy.nix --argstr networkExpr $networkExpr $showTraceArg $noOutLinkArg` +vms=`nix-build $NIXOS/modules/installer/tools/nixos-deploy-network/deploy.nix --argstr networkExpr $networkExpr --argstr nixos $NIXOS $showTraceArg $noOutLinkArg` $vms/bin/deploy-systems