On 01/06/16 16:24, Greg Hellings wrote:
I'm looking into a bug filed against one of my applications (BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1330096). The complaint is that the gnome-software application picks up the xiphos-common package when the user tries to install from there, rather than picking up the actual GUI packages (which are available as xiphos-gtk2 and xiphos-gtk3). I need some advice on the proper way to handle this. First, a little explanation of the three packages. Upstream Xiphos includes some support for building against GTK3 but has no intention of moving to that for its primary support on its current roadmap. Thus, there are occasionally bugs against the GTK3 build that are left as low-priority tasks - sometimes these will render the GTK3 build completely unusable. Thus, upstream recommends building only against GTK2. To satisfy both camps, and to allow ease of bug reporting (i.e. identifying if the bug is a regression in GTK3 interfaces vs a bug in Xiphos) and for various other reasons, both xiphos-gtk{2,3} were made available. There are a small number of static or data files which can be shared between the two builds - translations, etc. These are packaged as xiphos-common, which is a dep of both the binary packages. One of those files that is shared between the two is the %{_datadir}/appdata/xiphos.appdata.xml, which appears to be what triggers gnome-software to consider a particular package the GUI app-containing package that ought to be installed. What is the proper way for me to resolve the install issue with gnome-software? I don't feel like moving the xiphos.appdata.xml file is appropriate in this case. The two binary packages are the same application. Setting a hard dep from xiphos-common to either binary package would create a cyclic dependency - not that this would necessarily be the end of the world, but I don't want to just assume that is appropriate behavior. Is there a way for me to indicate that installing xiphos-common requires at least one of xiphos-gtk{2,3} be installed but which does not create a cyclic dependency? Is a "Recommends" line the appropriate way to go (and would gnome-software pick up on that recommendation?). I need a little guidance here. My Google skills didn't turn up any clear answers to this particular predicament.
I had a similar problem with bluefish, though there is only one "binary" package and one "data" package there, I fixed it by making them require each other.
You could achieve a similar result by having both xiphos-gtk{2,3} "Provides: xiphos-binary = %{version}-%{release}" and xiphos-common "Requires: xiphos-binary = %{version}-%{release}".
If you want to prefer one of those binaries over the other, you could add a specific Recommends: for that version.
Paul. -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx