···14let
15 lib = pkgs.lib;
16000017 # We need to strip references to /nix/store/* from options,
18 # including any `extraSources` if some modules came from elsewhere,
19 # or else the build will fail.
···14let
15 lib = pkgs.lib;
1617+ docbook_xsl_ns = pkgs.docbook-xsl-ns.override {
18+ withManOptDedupPatch = true;
19+ };
20+21 # We need to strip references to /nix/store/* from options,
22 # including any `extraSources` if some modules came from elsewhere,
23 # or else the build will fail.
···5let
6 cfg = config.networking.networkmanager;
70000000000008 delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
910 enableIwd = cfg.wifi.backend == "iwd";
···133 '';
134 };
135136+ packages = [
137+ pkgs.modemmanager
138+ pkgs.networkmanager
139+ ]
140+ ++ cfg.plugins
141+ ++ lib.optionals (!delegateWireless && !enableIwd) [
142+ pkgs.wpa_supplicant
143+ ];
144+145in {
146147 meta = {
···224 '';
225 };
226227+ plugins = mkOption {
228+ type =
229+ let
230+ networkManagerPluginPackage = types.package // {
231+ description = "NetworkManager plug-in";
232+ check =
233+ p:
234+ lib.assertMsg
235+ (types.package.check p
236+ && p ? networkManagerPlugin
237+ && lib.isString p.networkManagerPlugin)
238+ ''
239+ Package ‘${p.name}’, is not a NetworkManager plug-in.
240+ Those need to have a ‘networkManagerPlugin’ attribute.
241+ '';
242+ };
243+ in
244+ types.listOf networkManagerPluginPackage;
245 default = [ ];
246 description = ''
247+ List of NetworkManager plug-ins to enable.
248+ Some plug-ins are enabled by the NetworkManager module by default.
249 '';
0250 };
251252 dhcp = mkOption {
253+ type = types.enum [ "dhcpcd" "internal" ];
254 default = "internal";
255 description = ''
256 Which program (or internal library) should be used for DHCP.
···393 </para><para>
394 If you enable this option the
395 <literal>networkmanager_strongswan</literal> plugin will be added to
396+ the <option>networking.networkmanager.plugins</option> option
397 so you don't need to to that yourself.
398 '';
399 };
···412 };
413414 imports = [
415+ (mkRenamedOptionModule
416+ [ "networking" "networkmanager" "packages" ]
417+ [ "networking" "networkmanager" "plugins" ])
418 (mkRenamedOptionModule [ "networking" "networkmanager" "useDnsmasq" ] [ "networking" "networkmanager" "dns" ])
419 (mkRemovedOptionModule ["networking" "networkmanager" "dynamicHosts"] ''
420 This option was removed because allowing (multiple) regular users to
···442443 hardware.wirelessRegulatoryDatabase = true;
444445+ environment.etc = {
446+ "NetworkManager/NetworkManager.conf".source = configFile;
0000000000000000000000447 }
448+ // builtins.listToAttrs (map (pkg: nameValuePair "NetworkManager/${pkg.networkManagerPlugin}" {
449+ source = "${pkg}/lib/NetworkManager/${pkg.networkManagerPlugin}";
450+ }) cfg.plugins)
451 // optionalAttrs cfg.enableFccUnlock
452 {
453 "ModemManager/fcc-unlock.d".source =
···457 {
458 "NetworkManager/dispatcher.d/02overridedns".source = overrideNameserversScript;
459 }
00000460 // listToAttrs (lib.imap1 (i: s:
461 {
462 name = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
463 value = { mode = "0544"; inherit (s) source; };
464 }) cfg.dispatcherScripts);
465466+ environment.systemPackages = packages;
467468 users.groups = {
469 networkmanager.gid = config.ids.gids.networkmanager;
···482 };
483 };
484485+ systemd.packages = packages;
486487 systemd.tmpfiles.rules = [
488 "d /etc/NetworkManager/system-connections 0700 root root -"
489 "d /etc/ipsec.d 0700 root root -"
490 "d /var/lib/NetworkManager-fortisslvpn 0700 root root -"
4910492 "d /var/lib/misc 0755 root root -" # for dnsmasq.leases
493 ];
494···525 useDHCP = false;
526 })
527528+ {
529+ networkmanager.plugins = with pkgs; [
530+ networkmanager-fortisslvpn
531+ networkmanager-iodine
532+ networkmanager-l2tp
533+ networkmanager-openconnect
534+ networkmanager-openvpn
535+ networkmanager-vpnc
536+ networkmanager-sstp
537+ ];
538+ }
539+540 (mkIf cfg.enableStrongSwan {
541+ networkmanager.plugins = [ pkgs.networkmanager_strongswan ];
542 })
543544 (mkIf enableIwd {
···562 security.polkit.enable = true;
563 security.polkit.extraConfig = polkitConf;
564565+ services.dbus.packages = packages
566 ++ optional cfg.enableStrongSwan pkgs.strongswanNM
567 ++ optional (cfg.dns == "dnsmasq") pkgs.dnsmasq;
568569+ services.udev.packages = packages;
570 };
571}
+5-1
nixos/modules/virtualisation/azure-common.nix
···21 # way to select them anyway.
22 boot.loader.grub.configurationLimit = 0;
2324- fileSystems."/".device = "/dev/disk/by-label/nixos";
00002526 # Allow root logins only using the SSH key that the user specified
27 # at instance creation time, ping client connections to avoid timeouts
···21 # way to select them anyway.
22 boot.loader.grub.configurationLimit = 0;
2324+ fileSystems."/" = {
25+ device = "/dev/disk/by-label/nixos";
26+ fsType = "ext4";
27+ autoResize = true;
28+ };
2930 # Allow root logins only using the SSH key that the user specified
31 # at instance creation time, ping client connections to avoid timeouts
···316 dolphinEmuMaster = dolphin-emu-beta; # Added 2021-11-10
317 dotnet-netcore = dotnet-runtime; # Added 2021-10-07
318 double_conversion = throw "'double_conversion' has been renamed to/replaced by 'double-conversion'"; # Converted to throw 2022-02-22
0319 draftsight = throw "draftsight has been removed, no longer available as freeware"; # Added 2020-08-14
320 dvb_apps = throw "dvb_apps has been removed"; # Added 2020-11-03
321 dwarf_fortress = throw "'dwarf_fortress' has been renamed to/replaced by 'dwarf-fortress'"; # Converted to throw 2022-02-22
···316 dolphinEmuMaster = dolphin-emu-beta; # Added 2021-11-10
317 dotnet-netcore = dotnet-runtime; # Added 2021-10-07
318 double_conversion = throw "'double_conversion' has been renamed to/replaced by 'double-conversion'"; # Converted to throw 2022-02-22
319+ dragon-drop = throw "'dragon-drop' has been removed in favor of 'xdragon'"; # Added 2022-04-10;
320 draftsight = throw "draftsight has been removed, no longer available as freeware"; # Added 2020-08-14
321 dvb_apps = throw "dvb_apps has been removed"; # Added 2020-11-03
322 dwarf_fortress = throw "'dwarf_fortress' has been renamed to/replaced by 'dwarf-fortress'"; # Converted to throw 2022-02-22