summaryrefslogtreecommitdiff
path: root/gnu/packages/bittorrent.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/bittorrent.scm')
-rw-r--r--gnu/packages/bittorrent.scm148
1 files changed, 110 insertions, 38 deletions
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index abf8a609e9..0d544235c1 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -46,11 +46,13 @@
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix gexp)
#:use-module (guix utils)
+ #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages certs)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
@@ -78,20 +80,23 @@
#:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages web)
#:use-module (gnu packages xml))
(define-public transmission
(package
(name "transmission")
- (version "4.0.4")
+ (version "4.0.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/transmission/transmission"
"/releases/download/" version "/transmission-"
version ".tar.xz"))
+ (patches (search-patches "transmission-4.0.5-fix-build.patch"))
(sha256
(base32
- "19nm7f4x3zq610da5fl63vpycj4kv07np6ldm8czpgyziwqv9xqm"))))
+ "0mv3ds3bbp1fbmdlrjinmzvk46acpafydirh7h2014j7988zys7x"))))
(build-system cmake-build-system)
(outputs '("out" ; library and command-line interface
"gui")) ; graphical user interface
@@ -249,8 +254,8 @@ XML-RPC over SCGI.")
(license l:gpl2+)))
(define-public tremc
- (let ((commit "6c15e3f5637c8f3641473328bd8c5b0cc122d930")
- (revision "0"))
+ (let ((commit "d8deaa5ac25bb45a2ca3a930309d6ecc74836a54")
+ (revision "1"))
(package
(name "tremc")
(version (git-version "0.9.3" revision commit))
@@ -263,7 +268,7 @@ XML-RPC over SCGI.")
(file-name (git-file-name name version))
(sha256
(base32
- "1anlqzbwgmhrxlh20pfzf4iyw5l2w227h95rq6xf29ai7vddr82k"))))
+ "08kpqmgisja98918f2hlmdrld5662dqlkssp0pqlki38l6fvbj7r"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
@@ -285,7 +290,7 @@ Transmission BitTorrent daemon.")
(define-public aria2
(package
(name "aria2")
- (version "1.36.0")
+ (version "1.37.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/aria2/aria2/releases/"
@@ -293,7 +298,12 @@ Transmission BitTorrent daemon.")
"/aria2-" version ".tar.xz"))
(sha256
(base32
- "1987x4ywnnrhhfs9hi2h820c200d7nas9nd35414yh0jiihfglaq"))))
+ "0sxng4pynhj2qinranpv6wyzys3d42kz1gg2nrn63sw5f2nj1930"))
+ (patches (search-patches "aria2-unbundle-wslay.patch"))
+ (snippet
+ #~(begin (use-modules (guix build utils))
+ (delete-file-recursively "deps")
+ (delete-file "configure")))))
(build-system gnu-build-system)
(arguments
(list
@@ -312,7 +322,11 @@ Transmission BitTorrent daemon.")
(("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageReceiverTest\\);" text)
(string-append "// " text))))))))
(native-inputs
- (list cppunit ; for the tests
+ (list autoconf ; since we adjusted configure.ac
+ automake
+ gettext-minimal
+ libtool
+ cppunit ; for the tests
pkg-config))
(inputs
(list c-ares
@@ -322,6 +336,7 @@ Transmission BitTorrent daemon.")
libxml2
nettle
sqlite
+ wslay
zlib))
(home-page "https://aria2.github.io/")
(synopsis "Utility for parallel downloading files")
@@ -403,10 +418,16 @@ and will take advantage of multiple processor cores where possible.")
(license (list l:public-domain ; sha1.*, used to build without OpenSSL
l:gpl2+)))) ; with permission to link with OpenSSL
+(define %v2_empty_file.torrent
+ (origin (method url-fetch)
+ (uri "https://github.com/arvidn/libtorrent/raw/v2.0.9/test/test_torrents/v2_empty_file.torrent")
+ (sha256
+ (base32 "1hydgf0m9193hy9010wl0wrbz4k4cgrqg70jakx68pgi79jcqnrn"))))
+
(define-public libtorrent-rasterbar
(package
(name "libtorrent-rasterbar")
- (version "1.2.18")
+ (version "2.0.9")
(source
(origin
(method url-fetch)
@@ -415,41 +436,74 @@ and will take advantage of multiple processor cores where possible.")
"releases/download/v" version "/"
"libtorrent-rasterbar-" version ".tar.gz"))
(sha256
- (base32 "0wpsaqadcicxl4lf1nc1i93c4yzjv8hpzhhrw1hdkrp4gn0vdwpy"))))
+ (base32 "13kry578ifzz4m2f291bbd7v5v9zsi8y3mf38146cnqw0sv95kch"))
+ ;; https://github.com/arvidn/libtorrent/issues/7566
+ ;; Remove when resolved. I would hope this to be fixed in 2.0.10.
+ (modules '((guix build utils)))
+ (snippet
+ #~(substitute* "test/test_copy_file.cpp"
+ (("EXT4_SUPER_MAGIC, EXT3_SUPER_MAGIC, XFS_SUPER_MAGIC" all)
+ (string-append all ", TMPFS_MAGIC\n"))))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-Dpython-bindings=ON"
"-Dbuild_tests=ON")
+ ;; Tests do not reliably work when executed in parallel.
+ #:parallel-tests? #f
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'extend-test-timeout
- (lambda _
- (substitute* "test/test_remove_torrent.cpp"
- ;; Extend the test timeout from 3 seconds to 10.
- (("i > 30") "i > 100"))))
+ ;; https://github.com/arvidn/libtorrent/issues/7567
+ ;; Remove when resolved. I would hope this to be fixed in 2.0.10.
+ ;; Do not forget to remove the %v2_empty_file.torrent variable.
+ (add-before 'configure 'copy-v2_empty_file.torrent
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (copy-file (assoc-ref (or native-inputs inputs)
+ "%v2_empty_file.torrent")
+ "test/test_torrents/v2_empty_file.torrent")))
(replace 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
- (let ((disabled-tests
- ;; test_upnp requires a non-localhost IPv4 interface.
- '("test_upnp")))
+ (let* ((disabled-tests
+ '(
+ ;; Requires a non-localhost IPv4 interface.
+ "test_upnp"
+ ;; test_ssl needs to be run separately.
+ "test_ssl"))
+ (exclude-regex (string-append "^("
+ (string-join disabled-tests "|")
+ ")$"))
+ (timeout "600")
+ (jobs (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")))
(when tests?
+ (invoke "ctest"
+ "-E" exclude-regex
+ "-j" jobs
+ "--timeout" timeout
+ "--output-on-failure")
;; test_ssl relies on bundled TLS certificates with a fixed
;; expiry date. To ensure succesful builds in the future,
;; fake the time to be roughly that of the release.
- (setenv "FAKETIME_ONLY_CMDS" "test_ssl")
- (invoke "faketime" "2022-10-24"
- "ctest"
- "--exclude-regex" (string-join disabled-tests "|")
- "-j" (if parallel-tests?
- (number->string (parallel-job-count))
- "1")
- "--rerun-failed"
- "--output-on-failure"))))))))
+ ;;
+ ;; At the same time, faketime happens to cause
+ ;; test_fast_extension, test_privacy and test_resolve_links
+ ;; to hang, even with FAKETIME_ONLY_CMDS. Not sure why. So
+ ;; execute only test_ssl under faketime.
+ ;;
+ ;; Note: The test_ssl test times out in the ci.
+ ;; Temporarily disable it until that is resolved.
+ ;; (invoke "faketime" "2022-10-24"
+ ;; "ctest"
+ ;; "-R" "^test_ssl$"
+ ;; "-j" jobs
+ ;; "--timeout" timeout
+ ;; "--output-on-failure")
+ )))))))
(inputs (list boost openssl))
- (native-inputs
- (list libfaketime
- python-wrapper
- pkg-config))
+ (native-inputs `(("libfaketime" ,libfaketime)
+ ("python-wrapper" ,python-wrapper)
+ ("pkg-config" ,pkg-config)
+ ("%v2_empty_file.torrent" ,%v2_empty_file.torrent)))
(home-page "https://www.libtorrent.org/")
(synopsis "Feature-complete BitTorrent implementation")
(description
@@ -458,10 +512,24 @@ focusing on efficiency and scalability. It runs on embedded devices as well as
desktops.")
(license l:bsd-2)))
+(define-public libtorrent-rasterbar-1.2
+ (package
+ (inherit libtorrent-rasterbar)
+ (version "1.2.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://github.com/arvidn/libtorrent/"
+ "releases/download/v" version "/"
+ "libtorrent-rasterbar-" version ".tar.gz"))
+ (sha256
+ (base32 "03p4nvsll568zlyqifid0cn135sg5whbk7g48gkbapnw92ayks7f"))))))
+
(define-public qbittorrent
(package
(name "qbittorrent")
- (version "4.5.5")
+ (version "4.6.2")
(source
(origin
(method git-fetch)
@@ -470,7 +538,7 @@ desktops.")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1ngvvwhafi9mi05r2l9dk9x05za8x35y12p230wpzprydhlgwsxd"))))
+ (base32 "1wps17iv4gj7y751fibvcxk51v09wyniv6xm2yx429dj7z8rfmzs"))))
(build-system qt-build-system)
(arguments
(list #:configure-flags #~(list "-DTESTING=ON")
@@ -479,7 +547,7 @@ desktops.")
(list qttools-5))
(inputs
(list boost
- libtorrent-rasterbar
+ libtorrent-rasterbar-1.2
openssl
python-wrapper
qtsvg-5
@@ -515,7 +583,7 @@ features.")
(package
(inherit qbittorrent)
(name "qbittorrent-enhanced")
- (version "4.5.5.10")
+ (version "4.6.1.10")
(source
(origin
(method git-fetch)
@@ -525,7 +593,7 @@ features.")
(file-name (git-file-name name version))
(sha256
(base32
- "029crx8yd8apssg2k4alnc0py5i2sp3bhjkwki5fvvnpgkrhfqf0"))))
+ "101a9n2vk9d6b4vc3schkmpc56l0i0i60fcjh8hwadc6amc2ymvy"))))
(home-page "https://github.com/c0re100/qBittorrent-Enhanced-Edition")
(description
"qBittorrent Enhanced is a bittorrent client based on qBittorrent with
@@ -549,7 +617,7 @@ the following features:
(define-public deluge
(package
(name "deluge")
- (version "2.0.5")
+ (version "2.1.1")
(source
(origin
(method url-fetch)
@@ -558,12 +626,13 @@ the following features:
(version-major+minor version) "/deluge-" version ".tar.xz"))
(sha256
(base32
- "1n15dzfnz1gvb4cf046yhi404i3gs933qgz0ichna6r1znmh9gf4"))))
+ "1xyz8bscwqmd7d8b43svxl42w54pnisvwkkrndx46hifh0cx73bn"))))
(build-system python-build-system)
(inputs (list bash-minimal))
(propagated-inputs
(list gtk+
libtorrent-rasterbar
+ nss-certs
python-pycairo
python-chardet
python-dbus
@@ -581,6 +650,9 @@ the following features:
(native-inputs
(list intltool python-wheel
(librsvg-for-system)))
+ (native-search-paths
+ (list $SSL_CERT_DIR
+ $SSL_CERT_FILE))
;; TODO: Enable tests.
;; After "pytest-twisted" is packaged, HOME is set, and an X server is
;; started, some of the tests still fail. There are likely some tests