GNU bug report logs - #67557
[PATCH 0/5] Update libtorrent-rasterbar and dependent programs

Previous Next

Package: guix-patches;

Reported by: Tomas Volf <~@wolfsden.cz>

Date: Fri, 1 Dec 2023 01:35:03 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 67557 in the body.
You can then email your comments to 67557 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 01:35:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Tomas Volf <~@wolfsden.cz>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 01 Dec 2023 01:35:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: guix-patches <at> gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH 0/5] Update libtorrent-rasterbar and dependent programs
Date: Fri,  1 Dec 2023 00:19:54 +0100
This series updates libtorrent-rasterbar and programs that do depend on it.

Some of these patches (for example version update of qbittorrent) could have
been sent separately, however due to split to libtorrent-rasterbar and
libtorrent-rasterbar-1.2 it seems better to send it as one series, so that the
big picture is visible.  And I was editing the package definitions anyway.

Tomas Volf (5):
  gnu: libtorrent-rasterbar: Update to 1.2.19.
  gnu: deluge: Update to 2.1.1.
  gnu: qbittorrent-enhanced: Update to 4.6.1.10.
  gnu: qbittorrent: Update to 4.6.2.
  gnu: libtorrent-rasterbar: Update to 2.0.9.

 gnu/local.mk                                  |   1 +
 gnu/packages/bittorrent.scm                   |  96 ++++--
 gnu/packages/enlightenment.scm                |   2 +-
 .../libtorrent-rasterbar-fix-tests.patch      | 304 ++++++++++++++++++
 4 files changed, 379 insertions(+), 24 deletions(-)
 create mode 100644 gnu/packages/patches/libtorrent-rasterbar-fix-tests.patch


base-commit: bdbb9dc27a590b08651d058f06a42caa26e04abb
--
2.41.0




Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 14:02:02 GMT) Full text and rfc822 format available.

Message #8 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH 4/5] gnu: qbittorrent: Update to 4.6.2.
Date: Fri,  1 Dec 2023 13:14:36 +0100
* gnu/packages/bittorrent.scm (qbittorrent): Update to 4.6.2.

Change-Id: I75d05f14396e1b017cc939264e30ade625cb7017
---
 gnu/packages/bittorrent.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index fb20b3c92c..f9098b1a56 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -488,7 +488,7 @@ (define-public libtorrent-rasterbar
 (define-public qbittorrent
   (package
     (name "qbittorrent")
-    (version "4.5.5")
+    (version "4.6.2")
     (source
      (origin
        (method git-fetch)
@@ -497,7 +497,7 @@ (define-public qbittorrent
              (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")
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 14:02:02 GMT) Full text and rfc822 format available.

Message #11 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH 2/5] gnu: deluge: Update to 2.1.1.
Date: Fri,  1 Dec 2023 13:14:34 +0100
Dependency on nss-certs was added.  Most torrents do require SSL in some shape
or form, so it seems appropriate to add it by default.

* gnu/packages/bittorrent.scm (deluge)[version]: Update to 2.1.1.
[propagated-inputs]: Add nss-certs.
[native-search-paths]: Set to allow locating the certificates.

Change-Id: Ic6c79f24851d6917dc4e5b22b3bcb2f6b99e187a
---
 gnu/packages/bittorrent.scm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index e115c13017..3d79a3a159 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -46,11 +46,13 @@ (define-module (gnu packages bittorrent)
   #: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)
@@ -574,7 +576,7 @@ (define-public qbittorrent-enhanced-nox
 (define-public deluge
   (package
     (name "deluge")
-    (version "2.0.5")
+    (version "2.1.1")
     (source
      (origin
        (method url-fetch)
@@ -583,12 +585,13 @@ (define-public deluge
              (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
@@ -606,6 +609,9 @@ (define-public deluge
     (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
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 14:02:03 GMT) Full text and rfc822 format available.

Message #14 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19.
Date: Fri,  1 Dec 2023 13:14:33 +0100
With the update, the execution of the test suite was overhauled a lot.
Parallel tests were disabled, since the do not work well.  Since faketime does
cause some tests to hang, test_ssl was moved into a separate run.

* gnu/packages/bittorrent.scm (libtorrent-rasterbar)[version]: Update to
1.2.19.
[arguments]<#:parallel-tests?>: Disable.
[arguments]<#:phases>: Move test_ssl into separate run under faketime.  Do not
run under tests under faketime.  Anchor the regex for test exclusion.  Set
timeout of 600 seconds for each test.

Change-Id: I7392cb3ce1a8815b26b3257498082761255535ee
---
 gnu/packages/bittorrent.scm | 46 ++++++++++++++++++++++++-------------
 1 file changed, 30 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 6f75a92cff..e115c13017 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -417,7 +417,7 @@ (define-public mktorrent
 (define-public libtorrent-rasterbar
   (package
     (name "libtorrent-rasterbar")
-    (version "1.2.18")
+    (version "1.2.19")
     (source
      (origin
        (method url-fetch)
@@ -426,35 +426,49 @@ (define-public libtorrent-rasterbar
                        "releases/download/v" version "/"
                        "libtorrent-rasterbar-" version ".tar.gz"))
        (sha256
-        (base32 "0wpsaqadcicxl4lf1nc1i93c4yzjv8hpzhhrw1hdkrp4gn0vdwpy"))))
+        (base32 "03p4nvsll568zlyqifid0cn135sg5whbk7g48gkbapnw92ayks7f"))))
     (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"))))
          (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")
+                 ;;
+                 ;; 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.
                  (invoke "faketime" "2022-10-24"
                          "ctest"
-                         "--exclude-regex" (string-join disabled-tests "|")
-                         "-j" (if parallel-tests?
-                                  (number->string (parallel-job-count))
-                                  "1")
-                         "--rerun-failed"
+                         "-R" "^test_ssl$"
+                         "-j" jobs
+                         "--timeout" timeout
                          "--output-on-failure"))))))))
     (inputs (list boost openssl))
     (native-inputs
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 14:02:03 GMT) Full text and rfc822 format available.

Message #17 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10.
Date: Fri,  1 Dec 2023 13:14:35 +0100
 * gnu/packages/bittorrent.scm (qbittorrent-enhanced): Update to 4.6.1.10.

Change-Id: Ic164ee27ea54018acfcba0e9db8db11f119800a4
---
 gnu/packages/bittorrent.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 3d79a3a159..fb20b3c92c 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -542,7 +542,7 @@ (define-public qbittorrent-enhanced
   (package
     (inherit qbittorrent)
     (name "qbittorrent-enhanced")
-    (version "4.5.5.10")
+    (version "4.6.1.10")
     (source
      (origin
        (method git-fetch)
@@ -552,7 +552,7 @@ (define-public qbittorrent-enhanced
        (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
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 14:02:03 GMT) Full text and rfc822 format available.

Message #20 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9.
Date: Fri,  1 Dec 2023 13:14:37 +0100
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 --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
+zcma)iQ;;ysl4aYrZQI>n+qP}nwr#t=wr$(CZM%E_xqD|~CN?&9Un;6HGfrlnsE4W(
+zY0SvLW#njL;A~<{VCccf%;jw7=xAc=OzUiCXYKUQ`Cm>8J6i(de_|{c*;rUP8CaQ_
+zI80c$ENo5fj5)bXEv!uloE=R}j9LG+XEbKuGG^nlHnBBxHn-ql<YZ!CU@&21<g&Lg
+zF*0!?aI~{?W <at> h3tmoLe<1t}XzFW=+9^<uKo^5o7O*t%}+bK13pz%mXpG5OzcO#cIp
+z!Q?;f%>Tpwe@&y&R9>vmrMO^*_raCFx&s`>nCv9gFzq?g7}KdG`?d35cuv;;XVENN
+z_6E-8*8lG7pAP <at> 4Erx&k|8G8~|L*(GTK-1_^FN6gnYe6BoDB$EO&p#6q11xu9}rsu
+zn}1ek6DQ|?y#Hc|;NQ%#v9dC=nXvtvHr9Vg<hrh`-%eJSS^L2|6NbK)GhrcyZP<9>
+z^zg*$)EsD46!<aBM3R=8BqSs&x1J<oC|2U2LjC5lWMfZqY%$#|;?AG|ztAyqrHYna
+zzpQSp0r_ls!Rb#+!w`J$)myrcnm^#wVr?mGv<5sVT$Hys2I}t-5y&fHxEh|$ZFgB#
+zGK*zakCUC-PI*#L>|f~@uXeEKE`j7&86JzkuTED8xRC6TjCCS(#b$9WuxZ2cvxm&a
+zsdzdJkL&>Er);gyCnXt=lbU*ZLtMSDc2(}uWX~nGahSb1ge+cKlxo8297nn%vLTV)
+z8D2Qyw>Q<78ia?tDfOMpdhafRm|RlfaTHP-YG3I*F9)}UE2!nK`g4JkyGvSDvir$4
+z+oSy)ZpguWa9!Y <at> BOq#dwbi`UmGGDb42 <at> Xs_`<u?!j<kn4)W?Y)oIhp&mcdcxK<Kt
+zcK2Pe4?=>68fE^RCSo(ZvR(!(Y7s}t*~fL&@5Iaik4Vr&grxEm)A+pl)%Aj!4U+x+
+zdS6BEN#Ie)amSeT^Nr03S <at> DNBO#B+AjB&r<R?`>&hc;c+)sK->>n7>VKJtmA%S+C(
+zIw(cYHhH9_=9fL61+yJIj&6+znp}Z6`f<)_&d*d>86M=3E}gJW%dx1i5V-=~A2EId
+zo5Y_A39em0dbk<z-TVR <at> T2{b*FHxeKEdU%OTpar+E*AOkRa9Yk<p!aqZhRv~guIv4
+zpWrTI0o(jo-{8omK6ri)dlZ-?-J*RlrEiUtG+^|n <at> opNEx}|83lho78V?ux7JMvPD
+zb5(zz)$^aOHB1iHo!ve#ut8MygIEFx;spdCq^M;YUPu2l=o-f}^>gmey294%p?=ca
+z^7amTqw9FO){Pz&NGNJt(0k}>myW?4LL}En54QpH?q3mN!f2eLO>BRi%0zJJS?;%9
+zll^XUMe`(M&<Z9 <at> bR)R5STqLRi!OgCcp3h-FU3sr8vVEBud_JQa?>b95jt7N!e7VK
+zvPd&O5m|yGk1z8PjilWmo3V!mD}B&t*$?lsu>xu+`N?E1pFxy?f!Aa}A?uF6 <at> _2Gu
+zWXX_87lqHS67{F~i`obuwP%T=PcKQHj-E$Os~*6zS%t%5)Y_?+SQ`g81$&jsbnH!$
+zzDJIcn <at> 1Mrw}(7>L^#-_an~hLyftP{mH4+bxW{yjWA~&`k2R4XXX5D`_4py$&E~e>
+zF=F#!zzjl{g#jb9qG)15K~j$nyKtF <at> P(h4ffZ!~<(CstX?49_dk~nLS)bZCneU;7m
+zSd{~_fn<#^`Ioi <at> 77HM|;ySWYLmgb{q2Yf8HWm~{lq^YJ#W`}l;m4WCVUPP^B^{O5
+zP6FVBs_IC)NMpMVlCc$X2))su56Uj>7qpAH(uF4<A&fdOh2$zk+xG^e>$2q#&zNRv
+zukLh(&fb2OtoR!m_?L0am(=d|CF%39W%idar3Y+cB`JGj!UghlRHCGyhGip!r&lG!
+z2H_JSvx4F51_$1-EQ)Kngq;Z(?U5u5GwwrG)h1B%bK?Acv%nm{u9(^vlkw)kB9MU2
+zSnq7QnUN(oO60wf!k9tsm!1s!$trwY?*WSjeNLl#_Pj;&p15dL4-!R2C=VgoaZU0@
+zTwlV6eDxDxJ;iCqGgtJfkJlt;ml(pF_g(vEmo;OKV*<ZrDjl;L!seV6wQ4&lR+cwJ
+zcl9v <at> di3|U&p9rHzWUP$dLz;!_PAIk&ENDBSvd#rdUNh`!FEcUH`ly+u~F%`$$a=9
+zDp){AJAmtjDPv{v4l^UOx2b;#JS`TmIf|zlY?4!H)Id!Op <at> ka>8%7=dMpnk+X+lJ0
+z#C1vXsnrGdH64ScB1M_&METvsOLDLj=YkQ&q7|LsMC_$*W$Nxw{t^{yBNbq6zQu <at> 9
+z$oEt)d$s0f&Fy64>4o~<Ng5Iu`yYaQ$j89Z|0Lg6WSc=#&RYBVNrACSON?bq*1~%(
+z%fhv8rM7Om^DG6e{24NX3p=tXGoqxVFd8Q#IMb_pi`-Fue~TT*M{P;^R_<GOf0Ps7
+zon!WdEOvY3-cj1x=w|kud7F9#azy6k6|<bo&hnUFXN63TL_f70;81yU1()19t_pB0
+zQD25(&NQwop_^B5JBlox&jvcm7SGr+JPOU;>`g=2HO>_r3EC=JTa2s0=P&J}UhQc*
+zJ^X?sYkYg<1&pu^=vmgSHpN<s0}Pmg#<;Co0lw+C%BogOM;##A <at> u4z61_VDiN?NBP
+z^^P}%at2av3 <at> C8 <at> v>vqe<F=S7fL9oh^r <at> 1(KxuLP101LDCFV}X*(LX3AU$7j6ev0G
+zea`EcY#c#HNRUaG6U_xj{+WU_f)l8P<Icf_qEcH#g!#ns7MO-7KCiPvacxryxQdLy
+zpFLVCxWBR<E`!6dTlYDRdh-%%ltRD=QTlF*&x-cUbBDk_MjPA%A?FfDgQ_VHofu}D
+zOyL=pJ%4EHE~=)Akl5)<P0mNjX+t?K_w?0RF_eR!!jlG <at> 0yDmPLnz;07ND%(S2@&R
+zfXfjU`A$pGiV7im%|j%`vE9EZ>I;%)d0~t0OX~sCo5{=qoGqD=xS~RT;fYeV$Wu*p
+zw^f1Z&U4(rkx_kDqrl0 <at> tE>EkYc7)~D08x`tLQ;-n?KZ|&C}x#W~Z$tLpxvWi9%DX
+z<Xn_3S$+m5qm+nZx<XRbUpaB7>(8%l>E2*`T_#Q_kte|hB)!kZI`2UJ*+Qp?+p <at> C$
+zJYK_o <at> l390d~?MwVwrf39gZ}^4oHa}zF>kqjdS5)i`t5fR)@+tG}K+fe5~B9u7yf{
+zk3oq!(WUjsu9&Y%+KK@{)Zee`#=5Y$w|kSm <at> b`tYHGIPJ5<5?bN^id#e6fA^nGeMP
+z_Ot_VkP)&3>NHOnp~QU+cxi?S^7PHH2z<mA57U3h*I <at> sUN_Ui#Y5ZcYZ#S$0cZc<o
+zG)VBHR?XTWE#>s86~tTG{kL3(@$<?rl#fj7)#m4zYi{#S7OrNpOipfOB#v4o>G`Zu
+zv;u#o_$}6ZiiJ?3&41?PIv4uj(stK-an?Ju#1 <at> 5d{T?>QMzixii!qHZ3e*tJ%NDXI
+z3CTj)FCDg|rjZXw$;@ao!UD!reAHhnWzvqg+2&pZPb_7&V)6)@m&|e?1Y7_-fieoV
+zGHr+z<F=d%`MC*oywirG1gU16O4>2<!+;ec`w^xE8qtpv?pi<w1~7y^C)Ss5u>_~t
+zzGniKYr0iU`tVm7*EK0l_q5ygV%cFdv <at> KYlF%)wX2mx<QD}?6e%T7Stp9MN`#PDWl
+zN~`^*>A<M#pVt5l?K=`hJ6-lr>>)jBR}<&@VV^rjWI)3>x*Ht-mR+5v=41gXh=h_{
+zLk~Hx!CJbN9Kul^w=IJ7f}0u1L(bpmexS}wsx0nU3VuG4;)BxtU+}n$X1#ISw4zef
+zIE`xz3MKgN^HG8~PRi3w-oVRTEHpIHRkeAJKY7jVkpd`a_{g(}A}IkBrePAv)-=@<
+z(Y+%$kz~{g1<`*pOLY5kG&FsVZm_0#hp5zIWocDUY%vcbb~4l|d0 <at> I#2O*ye4HzLq
+z-OCjuK_DHFyxGAuFKW<1VG&1QJB_-U1F9X6UbRU2wi5C0r`Ekd!Mgrln2VFE0WGZQ
+zx*<SGaP8A<=MBWzXB <at> 4u=MPJyb;PmT<o=x}7|r6hr{9|Z<d9d*dz;u)JZSgXskKG~
+zgxtd_Zr<`XQB_FR6B5;ftw <at> R<!G9SY`OENmdvniiTOwQ;2oUsSF_AQ^K77x11%S>*
+z`Dd <at> SeL=I~c||2ri?Vl!4uJ5;N#kWIU91(A1V*o`$KBvX>&<~6*g4{%r7=m}#=jL4
+zl-2Q6-+wZy`*N%zCh=uRm|#`7RGgybWCP39Vcf~P=V14k=K{KY <at> lyGxlJnx&uf^a<
+z=jY6Ml~7oP{opGom~yp%q(cS%LQ#xFJ*J{Gxw2*+sulx2s)+7*_4ZD6S>V+8=%rWU
+zmo^$=<8oT6;7LeA <at> mVqozUatcK%VpO0|cNMmYm<AB^$$-bWyd<uWPpWobJyzbFn#|
+zv+SY8Nfh0ifU!NzYuBjWIuf8<*beVK90I^CL)CInWkTR>@oUK8Rl78{VdRy#mDURI
+z<p%HI <at> 7Leu^gsxg <at> 1g-k8KTb1!b121o;Jn7`I0>gZwn7rlbjxBDZCJK3;lp<hIUoc
+zT+P6#gMRV~QBx1l(%g3oW<ZHWd <at> d&-BhM0g(7WAaJKS=t?mM%4f88)<)*KdRc7Q5)
+z!C`GPJQ<xD)P39aq7yHV6x9!d%aKA{s6Zu$`;`-ZvTo_H*799gYkb>3Y(AvL<wOPv
+zl-a-!3(m|}jv#)+!b(0)Ii`lyaQemce<k2Xxq>kzn{nIjg;<Hy5C*M;({=*)ahoO+
+zpIQRophrIM-(~cr;%+&tjb;_7k=Wwb&Uf)H$s|HknWEqU0gpc<c-1o@$yt70;!+Cd
+zC$J!$@zqinhiC)tf4N2TS+jQqJ%eXl1ovjSng=csNS9)-;RQZdQ8piZtX3LMTH<xT
+zc51NB(4!7EV6Bg}43Hr50^p8SpyN8S@>Aof=}pi268Kf9?>=y9i(64+Qr<q6+YO+n
+z>owTEU(o+d <at> x{T#4cgipT$U<F=kFgIY9Ofd0g <at> o6ybX;KD+3zqc9r%%HpZ1y4JS-v
+z5n8I!cazi37RQ?Sb&Q`&VZyr_w)qGF_Yj7uQc<-9MRrcI5^kQ!QCswzAZm*W&E~}m
+z86^Js(R#@!!Pl5q)({J=7MUU7k!<;>1--?Lye47OC$u%T1E;{pv;(fXf$D2Yxg!yI
+z37a}vQ7uxF9I5w8^6D3$aG<&Omy(nJIY;63znFV|k#_HdH18Ne>JF?kfk)qe`vrNq
+zL^sCkxA%{*z&IwPFN`=TTbQ#BG<5evQ7fypgrgQ%y3yl|e;{wFG8^zm60~2;&jEw+
+z+ka6>Qjy3X{FMDnrEw`ZP?`H724HMkfyNlU-|9OX <at> QppGysa`+rnTC;qdxe4Aq7$I
+ztDXfW#1y314lw!B+_E1A!%uu2g~6!4mG!&QG9JjER^`lR2s~3t#dfmFnQ0&wP_#d#
+z0a0n3CFX5))zbW1qO>rMRDyS`M8iTVhOQub^+$Wh`d~yx)OJD <at> B7$D4nAaF6tBzdx
+zvJ$*Xw}R?~g;|UL^;4O;7gH}JnjhCA5j?Nqq@$nC=z=!Qr}moNP{z&`jB@#m%S0Pe
+z <at> jX(zc`_BE=*B$!gA4}S)69uJVo$YYpKb?3akJk<*a}*jxbg<}OpNv-4`dL!{U=0Z
+z%9lQ3*JChG3(3;J>5&0knnr{^4n#9|MIn|COg4QJ4av-yVOnoeL?WRf*=E0W$?pMY
+z2;pcLKVd;eK{q2m <at> K%6t6cQ3ibv$w <at> 93$epX <at> u?jS!E1{_`8i#n1LQS0)BkNv|z|o
+zhAMZh=f2<e1Fat>dy`a5c~K4BxwOUN$mo+^mIiNv&MeT%AE7R4_3v1t$mhO`f*DMg
+zUOsQ`WlBLc2?%q_N2rlI{dGp3%&4&%MBW_thnzbXj_X50A*3=h-l#tQa`T`$tCDV~
+zr(6t(IvCq4qH(-LK<<@#F <at> dB?NjMSey?g7u_?jIjLRWiK_;nH <at> e47aesJJa_m{Dd@
+zx&XsWVZ{>oolBG*4Q^^7h>0Ai-Ik9UW%Cd?<_;eKX#DwI#81p83;Qn)8S{mQplNgq
+zsM0k^SZUw(xX4I5L$K~S311fL-@sqmAir=RiIK%<8pBZ6YBWJtF2*)c)*(@cj~UPt
+zkLZ2s70l*xvM&erI54Kec~U!Ju!N42&k3|oxYS!l%7j1zU~t <at> vY#_%AW}^8nF;X>y
+zMg^U|Tksgj^Qg;<?4%qBzo5a<mNPSGE_drINf%bMv9fVR7LSX18IcUkS063X!4=_G
+z#sdk|pSisysu{f(*4&-uc=2XDunA|!v|*UIbw86itb`g~XU2Y0`{6KO{4HW)_w%P%
+zWzhON <at> uC#BhfhbTlA0jVRV|_cE_&Ec!!UW{KfsAy1XWc)kkw91ZWcJixjD=W<kZvD
+z6e8ZO;nTagA`&n{Zds6|#gztGs12boT$-V$oEWO;V)FZVx?(Q+D7iqBPn#IAZsxq8
+zXt1ZP-0H#J2p2mIl?0q0BPe)9R&CP4bZsb`<BpfT0{A*k@;$nA)T3`U-P&x_oYy8S
+z1jqHC#|J2o4x4amwD1T5xZKjeLYkMi&-bUa=>Dy%sr1GVNPBLm5<#{*B(T7UFNA*!
+znJtV7vAyMd{|>6(Fm5{LGgZE3>$6>lg0%8cZIGJPYFLG8w%oDK2J1@<zgRtL?84t7
+z4JQ;>83`&W2&6u>ej}va(;El-@PFJl1Arr9Kn!ZLQLRYK`=UA3-$ZKA=<Gkpn?qGH
+zu&0WEy(n=8)twIioRmmaVA{2PnC6Fg8l9NGPc=Y8YPeW8%_S&%+=e98<?}n{zmjJU
+zGQ4Kj>lPJS(XOE1E6MEu`ZoTgP7Rp4K}5v7ZG6!}g`Xb6%+8Js-(d5FMq?f?DKqet
+zO;7abkmS1 <at> J5uu(5OBFASqdE34s$WY7L <at> PJ(yp<>Y`e^D8PpM4wmt-uTm<+70p8`A
+zDNUnEloWNfX~NNM6y?w5UdaiwcAId<%pO?SCV|QYL9*)e5-eJd!2E}j_iwGvz~dh=
+z&-fob^Zz9 <at> viygDhoThG;fpbqf=0rfR<;p0b}J=0c!0|~pQ>c!MhyOd!w?!8Hy0!k
+z#+4*73k`*eu7N#xbbF{|QqVUbU^=cbP*%BxhWJ}_vfuyu@#=$c3`gysd%Z@}C7AVK
+z_r3Hq#W <at> S#X(0{|Z`(#=L@-nv8WH8iOef!y1FGAZnM(n2iqHh0+tQa)^)e4a`vk=X
+zz=gRY&=G)?VW%@*p)|nad>6}Nmo#j{pJ$7TDW+m-v~U4^^Z}WkTK0StHNJ(-KL-ln
+zzgn%r))DWa(HIR4_e&{v0qEaA?&zu;w`oyZbxek0!#^?D8>DtIw4A1mpbu-`DIcIk
+zN#Vfaijx54>$^N&z$QR2t&PIPuW0*=RH;}i9~jiK;n_)K>C(cg!E#!`mDz~SQNUqy
+z;TK+US0ailrYi4k7z#Il*`|WkwLaw@&O_);BUJnS0Rw%9=7R5kLw-S6NU#S`nUe&9
+zy?2r~Zlbf~Ija$fkDu?U9NM2<r&TC#X`e&aKWezn{Za`Ebaljo#Iyt~I7jJ101^x2
+z5PigbLe!Voy+TcYRdF##shFSUBh^0e9b_tEjrv!7GkWJHiX=da=bFR31#&yrar <at> ER
+zx>=!w5Lq~WDjnnO3mIBOl_r}-FDk~twDwg^S5E50dpG?NK+nye53?281NxMj=x|dL
+z3U)mm{XO=x <at> vYC!V%A197StLjle6Bffwj(g1sPU~p>R=AAQ|V+W&1RHbG|Mp2|5L`
+z?)9*dek9tDZ16GGO9K>k8^XnLPR!Tps0WBXDgA)zu*L)?qZm_$Ko#k>^kT$KSuWlp
+z9^RTm7qMe#cY?u!msvwZYW#TGO)$j|>wJ{TnI=+n-_ix|-qNd>z3hiU6}j~@`>GG5
+z4qz_uI!&*y7#3!wm8tjzoo>PeEa>G-vq~8ImIvvS%5wN=C>wYgX$#|q59J#aMLUF*
+z9px2$I <at> 3xUsp8x6ra|sBOEh&>J7CIPq+RN<zfjEbN*?$xYVRPO5sptBfqoOL*ENhK
+z-=1h^6CKV}`wTQ9nRrNu|0>vQ`s<N9O4Z <at> C`1lVD$#HkIkNF>p(;`TeKhJaDTVV9u
+zJFdRzT=?1Tzn|lJlVCWZ_*S-td8o(bR`+UGhOOAzgSDR@!=zwN+-lzUXpJVgH`T6l
+zXkAm7g-4|AlB5 <at> 2sM?N3X9 <at> CD<qFuzdk_aa4qN~S#{7{tsHfMZ+7~m1ChhmZ9mK<d
+z-yByAYShSPb4=7 <at> xYaHACNI5_GyDETw$~Z`D&`8OPrMUJvoSWgKt|>foZ$IhyiQZC
+zcq#UC7(DcD^QqE)XHa)e5p#5szgPoR{-+~t4s8B_9#D0GjszZfejMDt5IuK)SFh0$
+z>Krla!&j{;UF-Qlfq2d}&kxtY7G&pMx+BIot?2La;eybS(8(Rn4`)TlK1i8+dLKD#
+z<f}Gd!5p6HE=XD)AgtHn5?eS{aEQ6w-oyuFMR#7vvhIF95ZdWB9k{Siz^#JQK3^le
+zxwU=9Czeu@;!?fNu-dch0Q&`)7XC=;61V8Cjy(0#u(AYE#U#=184m|ufRPzoo}#vg
+zb#9$I9)x2!+{sp)c^)3%?B09;r~qk(EAVybu<N <at> IpO9#OuPeUvgJ)T<ifg=$&80)R
+zhsrmu?0Bymq2-#Hu*dA1En}P>B(3^2;PCnSg5~m0aDGQ1s>!2H>$|#}?-S~cH2OUO
+ztip;K$!Z=Vh335AM(YB~PR07nJKUk0hSKWpFW&}K!rJysk~JEy)#O^j <at> QE3y!!SGR
+zJ8+b<T(nm <at> O8bSejo37t;S%sPkj}PV(Oy`1Gu9PV*sgG~-HcKJnY!4>#R9LDJPSmr
+zUY+A7X&Ek=14%QOc6SC2oVUvL*RuQ|5wD<y+(Ae%#OQ=cc7PO6?7d?ZypNs*5)0sE
+z#|3pvB}6;JIaY?x>?iuOsa7{O5>9t+v-o678$6D0qCggHu*qDBoZb!HXH1N1uPfH;
+zZ-I;o#`sztF|Vpp>b~v!o4Moe%n+L__X}MzD6_vwST<d(!m2OR <at> fSpXj5m <at> L=Azio
+zd5Z<pNgzSpV<=yACdPOstl+iRgkDe#(rT4Fa={!DSZ{(}32foDW_mek5TrmrC*Xvi
+zg6>+Xxa(V$ZB{jgegRyn&iqoOE-z;=E5&7s?*}W=IoozL8q6s=MZqj}KX(WFE?O1%
+z2>@ZIofCAGQ8qJXi6s;N?N#Fql%mvcgX)Z`h{q($-~LN9yJ0?$y`MoAsmES;sD4n*
+zAv(+$<+nzz%(%S{02F(QM-37W->M_5KT(FWtkK`Z2&MV?E$PE9T#Z4{mWcAmleHj<
+zYkFZ3DS|xkes{1L3ncc}GCo49s<y_4dvwx8vOA_5yGU <at> o!05ur9_?f~Zp59{SRg8;
+z2i{Y^ZZj>H-T7;^wcY;0G{unPa7ZEi*Z93dR9GauB5>`%_#XdGOSQQ7P3L4c#Y%o;
+zkF<1Fr;y(Y=H+wFDBv#jqeq$ptB^|WvYu)0 <at> JfA-h_UOA{2r^ti!*tT^v?ow`jjjT
+zpCH8t <at> fv+pi?KDK|J3vQ6?%yu5vms5hKcn?2&rhdfmp$iw1NKe;nuQ=%+~0h <at> v`sv
+zo_;x^HqR%xGU_h;7tjwnE%Txr(weTrZ!^`~m~*(=zSx*_j <at> oZL#652bmwaRrLtFNn
+z=#<#EGLNp&f^c=sU0&XA*j}!>y$<SA5e>9TR_<S_kaEv4FCmYUib<F5J`N`<Q5t;n
+z^<hrXj-~Cy1eQYPw6 <at> J?<#E0DTk631f%rso$+N3D>nzj5tNNk2_ <at> NI>*46Q8_ZKJ-
+zYH4mQ <at> TV_{haw|<W+t^mSBFUm4k6gFOtFjNvq?R$^^Ufib$oy+d;Z+}KeV&SSw|%A
+zLO$GdVB61-rmcnUF5NJ?@H9qE41CiPmV2Ojo>d <at> K5>kMfYCiDg;seHub`P|eQXDIM
+zmo`dnfv|NRd$$fv(83}Co5!I7rZ~IFPSR{uv`(K1;>giujw>pmwtJ~X(FXfxn$<d7
+zFyIv+4>jU_$esW^3=-4iw*n%uHT8?S9+=F8%V9<I$udvwbsz}#jY`MYQP5nWgxmUz
+z0s9UD7eEge9{b6m4~eaj8gZJ&jzTKVZ{>D&aA!{GKmk`nuZKC0MiBXlQaC@?XR <at> 1!
+z&n!+(7!L8h+DPdUlA1sp=mPK}P$)OKVf7C^fu568o*G$;JLh;!5BNj+*4s)LfdLAX
+z&1KVsNQWo12s5JMP#eu1J;a!s`D!B^@!6M5C|W7F5{1nnI>t%MOGx;ab <at> CZbc <at> Qk+
+z3IlL(NEzQZoO)okD{PX548>D*v9-N8XPDL7!O$6e!XF;#NGOjuV}Fm~%r-|keIUw?
+zok_2C=E8>I<zLW734bxGXuW14E%O^AmdjB{r=Pc8CAD>754aNzag7J_Pp2w1$2cDI
+zzJA;le<!`^=GC4Js0eE3UcwAC%_W~i&UvSQreu&N<5z|75kVfd$<^5?7^eXQ;l3S?
+zA$N<`Ssfpk`pMk_q*=z<Ruueb7}i%YT$x&jpiiCu%#+ggHzt+tMv?o^qTF3J?SO8N
+z1Pmj#V;q~GKJ0xc0bYocLWmvV?@QE<q-HhjKX+)+4~_462cq`HFXyxeItRl-Dcl%y
+zyj5LXjkawo%P)6&Y;}f4Mf?odnY5Q!Gwit`%>bw_E(DtjRPBVxCo&WUkzNv6wTzK(
+zt`;Lldp6m7#HMgW4<aLo&EXMSoo+`F^JX`QAQM`4qinwIQ!&ZSVW?_;X>W*T14<wP
+zk>@gc)8Btlr$=fyD~;~w+#=bHGm^1<swAXjO=KZ?5}hjxQ0@&9ZsVj8md <at> t(OuT{7
+zu <at> n$MN-MvU_-d^tbU*xAY8Bi$GI*U`Y1WVlB>AH_RdURh`4y+zu2tm>P_0Z9Jep <at> a
+zUuKz52n;8FA|mY+&h-vl^tF&0i_$zC8jXQ2aLcq&vt9MnP8G?AXR4=w3%psuXQVQO
+zp!<qkbKJRT4K65L)qQH <at> 8GC81#hW~zTL5C<j23si2UkCP#+R#O^L2NmJd+5O$wXbo
+zP{&>es_u8IhC-3kHOY~yTQuT77<&i>5d+&&MdD$^kB^GC7Fgrzg^wg7qUE`?ib%T5
+z2r!M9Qh)zNuY$k2=ls;t_r+<g^s-emZq <at> tOEAaNf1<4dTv_c<$yQJ$4Gko_UsTr^{
+z3<Lg`JI;jiSU$bvik_QDa(pPJQ}2`$|EsYvpynOe1P~mK_SVGvAPS3-ZC#gY^)03)
+z^pxp5GUp(Nw-H?^cg$}n?KyD>P>$>|ZPkwl+R%2?Hq${eZ9!v9IK6pJy0R?RKc^7)
+zeAG_-2RY=jK6tnhaDzpoj5J5;m*f}xgApYND=4)^S=l2 <at> 2V~iqzB2v=0_8o#;(4U+
+zQkvPU8|g%mpzp&ZetZIc*M4r?RB{>GgPhES4YZ;Q;x{I#IUmPiei&sQU5um~SkW)r
+zA;WDUC-oK&vaYtBz4k+-XrMwmD*1*%NkZ?+NwI2 <at> f{Pg5T8w!6sHiC@*wSiKgvy2N
+z8*+EjR5>l)MPWr(rO)lpBwc7?ntYSrL$sn};Vo+#G#mi)2I|dXKGWe5+EAq|`UsQX
+zYG1Mtf&cNQgV8Ns6*^;(z4^xzAFdoEL-qAGiWqNX?40hA^3iOxV^cEs2gMt<lG2tQ
+zGLC)NY-rztn9cJ^zGK8tGFPwv?{pU!Ywn*i=cwl>Wh`q5AZ}5Y9h!2;yGtka=4)q7
+z!QEEDUWft|=FgQEmg=S;5|#^iPLk%<aw1~W+4n;NwtD9JF*$I <at> 60Lr%<jZy56u{0L
+z?)`B%q-G(HYjCvhsqLMJ5q*)?%l<QmpiJ$3*h<f21%Lj3)NtY<*Vtm*6QKa4M>X(5
+zr=+y9lql%}(3hXH%aJ-YA;<|e6lYUjyyu~G_N-RmHYNwn>V2Hx5aP>UCvrJ0s$lY{
+zvv!~O`V&oGoAwI3D@{)=hkj>43^!Q7y$i<~`2vIw?HFS&e{PIX88CS4;2zDkFE1~d
+zZlY%3E+HXlMu`JJc|X||pY-wNxf^~y*(QAZ{()`K6QWYTIF<BKgjdrPs_iufAk8wd
+zrU$_8Xf;i{b;^#$`QMfNUIH!aVDe0u8d04Y&f4{0PaD)}2nXtu1MP^b$J4RP!adLG
+zzH-+WPnB<ATLs(7nw-DE&a`%=68vzcZ>*kXduh>{+t%k}IdEq0 <at> V^-h8<!$ML|qT_
+z*NX6FZINb$9JC_v0nlp>on<zBd3TK}FIEU!==BrVTRYqsuw24gWi?B(IYrh}nJU#a
+zdGglgmhfZaD-*c?A9G3n`o||f((A5up~Qy1%P;Qsik>Jvkm0V5Fk8_;x&3ibJ*!0F
+z&K}13oC7q|*8$PYQNUh>!_NB4MFqaQP8=fV(m|>Qu#D~%TSG9toXs>cL#VA$!m_@&
+zHM0B-uB_2#HhfJ4m1!gVPIlyFwpJ9vE <at> mm4zmKlu!-rCuS(9c%DCb8}C2*DsxdiNo
+zS%@t5mofrodYlpqC(XG2G4L#hD8!}|axM+R9Sdr!$<u+r;{gB$##$Udk <at> I@7`-Uz~
+z&?qE$UH9Q9sMGfPzUZ};@B)&aqEqqpSx7yQQH(D^B%G(vX!|qZmh*{rTGU`or3mFZ
+zkf>Q!jKi6!v+0m7C1?LL_67bg*OV <at> OV <at> qs1oqSZ^($!g7!&~`YLIWJIGwhn~!C*?J
+z<ess;iW3o`nAHO)Ms{Y2NAuu#;Xoe(5<&G)f6k{ocs-1c;0m{HB1Zmq;LXb$z56p8
+zqu-e+Tg~wBs#w2SoP*#45R <at> Ti;STZ#ONbJ7PGc7^n3H3m`H3^R|4jqT0CF}xYRqAG
+z8G(M|UB+5sC_3<vNewSw-0iB^3wUz!AC~+k+d-=k3v#E <at> 1t<CI$X{-@#pp|?E<{{8
+z|0oTP*sG+!p*Xi5Q(x6)j()<p*b4;A!ZVa+6d$e(t~UOlbz~rvSvsnr|6G+aY?|6w
+z5BrZyjF}3NubWwcGkL%o{+P4NE*pb>?%VNUnF4Ik2`JpRDw8q>CIjTg$|uG_4E#jN
+zJMwBs7goHmuAa!VQqLc`%=_;7uF<W~1ufoH5oMSIyuD6WHFy%_HRhof3|ks$n(L~m
+z_xQv<%3<n!(j <at> BE;-tuko2d_>N2<FnrX*~hH~4zEtRzzJfvmJOh54Yd-R!O}v|e<5
+z=zNqfAFZ?=ABfx*9D}^`V|s!=RKYydDX-5)rTU#pg?`=T$4>9M7Jz7onV|DkxCth)
+zb+^9T4VYP~?8tMQ <at> 0%8{NP`(8KY{j%w}pRlNV<KFUXxo9t>7fIkn|Aaf&I$RVG({F
+zz?V)(+g1R%?|Ss|P%oZ+%q$c2(c^}H0w3DUH#??me{cO`x=HHY9 <at> 7R_;K8n25N5LZ
+z=2bg<90f&at+>`nEUQwd;^WV&;dq=lXCvfjj#V+oq$#(fTL(vzM(oMCiY_&V=9SQe
+z<78xee6=DOo$FH^!*pSxT!m>|=X8o!+eQf1h5h|ruM~ZAFVs4*nw)z<eUOKak)(V1
+zAi$a^if82+)=ebAB}ZUFvD)dXEV7!)V{<5hn_KZHP$I&w82pZ>t1ugiicY9X3p`2I
+z1lu&xGCQpcGOk|GbT3S$5CD_eL <at> P_1zLN7f%@FKdMhc=RW%KknD+k)1N#C;l7r`Ve
+z&ZWL$6Z^ANrPI*tgOdj~$FTPqo==X3?+=uF(!{Lyq5RFIkBzo)HQ?e<3@;}(jpXov
+zv~wT34RbP<zzJX;SHCE3ZZ9j9r7I^hi}d)Q <at> PP>+4dYqmbKv~!xc`jyNXX)h#k_!)
+z*JABZBm&pvR0P>$4e=L?Ak^4xWYRIbJ8`&tC <at> yrr^qK{jMA`wI6#L4I <at> tO9pO&L}g
+zxR{sN$O3VbFnsUVu2aa <at> eC&TNNe>>1R<@iQ+|*T*#07M^HY^B7tufLDu5sz#=IZ6U
+zzr&u*0=`uZ9fb+x<E?2c^H6Df9{VRI7_{9FfPvMJO_Re|J(0^b <at> z`<tDe1?F&I~l6
+zF(8p&Nrk <at> q>h>YmwOiAqN<-!;t^u@`8Tmm62nGdK_15VbBi69G-@O1+{Y`6)+Glc$
+z=wR?+Vm%a$6)IG9n$6>xu<4;!az?<}-xE=*$iwCX9+FjQa;~9FSx>?E2!vyaskUrZ
+z%21y~sWl`X*~$<X>UjH#m23rGt?yz1GGmHaGF8A7|1MrtF6+dHKcWXAoWPN;eBuGf
+z <at> P7uVr#o%GKAI-O>?TcCHyC58V6`vEvFG&UgAO1jX@?u$>BxC9OicVt<4SRRt83#n
+zhoD2nP^6sVtP=z1FxL{c-J5e^cfqxkh}ttS2S6YE6*JQb9Sh3|WakMcOS4N>=C>=|
+zW0C<%AYqrosXeL?U5DvnI+1RQI?@Ib^w#5<^H)<N@!8ZE*+o0h*vecGX}x-wtRn_A
+zL)u#4<EPI9tE(CfnApQ|ZvAJ{ZXQtQ2U1rQ>{|8%F_-9rw~-r%MMb9uneT_fA <at> 7+5
+z3Xu`<KJe`jP~cG4&Nt}plsvKnkk^*+NNNyJtdnjFGfGoX0-x|Ft+4=tN~5ZlmE1gX
+zOy3~tG*=Exf#5?>E <at> Csd0LzPeaYFLL0#ws8a*^|WlJYPs6?8)^8$>5r1aO}``&Yy|
+zqXpDW>slNTlTCF0wPTj6X4!R_1j>5cT?}Yj?-6P;Z)XXqbgemnb#rJUj5#U;fDS1g
+z$O*krlOr4(gx=ZKd$d0St{L<*WRLRasn$FQ6#xr}?k <at> F^55$bYvC8|6Kl<;8L%C+S
+zSgmpL$`9;*?i&>kxWx0v91g>B4}B|#b_;dE*PiSEafFUIKpm9yH!GntJ%1NiaJeG^
+zJ1Qi|KD-L`;Nn~S#$$0xi`SgarK}sl$&+3MExeEd!%lU(!M9RfQXqoDvT#2GgI{I{
+z$a$l{_J`$y5|)%Lq2%JSS?SB?P5;kt!MXVdMnSjP4E&*d?|3(r%kiqI&z>CaS^GL!
+zMQ9jNGw<Ay+De`u4*HJJ^W?xJgNGzrzHbiQp%>fOfWQJpE;CSjw7?DS%!xW0QtKsl
+zXf(FVAwAp$<voF_e`#2*tPTo|!^}LyRcSncCk`-sR`|7B{Vt<JY%CU <at> Qv#JZT?Q(h
+zcQ5lN_^ywDZia <at> UO#liSZ~N^HsKgOH89OQeU4EDi^EQ&px1rAcs~PoMZDc-3xl+1$
+zGuZisigA<sxBAOA)STam^1)tV`x6L2OTW6SJ`Vl&YwsR=`wuk}Vo`Cj)!rL41mE#f
+zMh9Z <at> K6v)~29Cw`5DNvTS;h5L*I8o3Fbkbg9z)4iArToZCLV{*FCmPt3m)k`_QB7i
+z9 <at> D(L(kV%Zc*!=4_ec_qz9!k9u;}D|W75+{^mdjtim=_a?`C%maWYGDbefYaojE!Q
+zdL<bDFbl4#Tdm#W&bRh81P=|<wivKfLstzUcb6kbh3B6mLaU7Qs|i;2&a-ue*&P}l
+z9#Fg68JWP3$QfnU9UcELn*}&jg`WHlh6;6nF`bcd1n^;oB7mur)Mt1A0|sK^EmkU;
+z+`{0vlA9nys6A3(Vm&Qni9!P^d&YqNRCLs6x0yG4&LvIedpcM^Su7zSikr-j&yGTQ
+znl5>t7u%W}$xEfHgEbBq_fi8!7Mo9w2#y*euwkvsbACXd^RkzDNr~3GF1AURIy+xk
+zi <at> pAA+6)YI?`O`;vNk>}uReh1(7fEEmcAFdm}50Xxq+FQ5W<&K1@#`e+FEL`Ff%d~
+z<LVW3GII$SKO}2OI_dZtEgT^RGw^C9 <at> YhqhZ;F+%I9$gtATb4Ed19nzdBJuo2bEGi
+z>(Ke?!V!YrIc6MCPJg*@_$2W9Astx?^|Z <at> VgD;7>V?u{|KY36gC8;0#ODC~{5nkrV
+zFhogEB$k!@Qa>ACiK)2gpgdR^l&i!iLxV(tr2D4Z2*lH$-e~}|-;(2ykxeh8opN7q
+zE96fP=I&v5G?vD6QN{eQEeR#I <at> _l?L$}E*C!Zw#-9WN=$F{fqmPB<8$KuB8PsQYrN
+z0f%|;A`)iQNz6{p$ZHIpL8cg <at> 0?96}Ro^3BFLM+`63)NL;oV+Z0CK+eF5&k`YbrI_
+z0j|3*O0TlzAkVMQSc^MKaFnYs<u7$2et1tjf3UhqgmrD_#%Z5bLS1vm8f9N5X`3W>
+zHpKyQ(UN6-Znvi&EZOM<%^tZg(%r#DW1pU7O%)>ZFiNY-pl0ql6M#<<hqFi+tXp`F
+z)SrNRT?^|o-@HT$efM~e8q7GaO$(Fq11|_YW3r*57((PPI4%-D-ri$R0|R|bXmSVK
+z<%txTR^LfS3#~dn&(}`Mx*j0V`p8!BI6`2$_DW(C?XlO=RjnQPzK7rZux*RwF3B5N
+zxH^oBIjaxOan&jx5D}SD-+36>>!=I*<loL=EVAWvLHi=*ed)O~r{uL-o%m)NNJQ?H
+z?&#I0M^txd{dPi8t`0Nrfv%*l?w <at> O-$+!CfKz69Z;PT2^z1*1tkmAipr2(H%zDFG*
+zWVyR66(cH*wxKeZ+|}M(s <at> gAD!#(a5wpL;`29Z`{D-<OB#<qfD%f8H62|;QB!Tr68
+z5J`TRtJZp)j{iCzQlH%L*_oB9*WiF22<G#Ikf$CW4+LQ^f7y0$(g1QMG&*+4B-f4J
+zwEfZ02W`bXoCa <at> 4EKvRvlW=`g>+79~1sJj&P#zRjVrW5Zm5{2?u~1iRX{PobO_rQI
+z1hpp~1(f*<`nF0Q=c^x8=;{UMDj7#8j>#fH#n0RgIE3d?=}pWc287(?fU{em2}(_@
+z*i8F}t&Z7E5ftkY7-7mk$%A$3o-oeX3-gEcJd|4}+c~JEkS+G)PiI <at> mSvklr2wqOc
+zlMbOWLS7!WP92e2x9 <at> Z&n&WP%R)DM*bH$4Ty=#<)j!rE4)U=5$jg)aUU)!nqk_0Qs
+zdom~?gP-VOaos`qhK_{RM_3UD<hPW`P*Gsm13gNh`&#SlS^7pcQ59=ViP)BsEiBl<
+ze1H?+)a;PGey`HBFNBKfnpCF0b3V;{4sPc*0dS-cHN0<LM9W5Y!CImqIs2wP^`~gZ
+zikn^fqAa{Nr(H!OTo=ndAnI>np)R6?`N!7HaEeFss3u*{(*@#+k|I2P4H)Nq&aize
+zPCnBt%+ZhF6!!(Mu6VybwDnv9Dde{rwu-Kdb2MP`)P>Gqg>aGbp)>r8yBqCXoI2?m
+zM%Dfk>pFsU#oG_(i!ak5N}2ug%-=%$8z3$IE-1_v8YqL<X~k^WCO6;}b;4_byqCAl
+z17L <at> ifVHC <at> nj <at> t4Bl>Xj=TeIDK;6Ja%(`Z2=95;NAQweQ>&y_nx<T$i|IaF94>38@
+zKktR31La6GH6IlrPw9xZZ@$=fy?FSG>6C <at> NJh^uu7O)eGf5m`U^@_HfceB&H6UL}g
+z(b$CGbpq;nK5*);Z#3|_e7w@*_{WRbXn*oU#GE?(gPDfgAq02$V6jB*1ImIl <at> yE9a
+z3L1Yy!AvYseu)N`1)=c(y}{w`Dz82BFc0|^>d7mU^C^RAo55ttCBAW5X6;+pKM6WC
+zU}&?S>#Uadp!Zg<&TMXcin*P|aSJBpI3O8Uma^6f0~{r*4WX2&PmBDn2hz(I7E<GH
+Y8h!T-j6N>0)&MvMR7Wxoq)klz7uzrlIRF3v
+
+literal 0
+HcmV?d00001
+
+-- 
+2.41.0
+
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 23:18:02 GMT) Full text and rfc822 format available.

Message #23 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v2 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9.
Date: Sat,  2 Dec 2023 00:15:17 +0100
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
---
v2:
Drop the patch file and instead do the necessary changes using a substitute* and
a phase copying the test file into the correct place from native-inputs.

 gnu/packages/bittorrent.scm    | 49 +++++++++++++++++++++++++++++-----
 gnu/packages/enlightenment.scm |  2 +-
 2 files changed, 43 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index f9098b1a56..7a96ac08eb 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,16 @@ (define-public mktorrent
     (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.19")
+    (version "2.0.9")
     (source
      (origin
        (method url-fetch)
@@ -428,7 +435,14 @@ (define-public libtorrent-rasterbar
                        "releases/download/v" version "/"
                        "libtorrent-rasterbar-" version ".tar.gz"))
        (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)
     (arguments
      `(#:configure-flags '("-Dpython-bindings=ON"
@@ -437,6 +451,13 @@ (define-public libtorrent-rasterbar
        #:parallel-tests? #f
        #: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 inputs #:allow-other-keys)
+             (copy-file (assoc-ref 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
@@ -473,10 +494,10 @@ (define-public libtorrent-rasterbar
                          "--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
@@ -485,6 +506,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 +541,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
--
2.41.0




Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 23:18:02 GMT) Full text and rfc822 format available.

Message #26 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v2 2/5] gnu: deluge: Update to 2.1.1.
Date: Sat,  2 Dec 2023 00:15:14 +0100
Dependency on nss-certs was added.  Most torrents do require SSL in some shape
or form, so it seems appropriate to add it by default.

* gnu/packages/bittorrent.scm (deluge)[version]: Update to 2.1.1.
[propagated-inputs]: Add nss-certs.
[native-search-paths]: Set to allow locating the certificates.

Change-Id: Ic6c79f24851d6917dc4e5b22b3bcb2f6b99e187a
---
 gnu/packages/bittorrent.scm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index e115c13017..3d79a3a159 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -46,11 +46,13 @@ (define-module (gnu packages bittorrent)
   #: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)
@@ -574,7 +576,7 @@ (define-public qbittorrent-enhanced-nox
 (define-public deluge
   (package
     (name "deluge")
-    (version "2.0.5")
+    (version "2.1.1")
     (source
      (origin
        (method url-fetch)
@@ -583,12 +585,13 @@ (define-public deluge
              (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
@@ -606,6 +609,9 @@ (define-public deluge
     (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
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 23:18:02 GMT) Full text and rfc822 format available.

Message #29 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v2 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10.
Date: Sat,  2 Dec 2023 00:15:15 +0100
 * gnu/packages/bittorrent.scm (qbittorrent-enhanced): Update to 4.6.1.10.

Change-Id: Ic164ee27ea54018acfcba0e9db8db11f119800a4
---
 gnu/packages/bittorrent.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 3d79a3a159..fb20b3c92c 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -542,7 +542,7 @@ (define-public qbittorrent-enhanced
   (package
     (inherit qbittorrent)
     (name "qbittorrent-enhanced")
-    (version "4.5.5.10")
+    (version "4.6.1.10")
     (source
      (origin
        (method git-fetch)
@@ -552,7 +552,7 @@ (define-public qbittorrent-enhanced
        (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
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 23:18:03 GMT) Full text and rfc822 format available.

Message #32 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v2 4/5] gnu: qbittorrent: Update to 4.6.2.
Date: Sat,  2 Dec 2023 00:15:16 +0100
* gnu/packages/bittorrent.scm (qbittorrent): Update to 4.6.2.

Change-Id: I75d05f14396e1b017cc939264e30ade625cb7017
---
 gnu/packages/bittorrent.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index fb20b3c92c..f9098b1a56 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -488,7 +488,7 @@ (define-public libtorrent-rasterbar
 (define-public qbittorrent
   (package
     (name "qbittorrent")
-    (version "4.5.5")
+    (version "4.6.2")
     (source
      (origin
        (method git-fetch)
@@ -497,7 +497,7 @@ (define-public qbittorrent
              (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")
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Fri, 01 Dec 2023 23:18:03 GMT) Full text and rfc822 format available.

Message #35 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19.
Date: Sat,  2 Dec 2023 00:15:13 +0100
With the update, the execution of the test suite was overhauled a lot.
Parallel tests were disabled, since the do not work well.  Since faketime does
cause some tests to hang, test_ssl was moved into a separate run.

* gnu/packages/bittorrent.scm (libtorrent-rasterbar)[version]: Update to
1.2.19.
[arguments]<#:parallel-tests?>: Disable.
[arguments]<#:phases>: Move test_ssl into separate run under faketime.  Do not
run under tests under faketime.  Anchor the regex for test exclusion.  Set
timeout of 600 seconds for each test.

Change-Id: I7392cb3ce1a8815b26b3257498082761255535ee
---
 gnu/packages/bittorrent.scm | 46 ++++++++++++++++++++++++-------------
 1 file changed, 30 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 6f75a92cff..e115c13017 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -417,7 +417,7 @@ (define-public mktorrent
 (define-public libtorrent-rasterbar
   (package
     (name "libtorrent-rasterbar")
-    (version "1.2.18")
+    (version "1.2.19")
     (source
      (origin
        (method url-fetch)
@@ -426,35 +426,49 @@ (define-public libtorrent-rasterbar
                        "releases/download/v" version "/"
                        "libtorrent-rasterbar-" version ".tar.gz"))
        (sha256
-        (base32 "0wpsaqadcicxl4lf1nc1i93c4yzjv8hpzhhrw1hdkrp4gn0vdwpy"))))
+        (base32 "03p4nvsll568zlyqifid0cn135sg5whbk7g48gkbapnw92ayks7f"))))
     (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"))))
          (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")
+                 ;;
+                 ;; 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.
                  (invoke "faketime" "2022-10-24"
                          "ctest"
-                         "--exclude-regex" (string-join disabled-tests "|")
-                         "-j" (if parallel-tests?
-                                  (number->string (parallel-job-count))
-                                  "1")
-                         "--rerun-failed"
+                         "-R" "^test_ssl$"
+                         "-j" jobs
+                         "--timeout" timeout
                          "--output-on-failure"))))))))
     (inputs (list boost openssl))
     (native-inputs

base-commit: bdbb9dc27a590b08651d058f06a42caa26e04abb
--
2.41.0




Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Sat, 02 Dec 2023 00:31:02 GMT) Full text and rfc822 format available.

Message #38 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v3 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9.
Date: Sat,  2 Dec 2023 01:28:58 +0100
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
---
v2:
Drop the patch file and instead do the necessary changes using a substitute* and
a phase copying the test file into the correct place from native-inputs.

v3:
Use (or native-inputs inputs).

 gnu/packages/bittorrent.scm    | 50 +++++++++++++++++++++++++++++-----
 gnu/packages/enlightenment.scm |  2 +-
 2 files changed, 44 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index f9098b1a56..731c8e1c20 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,16 @@ (define-public mktorrent
     (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.19")
+    (version "2.0.9")
     (source
      (origin
        (method url-fetch)
@@ -428,7 +435,14 @@ (define-public libtorrent-rasterbar
                        "releases/download/v" version "/"
                        "libtorrent-rasterbar-" version ".tar.gz"))
        (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)
     (arguments
      `(#:configure-flags '("-Dpython-bindings=ON"
@@ -437,6 +451,14 @@ (define-public libtorrent-rasterbar
        #:parallel-tests? #f
        #: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
            (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
              (let* ((disabled-tests
@@ -473,10 +495,10 @@ (define-public libtorrent-rasterbar
                          "--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
@@ -485,6 +507,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 +542,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
--
2.41.0




Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Sat, 02 Dec 2023 00:31:03 GMT) Full text and rfc822 format available.

Message #41 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v3 2/5] gnu: deluge: Update to 2.1.1.
Date: Sat,  2 Dec 2023 01:28:55 +0100
Dependency on nss-certs was added.  Most torrents do require SSL in some shape
or form, so it seems appropriate to add it by default.

* gnu/packages/bittorrent.scm (deluge)[version]: Update to 2.1.1.
[propagated-inputs]: Add nss-certs.
[native-search-paths]: Set to allow locating the certificates.

Change-Id: Ic6c79f24851d6917dc4e5b22b3bcb2f6b99e187a
---
 gnu/packages/bittorrent.scm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index e115c13017..3d79a3a159 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -46,11 +46,13 @@ (define-module (gnu packages bittorrent)
   #: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)
@@ -574,7 +576,7 @@ (define-public qbittorrent-enhanced-nox
 (define-public deluge
   (package
     (name "deluge")
-    (version "2.0.5")
+    (version "2.1.1")
     (source
      (origin
        (method url-fetch)
@@ -583,12 +585,13 @@ (define-public deluge
              (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
@@ -606,6 +609,9 @@ (define-public deluge
     (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
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Sat, 02 Dec 2023 00:31:03 GMT) Full text and rfc822 format available.

Message #44 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v3 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10.
Date: Sat,  2 Dec 2023 01:28:56 +0100
 * gnu/packages/bittorrent.scm (qbittorrent-enhanced): Update to 4.6.1.10.

Change-Id: Ic164ee27ea54018acfcba0e9db8db11f119800a4
---
 gnu/packages/bittorrent.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 3d79a3a159..fb20b3c92c 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -542,7 +542,7 @@ (define-public qbittorrent-enhanced
   (package
     (inherit qbittorrent)
     (name "qbittorrent-enhanced")
-    (version "4.5.5.10")
+    (version "4.6.1.10")
     (source
      (origin
        (method git-fetch)
@@ -552,7 +552,7 @@ (define-public qbittorrent-enhanced
        (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
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Sat, 02 Dec 2023 00:31:03 GMT) Full text and rfc822 format available.

Message #47 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v3 4/5] gnu: qbittorrent: Update to 4.6.2.
Date: Sat,  2 Dec 2023 01:28:57 +0100
* gnu/packages/bittorrent.scm (qbittorrent): Update to 4.6.2.

Change-Id: I75d05f14396e1b017cc939264e30ade625cb7017
---
 gnu/packages/bittorrent.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index fb20b3c92c..f9098b1a56 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -488,7 +488,7 @@ (define-public libtorrent-rasterbar
 (define-public qbittorrent
   (package
     (name "qbittorrent")
-    (version "4.5.5")
+    (version "4.6.2")
     (source
      (origin
        (method git-fetch)
@@ -497,7 +497,7 @@ (define-public qbittorrent
              (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")
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Sat, 02 Dec 2023 00:31:04 GMT) Full text and rfc822 format available.

Message #50 received at 67557 <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: 67557 <at> debbugs.gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19.
Date: Sat,  2 Dec 2023 01:28:54 +0100
With the update, the execution of the test suite was overhauled a lot.
Parallel tests were disabled, since the do not work well.  Since faketime does
cause some tests to hang, test_ssl was moved into a separate run.

* gnu/packages/bittorrent.scm (libtorrent-rasterbar)[version]: Update to
1.2.19.
[arguments]<#:parallel-tests?>: Disable.
[arguments]<#:phases>: Move test_ssl into separate run under faketime.  Do not
run under tests under faketime.  Anchor the regex for test exclusion.  Set
timeout of 600 seconds for each test.

Change-Id: I7392cb3ce1a8815b26b3257498082761255535ee
---
 gnu/packages/bittorrent.scm | 46 ++++++++++++++++++++++++-------------
 1 file changed, 30 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 6f75a92cff..e115c13017 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -417,7 +417,7 @@ (define-public mktorrent
 (define-public libtorrent-rasterbar
   (package
     (name "libtorrent-rasterbar")
-    (version "1.2.18")
+    (version "1.2.19")
     (source
      (origin
        (method url-fetch)
@@ -426,35 +426,49 @@ (define-public libtorrent-rasterbar
                        "releases/download/v" version "/"
                        "libtorrent-rasterbar-" version ".tar.gz"))
        (sha256
-        (base32 "0wpsaqadcicxl4lf1nc1i93c4yzjv8hpzhhrw1hdkrp4gn0vdwpy"))))
+        (base32 "03p4nvsll568zlyqifid0cn135sg5whbk7g48gkbapnw92ayks7f"))))
     (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"))))
          (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")
+                 ;;
+                 ;; 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.
                  (invoke "faketime" "2022-10-24"
                          "ctest"
-                         "--exclude-regex" (string-join disabled-tests "|")
-                         "-j" (if parallel-tests?
-                                  (number->string (parallel-job-count))
-                                  "1")
-                         "--rerun-failed"
+                         "-R" "^test_ssl$"
+                         "-j" jobs
+                         "--timeout" timeout
                          "--output-on-failure"))))))))
     (inputs (list boost openssl))
     (native-inputs

base-commit: 842a11f1caa1bb929c427722ad9d7b7c1ff65727
--
2.41.0




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Wed, 06 Dec 2023 22:51:01 GMT) Full text and rfc822 format available.

Notification sent to Tomas Volf <~@wolfsden.cz>:
bug acknowledged by developer. (Wed, 06 Dec 2023 22:51:01 GMT) Full text and rfc822 format available.

Message #55 received at 67557-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Tomas Volf <~@wolfsden.cz>
Cc: 67557-done <at> debbugs.gnu.org
Subject: Re: [bug#67557] [PATCH 0/5] Update libtorrent-rasterbar and
 dependent programs
Date: Wed, 06 Dec 2023 23:49:44 +0100
Hello Tomas,

Tomas Volf <~@wolfsden.cz> skribis:

>   gnu: libtorrent-rasterbar: Update to 1.2.19.
>   gnu: deluge: Update to 2.1.1.
>   gnu: qbittorrent-enhanced: Update to 4.6.1.10.
>   gnu: qbittorrent: Update to 4.6.2.
>   gnu: libtorrent-rasterbar: Update to 2.0.9.

Applied v3 of the patch series after building all dependents of
‘libtorrent-rasterbar’ locally on x86_64-linux.

Thanks!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#67557; Package guix-patches. (Thu, 07 Dec 2023 15:32:02 GMT) Full text and rfc822 format available.

Message #58 received at 67557-done <at> debbugs.gnu.org (full text, mbox):

From: Tomas Volf <~@wolfsden.cz>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 67557-done <at> debbugs.gnu.org
Subject: Re: [bug#67557] [PATCH 0/5] Update libtorrent-rasterbar and
 dependent programs
Date: Thu, 7 Dec 2023 16:31:34 +0100
[Message part 1 (text/plain, inline)]
Hi,

On 2023-12-06 23:49:44 +0100, Ludovic Courtès wrote:
> Hello Tomas,
>
> Tomas Volf <~@wolfsden.cz> skribis:
>
> >   gnu: libtorrent-rasterbar: Update to 1.2.19.
> >   gnu: deluge: Update to 2.1.1.
> >   gnu: qbittorrent-enhanced: Update to 4.6.1.10.
> >   gnu: qbittorrent: Update to 4.6.2.
> >   gnu: libtorrent-rasterbar: Update to 2.0.9.
>
> Applied v3 of the patch series after building all dependents of
> ‘libtorrent-rasterbar’ locally on x86_64-linux.
>
> Thanks!

No, thank you :)

Tomas

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 05 Jan 2024 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 125 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.