From 07e7d46e0c7ea23ad30ed7b55b040886dee94852 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Thu, 21 Oct 2021 15:55:10 -0300 Subject: [PATCH 1/6] jesec-rtorrent: create subtree RTorrent uses a companion library, libtorrent, and they should be synchronized along the releases. They act like a small package set. Therefore it is a good idea to treat them the same way in Nixpkgs code. This commit should not change much of the things, because no code besides rtorrent uses libtorrent. (Yes, this the same message from rakshasa-rtorrent commit.) --- pkgs/tools/networking/p2p/jesec-rtorrent/default.nix | 9 +++++++++ .../default.nix => jesec-rtorrent/libtorrent.nix} | 2 +- .../default.nix => jesec-rtorrent/rtorrent.nix} | 6 +++--- pkgs/top-level/all-packages.nix | 10 +++++++--- 4 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 pkgs/tools/networking/p2p/jesec-rtorrent/default.nix rename pkgs/tools/networking/p2p/{libtorrent-jesec/default.nix => jesec-rtorrent/libtorrent.nix} (97%) rename pkgs/tools/networking/p2p/{rtorrent-jesec/default.nix => jesec-rtorrent/rtorrent.nix} (93%) diff --git a/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix b/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix new file mode 100644 index 00000000000..56fec5333fc --- /dev/null +++ b/pkgs/tools/networking/p2p/jesec-rtorrent/default.nix @@ -0,0 +1,9 @@ +{ lib +, pkgs +, callPackage +}: + +rec { + libtorrent = callPackage ./libtorrent.nix { }; + rtorrent = callPackage ./rtorrent.nix { }; +} diff --git a/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix b/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix similarity index 97% rename from pkgs/tools/networking/p2p/libtorrent-jesec/default.nix rename to pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix index 0fd16f4799d..15fa7616e9b 100644 --- a/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix +++ b/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub, fetchpatch, cmake, gtest, openssl, zlib }: stdenv.mkDerivation rec { - pname = "libtorrent-jesec"; + pname = "jesec-libtorrent"; version = "0.13.8-r2"; src = fetchFromGitHub { diff --git a/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix b/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix similarity index 93% rename from pkgs/tools/networking/p2p/rtorrent-jesec/default.nix rename to pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix index eeff6e91399..26eb390440d 100644 --- a/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix +++ b/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix @@ -3,7 +3,7 @@ , fetchFromGitHub , cmake , gtest -, libtorrent-jesec +, libtorrent , curl , ncurses , xmlrpc_c @@ -15,7 +15,7 @@ let inherit (lib) optional; in stdenv.mkDerivation rec { - pname = "rtorrent-jesec"; + pname = "jesec-rtorrent"; version = "0.9.8-r14"; src = fetchFromGitHub { @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake ]; - buildInputs = [ libtorrent-jesec curl ncurses ] + buildInputs = [ libtorrent curl ncurses ] ++ optional xmlRpcSupport xmlrpc_c ++ optional jsonRpcSupport nlohmann_json; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6d309850045..e335275eda1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7166,7 +7166,13 @@ with pkgs; libtorrent = callPackage ../tools/networking/p2p/libtorrent { }; - libtorrent-jesec = callPackage ../tools/networking/p2p/libtorrent-jesec { }; + jesec-rtorrent = recurseIntoAttrs + (callPackage ../tools/networking/p2p/jesec-rtorrent { + callPackage = newScope pkgs.jesec-rtorrent; + }); + + rtorrent-jesec = jesec-rtorrent.rtorrent; + libtorrent-jesec = jesec-rtorrent.libtorrent; libmpack = callPackage ../development/libraries/libmpack { }; @@ -9004,8 +9010,6 @@ with pkgs; rtorrent = callPackage ../tools/networking/p2p/rtorrent { }; - rtorrent-jesec = callPackage ../tools/networking/p2p/rtorrent-jesec { }; - rubber = callPackage ../tools/typesetting/rubber { }; rubocop = rubyPackages.rubocop; From 24414aeca8631657f409a072ec7f614ae72045c3 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Thu, 21 Oct 2021 18:18:22 -0300 Subject: [PATCH 2/6] jesec-rtorrent.libtorrent: 0.13.8-r2 -> 0.13.8-r3 --- .../p2p/jesec-rtorrent/libtorrent.nix | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix b/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix index 15fa7616e9b..08b646421b8 100644 --- a/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix +++ b/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix @@ -1,38 +1,44 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, gtest, openssl, zlib }: +{ lib +, stdenv +, fetchFromGitHub +, cmake +, gtest +, openssl +, zlib +}: stdenv.mkDerivation rec { pname = "jesec-libtorrent"; - version = "0.13.8-r2"; + version = "0.13.8-r3"; src = fetchFromGitHub { owner = "jesec"; repo = "libtorrent"; rev = "v${version}"; - sha256 = "sha256-eIXVTbVOCRHcxSsLPvIm9F60t2upk5ORpDSOOYqTCJ4="; + hash = "sha256-S3DOKzXkvU+ZJxfrxwLXCVBnepzmiZ+3iiQqz084BEk="; }; - patches = [ - (fetchpatch { - name = "test-fallback"; - url = "https://github.com/jesec/libtorrent/commit/a38205ce06aadc9908478ec3a9c8aefd9be06344.patch"; - sha256 = "sha256-2TyQ9zYWZw6bzAfVZzTOQSkfIZnDU8ykgpRAFXscEH0="; - }) + nativeBuildInputs = [ + cmake + ]; + buildInputs = [ + openssl + zlib ]; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ openssl zlib ]; doCheck = true; preCheck = '' export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD ''; - checkInputs = [ gtest ]; + checkInputs = [ + gtest + ]; meta = with lib; { - description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)"; homepage = "https://github.com/jesec/libtorrent"; + description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ winterqt ]; + maintainers = with maintainers; [ winterqt AndersonTorres ]; platforms = platforms.linux; }; } From 335dbeb95c786a88e661dff9756e02af58e1c92e Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Thu, 21 Oct 2021 18:19:03 -0300 Subject: [PATCH 3/6] jesec-rtorrent.rtorrent: 0.9.8-r14 -> 0.9.8-r15 --- .../p2p/jesec-rtorrent/rtorrent.nix | 46 +++++++++++-------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix b/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix index 26eb390440d..3e69e64de35 100644 --- a/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix +++ b/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix @@ -2,40 +2,48 @@ , stdenv , fetchFromGitHub , cmake +, curl , gtest , libtorrent -, curl , ncurses -, xmlrpc_c -, nlohmann_json -, xmlRpcSupport ? true -, jsonRpcSupport ? true +, jsonRpcSupport ? true, nlohmann_json +, xmlRpcSupport ? true, xmlrpc_c }: -let - inherit (lib) optional; -in + stdenv.mkDerivation rec { pname = "jesec-rtorrent"; - version = "0.9.8-r14"; + version = "0.9.8-r15"; src = fetchFromGitHub { owner = "jesec"; repo = "rtorrent"; rev = "v${version}"; - sha256 = "sha256-AbjzNIha3MkCZi6MuyUfPx9r3zeXeTUzkbD7uHB85lo="; + hash = "sha256-yYOw8wsiQd478JijLgPtEWsw2/ewd46re+t9D705rmk="; }; - nativeBuildInputs = [ cmake ]; - buildInputs = [ libtorrent curl ncurses ] - ++ optional xmlRpcSupport xmlrpc_c - ++ optional jsonRpcSupport nlohmann_json; + nativeBuildInputs = [ + cmake + ]; + + buildInputs = [ + curl + libtorrent + ncurses + ] + ++ lib.optional jsonRpcSupport nlohmann_json + ++ lib.optional xmlRpcSupport xmlrpc_c; + + cmakeFlags = [ + "-DUSE_RUNTIME_CA_DETECTION=NO" + ] + ++ lib.optional (!jsonRpcSupport) "-DUSE_JSONRPC=NO" + ++ lib.optional (!xmlRpcSupport) "-DUSE_XMLRPC=NO"; - cmakeFlags = [ "-DUSE_RUNTIME_CA_DETECTION=NO" ] - ++ optional (!xmlRpcSupport) "-DUSE_XMLRPC=NO" - ++ optional (!jsonRpcSupport) "-DUSE_JSONRPC=NO"; doCheck = true; - checkInputs = [ gtest ]; + checkInputs = [ + gtest + ]; prePatch = '' substituteInPlace src/main.cc \ @@ -51,7 +59,7 @@ stdenv.mkDerivation rec { description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach (jesec's fork)"; homepage = "https://github.com/jesec/rtorrent"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ winterqt ]; + maintainers = with maintainers; [ winterqt AndersonTorres ]; platforms = platforms.linux; }; } From 3199dc10b71f0cfede08e8acaf8603596e03d98c Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Thu, 21 Oct 2021 15:59:16 -0300 Subject: [PATCH 4/6] rakshasa-rtorrent: create subtree RTorrent uses a companion library, libtorrent, and they should be synchronized along the releases. They act like a small package set. Therefore it is a good idea to treat them the same way in Nixpkgs code. This commit should not change much of the things, because no code besides rtorrent uses libtorrent. (Yes, this the same message from jesec-rtorrent commit.) --- .../tools/networking/p2p/rakshasa-rtorrent/default.nix | 9 +++++++++ .../default.nix => rakshasa-rtorrent/libtorrent.nix} | 0 .../default.nix => rakshasa-rtorrent/rtorrent.nix} | 0 pkgs/top-level/all-packages.nix | 10 +++++++--- 4 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix rename pkgs/tools/networking/p2p/{libtorrent/default.nix => rakshasa-rtorrent/libtorrent.nix} (100%) rename pkgs/tools/networking/p2p/{rtorrent/default.nix => rakshasa-rtorrent/rtorrent.nix} (100%) diff --git a/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix b/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix new file mode 100644 index 00000000000..56fec5333fc --- /dev/null +++ b/pkgs/tools/networking/p2p/rakshasa-rtorrent/default.nix @@ -0,0 +1,9 @@ +{ lib +, pkgs +, callPackage +}: + +rec { + libtorrent = callPackage ./libtorrent.nix { }; + rtorrent = callPackage ./rtorrent.nix { }; +} diff --git a/pkgs/tools/networking/p2p/libtorrent/default.nix b/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix similarity index 100% rename from pkgs/tools/networking/p2p/libtorrent/default.nix rename to pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix diff --git a/pkgs/tools/networking/p2p/rtorrent/default.nix b/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix similarity index 100% rename from pkgs/tools/networking/p2p/rtorrent/default.nix rename to pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e335275eda1..b7df3f24117 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7164,7 +7164,13 @@ with pkgs; libnids = callPackage ../tools/networking/libnids { }; - libtorrent = callPackage ../tools/networking/p2p/libtorrent { }; + rakshasa-rtorrent = recurseIntoAttrs + (callPackage ../tools/networking/p2p/rakshasa-rtorrent { + callPackage = newScope pkgs.rakshasa-rtorrent; + }); + + rtorrent = rakshasa-rtorrent.rtorrent; + libtorrent = rakshasa-rtorrent.libtorrent; jesec-rtorrent = recurseIntoAttrs (callPackage ../tools/networking/p2p/jesec-rtorrent { @@ -9008,8 +9014,6 @@ with pkgs; rsstail = callPackage ../applications/networking/feedreaders/rsstail { }; - rtorrent = callPackage ../tools/networking/p2p/rtorrent { }; - rubber = callPackage ../tools/typesetting/rubber { }; rubocop = rubyPackages.rubocop; From 87cb00aaefbe1dcf929ebc029067047c8c01e67f Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Thu, 21 Oct 2021 16:58:06 -0300 Subject: [PATCH 5/6] rakshasa.libtorrent: 0.13.8 -> 0.13.8+date=2021-08-07 --- .../p2p/rakshasa-rtorrent/libtorrent.nix | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix b/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix index 9a635512f04..fff4cbb36cf 100644 --- a/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix +++ b/pkgs/tools/networking/p2p/rakshasa-rtorrent/libtorrent.nix @@ -1,30 +1,48 @@ -# NOTE: this is rakshava's version of libtorrent, used mainly by rtorrent -# This is NOT libtorrent-rasterbar, used by Deluge, qbitttorent, and others -{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook -, cppunit, openssl, libsigcxx, zlib +# Note: this is rakshasa's version of libtorrent, used mainly by rtorrent. +# *Do not* mistake it by libtorrent-rasterbar, used by Deluge, qbitttorent etc. +{ lib +, stdenv +, fetchFromGitHub +, autoconf-archive +, autoreconfHook +, cppunit +, libsigcxx +, openssl +, pkg-config +, zlib }: stdenv.mkDerivation rec { - pname = "libtorrent"; - version = "0.13.8"; + pname = "rakshasa-libtorrent"; + version = "0.13.8+date=2021-08-07"; src = fetchFromGitHub { owner = "rakshasa"; - repo = pname; - rev = "v${version}"; - sha256 = "1h5y6ab3gs20yyprdfwcw8fh1c6czs4yrdj0kf54d2vp9qwz685r"; + repo = "libtorrent"; + rev = "53596afc5fae275b3fb5753a4bb2a1a7f7cf6a51"; + hash = "sha256-gyl/jfbptHz/gHkkVGWShhv1Z7o9fa9nJIz27U2A6wg="; }; - nativeBuildInputs = [ pkg-config autoreconfHook ]; - buildInputs = [ cppunit openssl libsigcxx zlib ]; + nativeBuildInputs = [ + autoconf-archive + autoreconfHook + pkg-config + ]; + + buildInputs = [ + cppunit + libsigcxx + openssl + zlib + ]; enableParallelBuilding = true; meta = with lib; { homepage = "https://github.com/rakshasa/libtorrent"; description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code"; - - platforms = platforms.unix; + license = licenses.gpl2Plus; maintainers = with maintainers; [ ebzzry codyopel ]; + platforms = platforms.unix; }; } From aa2d3c77a53940a606062b7aa23357db3d21b001 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Thu, 21 Oct 2021 16:58:52 -0300 Subject: [PATCH 6/6] rakshasa.rtorrent: 0.9.8 -> 0.9.8+date=2021-08-07 --- .../p2p/rakshasa-rtorrent/rtorrent.nix | 70 +++++++++++-------- 1 file changed, 42 insertions(+), 28 deletions(-) diff --git a/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix b/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix index ead7d9f79fb..f166f6d0e29 100644 --- a/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix +++ b/pkgs/tools/networking/p2p/rakshasa-rtorrent/rtorrent.nix @@ -1,39 +1,54 @@ -{ lib, stdenv, fetchurl, fetchFromGitHub, pkg-config -, libtool, autoconf, automake, cppunit -, libtorrent, ncurses, libsigcxx, curl -, zlib, openssl, xmlrpc_c - -# This no longer works -, colorSupport ? false +{ lib +, stdenv +, fetchurl +, fetchFromGitHub +, autoreconfHook +, autoconf-archive +, cppunit +, curl +, libsigcxx +, libtool +, libtorrent +, ncurses +, openssl +, pkg-config +, xmlrpc_c +, zlib }: stdenv.mkDerivation rec { - pname = "rtorrent"; - version = "0.9.8"; + pname = "rakshasa-rtorrent"; + version = "0.9.8+date=2021-08-07"; src = fetchFromGitHub { owner = "rakshasa"; - repo = pname; - rev = "v${version}"; - sha256 = "0hcaf1brk402caa7hhlb2r1c93mjzxkm8gb19xfl33gkp3jpf372"; + repo = "rtorrent"; + rev = "a6bc99bb821d86b3b0633552db3fbd0a22497657"; + hash = "sha256-HTwAs8dfZVXfLRNiT6QpjKGnuahHfoMfYWqdKkedUL0="; }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libtool autoconf automake cppunit - libtorrent ncurses libsigcxx curl zlib openssl xmlrpc_c + nativeBuildInputs = [ + autoconf-archive + autoreconfHook + pkg-config ]; - # Optional patch adds support for custom configurable colors - # https://github.com/Chlorm/chlorm_overlay/blob/master/net-p2p/rtorrent/README.md - patches = lib.optional colorSupport (fetchurl { - url = "https://gist.githubusercontent.com/codyopel/a816c2993f8013b5f4d6/raw/b952b32da1dcf14c61820dfcf7df00bc8918fec4/rtorrent-color.patch"; - sha256 = "00gcl7yq6261rrfzpz2k8bd7mffwya0ifji1xqcvhfw50syk8965"; - }); + buildInputs = [ + cppunit + curl + libsigcxx + libtool + libtorrent + ncurses + openssl + xmlrpc_c + zlib + ]; - preConfigure = "./autogen.sh"; - - configureFlags = [ "--with-xmlrpc-c" "--with-posix-fallocate" ]; + configureFlags = [ + "--with-xmlrpc-c" + "--with-posix-fallocate" + ]; enableParallelBuilding = true; @@ -46,9 +61,8 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://rakshasa.github.io/rtorrent/"; description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach"; - - platforms = platforms.unix; - maintainers = with maintainers; [ ebzzry codyopel ]; license = licenses.gpl2Plus; + maintainers = with maintainers; [ ebzzry codyopel ]; + platforms = platforms.unix; }; }