nixos: add preferLocalBuild=true; on derivations for config files

This commit is contained in:
Symphorien Gibol 2018-11-08 11:59:03 +01:00 committed by nix-review
parent 2a81eceeba
commit a915b33315
56 changed files with 99 additions and 60 deletions

View file

@ -55,7 +55,9 @@ let
localConf = pkgs.writeText "fc-local.conf" cfg.localConf; localConf = pkgs.writeText "fc-local.conf" cfg.localConf;
# The configuration to be included in /etc/font/ # The configuration to be included in /etc/font/
penultimateConf = pkgs.runCommand "font-penultimate-conf" {} '' penultimateConf = pkgs.runCommand "font-penultimate-conf" {
preferLocalBuild = true;
} ''
support_folder=$out/etc/fonts/conf.d support_folder=$out/etc/fonts/conf.d
latest_folder=$out/etc/fonts/${latestVersion}/conf.d latest_folder=$out/etc/fonts/${latestVersion}/conf.d

View file

@ -7,7 +7,7 @@ let cfg = config.fonts.fontconfig.ultimate;
latestVersion = pkgs.fontconfig.configVersion; latestVersion = pkgs.fontconfig.configVersion;
# The configuration to be included in /etc/font/ # The configuration to be included in /etc/font/
confPkg = pkgs.runCommand "font-ultimate-conf" {} '' confPkg = pkgs.runCommand "font-ultimate-conf" { preferLocalBuild = true; } ''
support_folder=$out/etc/fonts/conf.d support_folder=$out/etc/fonts/conf.d
latest_folder=$out/etc/fonts/${latestVersion}/conf.d latest_folder=$out/etc/fonts/${latestVersion}/conf.d

View file

@ -190,7 +190,7 @@ let cfg = config.fonts.fontconfig;
''; '';
# fontconfig configuration package # fontconfig configuration package
confPkg = pkgs.runCommand "fontconfig-conf" {} '' confPkg = pkgs.runCommand "fontconfig-conf" { preferLocalBuild = true; } ''
support_folder=$out/etc/fonts support_folder=$out/etc/fonts
latest_folder=$out/etc/fonts/${latestVersion} latest_folder=$out/etc/fonts/${latestVersion}

View file

@ -4,7 +4,7 @@ with lib;
let let
x11Fonts = pkgs.runCommand "X11-fonts" { } '' x11Fonts = pkgs.runCommand "X11-fonts" { preferLocalBuild = true; } ''
mkdir -p "$out/share/X11-fonts" mkdir -p "$out/share/X11-fonts"
find ${toString config.fonts.fonts} \ find ${toString config.fonts.fonts} \
\( -name fonts.dir -o -name '*.ttf' -o -name '*.otf' \) \ \( -name fonts.dir -o -name '*.ttf' -o -name '*.otf' \) \

View file

@ -29,6 +29,7 @@ runCommand "uvcdynctrl-udev-rules-${version}"
]; ];
dontPatchELF = true; dontPatchELF = true;
dontStrip = true; dontStrip = true;
preferLocalBuild = true;
} }
'' ''
mkdir -p "$out/lib/udev" mkdir -p "$out/lib/udev"

View file

@ -13,7 +13,7 @@ let
# user, as expected by nixos-rebuild/nixos-install. FIXME: merge # user, as expected by nixos-rebuild/nixos-install. FIXME: merge
# with make-channel.nix. # with make-channel.nix.
channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}" channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}"
{ } { preferLocalBuild = true; }
'' ''
mkdir -p $out mkdir -p $out
cp -prd ${nixpkgs.outPath} $out/nixos cp -prd ${nixpkgs.outPath} $out/nixos

View file

@ -25,7 +25,7 @@ let
''; '';
lessKey = pkgs.runCommand "lesskey" lessKey = pkgs.runCommand "lesskey"
{ src = pkgs.writeText "lessconfig" configText; } { src = pkgs.writeText "lessconfig" configText; preferLocalBuild = true; }
"${pkgs.less}/bin/lesskey -o $out $src"; "${pkgs.less}/bin/lesskey -o $out $src";
in in

View file

@ -14,6 +14,7 @@ let
{ files = { files =
cfg.certificateFiles ++ cfg.certificateFiles ++
[ (builtins.toFile "extra.crt" (concatStringsSep "\n" cfg.certificates)) ]; [ (builtins.toFile "extra.crt" (concatStringsSep "\n" cfg.certificates)) ];
preferLocalBuild = true;
} }
'' ''
cat $files > $out cat $files > $out

View file

@ -215,7 +215,10 @@ in
environment.etc = singleton environment.etc = singleton
{ source = { source =
pkgs.runCommand "sudoers" pkgs.runCommand "sudoers"
{ src = pkgs.writeText "sudoers-in" cfg.configFile; } {
src = pkgs.writeText "sudoers-in" cfg.configFile;
preferLocalBuild = true;
}
# Make sure that the sudoers file is syntactically valid. # Make sure that the sudoers file is syntactically valid.
# (currently disabled - NIXOS-66) # (currently disabled - NIXOS-66)
"${pkgs.buildPackages.sudo}/sbin/visudo -f $src -c && cp $src $out"; "${pkgs.buildPackages.sudo}/sbin/visudo -f $src -c && cp $src $out";

View file

@ -24,7 +24,7 @@ let
EOF EOF
chmod 755 $out/${name} chmod 755 $out/${name}
''; '';
in pkgs.runCommand "buildkite-agent-hooks" {} '' in pkgs.runCommand "buildkite-agent-hooks" { preferLocalBuild = true; } ''
mkdir $out mkdir $out
${concatStringsSep "\n" (mapAttrsToList mkHookEntry (filterAttrs (n: v: v != null) cfg.hooks))} ${concatStringsSep "\n" (mapAttrsToList mkHookEntry (filterAttrs (n: v: v != null) cfg.hooks))}
''; '';

View file

@ -8,6 +8,7 @@ let
if (cfg.configFile == null) then if (cfg.configFile == null) then
(pkgs.runCommand "config.toml" { (pkgs.runCommand "config.toml" {
buildInputs = [ pkgs.remarshal ]; buildInputs = [ pkgs.remarshal ];
preferLocalBuild = true;
} '' } ''
remarshal -if json -of toml \ remarshal -if json -of toml \
< ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \ < ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \

View file

@ -18,7 +18,7 @@ let
</configuration> </configuration>
''; '';
configDir = pkgs.runCommand "hbase-config-dir" {} '' configDir = pkgs.runCommand "hbase-config-dir" { preferLocalBuild = true; } ''
mkdir -p $out mkdir -p $out
cp ${cfg.package}/conf/* $out/ cp ${cfg.package}/conf/* $out/
rm $out/hbase-site.xml rm $out/hbase-site.xml

View file

@ -98,6 +98,7 @@ let
configFile = pkgs.runCommand "config.toml" { configFile = pkgs.runCommand "config.toml" {
buildInputs = [ pkgs.remarshal ]; buildInputs = [ pkgs.remarshal ];
preferLocalBuild = true;
} '' } ''
remarshal -if json -of toml \ remarshal -if json -of toml \
< ${pkgs.writeText "config.json" (builtins.toJSON configOptions)} \ < ${pkgs.writeText "config.json" (builtins.toJSON configOptions)} \

View file

@ -21,7 +21,7 @@ let
}; };
}; };
acpiConfDir = pkgs.runCommand "acpi-events" {} acpiConfDir = pkgs.runCommand "acpi-events" { preferLocalBuild = true; }
'' ''
mkdir -p $out mkdir -p $out
${ ${

View file

@ -17,6 +17,7 @@ tlp = pkgs.tlp.override {
confFile = pkgs.runCommand "tlp" confFile = pkgs.runCommand "tlp"
{ config = cfg.extraConfig; { config = cfg.extraConfig;
passAsFile = [ "config" ]; passAsFile = [ "config" ];
preferLocalBuild = true;
} }
'' ''
cat ${tlp}/etc/default/tlp > $out cat ${tlp}/etc/default/tlp > $out

View file

@ -5,7 +5,7 @@ with lib;
let let
cfg = config.services.logcheck; cfg = config.services.logcheck;
defaultRules = pkgs.runCommand "logcheck-default-rules" {} '' defaultRules = pkgs.runCommand "logcheck-default-rules" { preferLocalBuild = true; } ''
cp -prd ${pkgs.logcheck}/etc/logcheck $out cp -prd ${pkgs.logcheck}/etc/logcheck $out
chmod u+w $out chmod u+w $out
rm -r $out/logcheck.* rm -r $out/logcheck.*

View file

@ -27,7 +27,10 @@ let
logstashSettingsYml = pkgs.writeText "logstash.yml" cfg.extraSettings; logstashSettingsYml = pkgs.writeText "logstash.yml" cfg.extraSettings;
logstashSettingsDir = pkgs.runCommand "logstash-settings" {inherit logstashSettingsYml;} '' logstashSettingsDir = pkgs.runCommand "logstash-settings" {
inherit logstashSettingsYml;
preferLocalBuild = true;
} ''
mkdir -p $out mkdir -p $out
ln -s $logstashSettingsYml $out/logstash.yml ln -s $logstashSettingsYml $out/logstash.yml
''; '';

View file

@ -8,7 +8,7 @@ let
conf = pkgs.writeText "smtpd.conf" cfg.serverConfiguration; conf = pkgs.writeText "smtpd.conf" cfg.serverConfiguration;
args = concatStringsSep " " cfg.extraServerArgs; args = concatStringsSep " " cfg.extraServerArgs;
sendmail = pkgs.runCommand "opensmtpd-sendmail" {} '' sendmail = pkgs.runCommand "opensmtpd-sendmail" { preferLocalBuild = true; } ''
mkdir -p $out/bin mkdir -p $out/bin
ln -s ${cfg.package}/sbin/smtpctl $out/bin/sendmail ln -s ${cfg.package}/sbin/smtpctl $out/bin/sendmail
''; '';

View file

@ -110,7 +110,7 @@ in
config = mkIf cfg.enable ( config = mkIf cfg.enable (
let let
manageGitoliteRc = cfg.extraGitoliteRc != ""; manageGitoliteRc = cfg.extraGitoliteRc != "";
rcDir = pkgs.runCommand "gitolite-rc" { } rcDirScript; rcDir = pkgs.runCommand "gitolite-rc" { preferLocalBuild = true; } rcDirScript;
rcDirScript = rcDirScript =
'' ''
mkdir "$out" mkdir "$out"

View file

@ -33,7 +33,7 @@ let
sh = pkgs.runtimeShell; sh = pkgs.runtimeShell;
binshDeps = pkgs.writeReferencesToFile sh; binshDeps = pkgs.writeReferencesToFile sh;
in in
pkgs.runCommand "nix.conf" { extraOptions = cfg.extraOptions; } ('' pkgs.runCommand "nix.conf" { preferLocalBuild = true; extraOptions = cfg.extraOptions; } (''
${optionalString (!isNix20) '' ${optionalString (!isNix20) ''
extraPaths=$(for i in $(cat ${binshDeps}); do if test -d $i; then echo $i; fi; done) extraPaths=$(for i in $(cat ${binshDeps}); do if test -d $i; then echo $i; fi; done)
''} ''}

View file

@ -109,7 +109,7 @@ let
nixos-taskserver = pkgs.pythonPackages.buildPythonApplication { nixos-taskserver = pkgs.pythonPackages.buildPythonApplication {
name = "nixos-taskserver"; name = "nixos-taskserver";
src = pkgs.runCommand "nixos-taskserver-src" {} '' src = pkgs.runCommand "nixos-taskserver-src" { preferLocalBuild = true; } ''
mkdir -p "$out" mkdir -p "$out"
cat "${pkgs.substituteAll { cat "${pkgs.substituteAll {
src = ./helper-tool.py; src = ./helper-tool.py;

View file

@ -45,7 +45,7 @@ let
eventToShellCmds = event: if builtins.hasAttr event cfg.hooks then (shellCmdsForEventScript event (builtins.getAttr event cfg.hooks)) else ""; eventToShellCmds = event: if builtins.hasAttr event cfg.hooks then (shellCmdsForEventScript event (builtins.getAttr event cfg.hooks)) else "";
scriptDir = pkgs.runCommand "apcupsd-scriptdir" {} ('' scriptDir = pkgs.runCommand "apcupsd-scriptdir" { preferLocalBuild = true; } (''
mkdir "$out" mkdir "$out"
# Copy SCRIPTDIR from apcupsd package # Copy SCRIPTDIR from apcupsd package
cp -r ${pkgs.apcupsd}/etc/apcupsd/* "$out"/ cp -r ${pkgs.apcupsd}/etc/apcupsd/* "$out"/

View file

@ -9,8 +9,10 @@ let
dataDir = cfg.dataDir; dataDir = cfg.dataDir;
staticDir = cfg.dataDir + "/static"; staticDir = cfg.dataDir + "/static";
graphiteLocalSettingsDir = pkgs.runCommand "graphite_local_settings" graphiteLocalSettingsDir = pkgs.runCommand "graphite_local_settings" {
{inherit graphiteLocalSettings;} '' inherit graphiteLocalSettings;
preferLocalBuild = true;
} ''
mkdir -p $out mkdir -p $out
ln -s $graphiteLocalSettings $out/graphite_local_settings.py ln -s $graphiteLocalSettings $out/graphite_local_settings.py
''; '';

View file

@ -11,8 +11,10 @@ let
nagiosObjectDefs = cfg.objectDefs; nagiosObjectDefs = cfg.objectDefs;
nagiosObjectDefsDir = pkgs.runCommand "nagios-objects" {inherit nagiosObjectDefs;} nagiosObjectDefsDir = pkgs.runCommand "nagios-objects" {
"mkdir -p $out; ln -s $nagiosObjectDefs $out/"; inherit nagiosObjectDefs;
preferLocalBuild = true;
} "mkdir -p $out; ln -s $nagiosObjectDefs $out/";
nagiosCfgFile = pkgs.writeText "nagios.cfg" nagiosCfgFile = pkgs.writeText "nagios.cfg"
'' ''

View file

@ -5,7 +5,7 @@ with lib;
let let
cfg = config.services.netdata; cfg = config.services.netdata;
wrappedPlugins = pkgs.runCommand "wrapped-plugins" {} '' wrappedPlugins = pkgs.runCommand "wrapped-plugins" { preferLocalBuild = true; } ''
mkdir -p $out/libexec/netdata/plugins.d mkdir -p $out/libexec/netdata/plugins.d
ln -s /run/wrappers/bin/apps.plugin $out/libexec/netdata/plugins.d/apps.plugin ln -s /run/wrappers/bin/apps.plugin $out/libexec/netdata/plugins.d/apps.plugin
''; '';

View file

@ -19,7 +19,7 @@ let
# Pretty-print JSON to a file # Pretty-print JSON to a file
writePrettyJSON = name: x: writePrettyJSON = name: x:
pkgs.runCommand name { } '' pkgs.runCommand name { preferLocalBuild = true; } ''
echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out echo '${builtins.toJSON x}' | ${pkgs.jq}/bin/jq . > $out
''; '';

View file

@ -5,7 +5,7 @@ with lib;
let let
cfg = config.services.scollector; cfg = config.services.scollector;
collectors = pkgs.runCommand "collectors" {} collectors = pkgs.runCommand "collectors" { preferLocalBuild = true; }
'' ''
mkdir -p $out mkdir -p $out
${lib.concatStringsSep ${lib.concatStringsSep

View file

@ -7,6 +7,7 @@ let
configFile = pkgs.runCommand "config.toml" { configFile = pkgs.runCommand "config.toml" {
buildInputs = [ pkgs.remarshal ]; buildInputs = [ pkgs.remarshal ];
preferLocalBuild = true;
} '' } ''
remarshal -if json -of toml \ remarshal -if json -of toml \
< ${pkgs.writeText "config.json" (builtins.toJSON cfg.extraConfig)} \ < ${pkgs.writeText "config.json" (builtins.toJSON cfg.extraConfig)} \

View file

@ -4,7 +4,8 @@ let
cfg = config.services.uptime; cfg = config.services.uptime;
configDir = pkgs.runCommand "config" {} (if cfg.configFile != null then '' configDir = pkgs.runCommand "config" { preferLocalBuild = true; }
(if cfg.configFile != null then ''
mkdir $out mkdir $out
ext=`echo ${cfg.configFile} | grep -o \\..*` ext=`echo ${cfg.configFile} | grep -o \\..*`
ln -sv ${cfg.configFile} $out/default$ext ln -sv ${cfg.configFile} $out/default$ext

View file

@ -102,7 +102,10 @@ let
# wrappers to beegfs tools. Avoid typing path of config files # wrappers to beegfs tools. Avoid typing path of config files
utilWrappers = mapAttrsToList ( name: cfg: utilWrappers = mapAttrsToList ( name: cfg:
( pkgs.runCommand "beegfs-utils-${name}" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' ( pkgs.runCommand "beegfs-utils-${name}" {
nativeBuildInputs = [ pkgs.makeWrapper ];
preferLocalBuild = true;
} ''
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${pkgs.beegfs}/bin/beegfs-check-servers \ makeWrapper ${pkgs.beegfs}/bin/beegfs-check-servers \

View file

@ -19,7 +19,7 @@ let
"/var/lib/ipfs/.ipfs"; "/var/lib/ipfs/.ipfs";
# Wrapping the ipfs binary with the environment variable IPFS_PATH set to dataDir because we can't set it in the user environment # Wrapping the ipfs binary with the environment variable IPFS_PATH set to dataDir because we can't set it in the user environment
wrapped = runCommand "ipfs" { buildInputs = [ makeWrapper ]; } '' wrapped = runCommand "ipfs" { buildInputs = [ makeWrapper ]; preferLocalBuild = true; } ''
mkdir -p "$out/bin" mkdir -p "$out/bin"
makeWrapper "${ipfs}/bin/ipfs" "$out/bin/ipfs" \ makeWrapper "${ipfs}/bin/ipfs" "$out/bin/ipfs" \
--set IPFS_PATH ${cfg.dataDir} \ --set IPFS_PATH ${cfg.dataDir} \

View file

@ -15,7 +15,7 @@ let
clientServDB = pkgs.writeText "client-cellServDB-${cfg.cellName}" (mkCellServDB cfg.cellName cfg.cellServDB); clientServDB = pkgs.writeText "client-cellServDB-${cfg.cellName}" (mkCellServDB cfg.cellName cfg.cellServDB);
afsConfig = pkgs.runCommand "afsconfig" {} '' afsConfig = pkgs.runCommand "afsconfig" { preferLocalBuild = true; } ''
mkdir -p $out mkdir -p $out
echo ${cfg.cellName} > $out/ThisCell echo ${cfg.cellName} > $out/ThisCell
cat ${cellServDB} ${clientServDB} > $out/CellServDB cat ${cellServDB} ${clientServDB} > $out/CellServDB
@ -198,7 +198,7 @@ in
environment.etc = { environment.etc = {
clientCellServDB = { clientCellServDB = {
source = pkgs.runCommand "CellServDB" {} '' source = pkgs.runCommand "CellServDB" { preferLocalBuild = true; } ''
cat ${cellServDB} ${clientServDB} > $out cat ${cellServDB} ${clientServDB} > $out
''; '';
target = "openafs/CellServDB"; target = "openafs/CellServDB";

View file

@ -5,7 +5,7 @@ with lib;
let let
cfg = config.services.dnscache; cfg = config.services.dnscache;
dnscache-root = pkgs.runCommand "dnscache-root" {} '' dnscache-root = pkgs.runCommand "dnscache-root" { preferLocalBuild = true; } ''
mkdir -p $out/{servers,ip} mkdir -p $out/{servers,ip}
${concatMapStrings (ip: '' ${concatMapStrings (ip: ''

View file

@ -41,7 +41,7 @@ let
"$out/config.${name}" "$out/config.${name}"
''; '';
in in
pkgs.runCommand "hylafax-config-modems" {} pkgs.runCommand "hylafax-config-modems" { preferLocalBuild = true; }
''mkdir --parents "$out/" ${concatStringsSep "\n" (mapModems mkLine)}''; ''mkdir --parents "$out/" ${concatStringsSep "\n" (mapModems mkLine)}'';
setupSpoolScript = pkgs.substituteAll { setupSpoolScript = pkgs.substituteAll {

View file

@ -25,7 +25,7 @@ let
${cfg.extraConfig} ${cfg.extraConfig}
''; '';
prayerCfg = pkgs.runCommand "prayer.cf" { } '' prayerCfg = pkgs.runCommand "prayer.cf" { preferLocalBuild = true; } ''
# We have to remove the http_port 80, or it will start a server there # We have to remove the http_port 80, or it will start a server there
cat ${prayer}/etc/prayer.cf | grep -v http_port > $out cat ${prayer}/etc/prayer.cf | grep -v http_port > $out
cat ${prayerExtraCfg} >> $out cat ${prayerExtraCfg} >> $out

View file

@ -6,7 +6,7 @@ let
cfg = config.services.shout; cfg = config.services.shout;
shoutHome = "/var/lib/shout"; shoutHome = "/var/lib/shout";
defaultConfig = pkgs.runCommand "config.js" {} '' defaultConfig = pkgs.runCommand "config.js" { preferLocalBuild = true; } ''
EDITOR=true ${pkgs.shout}/bin/shout config --home $PWD EDITOR=true ${pkgs.shout}/bin/shout config --home $PWD
mv config.js $out mv config.js $out
''; '';

View file

@ -4,7 +4,7 @@ with lib;
let let
cfg = config.services.xrdp; cfg = config.services.xrdp;
confDir = pkgs.runCommand "xrdp.conf" { } '' confDir = pkgs.runCommand "xrdp.conf" { preferLocalBuild = true; } ''
mkdir $out mkdir $out
cp ${cfg.package}/etc/xrdp/{km-*,xrdp,sesman,xrdp_keyboard}.ini $out cp ${cfg.package}/etc/xrdp/{km-*,xrdp,sesman,xrdp_keyboard}.ini $out

View file

@ -11,8 +11,9 @@ let
avahiEnabled = config.services.avahi.enable; avahiEnabled = config.services.avahi.enable;
polkitEnabled = config.security.polkit.enable; polkitEnabled = config.security.polkit.enable;
additionalBackends = pkgs.runCommand "additional-cups-backends" { } additionalBackends = pkgs.runCommand "additional-cups-backends" {
'' preferLocalBuild = true;
} ''
mkdir -p $out mkdir -p $out
if [ ! -e ${cups.out}/lib/cups/backend/smb ]; then if [ ! -e ${cups.out}/lib/cups/backend/smb ]; then
mkdir -p $out/lib/cups/backend mkdir -p $out/lib/cups/backend

View file

@ -82,7 +82,7 @@ in {
X-RestartIfChanged=false X-RestartIfChanged=false
''; '';
systemd.units."autovt@.service".unit = pkgs.runCommand "unit" { } systemd.units."autovt@.service".unit = pkgs.runCommand "unit" { preferLocalBuild = true; }
'' ''
mkdir -p $out mkdir -p $out
ln -s ${config.systemd.units."kmsconvt@.service".unit}/kmsconvt@.service $out/autovt@.service ln -s ${config.systemd.units."kmsconvt@.service".unit}/kmsconvt@.service $out/autovt@.service

View file

@ -6,7 +6,7 @@ let
cfg = config.services.codimd; cfg = config.services.codimd;
prettyJSON = conf: prettyJSON = conf:
pkgs.runCommand "codimd-config.json" { } '' pkgs.runCommand "codimd-config.json" { preferLocalBuild = true; } ''
echo '${builtins.toJSON conf}' | ${pkgs.jq}/bin/jq \ echo '${builtins.toJSON conf}' | ${pkgs.jq}/bin/jq \
'{production:del(.[]|nulls)|del(.[][]?|nulls)}' > $out '{production:del(.[]|nulls)|del(.[][]?|nulls)}' > $out
''; '';

View file

@ -217,7 +217,7 @@ let
) null ([ cfg ] ++ subservices); ) null ([ cfg ] ++ subservices);
documentRoot = if maybeDocumentRoot != null then maybeDocumentRoot else documentRoot = if maybeDocumentRoot != null then maybeDocumentRoot else
pkgs.runCommand "empty" {} "mkdir -p $out"; pkgs.runCommand "empty" { preferLocalBuild = true; } "mkdir -p $out";
documentRootConf = '' documentRootConf = ''
DocumentRoot "${documentRoot}" DocumentRoot "${documentRoot}"
@ -426,6 +426,7 @@ let
phpIni = pkgs.runCommand "php.ini" phpIni = pkgs.runCommand "php.ini"
{ options = concatStringsSep "\n" { options = concatStringsSep "\n"
([ mainCfg.phpOptions ] ++ (map (svc: svc.phpOptions) allSubservices)); ([ mainCfg.phpOptions ] ++ (map (svc: svc.phpOptions) allSubservices));
preferLocalBuild = true;
} }
'' ''
cat ${php}/etc/php.ini > $out cat ${php}/etc/php.ini > $out

View file

@ -116,9 +116,10 @@ let
''; '';
}; };
mediawikiScripts = pkgs.runCommand "mediawiki-${config.id}-scripts" mediawikiScripts = pkgs.runCommand "mediawiki-${config.id}-scripts" {
{ buildInputs = [ pkgs.makeWrapper ]; } buildInputs = [ pkgs.makeWrapper ];
'' preferLocalBuild = true;
} ''
mkdir -p $out/bin mkdir -p $out/bin
for i in changePassword.php createAndPromote.php userOptions.php edit.php nukePage.php update.php; do for i in changePassword.php createAndPromote.php userOptions.php edit.php nukePage.php update.php; do
makeWrapper ${php}/bin/php $out/bin/mediawiki-${config.id}-$(basename $i .php) \ makeWrapper ${php}/bin/php $out/bin/mediawiki-${config.id}-$(basename $i .php) \

View file

@ -39,6 +39,7 @@ let
phpIni = pool: pkgs.runCommand "php.ini" { phpIni = pool: pkgs.runCommand "php.ini" {
inherit (pool) phpPackage phpOptions; inherit (pool) phpPackage phpOptions;
preferLocalBuild = true;
nixDefaults = '' nixDefaults = ''
sendmail_path = "/run/wrappers/bin/sendmail -t -i" sendmail_path = "/run/wrappers/bin/sendmail -t -i"
''; '';

View file

@ -8,6 +8,7 @@ let
if cfg.configFile == null then if cfg.configFile == null then
pkgs.runCommand "config.toml" { pkgs.runCommand "config.toml" {
buildInputs = [ pkgs.remarshal ]; buildInputs = [ pkgs.remarshal ];
preferLocalBuild = true;
} '' } ''
remarshal -if json -of toml \ remarshal -if json -of toml \
< ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \ < ${pkgs.writeText "config.json" (builtins.toJSON cfg.configOptions)} \

View file

@ -15,7 +15,7 @@ let
''; '';
}; };
nixos-gsettings-desktop-schemas = pkgs.runCommand "nixos-gsettings-desktop-schemas" {} nixos-gsettings-desktop-schemas = pkgs.runCommand "nixos-gsettings-desktop-schemas" { preferLocalBuild = true; }
'' ''
mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
cp -rf ${pkgs.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 cp -rf ${pkgs.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

View file

@ -12,9 +12,10 @@ let
# We need a few things in the environment for the greeter to run with # We need a few things in the environment for the greeter to run with
# fonts/icons. # fonts/icons.
wrappedEnsoGreeter = pkgs.runCommand "lightdm-enso-os-greeter" wrappedEnsoGreeter = pkgs.runCommand "lightdm-enso-os-greeter" {
{ buildInputs = [ pkgs.makeWrapper ]; } buildInputs = [ pkgs.makeWrapper ];
'' preferLocalBuild = true;
} ''
# This wrapper ensures that we actually get themes # This wrapper ensures that we actually get themes
makeWrapper ${pkgs.lightdm-enso-os-greeter}/bin/pantheon-greeter \ makeWrapper ${pkgs.lightdm-enso-os-greeter}/bin/pantheon-greeter \
$out/greeter \ $out/greeter \

View file

@ -18,9 +18,10 @@ let
# The default greeter provided with this expression is the GTK greeter. # 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 # Again, we need a few things in the environment for the greeter to run with
# fonts/icons. # fonts/icons.
wrappedGtkGreeter = pkgs.runCommand "lightdm-gtk-greeter" wrappedGtkGreeter = pkgs.runCommand "lightdm-gtk-greeter" {
{ buildInputs = [ pkgs.makeWrapper ]; } buildInputs = [ pkgs.makeWrapper ];
'' preferLocalBuild = true;
} ''
# This wrapper ensures that we actually get themes # This wrapper ensures that we actually get themes
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \ makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
$out/greeter \ $out/greeter \

View file

@ -28,7 +28,7 @@ let
# Unpack the SLiM theme, or use the default. # Unpack the SLiM theme, or use the default.
slimThemesDir = slimThemesDir =
let let
unpackedTheme = pkgs.runCommand "slim-theme" {} unpackedTheme = pkgs.runCommand "slim-theme" { preferLocalBuild = true; }
'' ''
mkdir -p $out mkdir -p $out
cd $out cd $out

View file

@ -10,7 +10,7 @@ let
# Generate the cache file by running gdk-pixbuf-query-loaders for each # Generate the cache file by running gdk-pixbuf-query-loaders for each
# package and concatenating the results. # package and concatenating the results.
loadersCache = pkgs.runCommand "gdk-pixbuf-loaders.cache" {} '' loadersCache = pkgs.runCommand "gdk-pixbuf-loaders.cache" { preferLocalBuild = true; } ''
( (
for package in ${concatStringsSep " " effectivePackages}; do for package in ${concatStringsSep " " effectivePackages}; do
module_dir="$package/${pkgs.gdk_pixbuf.moduleDir}" module_dir="$package/${pkgs.gdk_pixbuf.moduleDir}"

View file

@ -113,6 +113,7 @@ let
{ xfs = optionalString (cfg.useXFS != false) { xfs = optionalString (cfg.useXFS != false)
''FontPath "${toString cfg.useXFS}"''; ''FontPath "${toString cfg.useXFS}"'';
inherit (cfg) config; inherit (cfg) config;
preferLocalBuild = true;
} }
'' ''
echo 'Section "Files"' >> $out echo 'Section "Files"' >> $out
@ -705,6 +706,7 @@ in
system.extraDependencies = singleton (pkgs.runCommand "xkb-validated" { system.extraDependencies = singleton (pkgs.runCommand "xkb-validated" {
inherit (cfg) xkbModel layout xkbVariant xkbOptions; inherit (cfg) xkbModel layout xkbVariant xkbOptions;
nativeBuildInputs = [ pkgs.xkbvalidate ]; nativeBuildInputs = [ pkgs.xkbvalidate ];
preferLocalBuild = true;
} '' } ''
validate "$xkbModel" "$layout" "$xkbVariant" "$xkbOptions" validate "$xkbModel" "$layout" "$xkbVariant" "$xkbOptions"
touch "$out" touch "$out"

View file

@ -196,9 +196,10 @@ let
''; # */ ''; # */
udevRules = pkgs.runCommand "udev-rules" udevRules = pkgs.runCommand "udev-rules" {
{ allowedReferences = [ extraUtils ]; } allowedReferences = [ extraUtils ];
'' preferLocalBuild = true;
} ''
mkdir -p $out mkdir -p $out
echo 'ENV{LD_LIBRARY_PATH}="${extraUtils}/lib"' > $out/00-env.rules echo 'ENV{LD_LIBRARY_PATH}="${extraUtils}/lib"' > $out/00-env.rules
@ -298,9 +299,10 @@ let
{ object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf; { object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf;
symlink = "/etc/mdadm.conf"; symlink = "/etc/mdadm.conf";
} }
{ object = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" { object = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" {
{ src = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf"; } src = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf";
'' preferLocalBuild = true;
} ''
target=$out target=$out
${pkgs.buildPackages.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out ${pkgs.buildPackages.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out
''; '';

View file

@ -759,7 +759,10 @@ in
environment.etc = let environment.etc = let
# generate contents for /etc/systemd/system-generators from # generate contents for /etc/systemd/system-generators from
# systemd.generators and systemd.generator-packages # systemd.generators and systemd.generator-packages
generators = pkgs.runCommand "system-generators" { packages = cfg.generator-packages; } '' generators = pkgs.runCommand "system-generators" {
preferLocalBuild = true;
packages = cfg.generator-packages;
} ''
mkdir -p $out mkdir -p $out
for package in $packages for package in $packages
do do

View file

@ -6,7 +6,7 @@ let
inInitrd = any (fs: fs == "vboxsf") config.boot.initrd.supportedFilesystems; inInitrd = any (fs: fs == "vboxsf") config.boot.initrd.supportedFilesystems;
package = pkgs.runCommand "mount.vboxsf" {} '' package = pkgs.runCommand "mount.vboxsf" { preferLocalBuild = true; } ''
mkdir -p $out/bin mkdir -p $out/bin
cp ${pkgs.linuxPackages.virtualboxGuestAdditions}/bin/mount.vboxsf $out/bin cp ${pkgs.linuxPackages.virtualboxGuestAdditions}/bin/mount.vboxsf $out/bin
''; '';

View file

@ -15,6 +15,7 @@ let
optimizedKeymap = pkgs.runCommand "keymap" { optimizedKeymap = pkgs.runCommand "keymap" {
nativeBuildInputs = [ pkgs.buildPackages.kbd ]; nativeBuildInputs = [ pkgs.buildPackages.kbd ];
LOADKEYS_KEYMAP_PATH = "${kbdEnv}/share/keymaps/**"; LOADKEYS_KEYMAP_PATH = "${kbdEnv}/share/keymaps/**";
preferLocalBuild = true;
} '' } ''
loadkeys -b ${optionalString isUnicode "-u"} "${config.i18n.consoleKeyMap}" > $out loadkeys -b ${optionalString isUnicode "-u"} "${config.i18n.consoleKeyMap}" > $out
''; '';

View file

@ -995,7 +995,7 @@ in
''; '';
environment.etc."hostid" = mkIf (cfg.hostId != null) environment.etc."hostid" = mkIf (cfg.hostId != null)
{ source = pkgs.runCommand "gen-hostid" {} '' { source = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
hi="${cfg.hostId}" hi="${cfg.hostId}"
${if pkgs.stdenv.isBigEndian then '' ${if pkgs.stdenv.isBigEndian then ''
echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > $out echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > $out

View file

@ -17,6 +17,8 @@ stdenv.mkDerivation {
exportReferencesGraph.closure = rootPaths; exportReferencesGraph.closure = rootPaths;
preferLocalBuild = true;
PATH = "${buildPackages.coreutils}/bin:${buildPackages.jq}/bin"; PATH = "${buildPackages.coreutils}/bin:${buildPackages.jq}/bin";
builder = builtins.toFile "builder" builder = builtins.toFile "builder"