[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.
?
Your comment

This issue is archived.

To comment on this conversation send an email to 63056@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 63056
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch