kbdVlock: split out of kbd

This removes a dependency cycle from systemd, removing a rebuild. At the
same time it is just as convenience for users. They need to include the
`kbdVlock` package now instead of the `vlock` output.
This commit is contained in:
nikstur
2025-09-29 18:21:01 +02:00
parent 495fa4c8bb
commit 1ee16b1900
4 changed files with 12 additions and 17 deletions
+2
View File
@@ -36,6 +36,8 @@
- LLVM 12, 13, 14, 15, 16, and 17 have been removed, as they have reached endoflife upstream and are no longer supported.
- The `vlock` output from kbd has been removed. Instead a new package `kbdVlock` has been introduced. Use this package now instead of the output.
- GHCJS 8.10, exposed via `haskell.compiler.ghcjs` and `haskell.compiler.ghcjs810`, has been removed. Downstream users should migrate their projects to the new JavaScript backend of GHC proper which can be used via `pkgsCross.ghcjs` from Nixpkgs. Haskell packaging code, like `haskellPackages.mkDerivation`, `ghcWithPackages` and `hoogleWithPackages`, also no longer supports GHCJS.
- GHC 8.6, 8.10, 9.0, 9.2, and their package sets have been removed.
+5 -11
View File
@@ -20,11 +20,12 @@
zstd,
gitUpdater,
pkgsCross,
withVlock ? true,
withVlock ? false,
kbdVlock,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "kbd";
pname = "kbd" + lib.optionalString withVlock "-vlock";
version = "2.9.0";
__structuredAttrs = true;
@@ -35,16 +36,11 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-uUECxFdm/UhoHKLHLFe6/ygCQ+4mrQOZExKl+ReaTNw=";
};
# vlock is moved into its own output, since it depends on pam. This
# reduces closure size for most use cases.
outputs = [
"out"
"dev"
"scripts"
"man"
]
++ lib.optionals withVlock [
"vlock"
];
patches = [
@@ -112,10 +108,6 @@ stdenv.mkDerivation (finalAttrs: {
moveToOutput bin/unicode_start $scripts
moveToOutput bin/unicode_stop $scripts
''
+ lib.optionalString withVlock ''
moveToOutput bin/vlock $vlock
moveToOutput etc/pam.d/vlock $vlock
'';
outputChecks.out.disallowedRequisites = [
@@ -137,6 +129,8 @@ stdenv.mkDerivation (finalAttrs: {
pkgsCross.${systemString}.kbd;
inherit (nixosTests) keymap kbd-setfont-decompress kbd-update-search-paths-patch;
};
# For backwards compatibility. Remove after 26.05.
vlock = kbdVlock;
};
meta = {
+3 -6
View File
@@ -200,8 +200,6 @@ let
# $ curl -s https://api.github.com/repos/systemd/systemd/releases/latest | \
# jq '.created_at|strptime("%Y-%m-%dT%H:%M:%SZ")|mktime'
releaseTimestamp = "1734643670";
kbd' = if withPam then kbd else kbd.override { withVlock = false; };
in
stdenv.mkDerivation (finalAttrs: {
inherit pname;
@@ -475,8 +473,8 @@ stdenv.mkDerivation (finalAttrs: {
(lib.mesonOption "pkgconfigdatadir" "${placeholder "dev"}/share/pkgconfig")
# Keyboard
(lib.mesonOption "loadkeys-path" "${kbd'}/bin/loadkeys")
(lib.mesonOption "setfont-path" "${kbd'}/bin/setfont")
(lib.mesonOption "loadkeys-path" "${kbd}/bin/loadkeys")
(lib.mesonOption "setfont-path" "${kbd}/bin/setfont")
# SBAT
(lib.mesonOption "sbat-distro" "nixos")
@@ -928,10 +926,9 @@ stdenv.mkDerivation (finalAttrs: {
withUtmp
util-linux
kmod
kbd
;
kbd = kbd';
# Many TPM2-related units are only installed if this trio of features are
# enabled. See https://github.com/systemd/systemd/blob/876ee10e0eb4bbb0920bdab7817a9f06cc34910f/units/meson.build#L521
withTpm2Units = withTpm2Tss && withBootloader && withOpenSSL;
+2
View File
@@ -3265,6 +3265,8 @@ with pkgs;
kbfs = callPackage ../tools/security/keybase/kbfs.nix { };
kbdVlock = callPackage ../../pkgs/by-name/kb/kbd/package.nix { withVlock = true; };
keybase-gui = callPackage ../tools/security/keybase/gui.nix { };
keystore-explorer = callPackage ../applications/misc/keystore-explorer {