lol

nixos/xen-dom0: add related packages, make it play well with them

This is a custom attribute set example of `relatedPackages` option usage.

+14 -15
+4
nixos/modules/rename.nix
··· 210 210 "Set the option `services.xserver.displayManager.sddm.package' instead.") 211 211 (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "") 212 212 (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "") 213 + (mkRemovedOptionModule [ "virtualisation" "xen" "qemu" ] "You don't need this option anymore, it will work without it.") 213 214 214 215 # ZSH 215 216 (mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ]) ··· 220 221 (mkRenamedOptionModule [ "programs" "zsh" "oh-my-zsh" "theme" ] [ "programs" "zsh" "ohMyZsh" "theme" ]) 221 222 (mkRenamedOptionModule [ "programs" "zsh" "oh-my-zsh" "custom" ] [ "programs" "zsh" "ohMyZsh" "custom" ]) 222 223 (mkRenamedOptionModule [ "programs" "zsh" "oh-my-zsh" "plugins" ] [ "programs" "zsh" "ohMyZsh" "plugins" ]) 224 + 225 + # Xen 226 + (mkRenamedOptionModule [ "virtualisation" "xen" "qemu-package" ] [ "virtualisation" "xen" "package-qemu" ]) 223 227 ]; 224 228 }
+10 -15
nixos/modules/virtualisation/xen-dom0.nix
··· 35 35 description = '' 36 36 The package used for Xen binary. 37 37 ''; 38 + relatedPackages = [ "xen" "xen-light" ]; 38 39 }; 39 40 40 - virtualisation.xen.qemu = mkOption { 41 - type = types.path; 42 - defaultText = "\${pkgs.xen}/lib/xen/bin/qemu-system-i386"; 43 - example = literalExample "''${pkgs.qemu_xen-light}/bin/qemu-system-i386"; 44 - description = '' 45 - The qemu binary to use for Dom-0 backend. 46 - ''; 47 - }; 48 - 49 - virtualisation.xen.qemu-package = mkOption { 41 + virtualisation.xen.package-qemu = mkOption { 50 42 type = types.package; 51 43 defaultText = "pkgs.xen"; 52 44 example = literalExample "pkgs.qemu_xen-light"; 53 45 description = '' 54 - The package with qemu binaries for xendomains. 46 + The package with qemu binaries for dom0 qemu and xendomains. 55 47 ''; 48 + relatedPackages = [ "xen" 49 + { name = "qemu_xen-light"; comment = "For use with pkgs.xen-light."; } 50 + ]; 56 51 }; 57 52 58 53 virtualisation.xen.bootParams = ··· 158 153 } ]; 159 154 160 155 virtualisation.xen.package = mkDefault pkgs.xen; 161 - virtualisation.xen.qemu = mkDefault "${pkgs.xen}/lib/xen/bin/qemu-system-i386"; 162 - virtualisation.xen.qemu-package = mkDefault pkgs.xen; 156 + virtualisation.xen.package-qemu = mkDefault pkgs.xen; 163 157 virtualisation.xen.stored = mkDefault "${cfg.package}/bin/oxenstored"; 164 158 165 159 environment.systemPackages = [ cfg.package ]; ··· 339 333 after = [ "xen-console.service" ]; 340 334 requires = [ "xen-store.service" ]; 341 335 serviceConfig.ExecStart = '' 342 - ${cfg.qemu} -xen-attach -xen-domid 0 -name dom0 -M xenpv \ 336 + ${cfg.package-qemu}/${cfg.package-qemu.qemu-system-i386} \ 337 + -xen-attach -xen-domid 0 -name dom0 -M xenpv \ 343 338 -nographic -monitor /dev/null -serial /dev/null -parallel /dev/null 344 339 ''; 345 340 }; ··· 448 443 before = [ "dhcpd.service" ]; 449 444 restartIfChanged = false; 450 445 serviceConfig.RemainAfterExit = "yes"; 451 - path = [ cfg.package cfg.qemu-package ]; 446 + path = [ cfg.package cfg.package-qemu ]; 452 447 environment.XENDOM_CONFIG = "${cfg.package}/etc/sysconfig/xendomains"; 453 448 preStart = "mkdir -p /var/lock/subsys -m 755"; 454 449 serviceConfig.ExecStart = "${cfg.package}/etc/init.d/xendomains start";