diff mbox series

[bug#52486] gnu: deluge: Move librsvg to native inputs.

Message ID 20211214172151.28831-1-dev@jpoiret.xyz
State Accepted
Headers show
Series [bug#52486] gnu: deluge: Move librsvg to native inputs. | expand

Commit Message

Josselin Poiret Dec. 14, 2021, 5:21 p.m. UTC
Grepping the source code shows that librsvg is run by the
builder, and not by deluge itself.  This fixes propagation conflicting
with gtk+'s librsvg.  For now, use the C variant to build on all archs.
-- >8 --

* gnu/packages/bittorrent.scm (deluge): Do it.
---
 gnu/packages/bittorrent.scm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Leo Famulari Dec. 14, 2021, 5:56 p.m. UTC | #1
On Tue, Dec 14, 2021 at 06:21:51PM +0100, Josselin Poiret via Guix-patches via wrote:
> Grepping the source code shows that librsvg is run by the
> builder, and not by deluge itself.  This fixes propagation conflicting
> with gtk+'s librsvg.  For now, use the C variant to build on all archs.
> -- >8 --

I applied your patch and built Deluge. Then, I checked what packages it
keeps a reference to:

------
$ guix gc --references $(./pre-inst-env guix build deluge) | grep librsvg
/gnu/store/2dza2psfbrrbvsni8jjqzzqx3hmm8kw8-librsvg-2.50.7
/gnu/store/zxpbc78z40x7dr3ls4dgclkq7i4agx7a-librsvg-2.40.21
------

So, Guix already records a run-time dependency on the Rust variant of
librsvg (likely via GTK+), as well as the C variant if we apply your
patch.

I agree that, if Deluge does not use librsvg at run-time, we should make
it a non-propagated-input. But, we should use the Rust variant on
platforms where it is supported. Check the package definition of GTK+
for an example.

And we should also make it a 'regular' input, because the package does
keep a run-time reference to it.

We are phasing out the C variant because it is abandoned upstream and no
longer receiving security updates.
Josselin Poiret Dec. 14, 2021, 7:17 p.m. UTC | #2
Hello again,

This time, a modified patch that selects the proper librsvg as is done
in the gtk definition, but adapted for native-inputs, as well as
another that removes the reference to the librsvg needed at build
time.
`guix size /gnu/store/azyp0avyr91jzwwdb3q82al44r3a8g1h-deluge-2.0.3`
reports only one librsvg, that of GTK.

I've tested this by adding a torrent, checking that it does in fact
download.  The UI looks ok, so I guess it should work.

Best,
Josselin

Josselin Poiret (2):
  gnu: deluge: Move librsvg to native inputs
  gnu: deluge: Remove reference of build-time librsvg

 gnu/packages/bittorrent.scm | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
Brice Waegeneire Jan. 16, 2022, 10:52 a.m. UTC | #3
Hello Josselin

Josselin Poiret <dev@jpoiret.xyz> writes:

> Josselin Poiret (2):
>   gnu: deluge: Move librsvg to native inputs
>   gnu: deluge: Remove reference of build-time librsvg

Thanks for the patch, it fixes the issue with librsvg as expected. Pushed as
1471219a8aabd2d8ad1f6bf1216c734ce73ae175, I've added your copyright to it.

Cheers,
- Brice
Brice Waegeneire Jan. 16, 2022, 10:52 a.m. UTC | #4
Hello Josselin

Josselin Poiret <dev@jpoiret.xyz> writes:

> Josselin Poiret (2):
>   gnu: deluge: Move librsvg to native inputs
>   gnu: deluge: Remove reference of build-time librsvg

Thanks for the patch, it fixes the issue with librsvg as expected. Pushed as
1471219a8aabd2d8ad1f6bf1216c734ce73ae175, I've added your copyright to it.

Cheers,
- Brice
diff mbox series

Patch

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 0dcb1ee991..5513878fc0 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -528,7 +528,6 @@  (define-public deluge
     (build-system python-build-system)
     (propagated-inputs
      `(("gtk+" ,gtk+)
-       ("librsvg" ,librsvg)
        ("libtorrent" ,libtorrent-rasterbar)
        ("python-pycairo" ,python-pycairo)
        ("python-chardet" ,python-chardet)
@@ -545,7 +544,7 @@  (define-public deluge
        ("python-twisted" ,python-twisted)
        ("python-zope-interface" ,python-zope-interface)))
     (native-inputs
-     (list intltool python-wheel))
+     (list intltool python-wheel librsvg-2.40))
     ;; 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