diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 8a3d8ed1770..b7a38760dd3 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -84,7 +84,7 @@ let format' = format; in let
nixpkgs = cleanSource pkgs.path;
- channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} ''
+ channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}" {} ''
mkdir -p $out
cp -prd ${nixpkgs} $out/nixos
chmod -R u+w $out/nixos
@@ -92,7 +92,7 @@ let format' = format; in let
ln -s . $out/nixos/nixpkgs
fi
rm -rf $out/nixos/.git
- echo -n ${config.system.nixosVersionSuffix} > $out/nixos/.version-suffix
+ echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix
'';
metaClosure = pkgs.writeText "meta" ''
diff --git a/nixos/modules/installer/cd-dvd/channel.nix b/nixos/modules/installer/cd-dvd/channel.nix
index ddb00f174d1..4a198316795 100644
--- a/nixos/modules/installer/cd-dvd/channel.nix
+++ b/nixos/modules/installer/cd-dvd/channel.nix
@@ -12,7 +12,7 @@ let
# CD. These are installed into the "nixos" channel of the root
# user, as expected by nixos-rebuild/nixos-install. FIXME: merge
# with make-channel.nix.
- channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}"
+ channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}"
{ }
''
mkdir -p $out
@@ -21,7 +21,7 @@ let
if [ ! -e $out/nixos/nixpkgs ]; then
ln -s . $out/nixos/nixpkgs
fi
- echo -n ${config.system.nixosVersionSuffix} > $out/nixos/.version-suffix
+ echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix
'';
in
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
index 2569860a098..756c8751d00 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
@@ -16,7 +16,7 @@ with lib;
];
# ISO naming.
- isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixosLabel}-${pkgs.stdenv.system}.iso";
+ isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.system}.iso";
isoImage.volumeID = substring 0 11 "NIXOS_ISO";
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index a5d84e8472b..811449e9fe7 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -39,28 +39,28 @@ let
DEFAULT boot
LABEL boot
- MENU LABEL NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel}
+ MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with 'nomodeset'
LABEL boot-nomodeset
- MENU LABEL NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel} (nomodeset)
+ MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (nomodeset)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with 'copytoram'
LABEL boot-copytoram
- MENU LABEL NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel} (copytoram)
+ MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (copytoram)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with verbose logging to the console
LABEL boot-nomodeset
- MENU LABEL NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel} (debug)
+ MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
INITRD /boot/${config.system.boot.loader.initrdFile}
@@ -82,7 +82,7 @@ let
mkdir -p $out/loader/entries
cat << EOF > $out/loader/entries/nixos-iso.conf
- title NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel}
+ title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}
linux /boot/${config.system.boot.loader.kernelFile}
initrd /boot/${config.system.boot.loader.initrdFile}
options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}
@@ -90,7 +90,7 @@ let
# A variant to boot with 'nomodeset'
cat << EOF > $out/loader/entries/nixos-iso-nomodeset.conf
- title NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel}
+ title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}
version nomodeset
linux /boot/${config.system.boot.loader.kernelFile}
initrd /boot/${config.system.boot.loader.initrdFile}
@@ -99,7 +99,7 @@ let
# A variant to boot with 'copytoram'
cat << EOF > $out/loader/entries/nixos-iso-copytoram.conf
- title NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel}
+ title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}
version copytoram
linux /boot/${config.system.boot.loader.kernelFile}
initrd /boot/${config.system.boot.loader.initrdFile}
@@ -108,7 +108,7 @@ let
# A variant to boot with verbose logging to the console
cat << EOF > $out/loader/entries/nixos-iso-debug.conf
- title NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel} (debug)
+ title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug)
linux /boot/${config.system.boot.loader.kernelFile}
initrd /boot/${config.system.boot.loader.initrdFile}
options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
@@ -361,7 +361,7 @@ in
{ source = config.isoImage.splashImage;
target = "/isolinux/background.png";
}
- { source = pkgs.writeText "version" config.system.nixosLabel;
+ { source = pkgs.writeText "version" config.system.nixos.label;
target = "/version.txt";
}
] ++ optionals config.isoImage.makeEfiBootable [
diff --git a/nixos/modules/installer/cd-dvd/system-tarball.nix b/nixos/modules/installer/cd-dvd/system-tarball.nix
index 8e43dbecefb..e72d4a5b491 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball.nix
+++ b/nixos/modules/installer/cd-dvd/system-tarball.nix
@@ -8,7 +8,7 @@ with lib;
let
- versionFile = pkgs.writeText "nixos-label" config.system.nixosLabel;
+ versionFile = pkgs.writeText "nixos-label" config.system.nixos.label;
in
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 7c737e84de0..a82ee63fd0c 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -625,7 +625,7 @@ $bootLoaderConfig
# compatible, in order to avoid breaking some software such as database
# servers. You should change this only after NixOS release notes say you
# should.
- system.stateVersion = "${\(qw(@nixosRelease@))}"; # Did you read the comment?
+ system.stateVersion = "${\(qw(@release@))}"; # Did you read the comment?
}
EOF
diff --git a/nixos/modules/installer/tools/nixos-version.sh b/nixos/modules/installer/tools/nixos-version.sh
index 77a1b458a34..190c49a33ec 100644
--- a/nixos/modules/installer/tools/nixos-version.sh
+++ b/nixos/modules/installer/tools/nixos-version.sh
@@ -6,9 +6,9 @@ case "$1" in
exit 1
;;
--hash|--revision)
- echo "@nixosRevision@"
+ echo "@revision@"
;;
*)
- echo "@nixosVersion@ (@nixosCodeName@)"
+ echo "@version@ (@codeName@)"
;;
esac
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index a3bae78c0ff..eab5f114766 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -55,7 +55,7 @@ let
src = ./nixos-generate-config.pl;
path = [ pkgs.btrfs-progs ];
perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
- inherit (config.system) nixosRelease;
+ inherit (config.system.nixos) release;
};
nixos-option = makeProg {
@@ -66,7 +66,7 @@ let
nixos-version = makeProg {
name = "nixos-version";
src = ./nixos-version.sh;
- inherit (config.system) nixosVersion nixosCodeName nixosRevision;
+ inherit (config.system.nixos) version codeName revision;
};
in
diff --git a/nixos/modules/misc/label.nix b/nixos/modules/misc/label.nix
index 30d8fc9952b..5faac8936f8 100644
--- a/nixos/modules/misc/label.nix
+++ b/nixos/modules/misc/label.nix
@@ -3,14 +3,14 @@
with lib;
let
- cfg = config.system;
+ cfg = config.system.nixos;
in
{
options.system = {
- nixosLabel = mkOption {
+ nixos.label = mkOption {
type = types.str;
description = ''
NixOS version name to be used in the names of generated
@@ -26,7 +26,7 @@ in
config = {
# This is set here rather than up there so that changing it would
# not rebuild the manual
- system.nixosLabel = mkDefault cfg.nixosVersion;
+ system.nixos.label = mkDefault cfg.version;
};
}
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 83427d26fff..6af584250a7 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -3,7 +3,7 @@
with lib;
let
- cfg = config.system;
+ cfg = config.system.nixos;
releaseFile = "${toString pkgs.path}/.version";
suffixFile = "${toString pkgs.path}/.version-suffix";
@@ -16,9 +16,44 @@ in
options.system = {
+ nixos.version = mkOption {
+ internal = true;
+ type = types.str;
+ description = "The full NixOS version (e.g. 16.03.1160.f2d4ee1).";
+ };
+
+ nixos.release = mkOption {
+ readOnly = true;
+ type = types.str;
+ default = fileContents releaseFile;
+ description = "The NixOS release (e.g. 16.03).";
+ };
+
+ nixos.versionSuffix = mkOption {
+ internal = true;
+ type = types.str;
+ default = if pathExists suffixFile then fileContents suffixFile else "pre-git";
+ description = "The NixOS version suffix (e.g. 1160.f2d4ee1).";
+ };
+
+ nixos.revision = mkOption {
+ internal = true;
+ type = types.str;
+ default = if pathIsDirectory gitRepo then commitIdFromGitRepo gitRepo
+ else if pathExists revisionFile then fileContents revisionFile
+ else "master";
+ description = "The Git revision from which this NixOS configuration was built.";
+ };
+
+ nixos.codeName = mkOption {
+ readOnly = true;
+ type = types.str;
+ description = "The NixOS release code name (e.g. Emu).";
+ };
+
stateVersion = mkOption {
type = types.str;
- default = cfg.nixosRelease;
+ default = cfg.release;
description = ''
Every once in a while, a new NixOS release may change
configuration defaults in a way incompatible with stateful
@@ -32,41 +67,6 @@ in
'';
};
- nixosVersion = mkOption {
- internal = true;
- type = types.str;
- description = "The full NixOS version (e.g. 16.03.1160.f2d4ee1).";
- };
-
- nixosRelease = mkOption {
- readOnly = true;
- type = types.str;
- default = fileContents releaseFile;
- description = "The NixOS release (e.g. 16.03).";
- };
-
- nixosVersionSuffix = mkOption {
- internal = true;
- type = types.str;
- default = if pathExists suffixFile then fileContents suffixFile else "pre-git";
- description = "The NixOS version suffix (e.g. 1160.f2d4ee1).";
- };
-
- nixosRevision = mkOption {
- internal = true;
- type = types.str;
- default = if pathIsDirectory gitRepo then commitIdFromGitRepo gitRepo
- else if pathExists revisionFile then fileContents revisionFile
- else "master";
- description = "The Git revision from which this NixOS configuration was built.";
- };
-
- nixosCodeName = mkOption {
- readOnly = true;
- type = types.str;
- description = "The NixOS release code name (e.g. Emu).";
- };
-
defaultChannel = mkOption {
internal = true;
type = types.str;
@@ -78,15 +78,15 @@ in
config = {
- system = {
+ system.nixos = {
# These defaults are set here rather than up there so that
# changing them would not rebuild the manual
- nixosVersion = mkDefault (cfg.nixosRelease + cfg.nixosVersionSuffix);
- nixosRevision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId);
- nixosVersionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId));
+ version = mkDefault (cfg.release + cfg.versionSuffix);
+ revision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId);
+ versionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId));
# Note: code names must only increase in alphabetical order.
- nixosCodeName = "Impala";
+ codeName = "Impala";
};
# Generate /etc/os-release. See
@@ -96,10 +96,10 @@ in
''
NAME=NixOS
ID=nixos
- VERSION="${config.system.nixosVersion} (${config.system.nixosCodeName})"
- VERSION_CODENAME=${toLower config.system.nixosCodeName}
- VERSION_ID="${config.system.nixosVersion}"
- PRETTY_NAME="NixOS ${config.system.nixosVersion} (${config.system.nixosCodeName})"
+ VERSION="${cfg.version} (${cfg.codeName})"
+ VERSION_CODENAME=${toLower cfg.codeName}
+ VERSION_ID="${cfg.version}"
+ PRETTY_NAME="NixOS ${cfg.version} (${cfg.codeName})"
HOME_URL="https://nixos.org/"
SUPPORT_URL="https://nixos.org/nixos/support.html"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 710387ebc1d..da83baed371 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -189,6 +189,14 @@ with lib;
# Profile splitting
(mkRenamedOptionModule [ "virtualization" "growPartition" ] [ "boot" "growPartition" ])
+ # misc/version.nix
+ (mkRenamedOptionModule [ "config" "system" "nixosVersion" ] [ "config" "system" "nixos" "version" ])
+ (mkRenamedOptionModule [ "config" "system" "nixosRelease" ] [ "config" "system" "nixos" "release" ])
+ (mkRenamedOptionModule [ "config" "system" "nixosVersionSuffix" ] [ "config" "system" "nixos" "versionSuffix" ])
+ (mkRenamedOptionModule [ "config" "system" "nixosRevision" ] [ "config" "system" "nixos" "revision" ])
+ (mkRenamedOptionModule [ "config" "system" "nixosCodeName" ] [ "config" "system" "nixos" "codeName" ])
+ (mkRenamedOptionModule [ "config" "system" "nixosLabel" ] [ "config" "system" "nixos" "label" ])
+
# Options that are obsolete and have no replacement.
(mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ] "")
(mkRemovedOptionModule [ "programs" "bash" "enable" ] "")
diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix
index 41cadb4a6de..5d0f2abd13a 100644
--- a/nixos/modules/services/misc/nixos-manual.nix
+++ b/nixos/modules/services/misc/nixos-manual.nix
@@ -16,10 +16,10 @@ let
It isn't perfect, but it seems to cover a vast majority of use cases.
Caveat: even if the package is reached by a different means,
the path above will be shown and not e.g. `${config.services.foo.package}`. */
- manual = import ../../../doc/manual {
+ manual = import ../../../doc/manual rec {
inherit pkgs config;
- version = config.system.nixosRelease;
- revision = "release-${config.system.nixosRelease}";
+ version = config.system.nixos.release;
+ revision = "release-${version}";
options =
let
scrubbedEval = evalModules {
diff --git a/nixos/modules/services/misc/ssm-agent.nix b/nixos/modules/services/misc/ssm-agent.nix
index c1e1f090353..a57fbca86fb 100644
--- a/nixos/modules/services/misc/ssm-agent.nix
+++ b/nixos/modules/services/misc/ssm-agent.nix
@@ -12,7 +12,7 @@ let
case "$1" in
-i) echo "nixos";;
- -r) echo "${config.system.nixosVersion}";;
+ -r) echo "${config.system.nixos.version}";;
esac
'';
in {
diff --git a/nixos/modules/services/ttys/agetty.nix b/nixos/modules/services/ttys/agetty.nix
index 3429397d2cc..b50de496e97 100644
--- a/nixos/modules/services/ttys/agetty.nix
+++ b/nixos/modules/services/ttys/agetty.nix
@@ -64,8 +64,8 @@ in
config = {
# Note: this is set here rather than up there so that changing
- # nixosLabel would not rebuild manual pages
- services.mingetty.greetingLine = mkDefault ''<<< Welcome to NixOS ${config.system.nixosLabel} (\m) - \l >>>'';
+ # nixos.label would not rebuild manual pages
+ services.mingetty.greetingLine = mkDefault ''<<< Welcome to NixOS ${config.system.nixos.label} (\m) - \l >>>'';
systemd.services."getty@" =
{ serviceConfig.ExecStart = [
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index 743c146b026..091a2e412ee 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -108,7 +108,7 @@ let
if [] == failed then pkgs.stdenvNoCC.mkDerivation {
name = let hn = config.networking.hostName;
nn = if (hn != "") then hn else "unnamed";
- in "nixos-system-${nn}-${config.system.nixosLabel}";
+ in "nixos-system-${nn}-${config.system.nixos.label}";
preferLocalBuild = true;
allowSubstitutes = false;
buildCommand = systemBuilder;
@@ -122,7 +122,7 @@ let
config.system.build.installBootLoader
or "echo 'Warning: do not know how to make this configuration bootable; please enable a boot loader.' 1>&2; true";
activationScript = config.system.activationScripts.script;
- nixosLabel = config.system.nixosLabel;
+ nixosLabel = config.system.nixos.label;
configurationName = config.boot.loader.grub.configurationName;
diff --git a/nixos/modules/virtualisation/brightbox-image.nix b/nixos/modules/virtualisation/brightbox-image.nix
index 08bbcfd9d7c..39a655b4c10 100644
--- a/nixos/modules/virtualisation/brightbox-image.nix
+++ b/nixos/modules/virtualisation/brightbox-image.nix
@@ -26,7 +26,7 @@ in
rm $diskImageBase
popd
'';
- diskImageBase = "nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw";
+ diskImageBase = "nixos-image-${config.system.nixos.label}-${pkgs.stdenv.system}.raw";
buildInputs = [ pkgs.utillinux pkgs.perl ];
exportReferencesGraph =
[ "closure" config.system.build.toplevel ];
diff --git a/nixos/modules/virtualisation/google-compute-image.nix b/nixos/modules/virtualisation/google-compute-image.nix
index 2fb38059b26..155a33b3bb3 100644
--- a/nixos/modules/virtualisation/google-compute-image.nix
+++ b/nixos/modules/virtualisation/google-compute-image.nix
@@ -14,7 +14,7 @@ in
PATH=$PATH:${pkgs.stdenv.lib.makeBinPath [ pkgs.gnutar pkgs.gzip ]}
pushd $out
mv $diskImage disk.raw
- tar -Szcf nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw.tar.gz disk.raw
+ tar -Szcf nixos-image-${config.system.nixos.label}-${pkgs.stdenv.system}.raw.tar.gz disk.raw
rm $out/disk.raw
popd
'';
diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix
index a544403e6be..64f145f77ca 100644
--- a/nixos/modules/virtualisation/virtualbox-image.nix
+++ b/nixos/modules/virtualisation/virtualbox-image.nix
@@ -22,7 +22,7 @@ in {
config = {
system.build.virtualBoxOVA = import ../../lib/make-disk-image.nix {
- name = "nixos-ova-${config.system.nixosLabel}-${pkgs.stdenv.system}";
+ name = "nixos-ova-${config.system.nixos.label}-${pkgs.stdenv.system}";
inherit pkgs lib config;
partitionTableType = "legacy";
@@ -37,7 +37,7 @@ in {
VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage
echo "creating VirtualBox VM..."
- vmName="NixOS ${config.system.nixosLabel} (${pkgs.stdenv.system})"
+ vmName="NixOS ${config.system.nixos.label} (${pkgs.stdenv.system})"
VBoxManage createvm --name "$vmName" --register \
--ostype ${if pkgs.stdenv.system == "x86_64-linux" then "Linux26_64" else "Linux26"}
VBoxManage modifyvm "$vmName" \
@@ -53,7 +53,7 @@ in {
echo "exporting VirtualBox VM..."
mkdir -p $out
- fn="$out/nixos-${config.system.nixosLabel}-${pkgs.stdenv.system}.ova"
+ fn="$out/nixos-${config.system.nixos.label}-${pkgs.stdenv.system}.ova"
VBoxManage export "$vmName" --output "$fn"
rm -v $diskImage
diff --git a/nixos/release.nix b/nixos/release.nix
index 6bf2e4d8c7f..8095dfeab84 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -35,8 +35,8 @@ let
versionModule =
- { system.nixosVersionSuffix = versionSuffix;
- system.nixosRevision = nixpkgs.rev or nixpkgs.shortRev;
+ { system.nixos.versionSuffix = versionSuffix;
+ system.nixos.revision = nixpkgs.rev or nixpkgs.shortRev;
};