Bug 915403 - librsvg2 needlessly depends on gtk3
Summary: librsvg2 needlessly depends on gtk3
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: librsvg2
Version: 18
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Matthias Clasen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: depchain
TreeView+ depends on / blocked
 
Reported: 2013-02-25 16:44 UTC by Kevin Kofler
Modified: 2013-05-16 05:23 UTC (History)
4 users (show)

Fixed In Version: librsvg2-2.37.0-3.fc19
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-05-16 05:23:34 UTC
Type: Bug


Attachments (Terms of Use)

Description Kevin Kofler 2013-02-25 16:44:28 UTC
Description of problem:
librsvg2 contains some executables in the main package which are not needed for packages using the library, and the rsvg-view3 binary drags in gtk3. This is a serious issue because librsvg2 is used by a lot of non-GTK+ libraries such as gstreamer-plugins-bad-free and ImageMagick, making large parts of the distribution (including all of KDE) depend indirectly on gtk3.

Version-Release number of selected component (if applicable):
librsvg2-2.37.0-2.fc19 (and older)

How reproducible:
Always

Steps to Reproduce:
1. yum remove gtk3
  
Actual results:
yum wants to remove librsvg2, and with it KDE and other non-GTK+ stuff.

Expected results:
yum does not remove librsvg2 nor its dependencies when removing gtk3.

Additional info:
Please put rsvg-view3 (and maybe rsvg-convert, though that one doesn't seem to have obnoxious dependencies) into a subpackage.

Comment 1 Kalev Lember 2013-05-11 19:58:56 UTC
I have done a build with rsvg-view-3 and rsvg-convert split out to a -tools subpackage. Can you give it a try, please?

Comment 2 Fedora Update System 2013-05-11 19:59:17 UTC
librsvg2-2.37.0-3.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/librsvg2-2.37.0-3.fc19

Comment 3 Eugene A. Pivnev 2013-05-12 05:20:13 UTC
(In reply to comment #2)
> librsvg2-2.37.0-3.fc19 has been submitted as an update for Fedora 19.
> https://admin.fedoraproject.org/updates/librsvg2-2.37.0-3.fc19

And for Fedora 18 too, please.

Comment 4 Kalev Lember 2013-05-12 10:21:45 UTC
Sorry, I'm afraid dependency changes like this are for new Fedora releases only.

Comment 5 Kevin Kofler 2013-05-12 10:31:16 UTC
Says who? If you do the usual upgrade path trick, which is to add to librsvg2-tools an:
Obsoletes: librsvg2 < 2.37.0-3
(the EVR at which the split got made) which makes sure people upgrading from the unsplit librsvg2 get the -tools subpackage (which also requires the main package, so nothing gets lost) dragged in by default (but are able to remove it afterwards), this is totally safe to do in an update, and in fact it has been done many times.

(Please note that you DON'T want to obsolete librsvg2 < %{version}-%{release}, because you don't want to drag in -tools for people who are upgrading from an already split package. You should hardcode the EVR at which the split was made, which is 2.37.0-3.)

Comment 6 Kalev Lember 2013-05-12 14:26:32 UTC
Things can still break for new installs.

For instance, consider an app 'foo' that needs rsvg-convert to function. So far it has worked fine: it has had a dep on librsvg2 (perhaps through rpm autogenerated library deps, perhaps through Requires: librsvg2). What happens if we move rsvg-convert to a subpackage?

 1) New package installs through yum break. yum install 'foo' will no longer drag in rsvg-convert.

 2) Clean Fedora installs can break the same was as (1) when done via netinstall.

 3) Existing installs can break. package-cleanup is now going to say that librsvg2-tools can be safely removed, while 'foo' really needs it.

Now, these are all very much thought up issues. It's possible that none of this will happen. And it's equally possible that something will break. We do not know.

This is what F19 testing is for. To test the whole distro together and fix any issues that crop up.

Comment 7 Kevin Kofler 2013-05-12 14:54:37 UTC
Still, many of these splits have been done in the past, usually with no issues, and IMHO the bogus dependency is a bug that needs to be fixed ASAP. So +1 to Eugene's request for an F18 update, and I'm hereby adding a request for an F17 one to that.

Comment 8 Kevin Kofler 2013-05-12 14:59:17 UTC
Oh, and if you're worried about hidden dependencies on rsvg-convert, you could keep that in the main package for F17/F18, it does not depend on gtk3. rsvg-view3 (the actual offender) surely isn't used by programs.

Comment 9 Fedora Update System 2013-05-12 17:51:46 UTC
Package librsvg2-2.37.0-3.fc19:
* should fix your issue,
* was pushed to the Fedora 19 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing librsvg2-2.37.0-3.fc19'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-7978/librsvg2-2.37.0-3.fc19
then log in and leave karma (feedback).

Comment 10 Matthias Clasen 2013-05-13 16:03:12 UTC
(In reply to comment #8)
> Oh, and if you're worried about hidden dependencies on rsvg-convert, you
> could keep that in the main package for F17/F18, it does not depend on gtk3.
> rsvg-view3 (the actual offender) surely isn't used by programs.

And the easiest way to avoid the breakage is to just not do these sorts of inappropriate changes in a released product.

Comment 11 Kevin Kofler 2013-05-13 16:13:21 UTC
Removing a totally inappropriate dependency is very much appropriate in a released product.

Comment 12 Matthias Clasen 2013-05-13 17:24:18 UTC
not going to argue it further.

Comment 13 Fedora Update System 2013-05-16 05:23:34 UTC
librsvg2-2.37.0-3.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.