diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index fb773e97f7ef..1c066b30f915 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -257,6 +257,7 @@ ./programs/lazygit.nix ./programs/less.nix ./programs/liboping.nix + ./programs/librepods.nix ./programs/lix.nix ./programs/localsend.nix ./programs/mdevctl.nix diff --git a/nixos/modules/programs/librepods.nix b/nixos/modules/programs/librepods.nix new file mode 100644 index 000000000000..f2d1a35bccb7 --- /dev/null +++ b/nixos/modules/programs/librepods.nix @@ -0,0 +1,42 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.programs.librepods; +in +{ + options = { + programs.librepods = { + enable = lib.mkOption { + default = false; + type = lib.types.bool; + description = '' + Whether to configure system to enable librepods. + To grant access to a user, it must be part of librepods group: + `users.users.alice.extraGroups = ["librepods"];` + ''; + }; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ librepods ]; + users.groups.librepods = { }; + + security.wrappers.librepods = { + source = lib.getExe pkgs.librepods; + capabilities = "cap_net_admin+ep"; + owner = "root"; + group = "librepods"; + permissions = "u+rx,g+x"; + }; + }; + + meta.maintainers = with lib.maintainers; [ + thefossguy + Cameo007 + ]; +} diff --git a/pkgs/by-name/li/librepods/package.nix b/pkgs/by-name/li/librepods/package.nix index 796991baf99a..421b5b4abd80 100644 --- a/pkgs/by-name/li/librepods/package.nix +++ b/pkgs/by-name/li/librepods/package.nix @@ -9,15 +9,15 @@ lib, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "librepods"; - version = "0.1.0-unstable-2025-12-07"; + version = "0.2.0-alpha.2"; src = fetchFromGitHub { owner = "kavishdevar"; repo = "librepods"; - rev = "0e1f784737122913c21b429810d059aadfb4479e"; - hash = "sha256-nXEMIyQWEDMjyKGPAleqqSttznNmrdSHKT4Kr2tLHBY="; + tag = "v${finalAttrs.version}"; + hash = "sha256-37dLiXC+eO4f5waLKgMMpHXH1m6W54O/l2axJsnyU5M="; }; sourceRoot = "source/linux"; @@ -41,6 +41,10 @@ stdenv.mkDerivation { homepage = "https://github.com/kavishdevar/librepods"; description = "AirPods liberated from Apple's ecosystem"; license = lib.licenses.gpl3; - maintainers = [ lib.maintainers.thefossguy ]; + mainProgram = "librepods"; + maintainers = with lib.maintainers; [ + thefossguy + Cameo007 + ]; }; -} +})