Use own patch for transmission_4
This commit is contained in:
parent
aa0f360e01
commit
ca15dc98b5
3 changed files with 240 additions and 494 deletions
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
services.transmission = {
|
services.transmission = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.transmission_4.override { fmt = pkgs.fmt_9; };
|
package = pkgs.transmission_4;
|
||||||
user = "charlotte";
|
user = "charlotte";
|
||||||
group = "users";
|
group = "users";
|
||||||
home = "/data/var/lib/transmission";
|
home = "/data/var/lib/transmission";
|
||||||
|
|
|
@ -1,493 +0,0 @@
|
||||||
diff --git a/pkgs/applications/networking/p2p/fragments/default.nix b/pkgs/applications/networking/p2p/fragments/default.nix
|
|
||||||
index da74fd5e60acb..fe911688c762c 100644
|
|
||||||
--- a/pkgs/applications/networking/p2p/fragments/default.nix
|
|
||||||
+++ b/pkgs/applications/networking/p2p/fragments/default.nix
|
|
||||||
@@ -17,12 +17,12 @@
|
|
||||||
, rustPlatform
|
|
||||||
, rustc
|
|
||||||
, sqlite
|
|
||||||
-, transmission
|
|
||||||
+, transmission_3
|
|
||||||
, wrapGAppsHook4
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
- patchedTransmission = transmission.overrideAttrs (oldAttrs: {
|
|
||||||
+ patchedTransmission = transmission_3.overrideAttrs (oldAttrs: {
|
|
||||||
patches = (oldAttrs.patches or []) ++ [
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://raw.githubusercontent.com/flathub/de.haeckerfelix.Fragments/2aee477c8e26a24570f8dbbdbd1c49e017ae32eb/transmission_pdeathsig.patch";
|
|
||||||
diff --git a/pkgs/applications/networking/p2p/libutp/3.3.nix b/pkgs/applications/networking/p2p/libutp/3.3.nix
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000000..a07ffdea6b69d
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/pkgs/applications/networking/p2p/libutp/3.3.nix
|
|
||||||
@@ -0,0 +1,24 @@
|
|
||||||
+{ stdenv, lib, fetchFromGitHub, cmake }:
|
|
||||||
+
|
|
||||||
+stdenv.mkDerivation rec {
|
|
||||||
+ pname = "libutp";
|
|
||||||
+ version = "unstable-2017-01-02";
|
|
||||||
+
|
|
||||||
+ src = fetchFromGitHub {
|
|
||||||
+ # Use transmission fork from post-3.3-transmission branch
|
|
||||||
+ owner = "transmission";
|
|
||||||
+ repo = pname;
|
|
||||||
+ rev = "fda9f4b3db97ccb243fcbed2ce280eb4135d705b";
|
|
||||||
+ sha256 = "CvuZLOBksIl/lS6LaqOIuzNvX3ihlIPjI3Eqwo7YJH0=";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ nativeBuildInputs = [ cmake ];
|
|
||||||
+
|
|
||||||
+ meta = with lib; {
|
|
||||||
+ description = "uTorrent Transport Protocol library";
|
|
||||||
+ homepage = "https://github.com/transmission/libutp";
|
|
||||||
+ license = licenses.mit;
|
|
||||||
+ maintainers = with maintainers; [ emilytrau ];
|
|
||||||
+ platforms = platforms.unix;
|
|
||||||
+ };
|
|
||||||
+}
|
|
||||||
diff --git a/pkgs/applications/networking/p2p/libutp/default.nix b/pkgs/applications/networking/p2p/libutp/default.nix
|
|
||||||
index a07ffdea6b69d..a7a7c7325bca5 100644
|
|
||||||
--- a/pkgs/applications/networking/p2p/libutp/default.nix
|
|
||||||
+++ b/pkgs/applications/networking/p2p/libutp/default.nix
|
|
||||||
@@ -1,18 +1,31 @@
|
|
||||||
-{ stdenv, lib, fetchFromGitHub, cmake }:
|
|
||||||
+{ stdenv
|
|
||||||
+, lib
|
|
||||||
+, fetchFromGitHub
|
|
||||||
+, cmake
|
|
||||||
+, unstableGitUpdater
|
|
||||||
+}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "libutp";
|
|
||||||
- version = "unstable-2017-01-02";
|
|
||||||
+ version = "unstable-2023-03-05";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
- # Use transmission fork from post-3.3-transmission branch
|
|
||||||
+ # Use transmission fork from post-3.4-transmission branch
|
|
||||||
owner = "transmission";
|
|
||||||
- repo = pname;
|
|
||||||
- rev = "fda9f4b3db97ccb243fcbed2ce280eb4135d705b";
|
|
||||||
- sha256 = "CvuZLOBksIl/lS6LaqOIuzNvX3ihlIPjI3Eqwo7YJH0=";
|
|
||||||
+ repo = "libutp";
|
|
||||||
+ rev = "9cb9f9c4f0073d78b08d6542cebaea6564ecadfe";
|
|
||||||
+ sha256 = "dpbX1h/gpuVIAXC4hwwuRwQDJ0pwVVEsgemOVN0Dv9Q=";
|
|
||||||
};
|
|
||||||
|
|
||||||
- nativeBuildInputs = [ cmake ];
|
|
||||||
+ nativeBuildInputs = [
|
|
||||||
+ cmake
|
|
||||||
+ ];
|
|
||||||
+
|
|
||||||
+ passthru = {
|
|
||||||
+ updateScript = unstableGitUpdater {
|
|
||||||
+ branch = "post-3.4-transmission";
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "uTorrent Transport Protocol library";
|
|
||||||
diff --git a/pkgs/applications/networking/p2p/torrential/default.nix b/pkgs/applications/networking/p2p/torrential/default.nix
|
|
||||||
index cfc10c3f7466f..ce739b4a34bd1 100644
|
|
||||||
--- a/pkgs/applications/networking/p2p/torrential/default.nix
|
|
||||||
+++ b/pkgs/applications/networking/p2p/torrential/default.nix
|
|
||||||
@@ -17,8 +17,8 @@
|
|
||||||
, libevent
|
|
||||||
, libgee
|
|
||||||
, libnatpmp
|
|
||||||
-, libtransmission
|
|
||||||
-, libutp
|
|
||||||
+, transmission_3
|
|
||||||
+, libutp_3_3
|
|
||||||
, miniupnpc
|
|
||||||
, openssl
|
|
||||||
, pantheon
|
|
||||||
@@ -54,8 +54,8 @@ stdenv.mkDerivation rec {
|
|
||||||
libevent
|
|
||||||
libgee
|
|
||||||
libnatpmp
|
|
||||||
- libtransmission
|
|
||||||
- libutp
|
|
||||||
+ transmission_3
|
|
||||||
+ libutp_3_3
|
|
||||||
miniupnpc
|
|
||||||
openssl
|
|
||||||
pantheon.granite7
|
|
||||||
diff --git a/pkgs/applications/networking/p2p/transmission/3.x.nix b/pkgs/applications/networking/p2p/transmission/3.x.nix
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000000..905a2909c58d0
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/pkgs/applications/networking/p2p/transmission/3.x.nix
|
|
||||||
@@ -0,0 +1,79 @@
|
|
||||||
+{ stdenv
|
|
||||||
+, lib
|
|
||||||
+, fetchFromGitHub
|
|
||||||
+, fetchurl
|
|
||||||
+, cmake
|
|
||||||
+, pkg-config
|
|
||||||
+, openssl
|
|
||||||
+, curl
|
|
||||||
+, libevent
|
|
||||||
+, inotify-tools
|
|
||||||
+, zlib
|
|
||||||
+, pcre
|
|
||||||
+, libb64
|
|
||||||
+, libutp_3_3
|
|
||||||
+, miniupnpc
|
|
||||||
+, dht
|
|
||||||
+, libnatpmp
|
|
||||||
+, libiconv
|
|
||||||
+}:
|
|
||||||
+
|
|
||||||
+stdenv.mkDerivation (finalAttrs: {
|
|
||||||
+ pname = "transmission3";
|
|
||||||
+ version = "3.00";
|
|
||||||
+
|
|
||||||
+ src = fetchFromGitHub {
|
|
||||||
+ owner = "transmission";
|
|
||||||
+ repo = "transmission";
|
|
||||||
+ rev = finalAttrs.version;
|
|
||||||
+ sha256 = "0ccg0km54f700x9p0jsnncnwvfnxfnxf7kcm7pcx1cj0vw78924z";
|
|
||||||
+ fetchSubmodules = true;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ patches = [
|
|
||||||
+ # fix build with openssl 3.0
|
|
||||||
+ (fetchurl {
|
|
||||||
+ url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/net-p2p/transmission/files/transmission-3.00-openssl-3.patch";
|
|
||||||
+ hash = "sha256-peVrkGck8AfbC9uYNfv1CIu1alIewpca7A6kRXjVlVs=";
|
|
||||||
+ })
|
|
||||||
+ ];
|
|
||||||
+
|
|
||||||
+ nativeBuildInputs = [
|
|
||||||
+ pkg-config
|
|
||||||
+ cmake
|
|
||||||
+ ];
|
|
||||||
+
|
|
||||||
+ buildInputs = [
|
|
||||||
+ openssl
|
|
||||||
+ curl
|
|
||||||
+ libevent
|
|
||||||
+ zlib
|
|
||||||
+ pcre
|
|
||||||
+ libb64
|
|
||||||
+ libutp_3_3
|
|
||||||
+ miniupnpc
|
|
||||||
+ dht
|
|
||||||
+ libnatpmp
|
|
||||||
+ ] ++ lib.optionals stdenv.isLinux [
|
|
||||||
+ inotify-tools
|
|
||||||
+ ] ++ lib.optionals stdenv.isDarwin [
|
|
||||||
+ libiconv
|
|
||||||
+ ];
|
|
||||||
+
|
|
||||||
+ cmakeFlags = [
|
|
||||||
+ "-DENABLE_MAC=OFF" # requires xcodebuild
|
|
||||||
+ "-DENABLE_GTK=OFF"
|
|
||||||
+ "-DENABLE_QT=OFF"
|
|
||||||
+ "-DENABLE_DAEMON=ON"
|
|
||||||
+ "-DENABLE_CLI=OFF"
|
|
||||||
+ "-DINSTALL_LIB=ON"
|
|
||||||
+ ];
|
|
||||||
+
|
|
||||||
+ meta = {
|
|
||||||
+ description = "Old version of libtransmission library for apps that depend on it";
|
|
||||||
+ homepage = "http://www.transmissionbt.com/";
|
|
||||||
+ license = lib.licenses.gpl2Plus; # parts are under MIT
|
|
||||||
+ maintainers = with lib.maintainers; [ ];
|
|
||||||
+ platforms = lib.platforms.unix;
|
|
||||||
+ };
|
|
||||||
+})
|
|
||||||
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
|
|
||||||
index cc82c5038083c..cde2704083c25 100644
|
|
||||||
--- a/pkgs/applications/networking/p2p/transmission/default.nix
|
|
||||||
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
|
|
||||||
@@ -1,7 +1,6 @@
|
|
||||||
{ stdenv
|
|
||||||
, lib
|
|
||||||
, fetchFromGitHub
|
|
||||||
-, fetchurl
|
|
||||||
, cmake
|
|
||||||
, pkg-config
|
|
||||||
, openssl
|
|
||||||
@@ -17,9 +16,14 @@
|
|
||||||
, dht
|
|
||||||
, libnatpmp
|
|
||||||
, libiconv
|
|
||||||
+, libdeflate
|
|
||||||
+, utf8cpp
|
|
||||||
+, fmt
|
|
||||||
+, libpsl
|
|
||||||
+, python3
|
|
||||||
# Build options
|
|
||||||
, enableGTK3 ? false
|
|
||||||
-, gtk3
|
|
||||||
+, gtkmm3
|
|
||||||
, xorg
|
|
||||||
, wrapGAppsHook
|
|
||||||
, enableQt ? false
|
|
||||||
@@ -30,32 +34,62 @@
|
|
||||||
, enableCli ? true
|
|
||||||
, installLib ? false
|
|
||||||
, apparmorRulesFromClosure
|
|
||||||
+, darwin
|
|
||||||
}:
|
|
||||||
|
|
||||||
-let
|
|
||||||
- version = "3.00";
|
|
||||||
-
|
|
||||||
-in stdenv.mkDerivation {
|
|
||||||
+stdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "transmission";
|
|
||||||
- inherit version;
|
|
||||||
+ version = "4.0.2";
|
|
||||||
+
|
|
||||||
+ outputs = [ "out" "apparmor" ];
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "transmission";
|
|
||||||
repo = "transmission";
|
|
||||||
- rev = version;
|
|
||||||
- sha256 = "0ccg0km54f700x9p0jsnncnwvfnxfnxf7kcm7pcx1cj0vw78924z";
|
|
||||||
+ rev = finalAttrs.version;
|
|
||||||
+ hash = "sha256-DaaJnnWEZOl6zLVxgg+U8C5ztv7Iq0wJ9yle0Gxwybc=";
|
|
||||||
fetchSubmodules = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
- patches = [
|
|
||||||
- # fix build with openssl 3.0
|
|
||||||
- (fetchurl {
|
|
||||||
- url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/net-p2p/transmission/files/transmission-3.00-openssl-3.patch";
|
|
||||||
- hash = "sha256-peVrkGck8AfbC9uYNfv1CIu1alIewpca7A6kRXjVlVs=";
|
|
||||||
- })
|
|
||||||
+ nativeBuildInputs = [
|
|
||||||
+ pkg-config
|
|
||||||
+ cmake
|
|
||||||
+ python3
|
|
||||||
+ ] ++ lib.optionals enableGTK3 [
|
|
||||||
+ wrapGAppsHook
|
|
||||||
+ ] ++ lib.optionals enableQt [
|
|
||||||
+ qt5.wrapQtAppsHook
|
|
||||||
];
|
|
||||||
|
|
||||||
- outputs = [ "out" "apparmor" ];
|
|
||||||
+ buildInputs = [
|
|
||||||
+ openssl
|
|
||||||
+ curl
|
|
||||||
+ libevent
|
|
||||||
+ zlib
|
|
||||||
+ pcre
|
|
||||||
+ libb64
|
|
||||||
+ libutp
|
|
||||||
+ miniupnpc
|
|
||||||
+ dht
|
|
||||||
+ libnatpmp
|
|
||||||
+ libdeflate
|
|
||||||
+ utf8cpp
|
|
||||||
+ fmt
|
|
||||||
+ libpsl
|
|
||||||
+ ] ++ lib.optionals enableQt [
|
|
||||||
+ qt5.qttools
|
|
||||||
+ qt5.qtbase
|
|
||||||
+ ] ++ lib.optionals enableGTK3 [
|
|
||||||
+ gtkmm3
|
|
||||||
+ xorg.libpthreadstubs
|
|
||||||
+ ] ++ lib.optionals enableSystemd [
|
|
||||||
+ systemd
|
|
||||||
+ ] ++ lib.optionals stdenv.isLinux [
|
|
||||||
+ inotify-tools
|
|
||||||
+ ] ++ lib.optionals stdenv.isDarwin [
|
|
||||||
+ libiconv
|
|
||||||
+ darwin.apple_sdk.frameworks.Foundation
|
|
||||||
+ ];
|
|
||||||
|
|
||||||
cmakeFlags =
|
|
||||||
let
|
|
||||||
@@ -68,59 +102,74 @@ in stdenv.mkDerivation {
|
|
||||||
"-DENABLE_DAEMON=${mkFlag enableDaemon}"
|
|
||||||
"-DENABLE_CLI=${mkFlag enableCli}"
|
|
||||||
"-DINSTALL_LIB=${mkFlag installLib}"
|
|
||||||
+ ] ++ lib.optionals stdenv.isDarwin [
|
|
||||||
+ # Transmission sets this to 10.13 if not explicitly specified, see https://github.com/transmission/transmission/blob/0be7091eb12f4eb55f6690f313ef70a66795ee72/CMakeLists.txt#L7-L16.
|
|
||||||
+ "-DCMAKE_OSX_DEPLOYMENT_TARGET=${stdenv.hostPlatform.darwinMinVersion}"
|
|
||||||
];
|
|
||||||
|
|
||||||
- nativeBuildInputs = [
|
|
||||||
- pkg-config
|
|
||||||
- cmake
|
|
||||||
- ]
|
|
||||||
- ++ lib.optionals enableGTK3 [ wrapGAppsHook ]
|
|
||||||
- ++ lib.optionals enableQt [ qt5.wrapQtAppsHook ]
|
|
||||||
- ;
|
|
||||||
+ postPatch = ''
|
|
||||||
+ # Clean third-party libraries to ensure system ones are used.
|
|
||||||
+ # Excluding gtest since it is hardcoded to vendored version. The rest of the listed libraries are not packaged.
|
|
||||||
+ pushd third-party
|
|
||||||
+ for f in *; do
|
|
||||||
+ if [[ ! $f =~ googletest|wildmat|fast_float|wide-integer|jsonsl ]]; then
|
|
||||||
+ rm -r "$f"
|
|
||||||
+ fi
|
|
||||||
+ done
|
|
||||||
+ popd
|
|
||||||
+ rm \
|
|
||||||
+ cmake/FindFmt.cmake \
|
|
||||||
+ cmake/FindUtfCpp.cmake
|
|
||||||
|
|
||||||
- buildInputs = [
|
|
||||||
- openssl
|
|
||||||
- curl
|
|
||||||
- libevent
|
|
||||||
- zlib
|
|
||||||
- pcre
|
|
||||||
- libb64
|
|
||||||
- libutp
|
|
||||||
- miniupnpc
|
|
||||||
- dht
|
|
||||||
- libnatpmp
|
|
||||||
- ]
|
|
||||||
- ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
|
|
||||||
- ++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ]
|
|
||||||
- ++ lib.optionals enableSystemd [ systemd ]
|
|
||||||
- ++ lib.optionals stdenv.isLinux [ inotify-tools ]
|
|
||||||
- ++ lib.optionals stdenv.isDarwin [ libiconv ];
|
|
||||||
+ # Upstream uses different config file name.
|
|
||||||
+ substituteInPlace CMakeLists.txt --replace 'find_package(UtfCpp)' 'find_package(utf8cpp)'
|
|
||||||
+ '';
|
|
||||||
|
|
||||||
- postInstall = ''
|
|
||||||
- mkdir $apparmor
|
|
||||||
- cat >$apparmor/bin.transmission-daemon <<EOF
|
|
||||||
- include <tunables/global>
|
|
||||||
- $out/bin/transmission-daemon {
|
|
||||||
- include <abstractions/base>
|
|
||||||
- include <abstractions/nameservice>
|
|
||||||
- include <abstractions/ssl_certs>
|
|
||||||
- include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([
|
|
||||||
- curl libevent openssl pcre zlib libnatpmp miniupnpc
|
|
||||||
- ] ++ lib.optionals enableSystemd [ systemd ]
|
|
||||||
- ++ lib.optionals stdenv.isLinux [ inotify-tools ]
|
|
||||||
- )}"
|
|
||||||
- r @{PROC}/sys/kernel/random/uuid,
|
|
||||||
- r @{PROC}/sys/vm/overcommit_memory,
|
|
||||||
- r @{PROC}/@{pid}/environ,
|
|
||||||
- r @{PROC}/@{pid}/mounts,
|
|
||||||
- rwk /tmp/tr_session_id_*,
|
|
||||||
+ postInstall =
|
|
||||||
+ let
|
|
||||||
+ rules =
|
|
||||||
+ apparmorRulesFromClosure
|
|
||||||
+ {
|
|
||||||
+ name = "transmission-daemon";
|
|
||||||
+ }
|
|
||||||
+ ([
|
|
||||||
+ curl
|
|
||||||
+ libevent
|
|
||||||
+ openssl
|
|
||||||
+ pcre
|
|
||||||
+ zlib
|
|
||||||
+ libdeflate
|
|
||||||
+ libpsl
|
|
||||||
+ libnatpmp
|
|
||||||
+ miniupnpc
|
|
||||||
+ ] ++ lib.optionals enableSystemd [
|
|
||||||
+ systemd
|
|
||||||
+ ]
|
|
||||||
+ ++ lib.optionals stdenv.isLinux [
|
|
||||||
+ inotify-tools
|
|
||||||
+ ]);
|
|
||||||
+ in
|
|
||||||
+ ''
|
|
||||||
+ mkdir "$apparmor"
|
|
||||||
+ cat >"$apparmor/bin.transmission-daemon" <<EOF
|
|
||||||
+ include <tunables/global>
|
|
||||||
+ $out/bin/transmission-daemon {
|
|
||||||
+ include <abstractions/base>
|
|
||||||
+ include <abstractions/nameservice>
|
|
||||||
+ include <abstractions/ssl_certs>
|
|
||||||
+ include "${rules}"
|
|
||||||
+ r @{PROC}/sys/kernel/random/uuid,
|
|
||||||
+ r @{PROC}/sys/vm/overcommit_memory,
|
|
||||||
+ r @{PROC}/@{pid}/environ,
|
|
||||||
+ r @{PROC}/@{pid}/mounts,
|
|
||||||
+ rwk /tmp/tr_session_id_*,
|
|
||||||
|
|
||||||
- r $out/share/transmission/web/**,
|
|
||||||
+ r $out/share/transmission/web/**,
|
|
||||||
|
|
||||||
- include <local/bin.transmission-daemon>
|
|
||||||
- }
|
|
||||||
- EOF
|
|
||||||
- '';
|
|
||||||
+ include <local/bin.transmission-daemon>
|
|
||||||
+ }
|
|
||||||
+ EOF
|
|
||||||
+ '';
|
|
||||||
|
|
||||||
passthru.tests = {
|
|
||||||
apparmor = nixosTests.transmission; # starts the service with apparmor enabled
|
|
||||||
@@ -145,5 +194,4 @@ in stdenv.mkDerivation {
|
|
||||||
maintainers = with lib.maintainers; [ astsmtl ];
|
|
||||||
platforms = lib.platforms.unix;
|
|
||||||
};
|
|
||||||
-
|
|
||||||
-}
|
|
||||||
+})
|
|
||||||
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
|
|
||||||
index f3df5f2cc5d6c..541c91f832223 100644
|
|
||||||
--- a/pkgs/top-level/aliases.nix
|
|
||||||
+++ b/pkgs/top-level/aliases.nix
|
|
||||||
@@ -907,6 +907,7 @@ mapAliases ({
|
|
||||||
libtorrentRasterbar = libtorrent-rasterbar; # Added 2020-12-20
|
|
||||||
libtorrentRasterbar-1_2_x = libtorrent-rasterbar-1_2_x; # Added 2020-12-20
|
|
||||||
libtorrentRasterbar-2_0_x = libtorrent-rasterbar-2_0_x; # Added 2020-12-20
|
|
||||||
+ libtransmission = transmission_3;
|
|
||||||
libtxc_dxtn = throw "libtxc_dxtn was removed 2020-03-16, now integrated in Mesa";
|
|
||||||
libtxc_dxtn_s2tc = throw "libtxc_dxtn_s2tc was removed 2020-03-16, now integrated in Mesa";
|
|
||||||
libudev = throw "'libudev' has been renamed to/replaced by 'udev'"; # Converted to throw 2022-02-22
|
|
||||||
@@ -1687,6 +1688,7 @@ mapAliases ({
|
|
||||||
torchPackages = throw "torchPackages has been removed, as the upstream project has been abandoned"; # Added 2020-03-28
|
|
||||||
trang = throw "'trang' has been renamed to/replaced by 'jing-trang'"; # Converted to throw 2022-02-22
|
|
||||||
transfig = fig2dev; # Added 2022-02-15
|
|
||||||
+ transmission = transmission_3;
|
|
||||||
transmission-remote-cli = throw "transmission-remote-cli has been removed, as the upstream project has been abandoned. Please use tremc instead"; # Added 2020-10-14
|
|
||||||
transmission_gtk = throw "'transmission_gtk' has been renamed to/replaced by 'transmission-gtk'"; # Converted to throw 2022-02-22
|
|
||||||
transmission_remote_gtk = throw "'transmission_remote_gtk' has been renamed to/replaced by 'transmission-remote-gtk'"; # Converted to throw 2022-02-22
|
|
||||||
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
|
|
||||||
index ec146342702aa..332af40ebb854 100644
|
|
||||||
--- a/pkgs/top-level/all-packages.nix
|
|
||||||
+++ b/pkgs/top-level/all-packages.nix
|
|
||||||
@@ -32469,6 +32469,8 @@ with pkgs;
|
|
||||||
|
|
||||||
libutp = callPackage ../applications/networking/p2p/libutp { };
|
|
||||||
|
|
||||||
+ libutp_3_3 = callPackage ../applications/networking/p2p/libutp/3.3.nix { };
|
|
||||||
+
|
|
||||||
lifelines = callPackage ../applications/misc/lifelines { };
|
|
||||||
|
|
||||||
liferea = callPackage ../applications/networking/newsreaders/liferea { };
|
|
||||||
@@ -34989,14 +34991,18 @@ with pkgs;
|
|
||||||
|
|
||||||
transcribe = callPackage ../applications/audio/transcribe { };
|
|
||||||
|
|
||||||
- transmission = callPackage ../applications/networking/p2p/transmission { };
|
|
||||||
- libtransmission = transmission.override {
|
|
||||||
+ transmission_3 = callPackage ../applications/networking/p2p/transmission/3.x.nix { };
|
|
||||||
+ transmission-gtk = transmission_3.override { enableGTK3 = true; };
|
|
||||||
+ transmission-qt = transmission_3.override { enableQt = true; };
|
|
||||||
+
|
|
||||||
+ transmission_4 = callPackage ../applications/networking/p2p/transmission { };
|
|
||||||
+ transmission_4-gtk = transmission_4.override { enableGTK3 = true; };
|
|
||||||
+ transmission_4-qt = transmission_4.override { enableQt = true; };
|
|
||||||
+ libtransmission_4 = transmission_4.override {
|
|
||||||
installLib = true;
|
|
||||||
enableDaemon = false;
|
|
||||||
enableCli = false;
|
|
||||||
};
|
|
||||||
- transmission-gtk = transmission.override { enableGTK3 = true; };
|
|
||||||
- transmission-qt = transmission.override { enableQt = true; };
|
|
||||||
|
|
||||||
transmission-remote-gtk = callPackage ../applications/networking/p2p/transmission-remote-gtk { };
|
|
||||||
|
|
239
patches/241146.patch
Normal file
239
patches/241146.patch
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
diff --git a/pkgs/applications/networking/p2p/libutp/3.4.nix b/pkgs/applications/networking/p2p/libutp/3.4.nix
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000..46c1dda8b9cfe
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/pkgs/applications/networking/p2p/libutp/3.4.nix
|
||||||
|
@@ -0,0 +1,30 @@
|
||||||
|
+{ stdenv, lib, fetchFromGitHub, cmake, unstableGitUpdater }:
|
||||||
|
+
|
||||||
|
+stdenv.mkDerivation rec {
|
||||||
|
+ pname = "libutp";
|
||||||
|
+ version = "unstable-2017-01-02";
|
||||||
|
+
|
||||||
|
+ src = fetchFromGitHub {
|
||||||
|
+ # Use transmission fork from post-3.4-transmission branch
|
||||||
|
+ owner = "transmission";
|
||||||
|
+ repo = pname;
|
||||||
|
+ rev = "9cb9f9c4f0073d78b08d6542cebaea6564ecadfe";
|
||||||
|
+ hash = "sha256-dpbX1h/gpuVIAXC4hwwuRwQDJ0pwVVEsgemOVN0Dv9Q=";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ nativeBuildInputs = [ cmake ];
|
||||||
|
+
|
||||||
|
+ passthru = {
|
||||||
|
+ updateScript = unstableGitUpdater {
|
||||||
|
+ branch = "post-3.4-transmission";
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ meta = with lib; {
|
||||||
|
+ description = "uTorrent Transport Protocol library";
|
||||||
|
+ homepage = "https://github.com/transmission/libutp";
|
||||||
|
+ license = licenses.mit;
|
||||||
|
+ maintainers = with maintainers; [ emilytrau ];
|
||||||
|
+ platforms = platforms.unix;
|
||||||
|
+ };
|
||||||
|
+}
|
||||||
|
diff --git a/pkgs/applications/networking/p2p/transmission/4.nix b/pkgs/applications/networking/p2p/transmission/4.nix
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000..3e7d2b946d781
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/pkgs/applications/networking/p2p/transmission/4.nix
|
||||||
|
@@ -0,0 +1,166 @@
|
||||||
|
+{ stdenv
|
||||||
|
+, lib
|
||||||
|
+, fetchFromGitHub
|
||||||
|
+, cmake
|
||||||
|
+, pkg-config
|
||||||
|
+, python3
|
||||||
|
+, openssl
|
||||||
|
+, curl
|
||||||
|
+, libevent
|
||||||
|
+, inotify-tools
|
||||||
|
+, systemd
|
||||||
|
+, zlib
|
||||||
|
+, pcre
|
||||||
|
+, libb64
|
||||||
|
+, libutp
|
||||||
|
+, libdeflate
|
||||||
|
+, utf8cpp
|
||||||
|
+, fmt
|
||||||
|
+, libpsl
|
||||||
|
+, miniupnpc
|
||||||
|
+, dht
|
||||||
|
+, libnatpmp
|
||||||
|
+, libiconv
|
||||||
|
+ # Build options
|
||||||
|
+, enableGTK3 ? false
|
||||||
|
+, gtkmm3
|
||||||
|
+, xorg
|
||||||
|
+, wrapGAppsHook
|
||||||
|
+, enableQt ? false
|
||||||
|
+, qt5
|
||||||
|
+, nixosTests
|
||||||
|
+, enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
|
||||||
|
+, enableDaemon ? true
|
||||||
|
+, enableCli ? true
|
||||||
|
+, installLib ? false
|
||||||
|
+, apparmorRulesFromClosure
|
||||||
|
+}:
|
||||||
|
+
|
||||||
|
+stdenv.mkDerivation rec {
|
||||||
|
+ pname = "transmission";
|
||||||
|
+ version = "4.0.3";
|
||||||
|
+
|
||||||
|
+ src = fetchFromGitHub {
|
||||||
|
+ owner = "transmission";
|
||||||
|
+ repo = "transmission";
|
||||||
|
+ rev = version;
|
||||||
|
+ hash = "sha256-P7omd49xLmReo9Zrg0liO1msUVzCa5CxH7PGmH4oPzg=";
|
||||||
|
+ fetchSubmodules = true;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ outputs = [ "out" "apparmor" ];
|
||||||
|
+
|
||||||
|
+ cmakeFlags =
|
||||||
|
+ let
|
||||||
|
+ mkFlag = opt: if opt then "ON" else "OFF";
|
||||||
|
+ in
|
||||||
|
+ [
|
||||||
|
+ "-DENABLE_MAC=OFF" # requires xcodebuild
|
||||||
|
+ "-DENABLE_GTK=${mkFlag enableGTK3}"
|
||||||
|
+ "-DENABLE_QT=${mkFlag enableQt}"
|
||||||
|
+ "-DENABLE_DAEMON=${mkFlag enableDaemon}"
|
||||||
|
+ "-DENABLE_CLI=${mkFlag enableCli}"
|
||||||
|
+ "-DINSTALL_LIB=${mkFlag installLib}"
|
||||||
|
+ ] ++ lib.optionals stdenv.isDarwin [
|
||||||
|
+ # Transmission sets this to 10.13 if not explicitly specified, see https://github.com/transmission/transmission/blob/0be7091eb12f4eb55f6690f313ef70a66795ee72/CMakeLists.txt#L7-L16.
|
||||||
|
+ "-DCMAKE_OSX_DEPLOYMENT_TARGET=${stdenv.hostPlatform.darwinMinVersion}"
|
||||||
|
+ ];
|
||||||
|
+
|
||||||
|
+ postPatch = ''
|
||||||
|
+ # Clean third-party libraries to ensure system ones are used.
|
||||||
|
+ # Excluding gtest since it is hardcoded to vendored version. The rest of the listed libraries are not packaged.
|
||||||
|
+ pushd third-party
|
||||||
|
+ for f in *; do
|
||||||
|
+ if [[ ! $f =~ googletest|wildmat|fast_float|wide-integer|jsonsl ]]; then
|
||||||
|
+ rm -r "$f"
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
+ popd
|
||||||
|
+ rm \
|
||||||
|
+ cmake/FindFmt.cmake \
|
||||||
|
+ cmake/FindUtfCpp.cmake
|
||||||
|
+ # Upstream uses different config file name.
|
||||||
|
+ substituteInPlace CMakeLists.txt --replace 'find_package(UtfCpp)' 'find_package(utf8cpp)'
|
||||||
|
+ '';
|
||||||
|
+
|
||||||
|
+ nativeBuildInputs = [
|
||||||
|
+ pkg-config
|
||||||
|
+ cmake
|
||||||
|
+ python3
|
||||||
|
+ ]
|
||||||
|
+ ++ lib.optionals enableGTK3 [ wrapGAppsHook ]
|
||||||
|
+ ++ lib.optionals enableQt [ qt5.wrapQtAppsHook ]
|
||||||
|
+ ;
|
||||||
|
+
|
||||||
|
+ buildInputs = [
|
||||||
|
+ curl
|
||||||
|
+ dht
|
||||||
|
+ fmt
|
||||||
|
+ libb64
|
||||||
|
+ libdeflate
|
||||||
|
+ libevent
|
||||||
|
+ libnatpmp
|
||||||
|
+ libpsl
|
||||||
|
+ libutp
|
||||||
|
+ miniupnpc
|
||||||
|
+ openssl
|
||||||
|
+ pcre
|
||||||
|
+ utf8cpp
|
||||||
|
+ zlib
|
||||||
|
+ ]
|
||||||
|
+ ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
|
||||||
|
+ ++ lib.optionals enableGTK3 [ gtkmm3 xorg.libpthreadstubs ]
|
||||||
|
+ ++ lib.optionals enableSystemd [ systemd ]
|
||||||
|
+ ++ lib.optionals stdenv.isLinux [ inotify-tools ]
|
||||||
|
+ ++ lib.optionals stdenv.isDarwin [ libiconv ];
|
||||||
|
+
|
||||||
|
+ postInstall = ''
|
||||||
|
+ mkdir $apparmor
|
||||||
|
+ cat >$apparmor/bin.transmission-daemon <<EOF
|
||||||
|
+ include <tunables/global>
|
||||||
|
+ $out/bin/transmission-daemon {
|
||||||
|
+ include <abstractions/base>
|
||||||
|
+ include <abstractions/nameservice>
|
||||||
|
+ include <abstractions/ssl_certs>
|
||||||
|
+ include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([
|
||||||
|
+ curl libevent openssl pcre zlib libdeflate libpsl libnatpmp miniupnpc
|
||||||
|
+ ] ++ lib.optionals enableSystemd [ systemd ]
|
||||||
|
+ ++ lib.optionals stdenv.isLinux [ inotify-tools ]
|
||||||
|
+ )}"
|
||||||
|
+ r @{PROC}/sys/kernel/random/uuid,
|
||||||
|
+ r @{PROC}/sys/vm/overcommit_memory,
|
||||||
|
+ r @{PROC}/@{pid}/environ,
|
||||||
|
+ r @{PROC}/@{pid}/mounts,
|
||||||
|
+ rwk /tmp/tr_session_id_*,
|
||||||
|
+
|
||||||
|
+ r $out/share/transmission/web/**,
|
||||||
|
+
|
||||||
|
+ include <local/bin.transmission-daemon>
|
||||||
|
+ }
|
||||||
|
+ EOF
|
||||||
|
+ '';
|
||||||
|
+
|
||||||
|
+ passthru.tests = {
|
||||||
|
+ apparmor = nixosTests.transmission; # starts the service with apparmor enabled
|
||||||
|
+ smoke-test = nixosTests.bittorrent;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ meta = {
|
||||||
|
+ description = "A fast, easy and free BitTorrent client";
|
||||||
|
+ longDescription = ''
|
||||||
|
+ Transmission is a BitTorrent client which features a simple interface
|
||||||
|
+ on top of a cross-platform back-end.
|
||||||
|
+ Feature spotlight:
|
||||||
|
+ * Uses fewer resources than other clients
|
||||||
|
+ * Native Mac, GTK and Qt GUI clients
|
||||||
|
+ * Daemon ideal for servers, embedded systems, and headless use
|
||||||
|
+ * All these can be remote controlled by Web and Terminal clients
|
||||||
|
+ * Bluetack (PeerGuardian) blocklists with automatic updates
|
||||||
|
+ * Full encryption, DHT, and PEX support
|
||||||
|
+ '';
|
||||||
|
+ homepage = "http://www.transmissionbt.com/";
|
||||||
|
+ license = with lib.licenses; [ gpl2Plus mit ];
|
||||||
|
+ maintainers = with lib.maintainers; [ astsmtl ];
|
||||||
|
+ platforms = lib.platforms.unix;
|
||||||
|
+ };
|
||||||
|
+}
|
||||||
|
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
|
||||||
|
index e1e5ba3897736..da3910ca91ec9 100644
|
||||||
|
--- a/pkgs/top-level/all-packages.nix
|
||||||
|
+++ b/pkgs/top-level/all-packages.nix
|
||||||
|
@@ -32671,6 +32671,7 @@ with pkgs;
|
||||||
|
libvmi = callPackage ../development/libraries/libvmi { };
|
||||||
|
|
||||||
|
libutp = callPackage ../applications/networking/p2p/libutp { };
|
||||||
|
+ libutp_3_4 = callPackage ../applications/networking/p2p/libutp/3.4.nix { };
|
||||||
|
|
||||||
|
lifelines = callPackage ../applications/misc/lifelines { };
|
||||||
|
|
||||||
|
@@ -35212,6 +35213,18 @@ with pkgs;
|
||||||
|
transmission-gtk = transmission.override { enableGTK3 = true; };
|
||||||
|
transmission-qt = transmission.override { enableQt = true; };
|
||||||
|
|
||||||
|
+ transmission_4 = callPackage ../applications/networking/p2p/transmission/4.nix {
|
||||||
|
+ fmt = fmt_9;
|
||||||
|
+ libutp = libutp_3_4;
|
||||||
|
+ };
|
||||||
|
+ libtransmission_4 = transmission_4.override {
|
||||||
|
+ installLib = true;
|
||||||
|
+ enableDaemon = false;
|
||||||
|
+ enableCli = false;
|
||||||
|
+ };
|
||||||
|
+ transmission_4-gtk = transmission_4.override { enableGTK3 = true; };
|
||||||
|
+ transmission_4-qt = transmission_4.override { enableQt = true; };
|
||||||
|
+
|
||||||
|
transmission-remote-gtk = callPackage ../applications/networking/p2p/transmission-remote-gtk { };
|
||||||
|
|
||||||
|
transgui = callPackage ../applications/networking/p2p/transgui { };
|
Loading…
Add table
Add a link
Reference in a new issue