gnu: libtorrent-rasterbar: Update to 2.0.9.

Update the package.  Since other packages do depend on the previous
version (and according to their documentation do recommend it), the previous
version is exposed as libtorrent-rasterbar-1.2.

The v2.0.9 requires patching to get tests working.  Sadly one of the changes
is to introduce new binary file, so it is fetched as an input and applied in a
phase.  Snippet is used instead to do the rest of the patching.

* gnu/packages/bittorrent.scm (libtorrent-rasterbar)[version]: Update to
2.0.9.
[source]<snippet>: Patch test/test_copy_file.cpp.
[native-inputs]: Add the missing file (v2_empty_file.torrent).
[arguments]<#:phases>: And add a phase copying it into the correct place.
* gnu/packages/bittorrent.scm (libtorrent-rasterbar-1.2): New variable.
(qbittorrent)[inputs]: Use libtorrent-rasterbar-1.2.
* gnu/packages/enlightenment.scm (epour)[inputs]: Use
libtorrent-rasterbar-1.2.

Change-Id: Ifbbbf02a671f6a3db653499a7a5f2504fd23c255
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Tomas Volf 2023-12-02 01:28:58 +01:00 committed by Ludovic Courtès
parent cb1ce113b9
commit cc681b5657
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 44 additions and 8 deletions

View file

@ -80,6 +80,7 @@ (define-module (gnu packages bittorrent)
#:use-module (gnu packages sqlite) #:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml))
@ -416,10 +417,16 @@ (define-public mktorrent
(license (list l:public-domain ; sha1.*, used to build without OpenSSL (license (list l:public-domain ; sha1.*, used to build without OpenSSL
l:gpl2+)))) ; with permission to link with 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 (define-public libtorrent-rasterbar
(package (package
(name "libtorrent-rasterbar") (name "libtorrent-rasterbar")
(version "1.2.19") (version "2.0.9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -428,7 +435,14 @@ (define-public libtorrent-rasterbar
"releases/download/v" version "/" "releases/download/v" version "/"
"libtorrent-rasterbar-" version ".tar.gz")) "libtorrent-rasterbar-" version ".tar.gz"))
(sha256 (sha256
(base32 "03p4nvsll568zlyqifid0cn135sg5whbk7g48gkbapnw92ayks7f")))) (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) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags '("-Dpython-bindings=ON" `(#:configure-flags '("-Dpython-bindings=ON"
@ -437,6 +451,14 @@ (define-public libtorrent-rasterbar
#:parallel-tests? #f #:parallel-tests? #f
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; 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 (replace 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys) (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
(let* ((disabled-tests (let* ((disabled-tests
@ -473,10 +495,10 @@ (define-public libtorrent-rasterbar
"--timeout" timeout "--timeout" timeout
"--output-on-failure")))))))) "--output-on-failure"))))))))
(inputs (list boost openssl)) (inputs (list boost openssl))
(native-inputs (native-inputs `(("libfaketime" ,libfaketime)
(list libfaketime ("python-wrapper" ,python-wrapper)
python-wrapper ("pkg-config" ,pkg-config)
pkg-config)) ("%v2_empty_file.torrent" ,%v2_empty_file.torrent)))
(home-page "https://www.libtorrent.org/") (home-page "https://www.libtorrent.org/")
(synopsis "Feature-complete BitTorrent implementation") (synopsis "Feature-complete BitTorrent implementation")
(description (description
@ -485,6 +507,20 @@ (define-public libtorrent-rasterbar
desktops.") desktops.")
(license l:bsd-2))) (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 (define-public qbittorrent
(package (package
(name "qbittorrent") (name "qbittorrent")
@ -506,7 +542,7 @@ (define-public qbittorrent
(list qttools-5)) (list qttools-5))
(inputs (inputs
(list boost (list boost
libtorrent-rasterbar libtorrent-rasterbar-1.2
openssl openssl
python-wrapper python-wrapper
qtsvg-5 qtsvg-5

View file

@ -585,7 +585,7 @@ (define-public epour
(native-inputs (native-inputs
(list intltool python-distutils-extra)) (list intltool python-distutils-extra))
(inputs (inputs
(list libtorrent-rasterbar python-dbus python-efl python-pyxdg)) (list libtorrent-rasterbar-1.2 python-dbus python-efl python-pyxdg))
(home-page "https://www.enlightenment.org") (home-page "https://www.enlightenment.org")
(synopsis "EFL Bittorrent client") (synopsis "EFL Bittorrent client")
(description "Epour is a BitTorrent client based on the @dfn{Enlightenment (description "Epour is a BitTorrent client based on the @dfn{Enlightenment