Merge master into staging-next
This commit is contained in:
@@ -60,6 +60,8 @@
|
||||
|
||||
- `go-mockery` has been updated to v3. For migration instructions see the [upstream documentation](https://vektra.github.io/mockery/latest/v3/). If v2 is still required `go-mockery_v2` has been added but will be removed on or before 2029-12-31 in-line with it's [upstream support lifecycle](https://vektra.github.io/mockery/
|
||||
|
||||
- NixOS display manager modules now strictly use tty1, where many of them previously used tty7. Options to configure display managers' VT have been dropped. A configuration with a display manager enabled will not start `getty@tty1.service`, even if the system is forced to boot into `multi-user.target` instead of `graphical.target`.
|
||||
|
||||
## Other Notable Changes {#sec-nixpkgs-release-25.11-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
@@ -526,9 +526,6 @@ rec {
|
||||
ln -s ${cfg.ctrlAltDelUnit} $out/ctrl-alt-del.target
|
||||
ln -s rescue.target $out/kbrequest.target
|
||||
|
||||
mkdir -p $out/getty.target.wants/
|
||||
ln -s ../autovt@tty1.service $out/getty.target.wants/
|
||||
|
||||
ln -s ../remote-fs.target $out/multi-user.target.wants/
|
||||
''}
|
||||
''; # */
|
||||
|
||||
@@ -267,12 +267,22 @@ in
|
||||
in
|
||||
lib.mkIf noDmUsed (lib.mkDefault false);
|
||||
|
||||
# We can't just rely on 'Conflicts=autovt@tty1.service' because
|
||||
# 'switch-to-configuration switch' will start 'autovt@tty1.service'
|
||||
# and kill us.
|
||||
systemd.services."autovt@tty1".enable =
|
||||
lib.mkIf config.systemd.services.display-manager.enable false;
|
||||
|
||||
systemd.services.display-manager = {
|
||||
description = "Display Manager";
|
||||
after = [
|
||||
"acpid.service"
|
||||
"systemd-logind.service"
|
||||
"systemd-user-sessions.service"
|
||||
"autovt@tty1.service"
|
||||
];
|
||||
conflicts = [
|
||||
"autovt@tty1.service"
|
||||
];
|
||||
restartIfChanged = false;
|
||||
|
||||
|
||||
@@ -190,7 +190,6 @@ in
|
||||
users.groups.gdm.gid = config.ids.gids.gdm;
|
||||
|
||||
# GDM needs different xserverArgs, presumable because using wayland by default.
|
||||
services.xserver.tty = null;
|
||||
services.xserver.display = null;
|
||||
services.xserver.verbose = null;
|
||||
|
||||
@@ -260,12 +259,10 @@ in
|
||||
"rc-local.service"
|
||||
"systemd-machined.service"
|
||||
"systemd-user-sessions.service"
|
||||
"getty@tty${gdm.initialVT}.service"
|
||||
"plymouth-quit.service"
|
||||
"plymouth-start.service"
|
||||
];
|
||||
systemd.services.display-manager.conflicts = [
|
||||
"getty@tty${gdm.initialVT}.service"
|
||||
"plymouth-quit.service"
|
||||
];
|
||||
systemd.services.display-manager.onFailure = [
|
||||
|
||||
@@ -6,10 +6,18 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.services.greetd;
|
||||
tty = "tty${toString cfg.vt}";
|
||||
tty = "tty1";
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRemovedOptionModule [
|
||||
"services"
|
||||
"greetd"
|
||||
"vt"
|
||||
] "The VT is now fixed to VT1.")
|
||||
];
|
||||
|
||||
options.services.greetd = {
|
||||
enable = lib.mkEnableOption "greetd, a minimal and flexible login manager daemon";
|
||||
|
||||
@@ -41,14 +49,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
vt = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 1;
|
||||
description = ''
|
||||
The virtual console (tty) that greetd should use. This option also disables getty on that tty.
|
||||
'';
|
||||
};
|
||||
|
||||
restart = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = !(cfg.settings ? initial_session);
|
||||
@@ -62,7 +62,7 @@ in
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
services.greetd.settings.terminal.vt = lib.mkDefault cfg.vt;
|
||||
services.greetd.settings.terminal.vt = 1;
|
||||
services.greetd.settings.default_session.user = lib.mkDefault "greeter";
|
||||
|
||||
security.pam.services.greetd = {
|
||||
|
||||
@@ -9,6 +9,15 @@ let
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRemovedOptionModule [
|
||||
"services"
|
||||
"displayManager"
|
||||
"lemurs"
|
||||
"vt"
|
||||
] "The VT is now fixed to VT1.")
|
||||
];
|
||||
|
||||
options.services.displayManager.lemurs = {
|
||||
enable = lib.mkEnableOption "" // {
|
||||
description = ''
|
||||
@@ -36,14 +45,6 @@ in
|
||||
See [lemurs configuration documentation](https://github.com/coastalwhite/lemurs/blob/main/extra/config.toml) for available options.
|
||||
'';
|
||||
};
|
||||
|
||||
vt = lib.mkOption {
|
||||
type = lib.types.ints.positive;
|
||||
default = 2;
|
||||
description = ''
|
||||
The virtual console (tty) that lemurs should use.
|
||||
'';
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
@@ -70,8 +71,7 @@ in
|
||||
# Required for wayland with setLoginUid = false;
|
||||
seatd.enable = true;
|
||||
xserver = {
|
||||
# To enable user switching, allow lemurs to allocate TTYs/displays dynamically.
|
||||
tty = null;
|
||||
# To enable user switching, allow lemurs to allocate displays dynamically.
|
||||
display = null;
|
||||
};
|
||||
displayManager = {
|
||||
@@ -83,7 +83,7 @@ in
|
||||
desktops = config.services.displayManager.sessionData.desktops;
|
||||
in
|
||||
{
|
||||
tty = lib.mkDefault cfg.vt;
|
||||
tty = 1;
|
||||
system_shell = lib.mkDefault "${pkgs.bash}/bin/bash";
|
||||
initial_path = lib.mkDefault "/run/current-system/sw/bin";
|
||||
x11 = {
|
||||
@@ -102,18 +102,18 @@ in
|
||||
Wants = [ "systemd-user-sessions.service" ];
|
||||
After = [
|
||||
"systemd-user-sessions.service"
|
||||
"getty@tty${toString cfg.vt}.service"
|
||||
"plymouth-quit-wait.service"
|
||||
];
|
||||
Conflicts = [ "getty@tty${toString cfg.vt}.service" ];
|
||||
};
|
||||
serviceConfig = {
|
||||
Type = "idle";
|
||||
# Defaults from lemurs upstream configuration
|
||||
StandardInput = "tty";
|
||||
TTYPath = "/dev/tty${toString cfg.vt}";
|
||||
TTYPath = "/dev/tty1";
|
||||
TTYReset = "yes";
|
||||
TTYVHangup = "yes";
|
||||
# Clear the console before starting
|
||||
TTYVTDisallocate = true;
|
||||
};
|
||||
# Don't kill a user session when using nixos-rebuild
|
||||
restartIfChanged = false;
|
||||
|
||||
@@ -36,7 +36,6 @@ let
|
||||
defaultConfig = {
|
||||
shutdown_cmd = "/run/current-system/systemd/bin/systemctl poweroff";
|
||||
restart_cmd = "/run/current-system/systemd/bin/systemctl reboot";
|
||||
tty = 2;
|
||||
service_name = "ly";
|
||||
path = "/run/current-system/sw/bin";
|
||||
term_reset_cmd = "${pkgs.ncurses}/bin/tput reset";
|
||||
@@ -115,11 +114,14 @@ in
|
||||
displayManager = {
|
||||
enable = true;
|
||||
execCmd = "exec /run/current-system/sw/bin/ly";
|
||||
|
||||
# Set this here instead of 'defaultConfig' so users get eval
|
||||
# errors when they change it.
|
||||
ly.settings.tty = 1;
|
||||
};
|
||||
|
||||
xserver = {
|
||||
# To enable user switching, allow ly to allocate TTYs/displays dynamically.
|
||||
tty = null;
|
||||
# To enable user switching, allow ly to allocate displays dynamically.
|
||||
display = null;
|
||||
};
|
||||
};
|
||||
@@ -131,11 +133,8 @@ in
|
||||
after = [
|
||||
"systemd-user-sessions.service"
|
||||
"plymouth-quit-wait.service"
|
||||
"getty@tty${toString finalConfig.tty}.service"
|
||||
];
|
||||
|
||||
conflicts = [ "getty@tty7.service" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
|
||||
@@ -93,7 +93,6 @@ let
|
||||
}
|
||||
// optionalAttrs xcfg.enable {
|
||||
X11 = {
|
||||
MinimumVT = if xcfg.tty != null then xcfg.tty else 7;
|
||||
ServerPath = toString xserverWrapper;
|
||||
XephyrPath = "${pkgs.xorg.xorgserver.out}/bin/Xephyr";
|
||||
SessionCommand = toString dmcfg.sessionData.wrapper;
|
||||
@@ -419,8 +418,7 @@ in
|
||||
services = {
|
||||
dbus.packages = [ sddm ];
|
||||
xserver = {
|
||||
# To enable user switching, allow sddm to allocate TTYs/displays dynamically.
|
||||
tty = null;
|
||||
# To enable user switching, allow sddm to allocate displays dynamically.
|
||||
display = null;
|
||||
};
|
||||
};
|
||||
@@ -432,13 +430,9 @@ in
|
||||
services.display-manager = {
|
||||
after = [
|
||||
"systemd-user-sessions.service"
|
||||
"getty@tty7.service"
|
||||
"plymouth-quit.service"
|
||||
"systemd-logind.service"
|
||||
];
|
||||
conflicts = [
|
||||
"getty@tty7.service"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -148,6 +148,8 @@ in
|
||||
"container-getty@.service"
|
||||
];
|
||||
|
||||
systemd.targets.getty.wants = [ "autovt@tty1.service" ];
|
||||
|
||||
systemd.services."getty@" = {
|
||||
serviceConfig.ExecStart = [
|
||||
# override upstream default with an empty ExecStart
|
||||
|
||||
@@ -42,6 +42,7 @@ let
|
||||
|
||||
lightdmConf = writeText "lightdm.conf" ''
|
||||
[LightDM]
|
||||
minimum-vt = 1
|
||||
${optionalString cfg.greeter.enable ''
|
||||
greeter-user = ${config.users.users.lightdm.name}
|
||||
greeters-directory = ${cfg.greeter.package}
|
||||
@@ -234,19 +235,11 @@ in
|
||||
exec ${lightdm}/sbin/lightdm
|
||||
'';
|
||||
|
||||
# Replaces getty
|
||||
systemd.services.display-manager.conflicts = [
|
||||
"getty@tty7.service"
|
||||
# TODO: Add "plymouth-quit.service" so LightDM can control when plymouth
|
||||
# quits. Currently this breaks switching to configurations with plymouth.
|
||||
];
|
||||
|
||||
# Pull in dependencies of services we replace.
|
||||
systemd.services.display-manager.after = [
|
||||
"rc-local.service"
|
||||
"systemd-machined.service"
|
||||
"systemd-user-sessions.service"
|
||||
"getty@tty7.service"
|
||||
"user.slice"
|
||||
];
|
||||
|
||||
@@ -336,7 +329,6 @@ in
|
||||
];
|
||||
|
||||
users.groups.lightdm.gid = config.ids.gids.lightdm;
|
||||
services.xserver.tty = null; # We might start multiple X servers so let the tty increment themselves..
|
||||
services.xserver.display = null; # We specify our own display (and logfile) in xserver-wrapper up there
|
||||
};
|
||||
}
|
||||
|
||||
@@ -277,6 +277,11 @@ in
|
||||
"dir"
|
||||
];
|
||||
})
|
||||
(lib.mkRemovedOptionModule [
|
||||
"services"
|
||||
"xserver"
|
||||
"tty"
|
||||
] "'services.xserver.tty' was removed because it was ineffective.")
|
||||
];
|
||||
|
||||
###### interface
|
||||
@@ -675,12 +680,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
tty = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = 7;
|
||||
description = "Virtual console for the X server.";
|
||||
};
|
||||
|
||||
display = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = 0;
|
||||
@@ -886,7 +885,6 @@ in
|
||||
"${cfg.xkb.dir}"
|
||||
]
|
||||
++ optional (cfg.display != null) ":${toString cfg.display}"
|
||||
++ optional (cfg.tty != null) "vt${toString cfg.tty}"
|
||||
++ optional (cfg.dpi != null) "-dpi ${toString cfg.dpi}"
|
||||
++ optional (cfg.logFile != null) "-logfile ${toString cfg.logFile}"
|
||||
++ optional (cfg.verbose != null) "-verbose ${toString cfg.verbose}"
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
nodes.machine = _: {
|
||||
imports = [ ../common/user-account.nix ];
|
||||
services.displayManager.lemurs.enable = true;
|
||||
@@ -20,7 +22,7 @@
|
||||
machine.start()
|
||||
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.wait_until_succeeds("pgrep -f 'lemurs.*tty1'")
|
||||
machine.wait_for_text("Login")
|
||||
machine.screenshot("postboot")
|
||||
|
||||
with subtest("Log in as alice on a virtual console"):
|
||||
|
||||
@@ -72,9 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"-DUID_MIN=1000"
|
||||
"-DUID_MAX=29999"
|
||||
|
||||
# we still want to run the DM on VT 7 for the time being, as 1-6 are
|
||||
# occupied by getties by default
|
||||
"-DSDDM_INITIAL_VT=7"
|
||||
"-DSDDM_INITIAL_VT=1"
|
||||
|
||||
"-DQT_IMPORTS_DIR=${placeholder "out"}/${qtbase.qtQmlPrefix}"
|
||||
"-DCMAKE_INSTALL_SYSCONFDIR=${placeholder "out"}/etc"
|
||||
|
||||
@@ -94,8 +94,8 @@ rec {
|
||||
thunderbird = thunderbird-latest;
|
||||
|
||||
thunderbird-latest = common {
|
||||
version = "140.0.1";
|
||||
sha512 = "fbef1d0228c49fc9c11425b6be03bb7e44e6abc6f2027ee23317270ca2c6b0a935bb41b38667acf014bd9e1166cbe62754f1e919e04f2355dc4c833e015c78b8";
|
||||
version = "141.0";
|
||||
sha512 = "cd747c0831532f90685975567102d1bdb90a780e21209fe4b7bddf2d84ac88576766706e95e22043a30a8a89b6d3daffb56a68c3ccc4a300b8236b20d4fca675";
|
||||
|
||||
updateScript = callPackage ./update.nix {
|
||||
attrPath = "thunderbirdPackages.thunderbird-latest";
|
||||
|
||||
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
mesonFlags = [
|
||||
"-Dgdm-xsession=true"
|
||||
# TODO: Setup a default-path? https://gitlab.gnome.org/GNOME/gdm/-/blob/6fc40ac6aa37c8ad87c32f0b1a5d813d34bf7770/meson_options.txt#L6
|
||||
"-Dinitial-vt=${finalAttrs.passthru.initialVT}"
|
||||
"-Dinitial-vt=1"
|
||||
"-Dudev-dir=${placeholder "out"}/lib/udev/rules.d"
|
||||
"-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
|
||||
"-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
|
||||
@@ -185,9 +185,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript { packageName = "gdm"; };
|
||||
|
||||
# Used in GDM NixOS module
|
||||
# Don't remove.
|
||||
initialVT = "7";
|
||||
dconfDb = "${finalAttrs.finalPackage}/share/gdm/greeter-dconf-defaults";
|
||||
dconfProfile = "user-db:user\nfile-db:${finalAttrs.passthru.dconfDb}";
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "makejinja";
|
||||
version = "2.8.0";
|
||||
version = "2.8.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mirkolenz";
|
||||
repo = "makejinja";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Y6R+nVwIuviYhvLp5Aqb+BUCaAD6fF+GH8zmJrWNxFc=";
|
||||
hash = "sha256-vK5MJb4n3/NmkohpJ1shEexvjHlEAfwZJWy2oL+rzRk=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [ setuptools ];
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ngtcp2";
|
||||
version = "1.13.0";
|
||||
version = "1.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ngtcp2";
|
||||
repo = "ngtcp2";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SvxGZoV4N9wNAsI5pOjjGECgk2vV0FifzHi1gbGjqnc=";
|
||||
hash = "sha256-TpfCfVhguFbTqQiY+zl6Kn7fsIQHR1tvNC4YLkxmBis=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -51,14 +51,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "openai";
|
||||
version = "1.97.0";
|
||||
version = "1.97.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openai";
|
||||
repo = "openai-python";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-q+GUEHducm71Zqh7ZfRF217awFKQIsOSEWoe04M3DFM=";
|
||||
hash = "sha256-ANY74P3tM8VVPh9m6hOdZSkMhcQphi72bKNcLrsLEq8=";
|
||||
};
|
||||
|
||||
postPatch = ''substituteInPlace pyproject.toml --replace-fail "hatchling==1.26.3" "hatchling"'';
|
||||
|
||||
Reference in New Issue
Block a user