[PATCH] gnu: Transmission: Update to 4.0.3.

  • Done
  • quality assurance status badge
Details
3 participants
  • Clément Lassieur
  • Leo Famulari
  • Liliana Marie Prikler
Owner
unassigned
Submitted by
Leo Famulari
Severity
normal
L
L
Leo Famulari wrote on 24 Apr 2023 19:47
(address . guix-patches@gnu.org)
ed3bf2a120894403bdef475bdc032984def80bac.1682358364.git.leo@famulari.name
This updates Transmission to 4.0.3. This is a major upgrade with lots of
changes upstream:


It works ... if you remove the '#:glib-or-gtk-wrap-excluded-outputs'.

The build system has changed from glib-or-gtk to cmake, but we still
need to wrap the 'gui' output. But, I can't figure out how to apply this
key from the glib-or-gtk build system to this cmake package.

Any advice? We only want to wrap the 'gui' output.

* gnu/packages/bittorrent.scm: Update to 4.0.3.
[build-system]: Use cmake-build-system.
[source]: Remove obsolete patch.
[inputs]: Add gtkmm, glib:bin, and python.
[arguments]: Run the test suite. Remove #:glib-or-gtk-wrap-excluded-outputs.
Import the glib-or-gtk-build-system and wrap the build outputs.
Remove #:configure-flags. Adjust the 'move-gui' phase to upstream changes.
* gnu/packages/patches/transmission-honor-localedir.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
gnu/local.mk | 1 -
gnu/packages/bittorrent.scm | 89 ++++++++++---------
.../transmission-honor-localedir.patch | 34 -------
3 files changed, 49 insertions(+), 75 deletions(-)
delete mode 100644 gnu/packages/patches/transmission-honor-localedir.patch

Toggle diff (179 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index ee90d102ac..c93c4e1dc5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1925,7 +1925,6 @@ dist_patch_DATA = \
%D%/packages/patches/tootle-reason-phrase.patch \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/transfig-gcc10-fno-common.patch \
- %D%/packages/patches/transmission-honor-localedir.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
%D%/packages/patches/trytond-add-guix_trytond_path.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index bfe524366c..fd04e07e0c 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -65,6 +65,7 @@ (define-module (gnu packages bittorrent)
#:use-module (gnu packages libevent)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages nettle)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -76,12 +77,13 @@ (define-module (gnu packages bittorrent)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages upnp)
#:use-module (gnu packages xml))
(define-public transmission
(package
(name "transmission")
- (version "3.00")
+ (version "4.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/transmission/transmission"
@@ -89,51 +91,58 @@ (define-public transmission
version ".tar.xz"))
(sha256
(base32
- "1wjmn96zrvmk8j1yz2ysmqd7a2x6ilvnwwapcvfzgxs2wwpnai4i"))
- (patches (search-patches "transmission-honor-localedir.patch"))))
- (build-system glib-or-gtk-build-system)
+ "0njlmpcdsxwx8vwdk9dvsby51l6f6awks9d0mgvi9fs2ivaizc5n"
+ ))))
+ (build-system cmake-build-system)
(outputs '("out" ; library and command-line interface
"gui")) ; graphical user interface
(arguments
- '(#:configure-flags
- (list (string-append "--localedir="
- (assoc-ref %outputs "gui")
- "/share/locale"))
- ;; Some tests segfault when using libevent 2.12 without internet
- ;; connection. This has been reported mainstream but not fixed yet:
- ;; https://github.com/transmission/transmission/issues/1437.
- #:tests? #f
- #:glib-or-gtk-wrap-excluded-outputs '("out")
- #:phases
- (modify-phases %standard-phases
+ (list
+ #:imported-modules `((guix build glib-or-gtk-build-system)
+ ,@%cmake-build-system-modules)
+ #:modules '(((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ (guix build cmake-build-system)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
;; Avoid embedding kernel version for reproducible build
- (add-after 'unpack 'remove-kernel-version
- (lambda _
- (substitute* "third-party/miniupnpc/updateminiupnpcstrings.sh"
- (("OS_VERSION=`uname -r`") "OS_VERSION=Guix"))))
- (add-after 'install 'move-gui
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Move the GUI to its own output, so that "out" doesn't
- ;; depend on GTK+.
- (let ((out (assoc-ref outputs "out"))
- (gui (assoc-ref outputs "gui")))
- (mkdir-p (string-append gui "/bin"))
- (rename-file (string-append out "/bin/transmission-gtk")
- (string-append gui "/bin/transmission-gtk"))
-
+ (add-after 'unpack 'remove-kernel-version
+ (lambda _
+ (substitute* "third-party/miniupnpc/updateminiupnpcstrings.sh"
+ (("OS_VERSION=`uname -r`") "OS_VERSION=Guix"))))
+ (replace 'check
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (if tests?
+ ;; XXX this test fails...
+ (invoke "ctest" "-E" "usesBootstrapFile"
+ "-j" (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1"))
+ (format #t "test suite not run~%"))))
+ (add-after 'install 'move-gui
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append #$output:gui "/bin"))
+ (mkdir-p (string-append #$output:gui "/share/man/man1"))
+ (rename-file (string-append #$output "/bin/transmission-gtk")
+ (string-append #$output:gui "/bin/transmission-gtk"))
(for-each
(lambda (dir)
- (rename-file (string-append out "/share/" dir)
- (string-append gui "/share/" dir)))
- '("appdata" "applications" "icons" "pixmaps"))
-
- (mkdir-p (string-append gui "/share/man/man1"))
- (rename-file
- (string-append out "/share/man/man1/transmission-gtk.1")
- (string-append gui "/share/man/man1/transmission-gtk.1"))
- #t))))))
- (inputs
- (list libevent curl openssl zlib gtk+ libappindicator))
+ (rename-file (string-append #$output "/share/" dir)
+ (string-append #$output:gui "/share/" dir)))
+ '("applications" "icons" "metainfo" "transmission"))
+ (rename-file
+ (string-append #$output "/share/man/man1/transmission-gtk.1")
+ (string-append #$output:gui "/share/man/man1/transmission-gtk.1"))))
+ (add-after 'move-gui 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (inputs (list curl
+ (list glib "bin")
+ gtkmm
+ libappindicator
+ libevent
+ openssl
+ python
+ zlib))
(native-inputs
(list intltool pkg-config))
(home-page "https://transmissionbt.com/")
diff --git a/gnu/packages/patches/transmission-honor-localedir.patch b/gnu/packages/patches/transmission-honor-localedir.patch
deleted file mode 100644
index 70c66bfb2b..0000000000
--- a/gnu/packages/patches/transmission-honor-localedir.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-This patch modifies Transmission so it honors the "localedir" option
-passed to its configure script, allowing GTK-specific localization
-data to be placed in the package's "gui" output.
-
-Without this patch, localization of transmission-gtk can break as the
-application will expect to find this data in the package's default
-output (as a result of the call to bindtextdomain in gtk/main.c).
-
-diff --git a/configure b/configure
-index a29e24f..3ae8ef4 100755
---- a/configure
-+++ b/configure
-@@ -21305,7 +21305,7 @@ $as_echo "$LINGUAS" >&6; }
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
-
-- transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
-+ transmissionlocaledir='${localedir}'
-
- fi
-
-diff --git a/configure.ac b/configure.ac
-index 57d3cae..ab62093 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -563,7 +563,7 @@ if test "x$enable_nls" = "xyes" ; then
- AC_SUBST(GETTEXT_PACKAGE)
- AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
- AM_GLIB_GNU_GETTEXT
-- transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
-+ transmissionlocaledir='${localedir}'
- AC_SUBST(transmissionlocaledir)
- fi
- AC_SUBST(INTLLIBS)
--
2.39.2
L
L
Leo Famulari wrote on 25 Apr 2023 00:39
[PATCH v2] gnu: Transmission: Update to 4.0.3.
(address . 63056@debbugs.gnu.org)
d5c68558618e58d961cc5ed67f018474ac0c3862.1682375975.git.leo@famulari.name
Thanks to help from Efraim, the wrap phase is working properly now!

* gnu/packages/bittorrent.scm: Update to 4.0.3.
[build-system]: Use cmake-build-system.
[source]: Remove obsolete patch.
[inputs]: Add gtkmm, glib:bin, and python.
[arguments]: Run the test suite. Import the glib-or-gtk-build-system and wrap
the 'gui' build output. Remove #:configure-flags. Adjust the 'move-gui' phase
to upstream changes.
* gnu/packages/patches/transmission-honor-localedir.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
gnu/local.mk | 1 -
gnu/packages/bittorrent.scm | 89 ++++++++++---------
.../transmission-honor-localedir.patch | 34 -------
3 files changed, 49 insertions(+), 75 deletions(-)
delete mode 100644 gnu/packages/patches/transmission-honor-localedir.patch

Toggle diff (167 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index ee90d102ac..c93c4e1dc5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1925,7 +1925,6 @@ dist_patch_DATA = \
%D%/packages/patches/tootle-reason-phrase.patch \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/transfig-gcc10-fno-common.patch \
- %D%/packages/patches/transmission-honor-localedir.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
%D%/packages/patches/trytond-add-guix_trytond_path.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index bfe524366c..8e345f2de7 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -81,7 +81,7 @@ (define-module (gnu packages bittorrent)
(define-public transmission
(package
(name "transmission")
- (version "3.00")
+ (version "4.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/transmission/transmission"
@@ -89,51 +89,60 @@ (define-public transmission
version ".tar.xz"))
(sha256
(base32
- "1wjmn96zrvmk8j1yz2ysmqd7a2x6ilvnwwapcvfzgxs2wwpnai4i"))
- (patches (search-patches "transmission-honor-localedir.patch"))))
- (build-system glib-or-gtk-build-system)
+ "0njlmpcdsxwx8vwdk9dvsby51l6f6awks9d0mgvi9fs2ivaizc5n"))))
+ (build-system cmake-build-system)
(outputs '("out" ; library and command-line interface
"gui")) ; graphical user interface
(arguments
- '(#:configure-flags
- (list (string-append "--localedir="
- (assoc-ref %outputs "gui")
- "/share/locale"))
- ;; Some tests segfault when using libevent 2.12 without internet
- ;; connection. This has been reported mainstream but not fixed yet:
- ;; https://github.com/transmission/transmission/issues/1437.
- #:tests? #f
- #:glib-or-gtk-wrap-excluded-outputs '("out")
- #:phases
- (modify-phases %standard-phases
+ (list
+ #:imported-modules `((guix build glib-or-gtk-build-system)
+ ,@%cmake-build-system-modules)
+ #:modules '(((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ (guix build cmake-build-system)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
;; Avoid embedding kernel version for reproducible build
- (add-after 'unpack 'remove-kernel-version
- (lambda _
- (substitute* "third-party/miniupnpc/updateminiupnpcstrings.sh"
- (("OS_VERSION=`uname -r`") "OS_VERSION=Guix"))))
- (add-after 'install 'move-gui
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Move the GUI to its own output, so that "out" doesn't
- ;; depend on GTK+.
- (let ((out (assoc-ref outputs "out"))
- (gui (assoc-ref outputs "gui")))
- (mkdir-p (string-append gui "/bin"))
- (rename-file (string-append out "/bin/transmission-gtk")
- (string-append gui "/bin/transmission-gtk"))
-
+ (add-after 'unpack 'remove-kernel-version
+ (lambda _
+ (substitute* "third-party/miniupnpc/updateminiupnpcstrings.sh"
+ (("OS_VERSION=`uname -r`") "OS_VERSION=Guix"))))
+ (replace 'check
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (if tests?
+ ;; XXX this test fails...
+ (invoke "ctest" "-E" "usesBootstrapFile"
+ "-j" (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1"))
+ (format #t "test suite not run~%"))))
+ (add-after 'install 'move-gui
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append #$output:gui "/bin"))
+ (mkdir-p (string-append #$output:gui "/share/man/man1"))
+ (rename-file (string-append #$output "/bin/transmission-gtk")
+ (string-append #$output:gui "/bin/transmission-gtk"))
(for-each
(lambda (dir)
- (rename-file (string-append out "/share/" dir)
- (string-append gui "/share/" dir)))
- '("appdata" "applications" "icons" "pixmaps"))
-
- (mkdir-p (string-append gui "/share/man/man1"))
- (rename-file
- (string-append out "/share/man/man1/transmission-gtk.1")
- (string-append gui "/share/man/man1/transmission-gtk.1"))
- #t))))))
- (inputs
- (list libevent curl openssl zlib gtk+ libappindicator))
+ (rename-file (string-append #$output "/share/" dir)
+ (string-append #$output:gui "/share/" dir)))
+ '("applications" "icons" "metainfo" "transmission"))
+ (rename-file
+ (string-append #$output "/share/man/man1/transmission-gtk.1")
+ (string-append #$output:gui "/share/man/man1/transmission-gtk.1"))))
+ (add-after 'move-gui 'glib-or-gtk-wrap
+ (lambda* (#:key outputs #:allow-other-keys #:rest args)
+ (apply (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)
+ #:glib-or-gtk-wrap-excluded-outputs (list "out")
+ args))))))
+ (inputs (list curl
+ (list glib "bin")
+ gtkmm
+ libappindicator
+ libevent
+ openssl
+ python
+ zlib))
(native-inputs
(list intltool pkg-config))
(home-page "https://transmissionbt.com/")
diff --git a/gnu/packages/patches/transmission-honor-localedir.patch b/gnu/packages/patches/transmission-honor-localedir.patch
deleted file mode 100644
index 70c66bfb2b..0000000000
--- a/gnu/packages/patches/transmission-honor-localedir.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-This patch modifies Transmission so it honors the "localedir" option
-passed to its configure script, allowing GTK-specific localization
-data to be placed in the package's "gui" output.
-
-Without this patch, localization of transmission-gtk can break as the
-application will expect to find this data in the package's default
-output (as a result of the call to bindtextdomain in gtk/main.c).
-
-diff --git a/configure b/configure
-index a29e24f..3ae8ef4 100755
---- a/configure
-+++ b/configure
-@@ -21305,7 +21305,7 @@ $as_echo "$LINGUAS" >&6; }
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
-
-- transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
-+ transmissionlocaledir='${localedir}'
-
- fi
-
-diff --git a/configure.ac b/configure.ac
-index 57d3cae..ab62093 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -563,7 +563,7 @@ if test "x$enable_nls" = "xyes" ; then
- AC_SUBST(GETTEXT_PACKAGE)
- AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
- AM_GLIB_GNU_GETTEXT
-- transmissionlocaledir='${prefix}/${DATADIRNAME}/locale'
-+ transmissionlocaledir='${localedir}'
- AC_SUBST(transmissionlocaledir)
- fi
- AC_SUBST(INTLLIBS)
--
2.39.2
L
L
Liliana Marie Prikler wrote on 30 Apr 2023 18:27
2c5682c387c172856c67c20df1a4cd28006c7a93.camel@gmail.com
Am Montag, dem 24.04.2023 um 18:39 -0400 schrieb Leo Famulari:
Toggle quote (13 lines)
> Thanks to help from Efraim, the wrap phase is working properly now!
>
> * gnu/packages/bittorrent.scm: Update to 4.0.3.
> [build-system]: Use cmake-build-system.
> [source]: Remove obsolete patch.
> [inputs]: Add gtkmm, glib:bin, and python.
> [arguments]: Run the test suite. Import the glib-or-gtk-build-system
> and wrap the 'gui' build output.  Remove #:configure-flags. Adjust
> the 'move-gui' phase to upstream changes.
> * gnu/packages/patches/transmission-honor-localedir.patch: Delete
> file.
> * gnu/local.mk (dist_patch_DATA): Remove it.
> ---
LGTM, this patch just saved my evening :)
L
L
Leo Famulari wrote on 1 May 2023 06:47
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)(address . 63056-done@debbugs.gnu.org)
ZE9EUZNWExxm1Qn7@jasmine.lan
On Sun, Apr 30, 2023 at 06:27:09PM +0200, Liliana Marie Prikler wrote:
Toggle quote (2 lines)
> LGTM, this patch just saved my evening :)

That's what I like to hear!

Pushed as 8b3ae46ae3f80e285fe9c680bdaaaad1c57406b9
Closed
C
C
Clément Lassieur wrote on 25 Sep 2023 13:29
(name . GNU bug tracker automated control server)(address . control@debbugs.gnu.org)
3c23b519-998b-4b62-93b0-b8ffd9f6ad36@app.fastmail.com
unarchive 63056
Attachment: file
C
C
Clément Lassieur wrote on 25 Sep 2023 13:32
(address . 63056@debbugs.gnu.org)
51e40a50-13b0-4ef4-b83c-b4a2f5892d25@app.fastmail.com
Hi, it seems to me that this patch broke transmission-daemon (if gui is not installed).

Would that be OK if I patch it so it puts the "share/transmission" directory back in the default output? (Which only contains "public_html".)

It would look like
Toggle quote (10 lines)
> @@ -127,7 +127,7 @@ (define-public transmission
> (lambda (dir)
> (rename-file (string-append #$output "/share/" dir)
> (string-append #$output:gui "/share/" dir)))
> - '("applications" "icons" "metainfo" "transmission"))
> + '("applications" "icons" "metainfo"))
> (rename-file
> (string-append #$output "/share/man/man1/transmission-gtk.1")
> (string-append #$output:gui "/share/man/man1/transmission-gtk.1"))))

Thanks,
Clément
Attachment: file
L
L
Leo Famulari wrote on 26 Sep 2023 04:44
(name . Clément Lassieur)(address . clement@lassieur.org)
ZRJFdtSOR2DIU97w@jasmine.lan
On Mon, Sep 25, 2023 at 01:26:53PM +0200, Cl�ment Lassieur wrote:
Toggle quote (4 lines)
> Hi, it seems to me that this patch broke transmission-daemon (if gui is not installed).
>
> Would that be OK if I patch it so it puts the "share/transmission" directory back in the default output? (Which only contains "public_html".)

As long as it fixes the daemon and the GUI still works, sounds fine.
?