summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-09-27 15:26:37 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-09-29 13:05:28 +0200
commit75a1ec8a655e7e00a6bb6fc944663c21624fff60 (patch)
treefcbfd398fd7e7b41f88bd3104040c12101bb8343
parent750195db7f369a6e73d400c0271ef2fa1e0479f0 (diff)
NixOS: Use runCommand instead of mkDerivation in a few places
-rw-r--r--nixos/doc/manual/default.nix77
-rw-r--r--nixos/modules/i18n/input-method/default.nix29
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix8
-rw-r--r--nixos/modules/services/hardware/udev.nix26
-rw-r--r--nixos/modules/services/system/dbus.nix13
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix6
-rw-r--r--nixos/modules/services/x11/display-managers/kdm.nix22
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix9
-rw-r--r--nixos/modules/services/x11/display-managers/slim.nix6
-rw-r--r--nixos/modules/services/x11/xserver.nix15
-rw-r--r--nixos/modules/system/boot/stage-1.nix18
11 files changed, 89 insertions, 140 deletions
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index 13668dfd8ebc..40d49f1541b3 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -94,14 +94,11 @@ let
"--stringparam chunk.toc ${toc}"
];
- olinkDB = stdenv.mkDerivation {
- name = "manual-olinkdb";
-
- inherit sources;
-
- buildInputs = [ libxml2 libxslt ];
-
- buildCommand = ''
+ olinkDB = runCommand "manual-olinkdb"
+ { inherit sources;
+ buildInputs = [ libxml2 libxslt ];
+ }
+ ''
${copySources}
xsltproc \
@@ -133,15 +130,14 @@ let
</targetset>
EOF
'';
- };
in rec {
# The NixOS options in JSON format.
- optionsJSON = stdenv.mkDerivation {
- name = "options-json";
-
- buildCommand = ''
+ optionsJSON = runCommand "options-json"
+ { meta.description = "List of NixOS options in JSON format";
+ }
+ ''
# Export list of options in different format.
dst=$out/share/doc/nixos
mkdir -p $dst
@@ -154,18 +150,14 @@ in rec {
echo "file json $dst/options.json" >> $out/nix-support/hydra-build-products
''; # */
- meta.description = "List of NixOS options in JSON format";
- };
-
# Generate the NixOS manual.
- manual = stdenv.mkDerivation {
- name = "nixos-manual";
-
- inherit sources;
-
- buildInputs = [ libxml2 libxslt ];
-
- buildCommand = ''
+ manual = runCommand "nixos-manual"
+ { inherit sources;
+ buildInputs = [ libxml2 libxslt ];
+ meta.description = "The NixOS manual in HTML format";
+ allowedReferences = ["out"];
+ }
+ ''
${copySources}
# Check the validity of the manual sources.
@@ -192,20 +184,12 @@ in rec {
echo "doc manual $dst" >> $out/nix-support/hydra-build-products
''; # */
- meta.description = "The NixOS manual in HTML format";
-
- allowedReferences = ["out"];
- };
-
- manualEpub = stdenv.mkDerivation {
- name = "nixos-manual-epub";
-
- inherit sources;
-
- buildInputs = [ libxml2 libxslt zip ];
-
- buildCommand = ''
+ manualEpub = runCommand "nixos-manual-epub"
+ { inherit sources;
+ buildInputs = [ libxml2 libxslt zip ];
+ }
+ ''
${copySources}
# Check the validity of the manual sources.
@@ -234,17 +218,15 @@ in rec {
mkdir -p $out/nix-support
echo "doc-epub manual $manual" >> $out/nix-support/hydra-build-products
'';
- };
- # Generate the NixOS manpages.
- manpages = stdenv.mkDerivation {
- name = "nixos-manpages";
- inherit sources;
-
- buildInputs = [ libxml2 libxslt ];
-
- buildCommand = ''
+ # Generate the NixOS manpages.
+ manpages = runCommand "nixos-manpages"
+ { inherit sources;
+ buildInputs = [ libxml2 libxslt ];
+ allowedReferences = ["out"];
+ }
+ ''
${copySources}
# Check the validity of the man pages sources.
@@ -264,7 +246,4 @@ in rec {
./man-pages.xml
'';
- allowedReferences = ["out"];
- };
-
}
diff --git a/nixos/modules/i18n/input-method/default.nix b/nixos/modules/i18n/input-method/default.nix
index 693e1df66c6c..7ed4a584d646 100644
--- a/nixos/modules/i18n/input-method/default.nix
+++ b/nixos/modules/i18n/input-method/default.nix
@@ -3,26 +3,27 @@
with lib;
let
cfg = config.i18n.inputMethod;
- gtk2_cache = pkgs.stdenv.mkDerivation {
- preferLocalBuild = true;
- allowSubstitutes = false;
- name = "gtk2-immodule.cache";
- buildInputs = [ pkgs.gtk2 cfg.package ];
- buildCommand = ''
+
+ gtk2_cache = pkgs.runCommand "gtk2-immodule.cache"
+ { preferLocalBuild = true;
+ allowSubstitutes = false;
+ buildInputs = [ pkgs.gtk2 cfg.package ];
+ }
+ ''
mkdir -p $out/etc/gtk-2.0/
GTK_PATH=${cfg.package}/lib/gtk-2.0/ gtk-query-immodules-2.0 > $out/etc/gtk-2.0/immodules.cache
'';
- };
- gtk3_cache = pkgs.stdenv.mkDerivation {
- preferLocalBuild = true;
- allowSubstitutes = false;
- name = "gtk3-immodule.cache";
- buildInputs = [ pkgs.gtk3 cfg.package ];
- buildCommand = ''
+
+ gtk3_cache = pkgs.runCommand "gtk3-immodule.cache"
+ { preferLocalBuild = true;
+ allowSubstitutes = false;
+ buildInputs = [ pkgs.gtk3 cfg.package ];
+ }
+ ''
mkdir -p $out/etc/gtk-3.0/
GTK_PATH=${cfg.package}/lib/gtk-3.0/ gtk-query-immodules-3.0 > $out/etc/gtk-3.0/immodules.cache
'';
- };
+
in
{
options.i18n = {
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix
index d14768bc1079..dc8d76c63e10 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-kde.nix
@@ -96,15 +96,13 @@ with lib;
'';
in
- pkgs.stdenv.mkDerivation {
- inherit (pkg) name meta;
-
- buildCommand = ''
+ pkgs.runCommand pkg.name
+ { inherit (pkg) meta; }
+ ''
mkdir -p $out
cp -prf ${pkg}/* $out/
chmod a+w $out/share/apps/plasma-desktop/init
cp -f ${plasmaInit} $out/share/apps/plasma-desktop/init/00-defaultLayout.js
'';
- };
}
diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix
index 7c4c93d0fcb3..14d65978c320 100644
--- a/nixos/modules/services/hardware/udev.nix
+++ b/nixos/modules/services/hardware/udev.nix
@@ -32,13 +32,11 @@ let
'';
# Perform substitutions in all udev rules files.
- udevRules = stdenv.mkDerivation {
- name = "udev-rules";
-
- preferLocalBuild = true;
- allowSubstitutes = false;
-
- buildCommand = ''
+ udevRules = pkgs.runCommand "udev-rules"
+ { preferLocalBuild = true;
+ allowSubstitutes = false;
+ }
+ ''
mkdir -p $out
shopt -s nullglob
set +o pipefail
@@ -130,15 +128,12 @@ let
ln -s /dev/null $out/80-drivers.rules
''}
''; # */
- };
- hwdbBin = stdenv.mkDerivation {
- name = "hwdb.bin";
-
- preferLocalBuild = true;
- allowSubstitutes = false;
-
- buildCommand = ''
+ hwdbBin = pkgs.runCommand "hwdb.bin"
+ { preferLocalBuild = true;
+ allowSubstitutes = false;
+ }
+ ''
mkdir -p etc/udev/hwdb.d
for i in ${toString ([udev] ++ cfg.packages)}; do
echo "Adding hwdb files for package $i"
@@ -151,7 +146,6 @@ let
${udev}/bin/udevadm hwdb --update --root=$(pwd)
mv etc/udev/hwdb.bin $out
'';
- };
# Udev has a 512-character limit for ENV{PATH}, so create a symlink
# tree to work around this.
diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix
index 6c4833afbe8b..0f20725a9e4a 100644
--- a/nixos/modules/services/system/dbus.nix
+++ b/nixos/modules/services/system/dbus.nix
@@ -20,13 +20,11 @@ let
"<includedir>${d}/etc/dbus-1/session.d</includedir>"
]));
- configDir = pkgs.stdenv.mkDerivation {
- name = "dbus-conf";
-
- preferLocalBuild = true;
- allowSubstitutes = false;
-
- buildCommand = ''
+ configDir = pkgs.runCommand "dbus-conf"
+ { preferLocalBuild = true;
+ allowSubstitutes = false;
+ }
+ ''
mkdir -p $out
sed '${./dbus-system-local.conf.in}' \
@@ -38,7 +36,6 @@ let
-e 's,@extra@,${sessionExtraxml},' \
> "$out/session-local.conf"
'';
- };
in
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index b3da25448029..dc71531759b8 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -25,9 +25,8 @@ let
'';
};
- nixos-gsettings-desktop-schemas = pkgs.stdenv.mkDerivation {
- name = "nixos-gsettings-desktop-schemas";
- buildCommand = ''
+ nixos-gsettings-desktop-schemas = pkgs.runCommand "nixos-gsettings-desktop-schemas" {}
+ ''
mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
cp -rf ${gnome3.gsettings_desktop_schemas}/share/gsettings-schemas/gsettings-desktop-schemas*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
@@ -46,7 +45,6 @@ let
${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/
'';
- };
in {
diff --git a/nixos/modules/services/x11/display-managers/kdm.nix b/nixos/modules/services/x11/display-managers/kdm.nix
index d9f7f8f0dfc4..8b51c621e112 100644
--- a/nixos/modules/services/x11/display-managers/kdm.nix
+++ b/nixos/modules/services/x11/display-managers/kdm.nix
@@ -54,19 +54,17 @@ let
''}
'';
- kdmrc = pkgs.stdenv.mkDerivation {
- name = "kdmrc";
- config = defaultConfig + cfg.extraConfig;
- preferLocalBuild = true;
- buildCommand =
- ''
- echo "$config" > $out
+ kdmrc = pkgs.runCommand "kdmrc"
+ { config = defaultConfig + cfg.extraConfig;
+ preferLocalBuild = true;
+ }
+ ''
+ echo "$config" > $out
- # The default kdmrc would add "-nolisten tcp", and we already
- # have that managed by nixos. Hence the grep.
- cat ${kdebase_workspace}/share/config/kdm/kdmrc | grep -v nolisten >> $out
- '';
- };
+ # The default kdmrc would add "-nolisten tcp", and we already
+ # have that managed by nixos. Hence the grep.
+ cat ${kdebase_workspace}/share/config/kdm/kdmrc | grep -v nolisten >> $out
+ '';
in
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
index 543dd628ce66..dfda90978b1e 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
@@ -16,11 +16,9 @@ let
# The default greeter provided with this expression is the GTK greeter.
# Again, we need a few things in the environment for the greeter to run with
# fonts/icons.
- wrappedGtkGreeter = stdenv.mkDerivation {
- name = "lightdm-gtk-greeter";
- buildInputs = [ pkgs.makeWrapper ];
-
- buildCommand = ''
+ wrappedGtkGreeter = pkgs.runCommand "lightdm-gtk-greeter"
+ { buildInputs = [ pkgs.makeWrapper ]; }
+ ''
# This wrapper ensures that we actually get themes
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
$out/greeter \
@@ -40,7 +38,6 @@ let
Type=Application
EOF
'';
- };
gtkGreeterConf = writeText "lightdm-gtk-greeter.conf"
''
diff --git a/nixos/modules/services/x11/display-managers/slim.nix b/nixos/modules/services/x11/display-managers/slim.nix
index ce44c9f54a31..ca2ae1a47726 100644
--- a/nixos/modules/services/x11/display-managers/slim.nix
+++ b/nixos/modules/services/x11/display-managers/slim.nix
@@ -26,15 +26,13 @@ let
# Unpack the SLiM theme, or use the default.
slimThemesDir =
let
- unpackedTheme = pkgs.stdenv.mkDerivation {
- name = "slim-theme";
- buildCommand = ''
+ unpackedTheme = pkgs.runCommand "slim-theme" {}
+ ''
mkdir -p $out
cd $out
unpackFile ${cfg.theme}
ln -s * default
'';
- };
in if cfg.theme == null then "${pkgs.slim}/share/slim/themes" else unpackedTheme;
in
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 6c6a1e79ed0e..1bd578424ee4 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -71,15 +71,11 @@ let
monitors = reverseList (foldl mkMonitor [] xrandrHeads);
in concatMapStrings (getAttr "value") monitors;
- configFile = pkgs.stdenv.mkDerivation {
- name = "xserver.conf";
-
- xfs = optionalString (cfg.useXFS != false)
- ''FontPath "${toString cfg.useXFS}"'';
-
- inherit (cfg) config;
-
- buildCommand =
+ configFile = pkgs.runCommand "xserver.conf"
+ { xfs = optionalString (cfg.useXFS != false)
+ ''FontPath "${toString cfg.useXFS}"'';
+ inherit (cfg) config;
+ }
''
echo 'Section "Files"' >> $out
echo $xfs >> $out
@@ -102,7 +98,6 @@ let
echo "$config" >> $out
''; # */
- };
in
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 40e67fa5f8d2..8d02cd81e0e1 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -134,10 +134,9 @@ let
''; # */
- udevRules = pkgs.stdenv.mkDerivation {
- name = "udev-rules";
- allowedReferences = [ extraUtils ];
- buildCommand = ''
+ udevRules = pkgs.runCommand "udev-rules"
+ { allowedReferences = [ extraUtils ]; }
+ ''
mkdir -p $out
echo 'ENV{LD_LIBRARY_PATH}="${extraUtils}/lib"' > $out/00-env.rules
@@ -176,7 +175,6 @@ let
substituteInPlace $out/60-persistent-storage.rules \
--replace ID_CDROM_MEDIA_TRACK_COUNT_DATA ID_CDROM_MEDIA
''; # */
- };
# The init script of boot stage 1 (loading kernel modules for
@@ -230,16 +228,12 @@ let
{ object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf;
symlink = "/etc/mdadm.conf";
}
- { object = pkgs.stdenv.mkDerivation {
- name = "initrd-kmod-blacklist-ubuntu";
- builder = pkgs.writeText "builder.sh" ''
- source $stdenv/setup
+ { object = pkgs.runCommand "initrd-kmod-blacklist-ubuntu"
+ { src = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf"; }
+ ''
target=$out
-
${pkgs.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out
'';
- src = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf";
- };
symlink = "/etc/modprobe.d/ubuntu.conf";
}
{ object = pkgs.kmod-debian-aliases;