2014-04-14 18:26:48 +04:00
|
|
|
{ config, lib, options, ... }:
|
2013-10-23 19:50:55 +04:00
|
|
|
|
2014-04-14 18:26:48 +04:00
|
|
|
with lib;
|
2009-09-28 22:26:13 +04:00
|
|
|
|
|
|
|
let
|
2009-09-29 19:21:36 +04:00
|
|
|
|
2013-10-23 20:51:55 +04:00
|
|
|
alias = from: to: rename {
|
|
|
|
inherit from to;
|
2009-09-29 19:21:36 +04:00
|
|
|
name = "Alias";
|
2013-10-23 20:51:55 +04:00
|
|
|
use = id;
|
|
|
|
define = id;
|
2013-10-23 20:58:05 +04:00
|
|
|
visible = true;
|
2009-09-29 19:21:36 +04:00
|
|
|
};
|
|
|
|
|
2014-02-04 19:32:50 +04:00
|
|
|
# warn option was renamed
|
2013-10-23 20:51:55 +04:00
|
|
|
obsolete = from: to: rename {
|
|
|
|
inherit from to;
|
2009-09-29 19:21:36 +04:00
|
|
|
name = "Obsolete name";
|
2014-02-04 19:32:50 +04:00
|
|
|
use = x: builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'." x;
|
2014-04-18 16:59:59 +04:00
|
|
|
define = x: builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'." x;
|
2009-09-29 19:21:36 +04:00
|
|
|
};
|
|
|
|
|
2014-02-04 19:32:50 +04:00
|
|
|
# abort if deprecated option is used
|
2013-10-23 20:51:55 +04:00
|
|
|
deprecated = from: to: rename {
|
|
|
|
inherit from to;
|
2009-09-29 19:21:36 +04:00
|
|
|
name = "Deprecated name";
|
2014-02-04 19:32:50 +04:00
|
|
|
use = x: abort "Deprecated option `${showOption from}' is used. It was renamed to `${showOption to}'.";
|
2014-04-18 16:59:59 +04:00
|
|
|
define = x: abort "Deprecated option `${showOption from}' is used. It was renamed to `${showOption to}'.";
|
2009-09-29 19:21:36 +04:00
|
|
|
};
|
|
|
|
|
2013-10-23 20:58:05 +04:00
|
|
|
showOption = concatStringsSep ".";
|
2013-10-23 20:51:55 +04:00
|
|
|
|
2013-10-23 19:50:55 +04:00
|
|
|
zipModules = list:
|
2013-08-22 10:35:36 +04:00
|
|
|
zipAttrsWith (n: v:
|
2010-10-14 22:18:38 +04:00
|
|
|
if tail v != [] then
|
2013-02-21 23:43:02 +04:00
|
|
|
if n == "_type" then (head v)
|
2013-10-23 20:22:26 +04:00
|
|
|
else if n == "warnings" then concatLists v
|
2010-10-14 22:18:38 +04:00
|
|
|
else if n == "description" || n == "apply" then
|
|
|
|
abort "Cannot rename an option to multiple options."
|
|
|
|
else zipModules v
|
|
|
|
else head v
|
2009-09-28 22:26:13 +04:00
|
|
|
) list;
|
|
|
|
|
2013-10-23 20:58:05 +04:00
|
|
|
rename = { from, to, name, use, define, visible ? false }:
|
2009-09-28 22:26:13 +04:00
|
|
|
let
|
2013-10-23 20:51:55 +04:00
|
|
|
setTo = setAttrByPath to;
|
|
|
|
setFrom = setAttrByPath from;
|
|
|
|
toOf = attrByPath to
|
2013-10-23 20:58:05 +04:00
|
|
|
(abort "Renaming error: option `${showOption to}' does not exists.");
|
2013-10-23 20:51:55 +04:00
|
|
|
fromOf = attrByPath from
|
2013-10-23 20:58:05 +04:00
|
|
|
(abort "Internal error: option `${showOption from}' should be declared.");
|
2009-09-28 22:26:13 +04:00
|
|
|
in
|
2013-10-23 19:50:55 +04:00
|
|
|
[ { options = setFrom (mkOption {
|
2013-10-23 20:58:05 +04:00
|
|
|
description = "${name} of <option>${showOption to}</option>.";
|
2013-10-23 20:51:55 +04:00
|
|
|
apply = x: use (toOf config);
|
2013-10-23 20:58:05 +04:00
|
|
|
inherit visible;
|
2013-10-23 19:50:55 +04:00
|
|
|
});
|
|
|
|
}
|
2014-02-26 19:06:28 +04:00
|
|
|
{ config = setTo (mkMerge (if (fromOf options).isDefined then [ (define (mkMerge (fromOf options).definitions)) ] else []));
|
2013-10-23 19:50:55 +04:00
|
|
|
}
|
|
|
|
];
|
2009-09-28 22:26:13 +04:00
|
|
|
|
2013-10-23 20:51:55 +04:00
|
|
|
obsolete' = option: singleton
|
|
|
|
{ options = setAttrByPath option (mkOption {
|
2013-10-23 20:22:26 +04:00
|
|
|
default = null;
|
|
|
|
visible = false;
|
|
|
|
});
|
2013-10-23 20:51:55 +04:00
|
|
|
config.warnings = optional (getAttrFromPath option config != null)
|
2013-10-23 20:58:05 +04:00
|
|
|
"The option `${showOption option}' defined in your configuration no longer has any effect; please remove it.";
|
2013-10-23 20:22:26 +04:00
|
|
|
};
|
|
|
|
|
2009-09-28 22:26:13 +04:00
|
|
|
in zipModules ([]
|
|
|
|
|
2013-10-30 20:52:35 +04:00
|
|
|
++ obsolete [ "environment" "x11Packages" ] [ "environment" "systemPackages" ]
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete [ "environment" "enableBashCompletion" ] [ "programs" "bash" "enableCompletion" ]
|
2013-10-28 19:28:04 +04:00
|
|
|
++ obsolete [ "environment" "nix" ] [ "nix" "package" ]
|
2014-04-29 14:25:47 +04:00
|
|
|
++ obsolete [ "fonts" "extraFonts" ] [ "fonts" "fonts" ]
|
2009-09-28 22:26:13 +04:00
|
|
|
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete [ "security" "extraSetuidPrograms" ] [ "security" "setuidPrograms" ]
|
|
|
|
++ obsolete [ "networking" "enableWLAN" ] [ "networking" "wireless" "enable" ]
|
|
|
|
++ obsolete [ "networking" "enableRT73Firmware" ] [ "networking" "enableRalinkFirmware" ]
|
2012-03-02 00:10:46 +04:00
|
|
|
|
2013-01-16 15:33:18 +04:00
|
|
|
# FIXME: Remove these eventually.
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete [ "boot" "systemd" "sockets" ] [ "systemd" "sockets" ]
|
|
|
|
++ obsolete [ "boot" "systemd" "targets" ] [ "systemd" "targets" ]
|
|
|
|
++ obsolete [ "boot" "systemd" "services" ] [ "systemd" "services" ]
|
2013-01-16 15:33:18 +04:00
|
|
|
|
2009-09-29 13:50:38 +04:00
|
|
|
# Old Grub-related options.
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ]
|
|
|
|
++ obsolete [ "boot" "extraGrubEntries" ] [ "boot" "loader" "grub" "extraEntries" ]
|
|
|
|
++ obsolete [ "boot" "extraGrubEntriesBeforeNixos" ] [ "boot" "loader" "grub" "extraEntriesBeforeNixOS" ]
|
|
|
|
++ obsolete [ "boot" "grubDevice" ] [ "boot" "loader" "grub" "device" ]
|
|
|
|
++ obsolete [ "boot" "bootMount" ] [ "boot" "loader" "grub" "bootDevice" ]
|
|
|
|
++ obsolete [ "boot" "grubSplashImage" ] [ "boot" "loader" "grub" "splashImage" ]
|
2009-09-28 22:26:13 +04:00
|
|
|
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ]
|
2013-10-30 20:37:45 +04:00
|
|
|
++ obsolete [ "boot" "extraKernelParams" ] [ "boot" "kernelParams" ]
|
2009-12-15 17:05:01 +03:00
|
|
|
|
2010-03-11 20:02:49 +03:00
|
|
|
# OpenSSH
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete [ "services" "sshd" "ports" ] [ "services" "openssh" "ports" ]
|
|
|
|
++ alias [ "services" "sshd" "enable" ] [ "services" "openssh" "enable" ]
|
|
|
|
++ obsolete [ "services" "sshd" "allowSFTP" ] [ "services" "openssh" "allowSFTP" ]
|
|
|
|
++ obsolete [ "services" "sshd" "forwardX11" ] [ "services" "openssh" "forwardX11" ]
|
|
|
|
++ obsolete [ "services" "sshd" "gatewayPorts" ] [ "services" "openssh" "gatewayPorts" ]
|
|
|
|
++ obsolete [ "services" "sshd" "permitRootLogin" ] [ "services" "openssh" "permitRootLogin" ]
|
|
|
|
++ obsolete [ "services" "xserver" "startSSHAgent" ] [ "services" "xserver" "startOpenSSHAgent" ]
|
2014-04-18 02:45:26 +04:00
|
|
|
++ obsolete [ "services" "xserver" "startOpenSSHAgent" ] [ "programs" "ssh" "startAgent" ]
|
2014-03-12 12:20:49 +04:00
|
|
|
++ obsolete [ "services" "xserver" "windowManager" "xbmc" ] [ "services" "xserver" "desktopManager" "xbmc" ]
|
2009-11-22 03:40:53 +03:00
|
|
|
|
2009-10-12 21:09:38 +04:00
|
|
|
# KDE
|
2013-10-23 20:51:55 +04:00
|
|
|
++ deprecated [ "kde" "extraPackages" ] [ "environment" "kdePackages" ]
|
|
|
|
# ++ obsolete [ "environment" "kdePackages" ] [ "environment" "systemPackages" ] # !!! doesn't work!
|
2009-10-06 23:25:25 +04:00
|
|
|
|
2013-02-02 09:03:45 +04:00
|
|
|
# Multiple efi bootloaders now
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete [ "boot" "loader" "efi" "efibootmgr" "enable" ] [ "boot" "loader" "efi" "canTouchEfiVariables" ]
|
2013-02-02 09:03:45 +04:00
|
|
|
|
2013-09-24 17:53:47 +04:00
|
|
|
# NixOS environment changes
|
|
|
|
# !!! this hardcodes bash, could we detect from config which shell is actually used?
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete [ "environment" "promptInit" ] [ "programs" "bash" "promptInit" ]
|
2013-09-24 17:53:47 +04:00
|
|
|
|
2014-03-03 16:55:50 +04:00
|
|
|
++ obsolete [ "services" "xserver" "driSupport" ] [ "hardware" "opengl" "driSupport" ]
|
|
|
|
++ obsolete [ "services" "xserver" "driSupport32Bit" ] [ "hardware" "opengl" "driSupport32Bit" ]
|
|
|
|
++ obsolete [ "services" "xserver" "s3tcSupport" ] [ "hardware" "opengl" "s3tcSupport" ]
|
2014-04-29 14:58:54 +04:00
|
|
|
++ obsolete [ "hardware" "opengl" "videoDrivers" ] [ "services" "xserver" "videoDrivers" ]
|
2014-01-15 17:08:45 +04:00
|
|
|
|
2014-02-26 16:54:04 +04:00
|
|
|
++ obsolete [ "services" "mysql55" ] [ "services" "mysql" ]
|
|
|
|
|
2013-10-23 20:22:26 +04:00
|
|
|
# Options that are obsolete and have no replacement.
|
2013-10-23 20:51:55 +04:00
|
|
|
++ obsolete' [ "boot" "loader" "grub" "bootDevice" ]
|
|
|
|
++ obsolete' [ "boot" "initrd" "luks" "enable" ]
|
2014-04-29 20:57:04 +04:00
|
|
|
++ obsolete' [ "programs" "bash" "enable" ]
|
2014-09-25 01:05:03 +04:00
|
|
|
++ obsolete' [ "services" "samba" "defaultShare" ]
|
2014-10-14 17:20:27 +04:00
|
|
|
++ obsolete' [ "services" "syslog-ng" "serviceName" ]
|
2013-10-23 20:22:26 +04:00
|
|
|
|
2013-10-23 20:51:55 +04:00
|
|
|
)
|