[Debian GNUstep maintainers] Nearly all GNUstep apps are missing from the GNOME Software catalog
Josh Freeman
gnustep_lists at twilightedge.com
Wed Mar 21 00:29:59 UTC 2018
On Mar 20, 2018, at 4:29 PM, Yavor Doganov wrote:
> Josh Freeman wrote:
>> On Mar 18, 2018, at 9:16 AM, Yavor Doganov wrote:
>>
>>> I wonder how TextEdit is available when its icon is in
>>> /usr/share/GNUstep which is not part of the icon search path.
>>
>> Here's my guess:
>> [...]
>> Any software that supports symbolic links can still access the icon
>> at the /usr/lib/... path, however, according to the AppStream's
>> 'icon-not-found' error message for Paje.app, it doesn't support
>> symbolic links:
>
> Right, although Paje's error is not due to the symlink.
Yup - the original error message had additional possible reasons
for the failure, I just replaced them with '...' in order to highlight
AppStream's declaration of non-support for symbolic links. Here's the
unedited error message (Paje's issue is that there's no file named
'Paje' present in the archive):
* Icon-not-found
The icon 'Paje' was not found in the archive. This issue can have
multiple reasons:
The icon is not present in the archive.
The icon is in a wrong directory.
The icon is not available in a suitable size (at least 64x64px)
On Debian and Ubuntu, the icon is a symlink. The generator cannot
read symlinks on these distributions - make the icon a real file.
To make the icon easier to find, place it in /usr/share/icons/hicolor/
<size>/apps and ensure the Icon= value of the .desktop file is set
correctly.
>> TextEdit.app's package installs a custom .desktop file instead of
>> the one generated by gnustep-make. The custom file's Icon entry
>> happens to use the direct filepath, which is probably why AppStream's
>> able to find it:
>> Icon=/usr/share/GNUstep/TextEdit.app/accessories-text-
>> editor_128x128x32.png
>
> But AppStream looks only in /usr/share/icons and /usr/share/pixmaps,
> so the mystery still applies.
The fact that TextEdit.app successfully generates the metadata
despite its icon being outside /usr/share/icons/ and /usr/share/
pixmaps/ shows that my initial guess about the path filtering was
wrong; I thought that AppStream was rejecting *all* icon paths it
found outside those two directories, whether the paths came from
scanning the package contents or from scanning the text of
the .desktop file.
However, after looking at the code some more, it seems like the
paths being rejected (at least in that part of the code) are only the
paths from scanning the package contents, and the .desktop file is
apparently scanned later (and probably without prefix-based rejection).
The metadata for TextEdit.app shows that TextEdit.desktop is
definitely being correctly scanned (so it doesn't appear to be a
fluke), because the metadata's icon name uses a similar name to the
one in the .desktop file, "accessories-text-editor_128x128x32.png" ->
"textedit.app_accessories-text-editor_128x128x32.png":
http://appstream.ubuntu.com/bionic/universe/metainfo/textedit.app.html
Another fact that might support the theory that the errors are
caused by symlinks is that PRICE.app receives a different error from
most other apps: 'Icon-format-unsupported' ('I-f-u') instead of 'Gui-
app-without-icon' ('G-a-w-i'). This is in spite of PRICE.app sharing
several common features with most of the apps with 'G-a-w-i' errors,
such as an icon in TIFF format and a .desktop icon path with a /usr/
lib/GNUstep/Applications/ prefix.
The likely reason for PRICE.app passing the 'G-a-w-i' error check
(only to fail afterwards at the 'I-f-u' check - and it is likely that
the 'I-f-u' check happens after rather than before 'G-a-w-i',
otherwise, all the other TIFF-icon apps would instead have the 'I-f-u'
error) is the following:
Unlike most other apps, PRICE's package leaves PRICE's Resources
directory (& all its resource files) inside /usr/lib/GNUstep/
Applications/PRICE.app/; It doesn't get moved to /usr/share/GNUstep/,
so its .desktop file's /usr/lib/... icon path is actually a direct
path instead of a symlinked path (unlike nearly every other app).
> Some apps (like GNUMail) have /usr/share/GNUstep in their Icon key as
> well, although the icon is in .tiff format.
What would disprove the symlink guess would be if there's a
GNUstep app that has all of the following:
a) a valid-format icon (PNG)
b) a .desktop file with a direct (non-symlinked) path to the icon
c) an AppStream icon error
The only app I'm currently aware of that matches the first two is
TextEdit - and it's the only app that doesn't return an AppStream
error (doesn't match the third).
If there are no other apps besides TextEdit with both a valid icon
& a direct icon path, perhaps we could test the theory by updating a
package? (Having a direct icon path instead of a symlinked one doesn't
seem to be an issue for TextEdit.app). I'd be happy to send a patch
for the pikopixel.app package, if it would be OK to push a 1.0-b9a-2
update? (No upstream source changes needed, could just add another sed-
command to debian/patches/desktop-file.patch).
Cheers,
Josh
More information about the pkg-GNUstep-maintainers
mailing list