···70 '')
7172 (mkRemovedOptionModule [ "services" "seeks" ] "")
07374 # Do NOT add any option renames here, see top of the file
75 ];
···70 '')
7172 (mkRemovedOptionModule [ "services" "seeks" ] "")
73+ (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
7475 # Do NOT add any option renames here, see top of the file
76 ];
···463 { config, options, name, ... }:
464 {
465 options = {
466-467 config = mkOption {
468 description = ''
469 A specification of the desired configuration of this
470 container, as a NixOS module.
471 '';
472- type = let
473- confPkgs = if config.pkgs == null then pkgs else config.pkgs;
474- in lib.mkOptionType {
475 name = "Toplevel NixOS config";
476- merge = loc: defs: (import (confPkgs.path + "/nixos/lib/eval-config.nix") {
477 inherit system;
478- pkgs = confPkgs;
479- baseModules = import (confPkgs.path + "/nixos/modules/module-list.nix");
480- inherit (confPkgs) lib;
481 modules =
482 let
483 extraConfig = {
···526 '';
527 };
528529- pkgs = mkOption {
530- type = types.nullOr types.attrs;
531- default = null;
532- example = literalExample "pkgs";
533 description = ''
534- Customise which nixpkgs to use for this container.
000000535 '';
536 };
537···672 '';
673 };
67400675 } // networkOptions;
676677- config = mkMerge
678- [
679- (mkIf options.config.isDefined {
680- path = config.config.system.build.toplevel;
681- })
682- ];
000000000000000683 }));
684685 default = {};
···463 { config, options, name, ... }:
464 {
465 options = {
0466 config = mkOption {
467 description = ''
468 A specification of the desired configuration of this
469 container, as a NixOS module.
470 '';
471+ type = lib.mkOptionType {
00472 name = "Toplevel NixOS config";
473+ merge = loc: defs: (import "${toString config.nixpkgs}/nixos/lib/eval-config.nix" {
474 inherit system;
000475 modules =
476 let
477 extraConfig = {
···520 '';
521 };
522523+ nixpkgs = mkOption {
524+ type = types.path;
525+ default = pkgs.path;
526+ defaultText = "pkgs.path";
527 description = ''
528+ A path to the nixpkgs that provide the modules, pkgs and lib for evaluating the container.
529+530+ To only change the <literal>pkgs</literal> argument used inside the container modules,
531+ set the <literal>nixpkgs.*</literal> options in the container <option>config</option>.
532+ Setting <literal>config.nixpkgs.pkgs = pkgs</literal> speeds up the container evaluation
533+ by reusing the system pkgs, but the <literal>nixpkgs.config</literal> option in the
534+ container config is ignored in this case.
535 '';
536 };
537···672 '';
673 };
674675+ # Removed option. See `checkAssertion` below for the accompanying error message.
676+ pkgs = mkOption { visible = false; };
677 } // networkOptions;
678679+ config = let
680+ # Throw an error when removed option `pkgs` is used.
681+ # Because this is a submodule we cannot use `mkRemovedOptionModule` or option `assertions`.
682+ optionPath = "containers.${name}.pkgs";
683+ files = showFiles options.pkgs.files;
684+ checkAssertion = if options.pkgs.isDefined then throw ''
685+ The option definition `${optionPath}' in ${files} no longer has any effect; please remove it.
686+687+ Alternatively, you can use the following options:
688+ - containers.${name}.nixpkgs
689+ This sets the nixpkgs (and thereby the modules, pkgs and lib) that
690+ are used for evaluating the container.
691+692+ - containers.${name}.config.nixpkgs.pkgs
693+ This only sets the `pkgs` argument used inside the container modules.
694+ ''
695+ else null;
696+ in {
697+ path = builtins.seq checkAssertion
698+ mkIf options.config.isDefined config.config.system.build.toplevel;
699+ };
700 }));
701702 default = {};
···1718 subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
1920- buildFlagsArray = [ "-ldflags='-X main.Build=${version}'" ];
2122 meta = with lib; {
23 description = "A scalable overlay networking tool with a focus on performance, simplicity and security";
···1718 subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
1920+ buildFlagsArray = [ "-ldflags=" "-X main.Build=${version}" ];
2122 meta = with lib; {
23 description = "A scalable overlay networking tool with a focus on performance, simplicity and security";
+1
pkgs/top-level/aliases.nix
···717 v8_3_16_14 = throw "v8_3_16_14 was removed in 2019-11-01: no longer referenced by other packages";
718 valadoc = throw "valadoc was deprecated on 2019-10-10: valadoc was merged into vala 0.38";
719 vamp = { vampSDK = vamp-plugin-sdk; }; # added 2020-03-26
0720 vdirsyncerStable = vdirsyncer; # added 2020-11-08, see https://github.com/NixOS/nixpkgs/issues/103026#issuecomment-723428168
721 vimbWrapper = vimb; # added 2015-01
722 vimprobable2 = throw "vimprobable2 has been removed from nixpkgs. It relied on webkitgtk24x that has been removed."; # added 2019-12-05
···717 v8_3_16_14 = throw "v8_3_16_14 was removed in 2019-11-01: no longer referenced by other packages";
718 valadoc = throw "valadoc was deprecated on 2019-10-10: valadoc was merged into vala 0.38";
719 vamp = { vampSDK = vamp-plugin-sdk; }; # added 2020-03-26
720+ venus = throw "venus has been removed from nixpkgs, as it's unmaintained"; # added 2021-02-05
721 vdirsyncerStable = vdirsyncer; # added 2020-11-08, see https://github.com/NixOS/nixpkgs/issues/103026#issuecomment-723428168
722 vimbWrapper = vimb; # added 2015-01
723 vimprobable2 = throw "vimprobable2 has been removed from nixpkgs. It relied on webkitgtk24x that has been removed."; # added 2019-12-05