From 49c2f86b002b59456ff3bd45d856484eb409078a Mon Sep 17 00:00:00 2001 From: r0chd Date: Tue, 6 Oct 2026 01:48:09 +0200 Subject: [PATCH] sessiond packages --- features/sessiond-backlight/default.nix | 10 +++--- features/sessiond-backlight/package.nix | 31 ++++++++--------- features/sessiond-hooks/finix.nix | 3 +- features/sessiond-hooks/nixos.nix | 3 +- features/sessiond-hooks/package.nix | 25 +++++++++----- features/sessiond-power/finix.nix | 4 +-- features/sessiond-power/nixos.nix | 3 +- features/sessiond-power/package.nix | 44 +++++++++++++++++++++++++ features/sessiond-uaccess/default.nix | 12 ++++--- features/sessiond-uaccess/package.nix | 36 +++++++++++--------- features/sessiond/finix.nix | 3 +- features/sessiond/nixos.nix | 5 ++- features/sessiond/package.nix | 38 +++++++++++++-------- lon.lock | 6 ++-- 14 files changed, 149 insertions(+), 74 deletions(-) create mode 100644 features/sessiond-power/package.nix diff --git a/features/sessiond-backlight/default.nix b/features/sessiond-backlight/default.nix index 66f9481f..dcaa9127 100644 --- a/features/sessiond-backlight/default.nix +++ b/features/sessiond-backlight/default.nix @@ -2,22 +2,24 @@ { features = { finix.sessiond-backlight = - { inputs, ... }: + { inputs, pkgs, ... }: { imports = [ inputs.sessiond.finixModules.sessiond-backlight ]; services.sessiond-backlight = { enable = true; - package = inputs.sessiond.packages.sessiond-backlight; + # package = inputs.sessiond.packages.sessiond-backlight; + package = pkgs.callPackage ./package.nix { }; debug = true; }; }; nixos.sessiond-backlight = - { inputs, ... }: + { inputs, pkgs, ... }: { imports = [ inputs.sessiond.nixosModules.sessiond-backlight ]; services.sessiond-backlight = { enable = true; - package = inputs.sessiond.packages.sessiond-backlight; + # package = inputs.sessiond.packages.sessiond-backlight; + package = pkgs.callPackage ./package.nix { }; debug = true; }; }; diff --git a/features/sessiond-backlight/package.nix b/features/sessiond-backlight/package.nix index e7db84ae..4962da7e 100644 --- a/features/sessiond-backlight/package.nix +++ b/features/sessiond-backlight/package.nix @@ -1,34 +1,31 @@ { lib, - fetchgit, + fetchFromTangled, rustPlatform, - withLogind ? true, }: rustPlatform.buildRustPackage (finalAttrs: { __structuredAttrs = true; pname = "sessiond-backlight"; version = "0.1.0"; - cargoHash = "sha256-cgyZJ5AbM0+R08LXZng4UrglFjjwss7mtzOGt9wW6MM="; - - src = fetchgit { - url = "https://tangled.org/did:plc:fagytxbz6r2rtp3ga3ciswwz"; - tag = "v${finalAttrs.version}"; - hash = "sha256-nHAW3lfmwb2L7b/TXSYBi+7u5RQrTOpCKUPig52Uwso="; + src = fetchFromTangled { + did = "did:plc:vj3bxta3i3cp26nn46yideoh"; + tag = "${finalAttrs.pname}-v${finalAttrs.version}"; + hash = "sha256-X2ePs10hjZNOcHAJuN4J5KeBQaW24E2jMRq0biNdY3E="; }; - buildFeatures = lib.optionals withLogind [ - "logind" - ]; + cargoHash = "sha256-+ENVyHs4UFsN62rkIau1aXC2RmF3Mqtj6XWeR55rR8w="; - postInstall = lib.optionalString withLogind '' - install -Dm644 dbus/org.freedesktop.login1.conf \ - $out/share/dbus-1/system.d/org.freedesktop.login1.conf - ''; + cargoBuildFlags = [ + "--locked" + "-p" + "sessiond-backlight" + ]; + cargoTestFlags = finalAttrs.cargoBuildFlags; meta = { - description = "Logind-compatible backlight control service"; - homepage = "https://tangled.org/r0chd.pl/sessiond-backlight"; + description = "Backlight and LED brightness daemon for sessiond"; + homepage = "https://tangled.org/r0chd.pl/sessiond"; license = lib.licenses.gpl3Only; maintainers = builtins.attrValues { inherit (lib.maintainers) r0chd; }; platforms = lib.platforms.linux; diff --git a/features/sessiond-hooks/finix.nix b/features/sessiond-hooks/finix.nix index 98218885..c67c23ec 100644 --- a/features/sessiond-hooks/finix.nix +++ b/features/sessiond-hooks/finix.nix @@ -18,7 +18,8 @@ finit.services.sessiond-hooks-systemd.conditions = [ "service/journald/ready" ]; services.sessiond-hooks = { - package = inputs.sessiond.packages.sessiond-hooks; + # package = inputs.sessiond.packages.sessiond-hooks; + package = pkgs.callPackage ./package.nix { }; debug = true; hooks = { systemd.settings = { diff --git a/features/sessiond-hooks/nixos.nix b/features/sessiond-hooks/nixos.nix index 43e4b601..3ffeef9b 100644 --- a/features/sessiond-hooks/nixos.nix +++ b/features/sessiond-hooks/nixos.nix @@ -6,7 +6,8 @@ { imports = [ inputs.sessiond.nixosModules.sessiond-hooks ]; services.sessiond-hooks = { - package = inputs.sessiond.packages.sessiond-hooks; + # package = inputs.sessiond.packages.sessiond-hooks; + package = pkgs.callPackage ./package.nix { }; debug = true; hooks.systemd.settings = { on_start = "${pkgs.systemd}/lib/systemd/systemd --user"; diff --git a/features/sessiond-hooks/package.nix b/features/sessiond-hooks/package.nix index cdecb6f1..8a23bd21 100644 --- a/features/sessiond-hooks/package.nix +++ b/features/sessiond-hooks/package.nix @@ -1,24 +1,31 @@ { lib, - fetchgit, + fetchFromTangled, rustPlatform, }: rustPlatform.buildRustPackage (finalAttrs: { __structuredAttrs = true; pname = "sessiond-hooks"; - version = "0.1.0"; + version = "0.2.0"; - cargoHash = "sha256-XD2g3nkV4iz9ZQlb0+0YDuJl+8XdMOdwbMcCnCjKGT8="; - - src = fetchgit { - url = "https://tangled.org/did:plc:ujej26vte653yzllxk3q2dtf"; - tag = "v${finalAttrs.version}"; - hash = "sha256-zVEHxDNjF0xRydp2Y+oqM6O5KqM4zZTv0IqlHGXCgsA="; + src = fetchFromTangled { + did = "did:plc:vj3bxta3i3cp26nn46yideoh"; + tag = "${finalAttrs.pname}-v${finalAttrs.version}"; + hash = "sha256-X2ePs10hjZNOcHAJuN4J5KeBQaW24E2jMRq0biNdY3E="; }; + cargoHash = "sha256-+ENVyHs4UFsN62rkIau1aXC2RmF3Mqtj6XWeR55rR8w="; + + cargoBuildFlags = [ + "--locked" + "-p" + "sessiond-hooks" + ]; + cargoTestFlags = finalAttrs.cargoBuildFlags; + meta = { description = "Launch and supervise per-user session hooks with sessiond"; - homepage = "https://tangled.org/did:plc:ujej26vte653yzllxk3q2dtf"; + homepage = "https://tangled.org/r0chd.pl/sessiond"; license = lib.licenses.gpl3Only; maintainers = builtins.attrValues { inherit (lib.maintainers) r0chd; }; platforms = lib.platforms.linux; diff --git a/features/sessiond-power/finix.nix b/features/sessiond-power/finix.nix index 4bab2aea..dd3579ab 100644 --- a/features/sessiond-power/finix.nix +++ b/features/sessiond-power/finix.nix @@ -1,5 +1,4 @@ { - config, inputs, pkgs, lib, @@ -9,7 +8,8 @@ imports = [ inputs.sessiond.finixModules.sessiond-power ]; services.sessiond-power = { enable = true; - package = inputs.sessiond.packages.sessiond-power; + # package = inputs.sessiond.packages.sessiond-power; + package = pkgs.callPackage ./package.nix { }; debug = true; settings = { reboot = [ diff --git a/features/sessiond-power/nixos.nix b/features/sessiond-power/nixos.nix index d2c357c4..f44eaffd 100644 --- a/features/sessiond-power/nixos.nix +++ b/features/sessiond-power/nixos.nix @@ -8,7 +8,8 @@ imports = [ inputs.sessiond.nixosModules.sessiond-power ]; services.sessiond-power = { enable = true; - package = inputs.sessiond.packages.sessiond-power; + # package = inputs.sessiond.packages.sessiond-power; + package = pkgs.callPackage ./package.nix { }; debug = true; settings = { reboot = [ diff --git a/features/sessiond-power/package.nix b/features/sessiond-power/package.nix new file mode 100644 index 00000000..b8a051e9 --- /dev/null +++ b/features/sessiond-power/package.nix @@ -0,0 +1,44 @@ +{ + lib, + fetchFromTangled, + rustPlatform, +}: +rustPlatform.buildRustPackage (finalAttrs: { + __structuredAttrs = true; + pname = "sessiond-power"; + version = "0.1.0"; + + src = fetchFromTangled { + did = "did:plc:vj3bxta3i3cp26nn46yideoh"; + tag = "${finalAttrs.pname}-v${finalAttrs.version}"; + hash = "sha256-X2ePs10hjZNOcHAJuN4J5KeBQaW24E2jMRq0biNdY3E="; + }; + + cargoHash = "sha256-+ENVyHs4UFsN62rkIau1aXC2RmF3Mqtj6XWeR55rR8w="; + + cargoBuildFlags = [ + "--locked" + "-p" + "sessiond-power" + "-p" + "sessiond-rebootctl" + "-p" + "sessiond-poweroffctl" + "-p" + "sessiond-suspendctl" + "-p" + "sessiond-hibernatectl" + "-p" + "sessiond-hybrid-sleepctl" + ]; + cargoTestFlags = finalAttrs.cargoBuildFlags; + + meta = { + description = "Power management service"; + homepage = "https://tangled.org/r0chd.pl/sessiond"; + license = lib.licenses.gpl3Only; + maintainers = builtins.attrValues { inherit (lib.maintainers) r0chd; }; + platforms = lib.platforms.linux; + mainProgram = "sessiond-power"; + }; +}) diff --git a/features/sessiond-uaccess/default.nix b/features/sessiond-uaccess/default.nix index c91f8bf0..f4b05e35 100644 --- a/features/sessiond-uaccess/default.nix +++ b/features/sessiond-uaccess/default.nix @@ -7,19 +7,21 @@ imports = [ inputs.finix.nixosModules.sessiond-uaccess ]; services.sessiond-uaccess = { enable = true; - package = inputs.sessiond.packages.sessiond-uaccess.override { - udev = pkgs.libudev-zero; - }; + # package = inputs.sessiond.packages.sessiond-uaccess.override { + # udev = pkgs.libudev-zero; + # }; + package = pkgs.callPackage ./package.nix { udev = pkgs.libudev-zero; }; debug = true; }; }; nixos.sessiond-uaccess = - { inputs, ... }: + { inputs, pkgs, ... }: { imports = [ inputs.sessiond.nixosModules.sessiond-uaccess ]; services.sessiond-uaccess = { enable = true; - package = inputs.sessiond.packages.sessiond-uaccess; + # package = inputs.sessiond.packages.sessiond-uaccess; + package = pkgs.callPackage ./package.nix { }; debug = true; }; }; diff --git a/features/sessiond-uaccess/package.nix b/features/sessiond-uaccess/package.nix index 74cbfeba..433dcb67 100644 --- a/features/sessiond-uaccess/package.nix +++ b/features/sessiond-uaccess/package.nix @@ -1,41 +1,47 @@ { lib, - acl, - eudev, - fetchgit, - pkg-config, + fetchFromTangled, rustPlatform, + pkg-config, + udev, + acl, }: rustPlatform.buildRustPackage (finalAttrs: { __structuredAttrs = true; pname = "sessiond-uaccess"; - version = "0.1.0"; + version = "0.1.1"; - cargoHash = "sha256-fdsMnG8a6+6ZCeE16vRkpX4BtJsbngvw4QTB3CNnMIM="; - - src = fetchgit { - url = "https://tangled.org/did:plc:dkc53ch7wt7gilra4irpdqol"; - tag = "v${finalAttrs.version}"; - hash = "sha256-ZOXS4ZUrIKLmnXpqZ9trmR0of8daqbRSkHFKdEl+Rwg="; + src = fetchFromTangled { + did = "did:plc:vj3bxta3i3cp26nn46yideoh"; + tag = "${finalAttrs.pname}-v${finalAttrs.version}"; + hash = "sha256-X2ePs10hjZNOcHAJuN4J5KeBQaW24E2jMRq0biNdY3E="; }; + cargoHash = "sha256-+ENVyHs4UFsN62rkIau1aXC2RmF3Mqtj6XWeR55rR8w="; + + cargoBuildFlags = [ + "--locked" + "-p" + "sessiond-uaccess" + ]; + cargoTestFlags = finalAttrs.cargoBuildFlags; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ acl - eudev + udev ]; postInstall = '' - install -d $out/share/sessiond-uaccess - cp -r ${finalAttrs.src}/rules $out/share/sessiond-uaccess/ + install -Dm644 -t $out/share/sessiond-uaccess/rules sessiond-uaccess/rules/*.lua ''; meta = { description = "Dynamic device access manager"; - homepage = "https://tangled.org/r0chd.pl/sessiond-uaccess"; + homepage = "https://tangled.org/r0chd.pl/sessiond"; license = lib.licenses.gpl3Only; maintainers = builtins.attrValues { inherit (lib.maintainers) r0chd; }; platforms = lib.platforms.linux; diff --git a/features/sessiond/finix.nix b/features/sessiond/finix.nix index 80c4e4a5..510b176d 100644 --- a/features/sessiond/finix.nix +++ b/features/sessiond/finix.nix @@ -13,7 +13,8 @@ services.sessiond = { enable = true; - package = inputs.sessiond.packages.default; + # package = inputs.sessiond.packages.default; + package = pkgs.callPackage ./package.nix { }; debug = true; }; diff --git a/features/sessiond/nixos.nix b/features/sessiond/nixos.nix index 26cea0a6..3ab5ab73 100644 --- a/features/sessiond/nixos.nix +++ b/features/sessiond/nixos.nix @@ -1,6 +1,7 @@ { config, inputs, + pkgs, ... }: { @@ -14,7 +15,9 @@ services.sessiond = { enable = true; - package = inputs.sessiond.packages.default; + # package = inputs.sessiond.packages.default; + package = pkgs.callPackage ./package.nix { }; + debug = true; }; security.pam.services.login.rules.session.sessiond = { diff --git a/features/sessiond/package.nix b/features/sessiond/package.nix index ae3cfac8..8c200c53 100644 --- a/features/sessiond/package.nix +++ b/features/sessiond/package.nix @@ -1,7 +1,7 @@ { lib, stdenv, - fetchgit, + fetchFromTangled, linux-pam, pkg-config, rustPlatform, @@ -11,16 +11,32 @@ rustPlatform.buildRustPackage (finalAttrs: { __structuredAttrs = true; pname = "sessiond"; - version = "0.2.3"; + version = "0.3.0"; - cargoHash = "sha256-qKhqteERy38UEx0T9PilmNCZnKL7s910twTd44sUc8E="; - - src = fetchgit { - url = "https://tangled.org/did:plc:vj3bxta3i3cp26nn46yideoh"; - tag = "v${finalAttrs.version}"; - hash = "sha256-M+jBd3LcltdLprm8oI/n/LIpxj319QCt+LP4JspGtM4="; + src = fetchFromTangled { + did = "did:plc:vj3bxta3i3cp26nn46yideoh"; + tag = "${finalAttrs.pname}-v${finalAttrs.version}"; + hash = "sha256-X2ePs10hjZNOcHAJuN4J5KeBQaW24E2jMRq0biNdY3E="; }; + cargoHash = "sha256-+ENVyHs4UFsN62rkIau1aXC2RmF3Mqtj6XWeR55rR8w="; + + cargoBuildFlags = [ + "--locked" + "-p" + "sessiond" + "-p" + "sessionctl" + "-p" + "pam" + ]; + cargoTestFlags = finalAttrs.cargoBuildFlags; + + buildNoDefaultFeatures = true; + buildFeatures = lib.optionals withConsoleKit [ + "sessiond/consolekit" + ]; + nativeBuildInputs = [ pkg-config installShellFiles @@ -30,15 +46,9 @@ rustPlatform.buildRustPackage (finalAttrs: { linux-pam ]; - buildFeatures = lib.optionals withConsoleKit [ - "consolekit" - ]; - postInstall = '' mkdir -p $out/lib/security mv $out/lib/libpam.so $out/lib/security/pam_sessiond.so - mv $out/bin/daemon $out/bin/sessiond - mv $out/bin/ctl $out/bin/sessionctl '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd sessionctl \ diff --git a/lon.lock b/lon.lock index 3c9dff90..e0c83c73 100644 --- a/lon.lock +++ b/lon.lock @@ -115,10 +115,10 @@ "type": "Git", "fetchType": "git", "branch": "master", - "revision": "161fe90db73117c4f0dcd869a2c86ac4cc0d777d", + "revision": "f8a50573dd97e74d0865063e70069d0f229a7cb6", "url": "https://tangled.org/r0chd.pl/switch-to-configuration-ng", - "hash": "sha256-e+IFmrNdp6Ac2Qp8V7iu92ERVXPNf/Whbfmqj8fGezA=", - "lastModified": 1790979835, + "hash": "sha256-EaMXOGQrDA7u7jjnFVAynNKLV9pqAdbPp5hxRDhshTo=", + "lastModified": 1790981690, "submodules": false } } -- 2.51.2