Merge branch 'master' into staging

obadz c7142c1a 6eb40148

+185 -137
+17 -7
lib/modules.nix
··· 105 /* Massage a module into canonical form, that is, a set consisting 106 of ‘options’, ‘config’ and ‘imports’ attributes. */ 107 unifyModuleSyntax = file: key: m: 108 if m ? config || m ? options then 109 - let badAttrs = removeAttrs m ["imports" "options" "config" "key" "_file"]; in 110 if badAttrs != {} then 111 throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by assignments to the top-level attributes `config' or `options'." 112 else ··· 114 key = toString m.key or key; 115 imports = m.imports or []; 116 options = m.options or {}; 117 - config = m.config or {}; 118 } 119 else 120 { file = m._file or file; 121 key = toString m.key or key; 122 imports = m.require or [] ++ m.imports or []; 123 options = {}; 124 - config = removeAttrs m ["key" "_file" "require" "imports"]; 125 }; 126 127 applyIfFunction = key: f: args@{ config, options, lib, ... }: if isFunction f then ··· 503 /* Return a module that causes a warning to be shown if the 504 specified option is defined. For example, 505 506 - mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ] 507 508 causes a warning if the user defines boot.loader.grub.bootDevice. 509 */ 510 - mkRemovedOptionModule = optionName: 511 { options, ... }: 512 { options = setAttrByPath optionName (mkOption { 513 visible = false; 514 }); 515 config.warnings = 516 let opt = getAttrFromPath optionName options; in 517 - optional opt.isDefined 518 - "The option definition `${showOption optionName}' in ${showFiles opt.files} no longer has any effect; please remove it."; 519 }; 520 521 /* Return a module that causes a warning to be shown if the
··· 105 /* Massage a module into canonical form, that is, a set consisting 106 of ‘options’, ‘config’ and ‘imports’ attributes. */ 107 unifyModuleSyntax = file: key: m: 108 + let metaSet = if m ? meta 109 + then { meta = m.meta; } 110 + else {}; 111 + in 112 if m ? config || m ? options then 113 + let badAttrs = removeAttrs m ["imports" "options" "config" "key" "_file" "meta"]; in 114 if badAttrs != {} then 115 throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by assignments to the top-level attributes `config' or `options'." 116 else ··· 118 key = toString m.key or key; 119 imports = m.imports or []; 120 options = m.options or {}; 121 + config = mkMerge [ (m.config or {}) metaSet ]; 122 } 123 else 124 { file = m._file or file; 125 key = toString m.key or key; 126 imports = m.require or [] ++ m.imports or []; 127 options = {}; 128 + config = mkMerge [ (removeAttrs m ["key" "_file" "require" "imports"]) metaSet ]; 129 }; 130 131 applyIfFunction = key: f: args@{ config, options, lib, ... }: if isFunction f then ··· 507 /* Return a module that causes a warning to be shown if the 508 specified option is defined. For example, 509 510 + mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ] "<replacement instructions>" 511 512 causes a warning if the user defines boot.loader.grub.bootDevice. 513 + 514 + replacementInstructions is a string that provides instructions on 515 + how to achieve the same functionality without the removed option, 516 + or alternatively a reasoning why the functionality is not needed. 517 + replacementInstructions SHOULD be provided! 518 */ 519 + mkRemovedOptionModule = optionName: replacementInstructions: 520 { options, ... }: 521 { options = setAttrByPath optionName (mkOption { 522 visible = false; 523 }); 524 config.warnings = 525 let opt = getAttrFromPath optionName options; in 526 + optional opt.isDefined '' 527 + The option definition `${showOption optionName}' in ${showFiles opt.files} no longer has any effect; please remove it. 528 + ${replacementInstructions}''; 529 }; 530 531 /* Return a module that causes a warning to be shown if the
+2 -6
nixos/doc/manual/configuration/configuration.xml
··· 25 <xi:include href="linux-kernel.xml" /> 26 <xi:include href="grsecurity.xml" /> 27 28 - <!-- FIXME: auto-include NixOS module docs --> 29 - <xi:include href="postgresql.xml" /> 30 - <xi:include href="gitlab.xml" /> 31 - <xi:include href="taskserver.xml" /> 32 - <xi:include href="acme.xml" /> 33 - <xi:include href="input-methods.xml" /> 34 <xi:include href="emacs.xml" /> 35 36 <!-- Apache; libvirtd virtualisation --> 37 38 </part>
··· 25 <xi:include href="linux-kernel.xml" /> 26 <xi:include href="grsecurity.xml" /> 27 28 <xi:include href="emacs.xml" /> 29 + <xi:include href="modules.xml" xpointer="xpointer(//section[@id='modules']/*)" /> 30 31 <!-- Apache; libvirtd virtualisation --> 32 33 </part> 34 +
+10 -1
nixos/doc/manual/default.nix
··· 1 - { pkgs, options, version, revision, extraSources ? [] }: 2 3 with pkgs; 4 ··· 51 52 sources = lib.sourceFilesBySuffices ./. [".xml"]; 53 54 copySources = 55 '' 56 cp -prd $sources/* . # */ ··· 61 cp ${../../modules/security/acme.xml} configuration/acme.xml 62 cp ${../../modules/i18n/input-method/default.xml} configuration/input-methods.xml 63 cp ${../../modules/services/editors/emacs.xml} configuration/emacs.xml 64 ln -s ${optionsDocBook} options-db.xml 65 echo "${version}" > version 66 '';
··· 1 + { pkgs, options, config, version, revision, extraSources ? [] }: 2 3 with pkgs; 4 ··· 51 52 sources = lib.sourceFilesBySuffices ./. [".xml"]; 53 54 + modulesDoc = builtins.toFile "modules.xml" '' 55 + <section xmlns:xi="http://www.w3.org/2001/XInclude" id="modules"> 56 + ${(lib.concatMapStrings (path: '' 57 + <xi:include href="${path}" /> 58 + '') (lib.catAttrs "value" config.meta.doc))} 59 + </section> 60 + ''; 61 + 62 copySources = 63 '' 64 cp -prd $sources/* . # */ ··· 69 cp ${../../modules/security/acme.xml} configuration/acme.xml 70 cp ${../../modules/i18n/input-method/default.xml} configuration/input-methods.xml 71 cp ${../../modules/services/editors/emacs.xml} configuration/emacs.xml 72 + ln -s ${modulesDoc} configuration/modules.xml 73 ln -s ${optionsDocBook} options-db.xml 74 echo "${version}" > version 75 '';
+35
nixos/doc/manual/release-notes/rl-1603.xml
··· 385 the github issue</link>. 386 </para> 387 </listitem> 388 </itemizedlist> 389 390
··· 385 the github issue</link>. 386 </para> 387 </listitem> 388 + 389 + <listitem> 390 + <para> 391 + The <literal>services.xserver.startGnuPGAgent</literal> option has been removed. 392 + GnuPG 2.1.x changed the way the gpg-agent works, and that new approach no 393 + longer requires (or even supports) the "start everything as a child of the 394 + agent" scheme we've implemented in NixOS for older versions. 395 + To configure the gpg-agent for your X session, add the following code to 396 + <filename>~/.bashrc</filename> or some file that’s sourced when your shell is started: 397 + <programlisting> 398 + GPG_TTY=$(tty) 399 + export GPG_TTY 400 + </programlisting> 401 + If you want to use gpg-agent for SSH, too, add the following to your session 402 + initialization (e.g. <literal>displayManager.sessionCommands</literal>) 403 + <programlisting> 404 + gpg-connect-agent /bye 405 + unset SSH_AGENT_PID 406 + export SSH_AUTH_SOCK="''${HOME}/.gnupg/S.gpg-agent.ssh" 407 + </programlisting> 408 + and make sure that 409 + <programlisting> 410 + enable-ssh-support 411 + </programlisting> 412 + is included in your <filename>~/.gnupg/gpg-agent.conf</filename>. 413 + You will need to use <command>ssh-add</command> to re-add your ssh keys. 414 + If gpg’s automatic transformation of the private keys to the new format fails, 415 + you will need to re-import your private keyring as well: 416 + <programlisting> 417 + gpg --import ~/.gnupg/secring.gpg 418 + </programlisting> 419 + The <command>gpg-agent(1)</command> man page has more details about this subject, 420 + i.e. in the "EXAMPLES" section. 421 + </para> 422 + </listitem> 423 </itemizedlist> 424 425
+5
nixos/modules/i18n/input-method/default.nix
··· 62 environment.systemPackages = [ cfg.package gtk2_cache gtk3_cache ]; 63 }; 64 65 }
··· 62 environment.systemPackages = [ cfg.package gtk2_cache gtk3_cache ]; 63 }; 64 65 + meta = { 66 + maintainers = with lib.maintainers; [ ericsagnes ]; 67 + doc = ./default.xml; 68 + }; 69 + 70 }
+3 -5
nixos/modules/misc/meta.nix
··· 39 default = []; 40 example = [ lib.maintainers.all ]; 41 description = '' 42 - List of maintainers of each module. This option should be defined at 43 most once per module. 44 ''; 45 }; ··· 49 internal = true; 50 example = "./meta.xml"; 51 description = '' 52 - Documentation prologe for the set of options of each module. This 53 option should be defined at most once per module. 54 ''; 55 }; ··· 57 }; 58 }; 59 60 - config = { 61 - meta.maintainers = singleton lib.maintainers.pierron; 62 - }; 63 }
··· 39 default = []; 40 example = [ lib.maintainers.all ]; 41 description = '' 42 + List of maintainers of each module. This option should be defined at 43 most once per module. 44 ''; 45 }; ··· 49 internal = true; 50 example = "./meta.xml"; 51 description = '' 52 + Documentation prologe for the set of options of each module. This 53 option should be defined at most once per module. 54 ''; 55 }; ··· 57 }; 58 }; 59 60 + meta.maintainers = singleton lib.maintainers.pierron; 61 }
+15 -15
nixos/modules/rename.nix
··· 29 (mkRenamedOptionModule [ "jobs" ] [ "systemd" "services" ]) 30 31 (mkRenamedOptionModule [ "services" "gitlab" "stateDir" ] [ "services" "gitlab" "statePath" ]) 32 - (mkRemovedOptionModule [ "services" "gitlab" "satelliteDir" ]) 33 34 # Old Grub-related options. 35 (mkRenamedOptionModule [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ]) ··· 112 (mkRenamedOptionModule [ "services" "iodined" "domain" ] [ "services" "iodine" "server" "domain" ]) 113 (mkRenamedOptionModule [ "services" "iodined" "ip" ] [ "services" "iodine" "server" "ip" ]) 114 (mkRenamedOptionModule [ "services" "iodined" "extraConfig" ] [ "services" "iodine" "server" "extraConfig" ]) 115 - (mkRemovedOptionModule [ "services" "iodined" "client" ]) 116 117 # Grsecurity 118 (mkRemovedOptionModule [ "security" "grsecurity" "kernelPatch" ]) ··· 141 (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "rendering" ] [ "fonts" "fontconfig" "ultimate" "preset" ]) 142 143 # Options that are obsolete and have no replacement. 144 - (mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ]) 145 - (mkRemovedOptionModule [ "programs" "bash" "enable" ]) 146 - (mkRemovedOptionModule [ "services" "samba" "defaultShare" ]) 147 - (mkRemovedOptionModule [ "services" "syslog-ng" "serviceName" ]) 148 - (mkRemovedOptionModule [ "services" "syslog-ng" "listenToJournal" ]) 149 - (mkRemovedOptionModule [ "ec2" "metadata" ]) 150 - (mkRemovedOptionModule [ "services" "openvpn" "enable" ]) 151 - (mkRemovedOptionModule [ "services" "printing" "cupsFilesConf" ]) 152 - (mkRemovedOptionModule [ "services" "printing" "cupsdConf" ]) 153 - (mkRemovedOptionModule [ "services" "xserver" "startGnuPGAgent" ]) 154 - (mkRemovedOptionModule [ "services" "phpfpm" "phpIni" ]) 155 - (mkRemovedOptionModule [ "services" "dovecot2" "package" ]) 156 - 157 ]; 158 }
··· 29 (mkRenamedOptionModule [ "jobs" ] [ "systemd" "services" ]) 30 31 (mkRenamedOptionModule [ "services" "gitlab" "stateDir" ] [ "services" "gitlab" "statePath" ]) 32 + (mkRemovedOptionModule [ "services" "gitlab" "satelliteDir" ] "") 33 34 # Old Grub-related options. 35 (mkRenamedOptionModule [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ]) ··· 112 (mkRenamedOptionModule [ "services" "iodined" "domain" ] [ "services" "iodine" "server" "domain" ]) 113 (mkRenamedOptionModule [ "services" "iodined" "ip" ] [ "services" "iodine" "server" "ip" ]) 114 (mkRenamedOptionModule [ "services" "iodined" "extraConfig" ] [ "services" "iodine" "server" "extraConfig" ]) 115 + (mkRemovedOptionModule [ "services" "iodined" "client" ] "") 116 117 # Grsecurity 118 (mkRemovedOptionModule [ "security" "grsecurity" "kernelPatch" ]) ··· 141 (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "rendering" ] [ "fonts" "fontconfig" "ultimate" "preset" ]) 142 143 # Options that are obsolete and have no replacement. 144 + (mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ] "") 145 + (mkRemovedOptionModule [ "programs" "bash" "enable" ] "") 146 + (mkRemovedOptionModule [ "services" "samba" "defaultShare" ] "") 147 + (mkRemovedOptionModule [ "services" "syslog-ng" "serviceName" ] "") 148 + (mkRemovedOptionModule [ "services" "syslog-ng" "listenToJournal" ] "") 149 + (mkRemovedOptionModule [ "ec2" "metadata" ] "") 150 + (mkRemovedOptionModule [ "services" "openvpn" "enable" ] "") 151 + (mkRemovedOptionModule [ "services" "printing" "cupsFilesConf" ] "") 152 + (mkRemovedOptionModule [ "services" "printing" "cupsdConf" ] "") 153 + (mkRemovedOptionModule [ "services" "xserver" "startGnuPGAgent" ] 154 + "See the 16.03 release notes for more information.") 155 + (mkRemovedOptionModule [ "services" "phpfpm" "phpIni" ] "") 156 + (mkRemovedOptionModule [ "services" "dovecot2" "package" ] "") 157 ]; 158 }
+4 -3
nixos/modules/security/acme.nix
··· 290 systemd.targets."acme-certificates" = {}; 291 }) 292 293 - { meta.maintainers = with lib.maintainers; [ abbradar fpletz globin ]; 294 - meta.doc = ./acme.xml; 295 - } 296 ]; 297 298 }
··· 290 systemd.targets."acme-certificates" = {}; 291 }) 292 293 ]; 294 295 + meta = { 296 + maintainers = with lib.maintainers; [ abbradar fpletz globin ]; 297 + doc = ./acme.xml; 298 + }; 299 }
+2
nixos/modules/services/databases/postgresql.nix
··· 253 254 }; 255 256 }
··· 253 254 }; 255 256 + meta.doc = ./postgresql.xml; 257 + 258 }
+3
nixos/modules/services/misc/gitlab.nix
··· 556 }; 557 558 }; 559 }
··· 556 }; 557 558 }; 559 + 560 + meta.doc = ./gitlab.xml; 561 + 562 }
+1 -1
nixos/modules/services/misc/nixos-manual.nix
··· 17 Caveat: even if the package is reached by a different means, 18 the path above will be shown and not e.g. `${config.services.foo.package}`. */ 19 manual = import ../../../doc/manual { 20 - inherit pkgs; 21 version = config.system.nixosRelease; 22 revision = "release-${config.system.nixosRelease}"; 23 options =
··· 17 Caveat: even if the package is reached by a different means, 18 the path above will be shown and not e.g. `${config.services.foo.package}`. */ 19 manual = import ../../../doc/manual { 20 + inherit pkgs config; 21 version = config.system.nixosRelease; 22 revision = "release-${config.system.nixosRelease}"; 23 options =
+2 -1
nixos/modules/services/misc/taskserver/default.nix
··· 534 (mkIf (cfg.enable && cfg.listenHost != "localhost") { 535 networking.firewall.allowedTCPPorts = [ cfg.listenPort ]; 536 }) 537 - { meta.doc = ./taskserver.xml; } 538 ]; 539 }
··· 534 (mkIf (cfg.enable && cfg.listenHost != "localhost") { 535 networking.firewall.allowedTCPPorts = [ cfg.listenPort ]; 536 }) 537 ]; 538 + 539 + meta.doc = ./doc.xml; 540 }
+35 -38
nixos/modules/services/networking/teamspeak3.nix
··· 95 96 ###### implementation 97 98 - config = mkMerge [ 99 - (mkIf cfg.enable { 100 - users.users.teamspeak = { 101 - description = "Teamspeak3 voice communication server daemon"; 102 - group = group; 103 - uid = config.ids.uids.teamspeak; 104 - home = cfg.dataDir; 105 - createHome = true; 106 - }; 107 108 - users.groups.teamspeak = { 109 - gid = config.ids.gids.teamspeak; 110 - }; 111 112 - systemd.services.teamspeak3-server = { 113 - description = "Teamspeak3 voice communication server daemon"; 114 - after = [ "network.target" ]; 115 - wantedBy = [ "multi-user.target" ]; 116 117 - preStart = '' 118 - mkdir -p ${cfg.logPath} 119 - chown ${user}:${group} ${cfg.logPath} 120 ''; 121 - 122 - serviceConfig = { 123 - ExecStart = '' 124 - ${ts3}/bin/ts3server \ 125 - dbsqlpath=${ts3}/lib/teamspeak/sql/ logpath=${cfg.logPath} \ 126 - voice_ip=${cfg.voiceIP} default_voice_port=${toString cfg.defaultVoicePort} \ 127 - filetransfer_ip=${cfg.fileTransferIP} filetransfer_port=${toString cfg.fileTransferPort} \ 128 - query_ip=${cfg.queryIP} query_port=${toString cfg.queryPort} 129 - ''; 130 - WorkingDirectory = cfg.dataDir; 131 - User = user; 132 - Group = group; 133 - PermissionsStartOnly = true; 134 - }; 135 }; 136 - }) 137 - { 138 - meta.maintainers = with lib.maintainers; [ arobyn ]; 139 - } 140 - ]; 141 }
··· 95 96 ###### implementation 97 98 + config = mkIf cfg.enable { 99 + users.users.teamspeak = { 100 + description = "Teamspeak3 voice communication server daemon"; 101 + group = group; 102 + uid = config.ids.uids.teamspeak; 103 + home = cfg.dataDir; 104 + createHome = true; 105 + }; 106 + 107 + users.groups.teamspeak = { 108 + gid = config.ids.gids.teamspeak; 109 + }; 110 111 + systemd.services.teamspeak3-server = { 112 + description = "Teamspeak3 voice communication server daemon"; 113 + after = [ "network.target" ]; 114 + wantedBy = [ "multi-user.target" ]; 115 116 + preStart = '' 117 + mkdir -p ${cfg.logPath} 118 + chown ${user}:${group} ${cfg.logPath} 119 + ''; 120 121 + serviceConfig = { 122 + ExecStart = '' 123 + ${ts3}/bin/ts3server \ 124 + dbsqlpath=${ts3}/lib/teamspeak/sql/ logpath=${cfg.logPath} \ 125 + voice_ip=${cfg.voiceIP} default_voice_port=${toString cfg.defaultVoicePort} \ 126 + filetransfer_ip=${cfg.fileTransferIP} filetransfer_port=${toString cfg.fileTransferPort} \ 127 + query_ip=${cfg.queryIP} query_port=${toString cfg.queryPort} 128 ''; 129 + WorkingDirectory = cfg.dataDir; 130 + User = user; 131 + Group = group; 132 + PermissionsStartOnly = true; 133 }; 134 + }; 135 + }; 136 + 137 + meta.maintainers = with lib.maintainers; [ arobyn ]; 138 }
+42 -45
nixos/modules/services/networking/wpa_supplicant.nix
··· 111 }; 112 }; 113 114 - config = mkMerge [ 115 - (mkIf cfg.enable { 116 - assertions = flip mapAttrsToList cfg.networks (name: cfg: { 117 - assertion = cfg.psk == null || cfg.pskRaw == null; 118 - message = ''networking.wireless."${name}".psk and networking.wireless."${name}".pskRaw are mutually exclusive''; 119 - }); 120 121 - environment.systemPackages = [ pkgs.wpa_supplicant ]; 122 123 - services.dbus.packages = [ pkgs.wpa_supplicant ]; 124 125 - # FIXME: start a separate wpa_supplicant instance per interface. 126 - systemd.services.wpa_supplicant = let 127 - ifaces = cfg.interfaces; 128 - deviceUnit = interface: [ "sys-subsystem-net-devices-${interface}.device" ]; 129 - in { 130 - description = "WPA Supplicant"; 131 132 - after = [ "network-interfaces.target" ] ++ lib.concatMap deviceUnit ifaces; 133 - requires = lib.concatMap deviceUnit ifaces; 134 - wantedBy = [ "network.target" ]; 135 136 - path = [ pkgs.wpa_supplicant ]; 137 138 - script = '' 139 - ${if ifaces == [] then '' 140 - for i in $(cd /sys/class/net && echo *); do 141 - DEVTYPE= 142 - source /sys/class/net/$i/uevent 143 - if [ "$DEVTYPE" = "wlan" -o -e /sys/class/net/$i/wireless ]; then 144 - ifaces="$ifaces''${ifaces:+ -N} -i$i" 145 - fi 146 - done 147 - '' else '' 148 - ifaces="${concatStringsSep " -N " (map (i: "-i${i}") ifaces)}" 149 - ''} 150 - exec wpa_supplicant -s -u -D${cfg.driver} -c ${configFile} $ifaces 151 - ''; 152 - }; 153 154 - powerManagement.resumeCommands = '' 155 - ${config.systemd.package}/bin/systemctl try-restart wpa_supplicant 156 - ''; 157 158 - # Restart wpa_supplicant when a wlan device appears or disappears. 159 - services.udev.extraRules = '' 160 - ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="${config.systemd.package}/bin/systemctl try-restart wpa_supplicant.service" 161 - ''; 162 - }) 163 - { 164 - meta.maintainers = with lib.maintainers; [ globin ]; 165 - } 166 - ]; 167 }
··· 111 }; 112 }; 113 114 + config = mkIf cfg.enable { 115 + assertions = flip mapAttrsToList cfg.networks (name: cfg: { 116 + assertion = cfg.psk == null || cfg.pskRaw == null; 117 + message = ''networking.wireless."${name}".psk and networking.wireless."${name}".pskRaw are mutually exclusive''; 118 + }); 119 120 + environment.systemPackages = [ pkgs.wpa_supplicant ]; 121 122 + services.dbus.packages = [ pkgs.wpa_supplicant ]; 123 124 + # FIXME: start a separate wpa_supplicant instance per interface. 125 + systemd.services.wpa_supplicant = let 126 + ifaces = cfg.interfaces; 127 + deviceUnit = interface: [ "sys-subsystem-net-devices-${interface}.device" ]; 128 + in { 129 + description = "WPA Supplicant"; 130 131 + after = [ "network-interfaces.target" ] ++ lib.concatMap deviceUnit ifaces; 132 + requires = lib.concatMap deviceUnit ifaces; 133 + wantedBy = [ "network.target" ]; 134 135 + path = [ pkgs.wpa_supplicant ]; 136 + 137 + script = '' 138 + ${if ifaces == [] then '' 139 + for i in $(cd /sys/class/net && echo *); do 140 + DEVTYPE= 141 + source /sys/class/net/$i/uevent 142 + if [ "$DEVTYPE" = "wlan" -o -e /sys/class/net/$i/wireless ]; then 143 + ifaces="$ifaces''${ifaces:+ -N} -i$i" 144 + fi 145 + done 146 + '' else '' 147 + ifaces="${concatStringsSep " -N " (map (i: "-i${i}") ifaces)}" 148 + ''} 149 + exec wpa_supplicant -s -u -D${cfg.driver} -c ${configFile} $ifaces 150 + ''; 151 + }; 152 153 + powerManagement.resumeCommands = '' 154 + ${config.systemd.package}/bin/systemctl try-restart wpa_supplicant 155 + ''; 156 157 + # Restart wpa_supplicant when a wlan device appears or disappears. 158 + services.udev.extraRules = '' 159 + ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="${config.systemd.package}/bin/systemctl try-restart wpa_supplicant.service" 160 + ''; 161 + }; 162 163 + meta.maintainers = with lib.maintainers; [ globin ]; 164 }
+2 -1
nixos/modules/services/x11/display-managers/default.nix
··· 306 }; 307 308 imports = [ 309 - (mkRemovedOptionModule [ "services" "xserver" "displayManager" "desktopManagerHandlesLidAndPower" ]) 310 ]; 311 312 }
··· 306 }; 307 308 imports = [ 309 + (mkRemovedOptionModule [ "services" "xserver" "displayManager" "desktopManagerHandlesLidAndPower" ] 310 + "The option is no longer necessary because all display managers have already delegated lid management to systemd.") 311 ]; 312 313 }
+1 -1
nixos/modules/system/boot/loader/grub/grub.nix
··· 500 501 502 imports = 503 - [ (mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ]) 504 (mkRenamedOptionModule [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ]) 505 (mkRenamedOptionModule [ "boot" "extraGrubEntries" ] [ "boot" "loader" "grub" "extraEntries" ]) 506 (mkRenamedOptionModule [ "boot" "extraGrubEntriesBeforeNixos" ] [ "boot" "loader" "grub" "extraEntriesBeforeNixOS" ])
··· 500 501 502 imports = 503 + [ (mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ] "") 504 (mkRenamedOptionModule [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ]) 505 (mkRenamedOptionModule [ "boot" "extraGrubEntries" ] [ "boot" "loader" "grub" "extraEntries" ]) 506 (mkRenamedOptionModule [ "boot" "extraGrubEntriesBeforeNixos" ] [ "boot" "loader" "grub" "extraEntriesBeforeNixOS" ])
+5 -12
pkgs/applications/virtualization/virtualbox/default.nix
··· 18 # revision/hash as well. See 19 # http://download.virtualbox.org/virtualbox/${version}/SHA256SUMS 20 # for hashes. 21 - version = "5.0.20"; 22 23 forEachModule = action: '' 24 for mod in \ ··· 39 ''; 40 41 # See https://github.com/NixOS/nixpkgs/issues/672 for details 42 - extpackRevision = "106931"; 43 extensionPack = requireFile rec { 44 name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack"; 45 # IMPORTANT: Hash must be base16 encoded because it's used as an input to 46 # VBoxExtPackHelperApp! 47 - sha256 = "11f40842a56ebb17da1bbc82a21543e66108a5330ebd54ded68038a990aa071b"; 48 message = '' 49 In order to use the extension pack, you need to comply with the VirtualBox Personal Use 50 and Evaluation License (PUEL) available at: ··· 63 64 src = fetchurl { 65 url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; 66 - sha256 = "0asc5n9an2dzvrd4isjz3vac2h0sm6dbzvrc36hn8ag2ma3hg75g"; 67 }; 68 69 buildInputs = ··· 99 set +x 100 ''; 101 102 - patches = optional enableHardening ./hardened.patch 103 - ++ [ 104 - (fetchurl rec { 105 - name = "fix-detect-gcc-5.4.patch"; 106 - url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=827193;filename=${name};msg=5"; 107 - sha256 = "0y6v5dc6fqj9iv27cl8q2g87v1kxg19129mpas4vjg7g0529v4g9"; 108 - }) 109 - ]; 110 111 postPatch = '' 112 sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \
··· 18 # revision/hash as well. See 19 # http://download.virtualbox.org/virtualbox/${version}/SHA256SUMS 20 # for hashes. 21 + version = "5.0.26"; 22 23 forEachModule = action: '' 24 for mod in \ ··· 39 ''; 40 41 # See https://github.com/NixOS/nixpkgs/issues/672 for details 42 + extpackRevision = "108824"; 43 extensionPack = requireFile rec { 44 name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack"; 45 # IMPORTANT: Hash must be base16 encoded because it's used as an input to 46 # VBoxExtPackHelperApp! 47 + sha256 = "2f2302c7ba3d00a1258fe8e7767a6eb08dccdc3c31f6e3eeb74063c2c268b104"; 48 message = '' 49 In order to use the extension pack, you need to comply with the VirtualBox Personal Use 50 and Evaluation License (PUEL) available at: ··· 63 64 src = fetchurl { 65 url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; 66 + sha256 = "78dec1369d2c8feefea3c682d95e76c0e99414c56626388035cf4061d4dad62e"; 67 }; 68 69 buildInputs = ··· 99 set +x 100 ''; 101 102 + patches = optional enableHardening ./hardened.patch; 103 104 postPatch = '' 105 sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \
+1 -1
pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
··· 12 13 src = fetchurl { 14 url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; 15 - sha256 = "1rh1dw0fqz1zhdbpnwxclh1bfj889xh27dm2m23v5wg54bymkfvg"; 16 }; 17 18 KERN_DIR = "${kernel.dev}/lib/modules/*/build";
··· 12 13 src = fetchurl { 14 url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; 15 + sha256 = "7458ee5a7121a7d243fd6a7528ba427945d9120c5efc7cd75b3951fb01f09c59"; 16 }; 17 18 KERN_DIR = "${kernel.dev}/lib/modules/*/build";