diff mbox series

[bug#67557,5/5] gnu: libtorrent-rasterbar: Update to 2.0.9.

Message ID ae003d8391cd47c95cbb0b08f3fb132d1b671cff.1701386073.git.~@wolfsden.cz
State New
Headers show
Series Update libtorrent-rasterbar and dependent programs | expand

Commit Message

Tomas Volf Dec. 1, 2023, 12:14 p.m. UTC
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, which is not supported by the (patches)
block.  So snippet is used instead to do the patching using git.

* gnu/local.mk (dist_patch_DATA): Register new patch.
* gnu/packages/bittorrent.scm (libtorrent-rasterbar)[version]: Update to
2.0.9.
(libtorrent-rasterbar)[source]: Apply the patch.
* 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.
* gnu/packages/patches/libtorrent-rasterbar-fix-tests.patch: New file.

Change-Id: Ifbbbf02a671f6a3db653499a7a5f2504fd23c255
---
 gnu/local.mk                                  |   1 +
 gnu/packages/bittorrent.scm                   |  36 ++-
 gnu/packages/enlightenment.scm                |   2 +-
 .../libtorrent-rasterbar-fix-tests.patch      | 304 ++++++++++++++++++
 4 files changed, 339 insertions(+), 4 deletions(-)
 create mode 100644 gnu/packages/patches/libtorrent-rasterbar-fix-tests.patch
diff mbox series

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index a8142bb0f2..78b51a1c65 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1573,6 +1573,7 @@  dist_patch_DATA =						\
   %D%/packages/patches/libtirpc-hurd.patch			\
   %D%/packages/patches/libtommath-fix-linkage.patch		\
   %D%/packages/patches/libtommath-integer-overflow.patch	\
+  %D%/packages/patches/libtorrent-rasterbar-fix-tests.patch	\
   %D%/packages/patches/libtool-grep-compat.patch		\
   %D%/packages/patches/libtool-skip-tests2.patch		\
   %D%/packages/patches/libtree-fix-check-non-x86.patch		\
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index f9098b1a56..813636d526 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -80,6 +80,7 @@  (define-module (gnu packages bittorrent)
   #: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))
 
@@ -416,10 +417,19 @@  (define-public mktorrent
     (license (list l:public-domain      ; sha1.*, used to build without OpenSSL
                    l:gpl2+))))          ; with permission to link with OpenSSL
 
+;;; The patch fixing tests contains a binary section, and regular (patches)
+;;; section cannot handle it.  So collect the patches here and patch using
+;;; `git apply' in the (snippet) block.
+(define %libtorrent-rasterbar-patches
+  (list
+   (local-file
+    (assume-valid-file-name
+     (search-patch "libtorrent-rasterbar-fix-tests.patch")))))
+
 (define-public libtorrent-rasterbar
   (package
     (name "libtorrent-rasterbar")
-    (version "1.2.19")
+    (version "2.0.9")
     (source
      (origin
        (method url-fetch)
@@ -428,7 +438,13 @@  (define-public libtorrent-rasterbar
                        "releases/download/v" version "/"
                        "libtorrent-rasterbar-" version ".tar.gz"))
        (sha256
-        (base32 "03p4nvsll568zlyqifid0cn135sg5whbk7g48gkbapnw92ayks7f"))))
+        (base32 "13kry578ifzz4m2f291bbd7v5v9zsi8y3mf38146cnqw0sv95kch"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            (use-modules (guix build utils))
+            (invoke (string-append #$git "/bin/git") "apply"
+                    #$@%libtorrent-rasterbar-patches)))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-Dpython-bindings=ON"
@@ -485,6 +501,20 @@  (define-public libtorrent-rasterbar
 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")
@@ -506,7 +536,7 @@  (define-public qbittorrent
      (list qttools-5))
     (inputs
      (list boost
-           libtorrent-rasterbar
+           libtorrent-rasterbar-1.2
            openssl
            python-wrapper
            qtsvg-5
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 64d8945f8e..7860c43fef 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -585,7 +585,7 @@  (define-public epour
     (native-inputs
      (list intltool python-distutils-extra))
     (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")
     (synopsis "EFL Bittorrent client")
     (description "Epour is a BitTorrent client based on the @dfn{Enlightenment
diff --git a/gnu/packages/patches/libtorrent-rasterbar-fix-tests.patch b/gnu/packages/patches/libtorrent-rasterbar-fix-tests.patch
new file mode 100644
index 0000000000..40e016a5fc
--- /dev/null
+++ b/gnu/packages/patches/libtorrent-rasterbar-fix-tests.patch
@@ -0,0 +1,304 @@ 
+From 757a13aa68254eae5b2f4fd3bd51122d5eab0a3b Mon Sep 17 00:00:00 2001
+From: Tomas Volf <~@wolfsden.cz>
+Date: Thu, 30 Nov 2023 21:49:29 +0100
+Subject: [PATCH] libtorrent-rasterbar: Fix tests.
+
+In Guix build environment, TMPFS might be used for the build directory.  If that
+happens, the test_copy_file fails, since it thinks TMPFS does not support sparse
+files (it does though).
+
+For some reason, the v2_empty_file.torrent is missing from the release
+archive (it is present in the v2.0.9 git tag).  So copy it over to allow
+test_create_torrent to pass.
+
+* test/test_copy_file.cpp (fs_supports_sparse_files): Consider TMPFS a sparse
+file-system.
+* test/test_torrents/v2_empty_file.torrent: New file.
+---
+ test/test_copy_file.cpp                  |   1 +
+ test/test_torrents/v2_empty_file.torrent | Bin 0 -> 13529 bytes
+ 2 files changed, 1 insertion(+)
+ create mode 100644 test/test_torrents/v2_empty_file.torrent
+
+diff --git a/test/test_copy_file.cpp b/test/test_copy_file.cpp
+index b4a9761..316ec57 100644
+--- a/test/test_copy_file.cpp
++++ b/test/test_copy_file.cpp
+@@ -119,6 +119,7 @@ bool fs_supports_sparse_files()
+ 	using fsword_t = decltype(statfs::f_type);
+ 	static fsword_t const ufs = 0x00011954;
+ 	static const std::set<fsword_t> sparse_filesystems{
++		TMPFS_MAGIC,
+ 		EXT4_SUPER_MAGIC, EXT3_SUPER_MAGIC, XFS_SUPER_MAGIC, fsword_t(BTRFS_SUPER_MAGIC)
+ 			, ufs, REISERFS_SUPER_MAGIC
+ 	};
+diff --git a/test/test_torrents/v2_empty_file.torrent b/test/test_torrents/v2_empty_file.torrent
+new file mode 100644
+index 0000000000000000000000000000000000000000..6c77b9a69812435d8a272f8627782363c01fbca1
+GIT binary patch
+literal 13529
+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
+Y8h!T-j6N>0)&MvMR7Wxoq)klz7uzrlIRF3v
+
+literal 0
+HcmV?d00001
+
+-- 
+2.41.0
+