X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/4b3ff36228da17db980c98fe9e1669be613a5402..f87d377a9ecebda6ab25d1e981497bbacf389ae2:/gnu/packages/bittorrent.scm diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index cab23b6753..29b0d62ad2 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -1,15 +1,15 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès -;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari -;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner ;;; Copyright © 2016 Tomáš Čech -;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2017 Jelle Licht ;;; Copyright © 2018 Fis Trivial ;;; Copyright © 2018 Nam Nguyen ;;; Copyright © 2018 Ricardo Wurmus -;;; Copyright © 2019 Brett Gilio +;;; Copyright © 2019, 2020 Brett Gilio ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,6 +34,7 @@ #:use-module (guix build-system python) #:use-module (guix build-system glib-or-gtk) #:use-module ((guix licenses) #:prefix l:) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages adns) #:use-module (gnu packages boost) @@ -42,7 +43,6 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) - #:use-module (gnu packages file) #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -50,13 +50,14 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages libevent) - #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) #:use-module (gnu packages nettle) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages sqlite) @@ -67,20 +68,25 @@ (define-public transmission (package (name "transmission") - (version "2.94") + (version "3.00") (source (origin (method url-fetch) - (uri (string-append - "https://github.com/transmission/transmission-releases/raw/" - "master/transmission-" version ".tar.xz")) + (uri (string-append "https://github.com/transmission/transmission" + "/releases/download/" version "/transmission-" + version ".tar.xz")) (sha256 (base32 - "0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m")))) + "1wjmn96zrvmk8j1yz2ysmqd7a2x6ilvnwwapcvfzgxs2wwpnai4i")) + (patches (search-patches "transmission-honor-localedir.patch")))) (build-system glib-or-gtk-build-system) (outputs '("out" ; library and command-line interface "gui")) ; graphical user interface (arguments - '(#:glib-or-gtk-wrap-excluded-outputs '("out") + '(#:configure-flags + (list (string-append "--localedir=" + (assoc-ref %outputs "gui") + "/share/locale")) + #:glib-or-gtk-wrap-excluded-outputs '("out") #:phases (modify-phases %standard-phases (add-after 'install 'move-gui @@ -91,21 +97,23 @@ (gui (assoc-ref outputs "gui"))) (mkdir-p (string-append gui "/bin")) (rename-file (string-append out "/bin/transmission-gtk") - (string-append gui - "/bin/transmission-gtk")) + (string-append gui "/bin/transmission-gtk")) - ;; Move the '.desktop' file as well. - (mkdir (string-append gui "/share")) - (rename-file (string-append out "/share/applications") - (string-append gui "/share/applications"))) - #t))))) + (for-each + (lambda (dir) + (rename-file (string-append out "/share/" dir) + (string-append gui "/share/" dir))) + '("appdata" "applications" "icons" "pixmaps")) + + (mkdir-p (string-append gui "/share/man/man1")) + (rename-file + (string-append out "/share/man/man1/transmission-gtk.1") + (string-append gui "/share/man/man1/transmission-gtk.1")) + #t)))))) (inputs - `(("inotify-tools" ,inotify-tools) - ("libevent" ,libevent) + `(("libevent" ,libevent) ("curl" ,curl) - ("cyrus-sasl" ,cyrus-sasl) ("openssl" ,openssl) - ("file" ,file) ("zlib" ,zlib) ("gtk+" ,gtk+))) (native-inputs @@ -127,7 +135,7 @@ DHT, µTP, PEX and Magnet Links.") ;; or any future license endorsed by Mnemosyne LLC. ;; ;; A few files files carry an MIT/X11 license header. - (license l:gpl3+))) + (license (list l:gpl2 l:gpl3)))) (define-public libtorrent (package @@ -184,38 +192,36 @@ XML-RPC over SCGI.") (license l:gpl2+))) (define-public tremc - (let ((commit "4d50dab7376601daca13f7be6eabc0eaa057c1b0") - (revision "0")) - (package - (name "tremc") - (version (git-version "0.9.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tremc/tremc.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0qpi65n8rv7l9mg8qyqx70z83inkl8v5r5nks65c99lhscdki0w7")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; no test suite - #:make-flags - (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - ;; The software is just a Python script that must be copied into place. - (delete 'configure) - (delete 'build)))) - (inputs - `(("python" ,python))) - (synopsis "Console client for the Transmission BitTorrent daemon") - (description "Tremc is a console client, with a curses interface, for the + (package + (name "tremc") + (version "0.9.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tremc/tremc") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no test suite + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + ;; The software is just a Python script that must be copied into place. + (delete 'configure) + (delete 'build)))) + (inputs + `(("python" ,python))) + (synopsis "Console client for the Transmission BitTorrent daemon") + (description "Tremc is a console client, with a curses interface, for the Transmission BitTorrent daemon.") - (home-page "https://github.com/tremc/tremc") - (license l:gpl3+)))) + (home-page "https://github.com/tremc/tremc") + (license l:gpl3+))) (define-public transmission-remote-cli (package @@ -224,7 +230,7 @@ Transmission BitTorrent daemon.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/fagga/transmission-remote-cli.git") + (url "https://github.com/fagga/transmission-remote-cli") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -311,15 +317,15 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.") (define-public uget (package (name "uget") - (version "2.0.8") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/urlget/" - "uget%20%28stable%29/" version "/uget-" - version ".tar.gz")) - (sha256 - (base32 - "0919cf7lfk1djdl003cahqjvafdliv7v2l8r5wg95n4isqggdk75")))) + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/urlget/" + "uget%20%28stable%29/" version "/uget-" + version ".tar.gz")) + (sha256 + (base32 "0dlrjhnm1pg2vwmp7nl2xv1aia5hyirb3021rl46x859k63zap24")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) @@ -333,7 +339,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.") (native-inputs `(("intltool" ,intltool) ("pkg-config" ,pkg-config))) - (home-page "http://ugetdm.com/") + (home-page "https://ugetdm.com/") (synopsis "Universal download manager with GTK+ interface") (description "uGet is portable download manager with GTK+ interface supporting @@ -348,7 +354,7 @@ downloads, download scheduling, download rate limiting.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/Rudde/mktorrent.git") + (url "https://github.com/Rudde/mktorrent") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -358,7 +364,7 @@ downloads, download scheduling, download rate limiting.") (arguments `(#:phases (modify-phases %standard-phases (delete 'configure)) ; no configure script - #:make-flags (list "CC=gcc" + #:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" (assoc-ref %outputs "out")) "NO_HASH_CHECK=1" "USE_LARGE_FILES=1" @@ -380,17 +386,16 @@ and will take advantage of multiple processor cores where possible.") (define-public libtorrent-rasterbar (package (name "libtorrent-rasterbar") - (version "1.1.13") - (source (origin - (method url-fetch) - (uri - (string-append - "https://github.com/arvidn/libtorrent/releases/download/libtorrent-" - (string-join (string-split version #\.) "_") - "/libtorrent-rasterbar-" version ".tar.gz")) - (sha256 - (base32 - "1mza92ljjqvlz9582pmls3n45srqhxvw3q348xihcg4fhlchf11h")))) + (version "1.2.8") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/arvidn/libtorrent/" + "releases/download/libtorrent-" version "/" + "libtorrent-rasterbar-" version ".tar.gz")) + (sha256 + (base32 "1phn4klzvfzvidv5g566pnrrxj8l0givpy6s4r17d45wznqxc006")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -404,12 +409,12 @@ and will take advantage of multiple processor cores where possible.") (assoc-ref %outputs "out") "/lib")))) (inputs `(("boost" ,boost) ("openssl" ,openssl))) - (native-inputs `(("python" ,python-2) + (native-inputs `(("python" ,python-wrapper) ("pkg-config" ,pkg-config))) (home-page "https://www.libtorrent.org/") - (synopsis "Feature complete BitTorrent implementation") + (synopsis "Feature-complete BitTorrent implementation") (description - "libtorrent-rasterbar is a feature complete C++ BitTorrent implementation + "libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation focusing on efficiency and scalability. It runs on embedded devices as well as desktops.") (license l:bsd-2))) @@ -417,16 +422,16 @@ desktops.") (define-public qbittorrent (package (name "qbittorrent") - (version "4.2.0") + (version "4.2.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/qbittorrent/qBittorrent.git") + (url "https://github.com/qbittorrent/qBittorrent") (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17vm6aa2k8k1q14z9r2r06c794bcr4m0l0fdsn08wid6mj1zjsbx")))) + (base32 "1n613ylg6i9gisgk0dbr2kpfasyizrkdjff1r8smd4vri2qrdksn")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -434,7 +439,18 @@ desktops.") (assoc-ref %build-inputs "boost") "/lib") "--enable-debug" - "QMAKE_LRELEASE=lrelease"))) + "QMAKE_LRELEASE=lrelease") + #:modules ((guix build gnu-build-system) + (guix build qt-utils) + (guix build utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build qt-utils)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-qt + (lambda* (#:key outputs #:allow-other-keys) + (wrap-qt-program (assoc-ref outputs "out") "qbittorrent") + #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("qttools" ,qttools))) @@ -460,29 +476,65 @@ features.") (define-public deluge (package (name "deluge") - (version "1.3.15") + (version "2.0.3") (source (origin (method url-fetch) (uri (string-append - "http://download.deluge-torrent.org/source/deluge-" - version ".tar.xz")) + "https://ftp.osuosl.org/pub/deluge/source/" + (version-major+minor version) "/deluge-" version ".tar.xz")) (sha256 (base32 - "0b7rri4x0wrcj7rjghrnw1kfrsd5i7i6aq85dsg5dg1w1qa0ar59")))) + "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky")))) (build-system python-build-system) - (inputs - `(("libtorrent" ,libtorrent-rasterbar) - ("python2-chardet" ,python2-chardet) - ("python2-pygtk" ,python2-pygtk) - ("python2-pyopenssl" ,python2-pyopenssl) - ("python2-pyxdg" ,python2-pyxdg) - ("python2-service-identity" ,python2-service-identity) - ("python2-twisted" ,python2-twisted))) + (propagated-inputs + `(("gtk+" ,gtk+) + ("librsvg" ,librsvg) + ("libtorrent" ,libtorrent-rasterbar) + ("python-pycairo" ,python-pycairo) + ("python-chardet" ,python-chardet) + ("python-dbus" ,python-dbus) + ("python-mako" ,python-mako) + ("python-pygobject" ,python-pygobject) + ("python-pillow" ,python-pillow) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pyxdg" ,python-pyxdg) + ("python-rencode" ,python-rencode) + ("python-service-identity" ,python-service-identity) + ("python-setproctitle" ,python-setproctitle) + ("python-six" ,python-six) + ("python-twisted" ,python-twisted) + ("python-zope-interface" ,python-zope-interface))) (native-inputs - `(("intltool" ,intltool))) + `(("intltool" ,intltool) + ("python-wheel" ,python-wheel))) + ;; 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 + ;; that require a network connection. (arguments - `(#:python ,python-2)) + `(#:tests? #f + #:phases + (modify-phases %standard-phases + ;; Remove this phase when upgrading to version 2.0.4 or beyond, as + ;; the issue is fixed upstream. + (add-after 'unpack 'fix-gettext-warning + (lambda _ + (substitute* "deluge/i18n/util.py" + (("names='ngettext'") "names=['ngettext']")) + #t)) + (add-after 'install 'wrap + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (for-each + (lambda (program) + (wrap-program program + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + (map (lambda (name) + (string-append out "/bin/" name)) + '("deluge" "deluge-gtk")))) + #t))))) (home-page "https://www.deluge-torrent.org/") (synopsis "Fully-featured cross-platform ​BitTorrent client") (description