unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs
@ 2023-11-30 23:19 Tomas Volf
  2023-12-01 12:14 ` [bug#67557] [PATCH 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
                   ` (7 more replies)
  0 siblings, 8 replies; 18+ messages in thread
From: Tomas Volf @ 2023-11-30 23:19 UTC (permalink / raw)
  To: 67558; +Cc: Tomas Volf

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




^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19.
  2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
@ 2023-12-01 12:14 ` Tomas Volf
  2023-12-01 12:14 ` [bug#67557] [PATCH 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 12:14 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH 2/5] gnu: deluge: Update to 2.1.1.
  2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
  2023-12-01 12:14 ` [bug#67557] [PATCH 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
@ 2023-12-01 12:14 ` Tomas Volf
  2023-12-01 12:14 ` [bug#67557] [PATCH 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 12:14 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10.
  2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
  2023-12-01 12:14 ` [bug#67557] [PATCH 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
  2023-12-01 12:14 ` [bug#67557] [PATCH 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
@ 2023-12-01 12:14 ` Tomas Volf
  2023-12-01 12:14 ` [bug#67557] [PATCH 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 12:14 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

 * 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH 4/5] gnu: qbittorrent: Update to 4.6.2.
  2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
                   ` (2 preceding siblings ...)
  2023-12-01 12:14 ` [bug#67557] [PATCH 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
@ 2023-12-01 12:14 ` Tomas Volf
  2023-12-01 12:14 ` [bug#67557] [PATCH 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 12:14 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

* 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9.
  2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
                   ` (3 preceding siblings ...)
  2023-12-01 12:14 ` [bug#67557] [PATCH 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
@ 2023-12-01 12:14 ` Tomas Volf
  2023-12-01 23:15 ` [bug#67557] [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 12:14 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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@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@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@BOq#dwbi`UmGGDb42@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@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@T2{b*FHxeKEdU%OTpar+E*AOkRa9Yk<p!aqZhRv~guIv4
+zpWrTI0o(jo-{8omK6ri)dlZ-?-J*RlrEiUtG+^|n@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@bR)R5STqLRi!OgCcp3h-FU3sr8vVEBud_JQa?>b95jt7N!e7VK
+zvPd&O5m|yGk1z8PjilWmo3V!mD}B&t*$?lsu>xu+`N?E1pFxy?f!Aa}A?uF6@_2Gu
+zWXX_87lqHS67{F~i`obuwP%T=PcKQHj-E$Os~*6zS%t%5)Y_?+SQ`g81$&jsbnH!$
+zzDJIcn@1Mrw}(7>L^#-_an~hLyftP{mH4+bxW{yjWA~&`k2R4XXX5D`_4py$&E~e>
+zF=F#!zzjl{g#jb9qG)15K~j$nyKtF@P(h4ffZ!~<(CstX?49_dk~nLS)bZCneU;7m
+zSd{~_fn<#^`Ioi@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@di3|U&p9rHzWUP$dLz;!_PAIk&ENDBSvd#rdUNh`!FEcUH`ly+u~F%`$$a=9
+zDp){AJAmtjDPv{v4l^UOx2b;#JS`TmIf|zlY?4!H)Id!Op@ka>8%7=dMpnk+X+lJ0
+z#C1vXsnrGdH64ScB1M_&METvsOLDLj=YkQ&q7|LsMC_$*W$Nxw{t^{yBNbq6zQu@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@u4z61_VDiN?NBP
+z^^P}%at2av3@C8@v>vqe<F=S7fL9oh^r@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@0yDmPLnz;07ND%(S2@&R
+zfXfjU`A$pGiV7im%|j%`vE9EZ>I;%)d0~t0OX~sCo5{=qoGqD=xS~RT;fYeV$Wu*p
+zw^f1Z&U4(rkx_kDqrl0@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@C$
+zJYK_o@l390d~?MwVwrf39gZ}^4oHa}zF>kqjdS5)i`t5fR)@+tG}K+fe5~B9u7yf{
+zk3oq!(WUjsu9&Y%+KK@{)Zee`#=5Y$w|kSm@b`tYHGIPJ5<5?bN^id#e6fA^nGeMP
+z_Ot_VkP)&3>NHOnp~QU+cxi?S^7PHH2z<mA57U3h*I@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@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@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@I#2O*ye4HzLq
+z-OCjuK_DHFyxGAuFKW<1VG&1QJB_-U1F9X6UbRU2wi5C0r`Ekd!Mgrln2VFE0WGZQ
+zx*<SGaP8A<=MBWzXB@4u=MPJyb;PmT<o=x}7|r6hr{9|Z<d9d*dz;u)JZSgXskKG~
+zgxtd_Zr<`XQB_FR6B5;ftw@R<!G9SY`OENmdvniiTOwQ;2oUsSF_AQ^K77x11%S>*
+z`Dd@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@lyGxlJnx&uf^a<
+z=jY6Ml~7oP{opGom~yp%q(cS%LQ#xFJ*J{Gxw2*+sulx2s)+7*_4ZD6S>V+8=%rWU
+zmo^$=<8oT6;7LeA@mVqozUatcK%VpO0|cNMmYm<AB^$$-bWyd<uWPpWobJyzbFn#|
+zv+SY8Nfh0ifU!NzYuBjWIuf8<*beVK90I^CL)CInWkTR>@oUK8Rl78{VdRy#mDURI
+z<p%HI@7Leu^gsxg@1g-k8KTb1!b121o;Jn7`I0>gZwn7rlbjxBDZCJK3;lp<hIUoc
+zT+P6#gMRV~QBx1l(%g3oW<ZHWd@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@x{T#4cgipT$U<F=kFgIY9Ofd0g@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@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@B7$D4nAaF6tBzdx
+zvJ$*Xw}R?~g;|UL^;4O;7gH}JnjhCA5j?Nqq@$nC=z=!Qr}moNP{z&`jB@#m%S0Pe
+z@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@K%6t6cQ3ibv$w@93$epX@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@dB?NjMSey?g7u_?jIjLRWiK_;nH@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@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@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@J5uu(5OBFASqdE34s$WY7L@PJ(yp<>Y`e^D8PpM4wmt-uTm<+70p8`A
+zDNUnEloWNfX~NNM6y?w5UdaiwcAId<%pO?SCV|QYL9*)e5-eJd!2E}j_iwGvz~dh=
+z&-fob^Zz9@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@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@ER
+zx>=!w5Lq~WDjnnO3mIBOl_r}-FDk~twDwg^S5E50dpG?NK+nye53?281NxMj=x|dL
+z3U)mm{XO=x@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@3xUsp8x6ra|sBOEh&>J7CIPq+RN<zfjEbN*?$xYVRPO5sptBfqoOL*ENhK
+z-=1h^6CKV}`wTQ9nRrNu|0>vQ`s<N9O4Z@C`1lVD$#HkIkNF>p(;`TeKhJaDTVV9u
+zJFdRzT=?1Tzn|lJlVCWZ_*S-td8o(bR`+UGhOOAzgSDR@!=zwN+-lzUXpJVgH`T6l
+zXkAm7g-4|AlB5@2sM?N3X9@CD<qFuzdk_aa4qN~S#{7{tsHfMZ+7~m1ChhmZ9mK<d
+z-yByAYShSPb4=7@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@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@QE3y!!SGR
+zJ8+b<T(nm@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@fSpXj5m@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@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@JfA-h_UOA{2r^ti!*tT^v?ow`jjjT
+zpCH8t@fv+pi?KDK|J3vQ6?%yu5vms5hKcn?2&rhdfmp$iw1NKe;nuQ=%+~0h@v`sv
+zo_;x^HqR%xGU_h;7tjwnE%Txr(weTrZ!^`~m~*(=zSx*_j@oZL#652bmwaRrLtFNn
+z=#<#EGLNp&f^c=sU0&XA*j}!>y$<SA5e>9TR_<S_kaEv4FCmYUib<F5J`N`<Q5t;n
+z^<hrXj-~Cy1eQYPw6@J?<#E0DTk631f%rso$+N3D>nzj5tNNk2_@NI>*46Q8_ZKJ-
+zYH4mQ@TV_{haw|<W+t^mSBFUm4k6gFOtFjNvq?R$^^Ufib$oy+d;Z+}KeV&SSw|%A
+zLO$GdVB61-rmcnUF5NJ?@H9qE41CiPmV2Ojo>d@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@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@CZbc@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@t(OuT{7
+zu@n$MN-MvU_-d^tbU*xAY8Bi$GI*U`Y1WVlB>AH_RdURh`4y+zu2tm>P_0Z9Jep@a
+zUuKz52n;8FA|mY+&h-vl^tF&0i_$zC8jXQ2aLcq&vt9MnP8G?AXR4=w3%psuXQVQO
+zp!<qkbKJRT4K65L)qQH@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@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@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@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@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@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@mm4zmKlu!-rCuS(9c%DCb8}C2*DsxdiNo
+zS%@t5mofrodYlpqC(XG2G4L#hD8!}|axM+R9Sdr!$<u+r;{gB$##$Udk@I@7`-Uz~
+z&?qE$UH9Q9sMGfPzUZ};@B)&aqEqqpSx7yQQH(D^B%G(vX!|qZmh*{rTGU`or3mFZ
+zkf>Q!jKi6!v+0m7C1?LL_67bg*OV@OV@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@Ti;STZ#ONbJ7PGc7^n3H3m`H3^R|4jqT0CF}xYRqAG
+z8G(M|UB+5sC_3<vNewSw-0iB^3wUz!AC~+k+d-=k3v#E@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@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@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@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@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@PP>+4dYqmbKv~!xc`jyNXX)h#k_!)
+z*JABZBm&pvR0P>$4e=L?Ak^4xWYRIbJ8`&tC@yrr^qK{jMA`wI6#L4I@tO9pO&L}g
+zxR{sN$O3VbFnsUVu2aa@eC&TNNe>>1R<@iQ+|*T*#07M^HY^B7tufLDu5sz#=IZ6U
+zzr&u*0=`uZ9fb+x<E?2c^H6Df9{VRI7_{9FfPvMJO_Re|J(0^b@z`<tDe1?F&I~l6
+zF(8p&Nrk@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@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@7+5
+z3Xu`<KJe`jP~cG4&Nt}plsvKnkk^*+NNNyJtdnjFGfGoX0-x|Ft+4=tN~5ZlmE1gX
+zOy3~tG*=Exf#5?>E@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@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@Qv#JZT?Q(h
+zcQ5lN_^ywDZia@UO#liSZ~N^HsKgOH89OQeU4EDi^EQ&px1rAcs~PoMZDc-3xl+1$
+zGuZisigA<sxBAOA)STam^1)tV`x6L2OTW6SJ`Vl&YwsR=`wuk}Vo`Cj)!rL41mE#f
+zMh9Z@K6v)~29Cw`5DNvTS;h5L*I8o3Fbkbg9z)4iArToZCLV{*FCmPt3m)k`_QB7i
+z9@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@pAA+6)YI?`O`;vNk>}uReh1(7fEEmcAFdm}50Xxq+FQ5W<&K1@#`e+FEL`Ff%d~
+z<LVW3GII$SKO}2OI_dZtEgT^RGw^C9@YhqhZ;F+%I9$gtATb4Ed19nzdBJuo2bEGi
+z>(Ke?!V!YrIc6MCPJg*@_$2W9Astx?^|Z@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@_l?L$}E*C!Zw#-9WN=$F{fqmPB<8$KuB8PsQYrN
+z0f%|;A`)iQNz6{p$ZHIpL8cg@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@O-$+!CfKz69Z;PT2^z1*1tkmAipr2(H%zDFG*
+zWVyR66(cH*wxKeZ+|}M(s@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@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@mSvklr2wqOc
+zlMbOWLS7!WP92e2x9@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@ifVHC@nj@t4Bl>Xj=TeIDK;6Ja%(`Z2=95;NAQweQ>&y_nx<T$i|IaF94>38@
+zKktR31La6GH6IlrPw9xZZ@$=fy?FSG>6C@NJh^uu7O)eGf5m`U^@_HfceB&H6UL}g
+z(b$CGbpq;nK5*);Z#3|_e7w@*_{WRbXn*oU#GE?(gPDfgAq02$V6jB*1ImIl@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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19.
  2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
                   ` (4 preceding siblings ...)
  2023-12-01 12:14 ` [bug#67557] [PATCH 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
@ 2023-12-01 23:15 ` Tomas Volf
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
                     ` (3 more replies)
  2023-12-02  0:28 ` [bug#67557] [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
  2023-12-06 22:49 ` bug#67557: [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Ludovic Courtès
  7 siblings, 4 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 23:15 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v2 2/5] gnu: deluge: Update to 2.1.1.
  2023-12-01 23:15 ` [bug#67557] [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
@ 2023-12-01 23:15   ` Tomas Volf
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 23:15 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v2 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10.
  2023-12-01 23:15 ` [bug#67557] [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
@ 2023-12-01 23:15   ` Tomas Volf
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
  3 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 23:15 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

 * 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v2 4/5] gnu: qbittorrent: Update to 4.6.2.
  2023-12-01 23:15 ` [bug#67557] [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
@ 2023-12-01 23:15   ` Tomas Volf
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
  3 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 23:15 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

* 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v2 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9.
  2023-12-01 23:15 ` [bug#67557] [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
                     ` (2 preceding siblings ...)
  2023-12-01 23:15   ` [bug#67557] [PATCH v2 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
@ 2023-12-01 23:15   ` Tomas Volf
  3 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-01 23:15 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19.
  2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
                   ` (5 preceding siblings ...)
  2023-12-01 23:15 ` [bug#67557] [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
@ 2023-12-02  0:28 ` Tomas Volf
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
                     ` (3 more replies)
  2023-12-06 22:49 ` bug#67557: [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Ludovic Courtès
  7 siblings, 4 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-02  0:28 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v3 2/5] gnu: deluge: Update to 2.1.1.
  2023-12-02  0:28 ` [bug#67557] [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
@ 2023-12-02  0:28   ` Tomas Volf
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-02  0:28 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v3 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10.
  2023-12-02  0:28 ` [bug#67557] [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
@ 2023-12-02  0:28   ` Tomas Volf
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
  3 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-02  0:28 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

 * 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v3 4/5] gnu: qbittorrent: Update to 4.6.2.
  2023-12-02  0:28 ` [bug#67557] [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
@ 2023-12-02  0:28   ` Tomas Volf
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
  3 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-02  0:28 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

* 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





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH v3 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9.
  2023-12-02  0:28 ` [bug#67557] [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
                     ` (2 preceding siblings ...)
  2023-12-02  0:28   ` [bug#67557] [PATCH v3 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
@ 2023-12-02  0:28   ` Tomas Volf
  3 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-02  0:28 UTC (permalink / raw)
  To: 67557; +Cc: Tomas Volf

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




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* bug#67557: [PATCH 0/5] Update libtorrent-rasterbar and dependent programs
  2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
                   ` (6 preceding siblings ...)
  2023-12-02  0:28 ` [bug#67557] [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
@ 2023-12-06 22:49 ` Ludovic Courtès
  2023-12-07 15:31   ` [bug#67557] " Tomas Volf
  7 siblings, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2023-12-06 22:49 UTC (permalink / raw)
  To: Tomas Volf; +Cc: 67557-done

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’.




^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#67557] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs
  2023-12-06 22:49 ` bug#67557: [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Ludovic Courtès
@ 2023-12-07 15:31   ` Tomas Volf
  0 siblings, 0 replies; 18+ messages in thread
From: Tomas Volf @ 2023-12-07 15:31 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 67557-done

[-- Attachment #1: Type: text/plain, Size: 644 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2023-12-07 15:32 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-30 23:19 [bug#67558] [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Tomas Volf
2023-12-01 12:14 ` [bug#67557] [PATCH 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
2023-12-01 12:14 ` [bug#67557] [PATCH 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
2023-12-01 12:14 ` [bug#67557] [PATCH 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
2023-12-01 12:14 ` [bug#67557] [PATCH 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
2023-12-01 12:14 ` [bug#67557] [PATCH 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
2023-12-01 23:15 ` [bug#67557] [PATCH v2 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
2023-12-01 23:15   ` [bug#67557] [PATCH v2 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
2023-12-01 23:15   ` [bug#67557] [PATCH v2 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
2023-12-01 23:15   ` [bug#67557] [PATCH v2 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
2023-12-01 23:15   ` [bug#67557] [PATCH v2 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
2023-12-02  0:28 ` [bug#67557] [PATCH v3 1/5] gnu: libtorrent-rasterbar: Update to 1.2.19 Tomas Volf
2023-12-02  0:28   ` [bug#67557] [PATCH v3 2/5] gnu: deluge: Update to 2.1.1 Tomas Volf
2023-12-02  0:28   ` [bug#67557] [PATCH v3 3/5] gnu: qbittorrent-enhanced: Update to 4.6.1.10 Tomas Volf
2023-12-02  0:28   ` [bug#67557] [PATCH v3 4/5] gnu: qbittorrent: Update to 4.6.2 Tomas Volf
2023-12-02  0:28   ` [bug#67557] [PATCH v3 5/5] gnu: libtorrent-rasterbar: Update to 2.0.9 Tomas Volf
2023-12-06 22:49 ` bug#67557: [PATCH 0/5] Update libtorrent-rasterbar and dependent programs Ludovic Courtès
2023-12-07 15:31   ` [bug#67557] " Tomas Volf

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).