From a554b067fe405fbdf56bf71ddf64ce4d0e9c6c7c Mon Sep 17 00:00:00 2001 From: Luflosi Date: Sun, 25 May 2025 17:18:24 +0200 Subject: [PATCH 1/3] feedbackd: enable strictDeps --- pkgs/by-name/fe/feedbackd/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/fe/feedbackd/package.nix b/pkgs/by-name/fe/feedbackd/package.nix index 80df650792dc..168639ffed30 100644 --- a/pkgs/by-name/fe/feedbackd/package.nix +++ b/pkgs/by-name/fe/feedbackd/package.nix @@ -111,6 +111,8 @@ stdenv.mkDerivation (finalAttrs: { updateScript = nix-update-script { }; }; + strictDeps = true; + meta = with lib; { description = "Daemon to provide haptic (and later more) feedback on events"; homepage = "https://source.puri.sm/Librem5/feedbackd"; From 2e24917e8ff0b3cf3207547c96cf97b48c9a18d2 Mon Sep 17 00:00:00 2001 From: Luflosi Date: Wed, 21 May 2025 17:29:54 +0200 Subject: [PATCH 2/3] feedbackd: 0.8.1 -> 0.8.2 https://gitlab.freedesktop.org/agx/feedbackd/-/tags/v0.8.2 According to the https://source.puri.sm/Librem5/feedbackd/ README: As of 2025-04-20 Upstream development moved to FDO's gitlab. The new location for code and issues is at https://gitlab.freedesktop.org/agx/feedbackd/ The packaging for the Librem 5 and PureOS continues to live at https://source.puri.sm/Librem5/debs/pkg-feedbackd. --- pkgs/by-name/fe/feedbackd/package.nix | 28 ++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/fe/feedbackd/package.nix b/pkgs/by-name/fe/feedbackd/package.nix index 168639ffed30..8ff14f82a79e 100644 --- a/pkgs/by-name/fe/feedbackd/package.nix +++ b/pkgs/by-name/fe/feedbackd/package.nix @@ -25,16 +25,16 @@ let themes = fetchFromGitLab { - domain = "source.puri.sm"; - owner = "Librem5"; + domain = "gitlab.freedesktop.org"; + owner = "agx"; repo = "feedbackd-device-themes"; - rev = "v0.4.0"; - hash = "sha256-kY/+DyRxKEUzq7ctl6Va14AKUCpWU7NRQhJOwhtkJp8="; + rev = "v0.8.3"; + hash = "sha256-z+A2G1g2gNfC0cVWUO/LT3QVvXeotcBd+5UEpEtcPfY="; }; in stdenv.mkDerivation (finalAttrs: { pname = "feedbackd"; - version = "0.8.1"; + version = "0.8.2"; outputs = [ "out" @@ -43,11 +43,11 @@ stdenv.mkDerivation (finalAttrs: { ]; src = fetchFromGitLab { - domain = "source.puri.sm"; - owner = "Librem5"; + domain = "gitlab.freedesktop.org"; + owner = "agx"; repo = "feedbackd"; rev = "v${finalAttrs.version}"; - hash = "sha256-J2BNDF9TyW+srW0pGbGt4/Uw4KPVf/Ke+HJVBldmfCA="; + hash = "sha256-Hd+kHLr+d1+mg9BbD1pCfVZuwmf7Hk02xmDTmR3foh4="; }; depsBuildBuild = [ @@ -114,9 +114,15 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; meta = with lib; { - description = "Daemon to provide haptic (and later more) feedback on events"; - homepage = "https://source.puri.sm/Librem5/feedbackd"; - license = licenses.gpl3Plus; + description = "Theme based Haptic, Visual and Audio Feedback"; + homepage = "https://gitlab.freedesktop.org/agx/feedbackd/"; + license = with licenses; [ + # feedbackd + gpl3Plus + + # libfeedback library + lgpl21Plus + ]; maintainers = with maintainers; [ pacman99 Luflosi From 0302a2ace6fe4bacc0437bf21bb946c8710ae5e9 Mon Sep 17 00:00:00 2001 From: Luflosi Date: Sun, 25 May 2025 17:19:55 +0200 Subject: [PATCH 3/3] feedbackd-device-themes: init at 0.8.3 Separate it from `feedbackd` for the following reasons: - Previously the update script did not see this "package" and did not update it - Now we can run the test suite of `feedbackd-device-themes` - This allows a user to only change a device theme, while not recompiling `feedbackd` - Updating only `feedbackd-device-themes` would result in an awkward commit message where we would claim to update a seemingly non-existing package - Previous commits that updated both `feedbackd` and `feedbackd-device-themes` at the same time did not mention the update to `feedbackd-device-themes` in the title of the commit message - They are separate projects after all, with the only direct dependency between the two packages existing in the test suite of `feedbackd-device-themes` - [Most other distributions also package this package](https://repology.org/project/feedbackd-device-themes/versions) separately from feedbackd --- nixos/modules/programs/feedbackd.nix | 7 ++- .../fe/feedbackd-device-themes/package.nix | 56 +++++++++++++++++++ pkgs/by-name/fe/feedbackd/package.nix | 11 +--- 3 files changed, 63 insertions(+), 11 deletions(-) create mode 100644 pkgs/by-name/fe/feedbackd-device-themes/package.nix diff --git a/nixos/modules/programs/feedbackd.nix b/nixos/modules/programs/feedbackd.nix index dbace6c4fdaa..021ce805d376 100644 --- a/nixos/modules/programs/feedbackd.nix +++ b/nixos/modules/programs/feedbackd.nix @@ -17,10 +17,15 @@ in Your user needs to be in the `feedbackd` group to trigger effects ''; package = lib.mkPackageOption pkgs "feedbackd" { }; + theme-package = lib.mkPackageOption pkgs "feedbackd-device-themes" { + nullable = true; + }; }; }; config = lib.mkIf cfg.enable { - environment.systemPackages = [ cfg.package ]; + environment.systemPackages = [ + cfg.package + ] ++ (if cfg.theme-package != null then [ cfg.theme-package ] else [ ]); services.dbus.packages = [ cfg.package ]; services.udev.packages = [ cfg.package ]; diff --git a/pkgs/by-name/fe/feedbackd-device-themes/package.nix b/pkgs/by-name/fe/feedbackd-device-themes/package.nix new file mode 100644 index 000000000000..711e77962b09 --- /dev/null +++ b/pkgs/by-name/fe/feedbackd-device-themes/package.nix @@ -0,0 +1,56 @@ +{ + lib, + stdenv, + fetchFromGitLab, + meson, + ninja, + json-glib, + feedbackd, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "feedbackd-device-themes"; + version = "0.8.3"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "agx"; + repo = "feedbackd-device-themes"; + rev = "v${finalAttrs.version}"; + hash = "sha256-z+A2G1g2gNfC0cVWUO/LT3QVvXeotcBd+5UEpEtcPfY="; + }; + + nativeBuildInputs = [ + meson + ninja + json-glib # Provides json-glib-validate + ]; + + nativeCheckInputs = [ + feedbackd # Provides fbd-theme-validate + ]; + + mesonFlags = [ + (lib.mesonOption "validate" (if finalAttrs.doCheck then "enabled" else "disabled")) + ]; + + doCheck = true; + + passthru = { + updateScript = nix-update-script { }; + }; + + strictDeps = true; + + meta = with lib; { + description = "Device specific feedback themes for Feedbackd"; + homepage = "https://gitlab.freedesktop.org/agx/feedbackd-device-themes"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ + pacman99 + Luflosi + ]; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/fe/feedbackd/package.nix b/pkgs/by-name/fe/feedbackd/package.nix index 8ff14f82a79e..5092424b39e9 100644 --- a/pkgs/by-name/fe/feedbackd/package.nix +++ b/pkgs/by-name/fe/feedbackd/package.nix @@ -20,18 +20,10 @@ dbus, gmobile, umockdev, + feedbackd-device-themes, nix-update-script, }: -let - themes = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "agx"; - repo = "feedbackd-device-themes"; - rev = "v0.8.3"; - hash = "sha256-z+A2G1g2gNfC0cVWUO/LT3QVvXeotcBd+5UEpEtcPfY="; - }; -in stdenv.mkDerivation (finalAttrs: { pname = "feedbackd"; version = "0.8.2"; @@ -93,7 +85,6 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' mkdir -p $out/lib/udev/rules.d sed "s|/usr/libexec/|$out/libexec/|" < $src/data/90-feedbackd.rules > $out/lib/udev/rules.d/90-feedbackd.rules - cp ${themes}/data/* $out/share/feedbackd/themes/ ''; postFixup = ''