Bug 381739

Summary: Icon not shown in Gnome applications
Product: [Applications] digikam Reporter: Nicofo <nicofo>
Component: Bundle-AppImageAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 5.6.0   
Target Milestone: ---   
Platform: Appimage   
OS: Linux   
Latest Commit: Version Fixed In: 6.0.0
Sentry Crash Report:
Attachments: no digikam icon in gnome applications
no digikam icon in gnome favourite panel

Description Nicofo 2017-06-27 19:58:32 UTC
Created attachment 106345 [details]
no digikam icon in gnome applications

When using appimage (and itegration in the system), digikam icon is not present in Gnome applications:

see 1st attached screenshot (in gnome applications, searching for "digikam")
see 2d  attached screenshot (no icon neither in the favourite panel of gnome; after adding Digikam in the favourite applications)
Comment 1 Nicofo 2017-06-27 19:59:55 UTC
Created attachment 106346 [details]
no digikam icon in gnome favourite panel

note: the icon is correct for Digikam installed in Fedora repository (RPM version)
the icon is NOT correct for Digikam installed with appimage
Comment 2 caulier.gilles 2018-08-29 07:50:59 UTC
The AppImage Linux Bundle have been recompiled with last changes from source code and is available here for testing :

https://files.kde.org/digikam/

Take a care : 6.0.0 is a beta release for the moment. Make a database backup before to test.

Problem still here ?

Gilles Caulier
Comment 3 Nicofo 2018-08-29 20:47:53 UTC
Unfortunately I can't check because the appimage does not provide desktop integration in the system (as it was the case in the first appimage you provided). Unless I miss something ...

Is there a way to add an appimage 'manually' in the system ? (so that a search in gnome shell would allow to launch digikam directly ?) Now, to launch digikam, I have no other option that opening the file manager to the appimage directory and double-clicking on it...
Comment 4 caulier.gilles 2018-08-29 20:58:10 UTC
yes there is:


Linux universal AppImage bundles :
----------------------------------

* digiKam-version-timestamp-x86-64.appimage  => for Linux 64 bits.
* digiKam-version-timestamp-i386.appimage    => for Linux 32 bits.

This bundle is compatible with all Linux distributions which support Fuse file system.
It's built under CentOS 6.x. It must be runnable on all distributions older than 3/4 years.
Make file executable and run it as well. Nothing is installed and not root right is necessary.
See here for details : http://askubuntu.com/questions/774490/what-is-an-appimage-how-do-i-install-it

Bundle executable can take arguments to run:

 without option       : run digiKam.
 <showfoto>           : run Showfoto instead digiKam.
 <debug>              : run digiKam into GDB.
 <debug> <showfoto>   : run Showfoto into GDB.
 <desktopintegration> : run native AppImage scripts to process desktop integration.
 <help>               : show these information.


The desktopintegration option is for you. This call the original scripts provided by AppImage SDK. I re-routed these scripts because it crash on some Linux. So by default there is no integration done.

Passing this option do the job. If it crash, it's fully a bug in AppImage SDK, not digiKam.

Gilles Caulier
Comment 5 Nicofo 2018-08-29 21:03:53 UTC
Yes indeed, sorry didn't see that option for desktopintegration.

So I have just tested: the result is still the same (not OK): like the printscreens I made in comment #1 and comment #2
Comment 6 caulier.gilles 2019-02-03 10:30:38 UTC
Git commit b8317a7c121f5fa407a9ba250615c7536c125f56 by Gilles Caulier.
Committed on 03/02/2019 at 10:27.
Pushed by cgilles into branch 'master'.

add StartupWMClass property to desktop files
Related: bug 378253, bug 376615, bug 375345

M  +1    -0    core/app/main/org.kde.digikam.desktop
M  +1    -0    core/showfoto/main/org.kde.showfoto.desktop

https://commits.kde.org/digikam/b8317a7c121f5fa407a9ba250615c7536c125f56
Comment 7 caulier.gilles 2019-02-03 10:32:23 UTC
Git commit 473d13879eb43b868a4e072049141e04e0bdbcd3 by Gilles Caulier.
Committed on 03/02/2019 at 10:31.
Pushed by cgilles into branch 'development/dplugins'.

add StartupWMClass property to desktop files
Related: bug 378253, bug 376615, bug 375345

M  +1    -0    core/app/main/org.kde.digikam.desktop
M  +1    -0    core/showfoto/main/org.kde.showfoto.desktop

https://commits.kde.org/digikam/473d13879eb43b868a4e072049141e04e0bdbcd3
Comment 8 caulier.gilles 2019-02-03 17:05:11 UTC
Fixed with AppImage digikam-6.0.0-20190203T151814-x86-64.appimage available here :

https://files.kde.org/digikam/

See bug #378253 for details...

Gilles Caulier
Comment 9 Nicofo 2019-02-06 18:29:07 UTC
Hi Gilles, 

unfortunately I cannot test because desktopintegration does not work anymore with digikam-6.0.0-20190203T151814 appimage (in fact it does not work since beta3 ; it was still working with beta2)

I get in message error in terminal:
Call native AppImage CLI tools for desktop integration...
/tmp/.mount_digikaWz9O26/AppRun: line 133: digikam.wrapper: command not found
Comment 10 caulier.gilles 2019-02-06 19:04:38 UTC
How I thinking to fix this problem already. I take a look...
Gilles Caulier
Comment 11 caulier.gilles 2019-02-09 09:27:56 UTC
Ok, i found the problem.

The bundle AppImage script run this bash function from AppImage SDK :

https://cgit.kde.org/digikam.git/tree/project/bundles/appimage/04-build-appimage.sh#n415

And the code corresponding to the AppImage SDK is this one :

# Add desktop integration
# Usage: get_desktopintegration name_of_desktop_file_and_exectuable
get_desktopintegration()
{
  # REALBIN=$(grep -o "^Exec=.*" *.desktop | sed -e 's|Exec=||g' | cut -d " " -f 1 | head -n 1)
  # cat_file_from_url https://raw.githubusercontent.com/AppImage/AppImageKit/deprecated/AppImageAssistant/desktopintegration > ./usr/bin/$REALBIN.wrapper
  # chmod a+x ./usr/bin/$REALBIN.wrapper
  echo "The desktopintegration script is deprecated. Please advise users to use https://github.com/AppImage/appimaged instead."
  # sed -i -e "s|^Exec=$REALBIN|Exec=$REALBIN.wrapper|g" $1.desktop
}

Wonderfull. This feature is broken...

Gilles Caulier
Comment 12 caulier.gilles 2019-02-09 09:30:30 UTC
Ok, now i understand. Look here :

https://github.com/AppImage/appimaged

In fact the desktop integration is now delegate to a deamon, running on your host system. It's not done anymore from the AppImage bundle as well, as i can see.

Gilles Caulier
Comment 13 caulier.gilles 2019-02-09 09:32:25 UTC
This is done for security issues. It use a sand-boxing mechanism.

So i will remove the desktop integration option from digiKam AppImage.

Gilles Caulier
Comment 14 caulier.gilles 2019-02-09 11:10:52 UTC
Git commit 1f5275fcc00093094c0d7dda738ca74085c30f78 by Gilles Caulier.
Committed on 09/02/2019 at 11:08.
Pushed by cgilles into branch 'master'.

remove obsolete AppImage SDK support for desktop integration.

M  +2    -1    project/bundles/appimage/04-build-appimage.sh
M  +0    -9    project/bundles/appimage/data/AppRun

https://commits.kde.org/digikam/1f5275fcc00093094c0d7dda738ca74085c30f78
Comment 15 caulier.gilles 2019-02-09 11:12:58 UTC
Git commit dffab83a30b32b1344fc22072d576ac385f227d0 by Gilles Caulier.
Committed on 09/02/2019 at 11:12.
Pushed by cgilles into branch 'development/dplugins'.

remove obsolete AppImage SDK support for desktop integration.

M  +2    -1    project/bundles/appimage/04-build-appimage.sh
M  +0    -9    project/bundles/appimage/data/AppRun

https://commits.kde.org/digikam/dffab83a30b32b1344fc22072d576ac385f227d0