Bug 952324

Summary: [libsolv] nothing provides appdata(Thunar.appdata.xml) needed by application:Thunar File Manager-.noarch
Product: [openSUSE] openSUSE Distribution Reporter: Carlos Robinson <carlos.e.r>
Component: X11 ApplicationsAssignee: E-mail List <bnc-team-xfce>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: astieger, brr, constant, davejplater, dimstar, ggaribaldi, illumilore, jengelh, jmammen, ma, maintenance, mls
Version: Leap 42.1   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 42.1   
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Carlos Robinson 2015-10-28 02:01:24 UTC
I get the following conflict in YaST when trying to install some unrelated package:

nothing provides appdata(Thunar.appdata.xml) needed by application:Thunar File Manager-.noarch

    [ ] deinstallation of application:Thunar File Manager-.noarch

    [ ] break application:Thunar File Manager-.noarch by ignoring some
of its dependencies

#### YaST2 conflicts list END ###

I don't know if more data is needed; if so, just ask. I was told to report here.

referencia: <http://lists.opensuse.org/opensuse-factory/2015-10/msg01158.html>
Comment 1 Dominique Leuenberger 2015-10-28 08:28:11 UTC
Let me post here as well the answer I gave on the mailing list, so it becomes clear what needs to be done:

That one can be seen as a libzypp bug or a thunar bug; the fix is
certainly easier in Thunar.

The package provides:

Now, thunar does not really do anything 'invalid' there, as the
provided appdata.xml correctly references Thunar.desktop, but libzypp
falls on the nose with it.

For this error to disappear, the appdata file and the .desktop file
should use the same basename.

So the easiest fix is for Thunar to rename thunar.appdata.xml to
Thunar.appdata.xml; then the problem disappears (do not rename the
.desktop file, or you will need to patch the appdata.xml, which
references the .desktop file by name)

In the longer run, libzypp might need a fix to not be so pedantic about
it (the AppData standard does not mandate the names to be equal; but
from any upstream project PoV, it's good practice to reuse the naming
schemes throughout the project anyway).
Comment 2 Michael Andres 2015-10-29 16:44:53 UTC
The problem is neither the (In reply to Dominique Leuenberger from comment #1)
> In the longer run, libzypp might need a fix to not be so pedantic about it

AFAICS the libsolv parser is not pedantic, the information about the appdata.xml file seems to be missing in the repos appdata.xml.gz. 

+ An installed 'application:Thunar File Manager' is created from parsing /usr/share/appdata/thunar.appdata.xml. The filename defines the 'appdata(thunar.appdata.xml)' requirement. This works well.

- Within the repository however, all the appdata's are collected in a single appdata.xml.gz. Each <component> entry defines an application: object, but the components data do not hint to the name of the corresponding packages 'appdata(thunar.appdata.xml)' provides, which the application: object should require.

Libsolv tries to somehow guess this from the component/id field (Thunar.desktop ==> Thunar.appdata.xml), but in this case guessing fails. 

@mls: do you already have a solution in mind for this?
Comment 3 Dominique Leuenberger 2015-10-29 16:55:03 UTC
(In reply to Michael Andres from comment #2)

appdata.xml.gz contains:

<component type="desktop">
<name>Thunar File Manager</name>

thunar.appdata.xml contains:
  <id type="desktop">Thunar.desktop</id>

but of course there is no longer any reference anywhere that THIS piece from appdata.xml.gz references a specific appdata.xml file

There IS, however, an EXPLCIT hint at the package name in the <pkgname> attribute in appdata.xml.gz
Comment 4 Dominique Leuenberger 2015-10-29 16:59:29 UTC
and the 'being pedantic' was meant as it uses an algo to guess things (.desktop filename matching .appdata.xml file name) where this is not a strict requirement 'normally' (currently it is for solv).

I don't mind if we find a solution in solv or just mandate this for openSUSE that we want the names to be align - both are sort-of valid approaches.
Comment 5 Michael Andres 2015-11-11 08:24:35 UTC
*** Bug 953070 has been marked as a duplicate of this bug. ***
Comment 6 Michael Andres 2015-11-13 14:04:00 UTC
> https://github.com/openSUSE/libsolv/pull/113
Suggested libsolv patch to follow explicit package name hints in appdata.xml.gz rather than guessing the appdata(...) provides.
Comment 7 Michael Andres 2016-01-11 08:48:18 UTC
This should be fixed in libsolv-0.6.15.

Maintenance updates for 13.2/SLE12/LEAP/SLE12SP1 are running
Comment 8 Michael Andres 2016-01-11 08:48:51 UTC
*** Bug 926865 has been marked as a duplicate of this bug. ***
Comment 9 Michael Andres 2016-01-11 08:52:41 UTC
*** Bug 961304 has been marked as a duplicate of this bug. ***
Comment 10 Michael Andres 2016-01-19 16:15:04 UTC
*** Bug 962214 has been marked as a duplicate of this bug. ***
Comment 11 Dave Plater 2016-01-24 14:07:17 UTC
I don't think this bug is actually an installation system problem but is caused by certain rules not being followed with desktop files and their related appdata.xml files.
Thunar for instance has the desktop file Thunar.desktop, note the capital T and the appdata file thunar.appdata.xml. The appdata file should have a <name> field matching the desktop file's name field "Thunar File Manager" and it's desktop file's name must match the appdata.xml file's name ie. thunar.desktop and thunar.appdata.xml also the "id type" needs to be patched with the corrected desktop file name.

I've performed all these changes to my package buzztrax, which I'm trying to submit to Factory and it installs, uninstalls, updates and causes no zypper verify errors.
Comment 12 Dave Plater 2016-01-24 14:16:36 UTC
Sorry, to explain the last statement in comment#11.
I had to run rpmdb --update after correcting the buzztrax package, to prevent zypper verify from stating that it was removing "Buzztrax Music Editor" so this bug possibly dirties the rpm database.
Comment 13 Dave Plater 2016-01-26 04:47:56 UTC
hugin is a different case, it has three matching .desktop / appdata.xml files and so has the loudest error output, I uninstalled it immediately after I had installed Leap:42.1 due to this.
hugin overrides rpms's provides due to the complexity of wXwidgets and as a result doesn't provide the three appdata.xml files.
IMHO I should provide these files in the spec file?
Comment 14 Dave Plater 2016-01-26 06:09:36 UTC
The thunar fix is easy, just match the appdata and desktop file and no more installation system problems.
I have maintenance branches of both thunar and hugin waiting but I would like some peer input before I start the process, due to past isolation the appstream project is new to me.
Comment 15 Dave Plater 2016-01-27 04:13:55 UTC
I have a Leap:42.1 update for thunar waiting in :
Can I submit?
Comment 16 Andreas Stieger 2016-01-27 06:40:11 UTC
(In reply to Dave Plater from comment #15)
> I have a Leap:42.1 update for thunar waiting in :
>  home:plater:branches:openSUSE:Leap:42.1:Update/thunar.openSUSE_Leap_42.
> 1_Update
> Can I submit?

Please submit for a review.
Comment 17 Dave Plater 2016-01-27 16:27:18 UTC
(In reply to Andreas Stieger from comment #16)
Created mr#356318
Comment 18 Bernhard Wiedemann 2016-01-27 17:00:10 UTC
This is an autogenerated message for OBS integration:
This bug (952324) was mentioned in
https://build.opensuse.org/request/show/356318 42.1 / thunar
Comment 19 Dave Plater 2016-01-27 18:17:55 UTC
I also have a hugin update prepared, which is hopefully the last of the appdata.xml noise in Leap:42.1. May I submit?
Comment 20 Dave Plater 2016-01-28 05:40:17 UTC
Unfortunately hugin needs to have it's libraries in sub packages otherwise I will need a complex find provides script, atm it doesn't find it's own libraries. This will take a while.
Comment 22 Bernhard Wiedemann 2016-02-06 19:00:07 UTC
This is an autogenerated message for OBS integration:
This bug (952324) was mentioned in
https://build.opensuse.org/request/show/358076 42.1 / hugin
Comment 23 Dave Plater 2016-02-07 09:26:11 UTC
I've submitted thunar and hugin to their devel projects. I've also submitted hugin to openSUSE:Leap:42.1:Update mr#358076.
I've only recently jumped to Leap from 12.1 and have noticed the appdata.xml provides in the osc web ui but have only experienced them now.
I'm assuming that this is part of an integration of the appstream project into openSUSE? Is there somewhere I can read more about this integration? I found the freedesktop.org appstream web page and have read through it.
Comment 24 Christopher Hofmann 2016-02-15 16:24:03 UTC
*** Bug 963592 has been marked as a duplicate of this bug. ***
Comment 25 Dave Plater 2016-02-15 16:53:19 UTC
I'll make an update for audacity as well
Comment 26 Dave Plater 2016-02-16 09:25:41 UTC
Audacity has the same problem as hugin, it uses wxrequires and doesn't provide the appdata.xml and desktop files.
Comment 27 Swamp Workflow Management 2016-02-16 11:11:44 UTC
openSUSE-RU-2016:0465-1: An update that has one recommended fix can now be installed.

Category: recommended (moderate)
Bug References: 952324
CVE References: 
Sources used:
openSUSE Leap 42.1 (src):    thunar-1.6.10-4.1
Comment 28 Swamp Workflow Management 2016-02-16 11:12:02 UTC
openSUSE-RU-2016:0466-1: An update that has two recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 952324,962214
CVE References: 
Sources used:
openSUSE Leap 42.1 (src):    hugin-2015.0.0-3.1
Comment 29 Dave Plater 2016-02-18 04:57:27 UTC
The solution for audacity is an update to version 2.1.2 which builds with wxGTK3-3_0 and doesn't need a custom find provides. This also requires an update to wxWidgets3-3_0's linked wxGTK3-3_0 package because audacity-2.1.2 doesn't build with a wxGTK3-3_0 built with --enable-stl.
Comment 30 Dave Plater 2016-02-19 13:50:56 UTC
I created mr#360495 and mr#360497 I tried to create a single request for wxWidgets-3_0 and audacity but it doesn't seem possible.
audacity-2.1.2 needs wxGTK3-3_0 built without STL to build and run.
Comment 31 Bernhard Wiedemann 2016-02-19 14:00:14 UTC
This is an autogenerated message for OBS integration:
This bug (952324) was mentioned in
https://build.opensuse.org/request/show/360495 42.1 / wxWidgets-3_0+audacity
https://build.opensuse.org/request/show/360497 42.1 / audacity
Comment 32 Andreas Stieger 2016-02-19 15:24:51 UTC
Reviewing https://build.opensuse.org/request/show/360495...

Dave on your wxWidgets-3_0 change, has this been submitted to the devel project as well as Factory, or does it not affect Factory?

Jan, does this make sense? Could you check this?
osc rdiff openSUSE:Leap:42.1:Update/wxWidgets-3_0 home:plater:branches:openSUSE:Leap:42.1:Update/wxWidgets-3_0.openSUSE_Leap_42.1_Update

Looks like this lib change can break all kinds of stuff?
Comment 33 Dave Plater 2016-02-19 17:21:02 UTC
(In reply to Andreas Stieger from comment #32)
wxGTK3-3_0 variation of wxWidgets-3_0 isn't used by any packages in factory atm.
osc whatdependson openSUSE:Factory wxGTK3-3_0 standard x86_64
wxGTK3-3_0 :
It seems that packages only build against gtk2 wxWidgets.
I've submitted it to X11:wxWidgets / wxWidgets-3_0 for submission to Factory and so far Jan Engelhardt is going to look at audacity to see if this is necessary. I've tested the installation against the other wxWidget variants and I've tested audacity, which I've been bugowner of for quite a while.
audacity-2.1.2 was designed to be built against wxWidgets 3.0.x.
I used the patches from the Fedora wxGTK3 package in the update.
Debian audacity-2.1.2 builds against wxWidgets-3 with gtk2 the equivalent of our wxWidgets-3_0 package but without STL.\
Disabling STL in wxWidgets-3_0 could certainly cause a catastrophe in Factory and Leap.
The other solution is stay on audacity-2.1.1 and I'll have to create a manual provides script.
Comment 34 Andreas Stieger 2016-02-22 12:13:30 UTC
Jan declined the review of SR#360495 due to the ABI breakage.

Dave, what alternative solutions do you propose? Additional packages would be fine, just not changing things about.
Comment 35 Dave Plater 2016-02-22 12:30:13 UTC
ATM I'm having a look at audacity git master, a lot of fixes have taken place since version 2.1.2, Jan sent me an incomplete patch to give me an idea about making audacity build with openSUSE's wxWidgets3 and ATM I'm looking at completing this with audacity git and at the same time encouraging upstream to incorporate the changes. I suspect another audacity release is not far away.

Plan B is audacity-2.1.2 with fedora's wxGTK3 which I have built.

Plan C is an openSUSE:Leap:42.1 audacity-2.1.1 update with a manual provides script.
If getting audacity-2.1.2 to build with openSUSE wxWidgets3 takes too long, I'll look at plan B or C.
Comment 36 Dave Plater 2016-02-22 12:35:12 UTC
To add to my last comment, Jan has submitted the patch to audacity upstream.
Comment 37 Dave Plater 2016-03-02 17:52:59 UTC
It seems that libsolv patch has finally hit Leap:42.1 so the audacity fix isn't necessary.
Comment 38 Swamp Workflow Management 2019-01-28 12:00:15 UTC
This is an autogenerated message for OBS integration:
This bug (952324) was mentioned in
https://build.opensuse.org/request/show/669045 Factory / thunar
Comment 39 Swamp Workflow Management 2019-08-05 10:11:56 UTC
This is an autogenerated message for OBS integration:
This bug (952324) was mentioned in
https://build.opensuse.org/request/show/720992 Backports:SLE-12-SP2 / exo+libgarcon+libxfce4ui+libxfce4util+perl-ExtUtils-Depends+perl-ExtUtils-PkgConfig+perl-Glib+thunar+xfce4-dev-tools+xfce4-panel+xfconf
Comment 40 Swamp Workflow Management 2019-10-10 19:12:26 UTC
openSUSE-RU-2019:2305-1: An update that solves one vulnerability and has 10 fixes is now available.

Category: recommended (moderate)
Bug References: 1011518,1047218,1135362,637694,687874,760492,764310,767145,829113,860479,952324
CVE References: CVE-2011-1588
Sources used:
SUSE Package Hub for SUSE Linux Enterprise 12 (src):    exo-0.12.0-2.1, libgarcon-0.6.1-2.1, libxfce4ui-4.12.1-2.1, libxfce4util-4.12.1-2.1, perl-ExtUtils-Depends-0.405-2.1, perl-ExtUtils-PkgConfig-1.160000-2.1, perl-Glib-1.326-2.1, thunar-1.6.14-2.1, xfce4-dev-tools-4.12.0-2.1, xfce4-panel-4.12.2-2.1, xfconf-4.12.1-2.1