Remove app from snap store

Dear all,

after great frustration with snap and snapcraft I would like to remove my software from the snap store. I have however not been able to find out how this can be done. Can you please help?

  • add-hours-and-minutes
  • enroute-flight-navigation

Best,

Stefan Kebekus.

PS: I am the author of both programs.

Sorry to hear that. Is there anything we can work with you on to resolve your frustration?

That said, one quick and easy way to hide the snap is to go to the setting screen in the store front page and change it to “Private”, and in the releases tab, close all channels.

4 Likes

Alan Pope wrote via snapcraft.io:

Sorry to hear that. Is there anything we can work with you on to
resolve your frustration?

Dear Alan,

thank you for your quick and helpful reply. I am trying to publish a
little calculator app written with Qt that I use to add times in my
pilot’s flight log:

I think your email got cut off.

From a first glance at your snapcraft.yaml: you don’t seem to declare the necessary plugs for your app. See e.g. https://github.com/keepassxreboot/keepassxc/blob/develop/snap/snapcraft.yaml for an example. The desktop-qt5 part has some documentation about this: https://github.com/ubuntu/snapcraft-desktop-helpers/blob/master/snapcraft.yaml

However, it would be much easier to use the kde-neon extension (https://snapcraft.io/docs/qt5-kde-applications) if you don’t specifically require core20.

Something like:

name: add-hours-and-minutes
base: core18
adopt-info: addhoursandminutes
grade: stable
confinement: strict
license: GPL-3.0

apps:
  addhoursandminutes:
    command: addhoursandminutes
    common-id: de.akaflieg_freiburg.cavok.add_hours_and_minutes
    desktop: share/applications/de.akaflieg_freiburg.cavok.add_hours_and_minutes.desktop
    extensions:
      - kde-neon
    plugs:
      - opengl
      
parts:
  addhoursandminutes:
    parse-info:
      - share/appdata/de.akaflieg_freiburg.cavok.add_hours_and_minutes.appdata.xml
    plugin: cmake
    source: https://github.com/Akaflieg-Freiburg/addhoursandminutes.git
    source-type: git
    build-snaps:
      - kde-frameworks-5-core18-sdk
    configflags:
      - -DCMAKE_BUILD_TYPE=Release
    override-build: |
      snapcraftctl build
      sed -i.bak -e 's|Icon=de.akaflieg_freiburg.cavok.add_hours_and_minutes|Icon=share/icons/hicolor/scalable/apps/de.akaflieg_freiburg.cavok.add_hours_and_minutes.svg|g' $SNAPCRAFT_PART_INSTALL/share/applications/de.akaflieg_freiburg.cavok.add_hours_and_minutes.desktop

Screenshot from 2021-01-28 11-23-35

I can prepare a PR sometime later if you want. PR with a few extras: https://github.com/Akaflieg-Freiburg/addhoursandminutes/pull/2

3 Likes

As for your enroute flight navigation snap, the same thing applies.

You need plugs like desktop, desktop-legacy, wayland and x11 for your graphical application. If you don’t need that very specific Qt version you’re building (and only need amd64 builds) (https://github.com/Akaflieg-Freiburg/enrouteSnap/blob/55257fe7252ccda2431764d23c2d7112dda001e6/snap/snapcraft.yaml#L19), I’d again suggest the use of the kde-neon extension to get rid of all that headache inducing Qt stuff.

In general, you can use methods described in Debugging snaps to get an idea what plugs/permissions are lacking (. snappy-debug will outright point you to possible solutions.

I tested enroute like so: snap install --devmode enroute-flight-navigation. This allowed me to launch the app, which means the problem is a problem of missing permissions/plugs. snappy-debug told me

Log: apparmor="DENIED" operation="connect" profile="snap.enroute-flight-navigation.enroute" pid=71429 comm="enroute" family="unix" sock_type="stream" protocol=0 requested_mask="send receive connect" denied_mask="send connect" addr=none peer_addr="@/tmp/.X11-unix/X1" peer="unconfined"

You can see that it wants to connect to the X-server, but fails to do so because it lacks permission to do so.

2 Likes

Dear PPD,

first and foremost: thank you for your extremely prompt and very helpful reply. I am genuinely grateful!

I merged your pull request, but now compilation fails with the error message below. Could you please have a look? Are there some dependencies missing in kde-framworks-5? I tried to fix the problem by adding “libegl1-mesa-dev” in “build-packages”, but that led to seriously-looking warnings that I could not make sense of

Cannot generate a safe runtime search path for target addhoursandminutes 
because files in some directories may conflict with libraries in implicit 
directories […]

Any help is greatly appreciated!

Best,

Stefan.

CMake Error at /snap/kde-frameworks-5-core18-sdk/current/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:27 (message):
  The imported target "Qt5::Gui" references the file

     "/usr/lib/x86_64-linux-gnu/libEGL.so"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/snap/kde-frameworks-5-core18-sdk/current/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake"

  but not all the files it references.
1 Like

Hi Stefan,

that’s a missing libglvnd-dev build-package; I’ve submitted another PR.

Cheers, Maximilian

2 Likes

Dear Maximilian,

again: thank you so much! There are new problems, however.

Now the app compiles (with a warning message: “Cannot generate a safe runtime search path […]”), but the app behaves strangely upon startup:

If I start the app using the standard Gnome graphical interface, the app shows a “busy” cursor for about 15 seconds, whenever the cursor is over the window frame or the main calculator GUI item. After 15 seconds, the cursor changes to its normal “pointer” shape. This is of course very confusing to the user.

App with cursor

This problem does not show with locally compiled binaries. It does not show in the flatpak package and it does also not show when I start the app from the command line, either as

  • add-hours-and-minutes
  • snap run add-hours-and-minutes

I note, however, that when I run the command “add-hours-and-minutes”, the app displays the warning “Qt: Session management error: None of the authentication protocols specified are supported”. Is there another plug that’s missing? The command “snappy-debug” does not show any issues, and the output of “snap connections add-hours-and-minutes” is added below.

Again, any help is greatly appreciated.

Best,

Stefan.

Interface                             Plug                                         Slot                                                  Notes
content[icon-themes]                  add-hours-and-minutes:icon-themes            gtk-common-themes:icon-themes                         -
content[kde-frameworks-5-core18-all]  add-hours-and-minutes:kde-frameworks-5-plug  kde-frameworks-5-core18:kde-frameworks-5-core18-slot  -
content[sound-themes]                 add-hours-and-minutes:sound-themes           gtk-common-themes:sound-themes                        -
desktop                               add-hours-and-minutes:desktop                :desktop                                              -
desktop-legacy                        add-hours-and-minutes:desktop-legacy         :desktop-legacy                                       -
opengl                                add-hours-and-minutes:opengl                 :opengl                                               -
wayland                               add-hours-and-minutes:wayland                :wayland                                              -
x11                                   add-hours-and-minutes:x11                    :x11                                                  -

Hi Stefan,

I’m glad you didn’t get discouraged from giving snaps a try despite your initial frustration.

Let’s debug your problem:

We observe a difference in app startup behaviour between a launch from the console and from the GNOME desktop environment, and thus we can guess that GNOME does something undesirable, at least as far as we can see.

So where does GNOME get its information about programs from? Desktop files! (https://developer.gnome.org/integration-guide/stable/desktop-files.html.en)

Having never experienced such a problem before, I take a look at your desktop file and make an educated guess. Comparing the desktop file to a well-behaving Qt-application is also a good idea, of course.

[Desktop Entry]
Type=Application
Version=1.1
Name=Add Hours and Minutes
Name[de]=Rechnen mit Stunden und Minuten
GenericName=Calculator for adding times
GenericName[de]=Rechner zum Zusammenzählen von Zeiten
Icon=${APP_ID}
TryExec=${PROJECT_NAME}
Exec=${PROJECT_NAME}
Terminal=false
Categories=Utility;Calculator;
StartupNotify=true

Immediately, StartupNotify looks suspicious. Other programs don’t have this, and the GNOME integration guide (https://developer.gnome.org/integration-guide/stable/startup-notification.html.en) suggests that this functionality requires the application to implement a certain behaviour.

Conclusion and tl/dr: Removing StartupNotify from the desktop file cures the problem for me.

Have a nice weekend,
Maximilian

Dear Maximilan,

thank you very much again. As you guessed all problems vanished once I removed the entry “StartupNotify”. That would have taken me ages to find out – if I had found out about that all. I think the snap is near-perfect now.

Best,

Stefan.

2 Likes

Dear Maximilian,

the app “Enroute” is much more serious – this is the app that I really care about. The app absolutely needs Qt5.15 and might soon require Qt6. The app works well, except that the mouse cursor is way too small on high-resolution displays. I have been unable to fix this issue; any help is greatly appreciated. Also, are you aware of good-quality snaps that I could use as an example?

Best wishes – and thanks again,

Stefan.

PS: I added the plugs desktop, desktop-legacy, wayland, and x11 as you suggested. The command “snappy-debug” now reports only the warning add 'process-control' to 'plugs'. I do not quite understand because process control is enabled:

> snap connections enroute-flight-navigation 

Interface        Plug                                       Slot             Notes
desktop          enroute-flight-navigation:desktop          :desktop         -
desktop-legacy   enroute-flight-navigation:desktop-legacy   :desktop-legacy  -
network          enroute-flight-navigation:network          :network         -
network-bind     enroute-flight-navigation:network-bind     :network-bind    -
opengl           enroute-flight-navigation:opengl           :opengl          -
process-control  enroute-flight-navigation:process-control  -                -
wayland          enroute-flight-navigation:wayland          :wayland         -
x11              enroute-flight-navigation:x11              :x11             -

For the app to have access to the most common cursor theme(s), add this plug:

plugs:
  icon-themes:
    interface: content
    target: $SNAP/data-dir/icons
    default-provider: gtk-common-themes

Source: https://snapcraft.io/docs/desktop-qt5

a) I don’t think you need that
b) This specific interface is not auto-connected (https://snapcraft.io/docs/process-control-interface), so the user would have to manually connect it anyway.

All the best,
Maximilian