From 6c444f88987e8479720ff2ccef19632307853b7c Mon Sep 17 00:00:00 2001 From: Alex James Date: Tue, 26 Dec 2023 17:35:30 -0600 Subject: [PATCH 1/4] maintainers: add al3xtjames --- maintainers/maintainer-list.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b0c4e245e52c..790dd48b95ee 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -711,6 +711,15 @@ githubId = 20405311; name = "Aksh Gupta"; }; + al3xtjames = { + email = "nix@alextjam.es"; + github = "al3xtjames"; + githubId = 5672538; + name = "Alex James"; + keys = [{ + fingerprint = "F354 FFAB EA89 A49D 33ED 2590 4729 B829 AC5F CC72"; + }]; + }; alanpearce = { email = "alan@alanpearce.eu"; github = "alanpearce"; From f6fb8c3a9e4a68030d880aeb89938295e9ecff88 Mon Sep 17 00:00:00 2001 From: Alex James Date: Mon, 3 Jul 2023 03:50:04 -0500 Subject: [PATCH 2/4] flood-for-transmission: init at 2023-11-17T12-46-13 --- .../p2p/flood-for-transmission/default.nix | 36 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/applications/networking/p2p/flood-for-transmission/default.nix diff --git a/pkgs/applications/networking/p2p/flood-for-transmission/default.nix b/pkgs/applications/networking/p2p/flood-for-transmission/default.nix new file mode 100644 index 000000000000..191e2044632c --- /dev/null +++ b/pkgs/applications/networking/p2p/flood-for-transmission/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +}: + +buildNpmPackage rec { + pname = "flood-for-transmission"; + version = "2023-11-17T12-46-13"; + + src = fetchFromGitHub { + owner = "johman10"; + repo = pname; + rev = version; + hash = "sha256-TaLWhly/4hOigWY1XP7FmgN4LbrdLb79NQ47z5JiiYE="; + }; + + npmDepsHash = "sha256-PCeknfS81K8ttU4hV2D841tgQsGfIVaAOVIEDXe8fVQ="; + + npmInstallFlags = [ "--legacy-peer-deps" ]; + + installPhase = '' + runHook preInstall + + cp -r public $out + + runHook postInstall + ''; + + meta = with lib; { + description = "A Flood clone for Transmission"; + homepage = "https://github.com/johman10/flood-for-transmission"; + maintainers = with maintainers; [ al3xtjames ]; + license = licenses.gpl3Only; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5ba31c6d6db2..a24f6037805b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3864,6 +3864,8 @@ with pkgs; flood = callPackage ../applications/networking/p2p/flood { }; + flood-for-transmission = callPackage ../applications/networking/p2p/flood-for-transmission { }; + font-config-info = callPackage ../tools/misc/font-config-info { }; foxdot = with python3Packages; toPythonApplication foxdot; From 9f32ad8ff84e55e0dbfe9bfe71ab5c713123106c Mon Sep 17 00:00:00 2001 From: Alex James Date: Tue, 26 Dec 2023 16:43:14 -0600 Subject: [PATCH 3/4] nixos/transmission: add webHome option --- .../modules/services/torrent/transmission.nix | 19 +++++++++++++++++++ .../p2p/flood-for-transmission/default.nix | 1 + 2 files changed, 20 insertions(+) diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix index 94919509ce17..497297ba693a 100644 --- a/nixos/modules/services/torrent/transmission.nix +++ b/nixos/modules/services/torrent/transmission.nix @@ -251,6 +251,20 @@ in For instance, SSH sessions may time out more easily. ''; }; + + webHome = mkOption { + type = types.nullOr types.path; + default = null; + example = "pkgs.flood-for-transmission"; + description = lib.mdDoc '' + If not `null`, sets the value of the `TRANSMISSION_WEB_HOME` + environment variable used by the service. Useful for overriding + the web interface files, without overriding the transmission + package and thus requiring rebuilding it locally. Use this if + you want to use an alternative web interface, such as + `pkgs.flood-for-transmission`. + ''; + }; }; }; @@ -280,6 +294,7 @@ in requires = optional apparmor.enable "apparmor.service"; wantedBy = [ "multi-user.target" ]; environment.CURL_CA_BUNDLE = etc."ssl/certs/ca-certificates.crt".source; + environment.TRANSMISSION_WEB_HOME = lib.optionalString (cfg.webHome != null) cfg.webHome; serviceConfig = { # Use "+" because credentialsFile may not be accessible to User= or Group=. @@ -492,6 +507,10 @@ in # https://gitlab.com/apparmor/apparmor/-/wikis/AppArmorStacking#seccomp-and-no_new_privs px ${cfg.settings.script-torrent-done-filename} -> &@{dirs}, ''} + + ${optionalString (cfg.webHome != null) '' + r ${cfg.webHome}/**, + ''} ''; }; diff --git a/pkgs/applications/networking/p2p/flood-for-transmission/default.nix b/pkgs/applications/networking/p2p/flood-for-transmission/default.nix index 191e2044632c..1de4e05c6cfc 100644 --- a/pkgs/applications/networking/p2p/flood-for-transmission/default.nix +++ b/pkgs/applications/networking/p2p/flood-for-transmission/default.nix @@ -1,3 +1,4 @@ +# To use this package, use: `services.transmission.webHome = pkgs.flood-for-transmission;` { lib , buildNpmPackage , fetchFromGitHub From 5e5be005f8999edb47d6d356895bffce2fd761a7 Mon Sep 17 00:00:00 2001 From: Alex James Date: Wed, 27 Dec 2023 03:45:54 -0600 Subject: [PATCH 4/4] transmission_4: remove extraAppArmorPaths extraAppArmorPaths was added in https://github.com/NixOS/nixpkgs/pull/259663 to extend the default AppArmor ruleset for transmission-daemon. This was intended to support alternative web interfaces, which is no longer needed with https://github.com/NixOS/nixpkgs/pull/241247. The NixOS service was updated to add a user-specified TRANSMISSION_WEB_HOME to the AppArmor profile without an override. --- pkgs/applications/networking/p2p/transmission/4.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/applications/networking/p2p/transmission/4.nix b/pkgs/applications/networking/p2p/transmission/4.nix index aa1f7f50daf8..9e0a1d69ef21 100644 --- a/pkgs/applications/networking/p2p/transmission/4.nix +++ b/pkgs/applications/networking/p2p/transmission/4.nix @@ -35,7 +35,6 @@ , enableCli ? true , installLib ? false , apparmorRulesFromClosure -, extraAppArmorPaths ? [] }: stdenv.mkDerivation (finalAttrs: { @@ -136,7 +135,6 @@ stdenv.mkDerivation (finalAttrs: { rwk /tmp/tr_session_id_*, r $out/share/transmission/public_html/**, - ${lib.strings.concatMapStrings (x: "r ${x},\n") extraAppArmorPaths} include }