LibreSprite: Needs manual approval

I am trying to snap LibreSprite, https://github.com/LibreSprite/LibreSprite
LibreSprite is a X11 application, that is, it does not use a toolkit like GTK+ or Qt:

ubuntu@libresprite:~/LibreSprite/prime/bin$ ldd aseprite 
	linux-vdso.so.1 =>  (0x00007ffcd91df000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f610e521000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f610e218000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f610dede000)
	libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f610dcd4000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f610dacc000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f610d74a000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f610d534000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f610d16a000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f610e73e000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f610cf48000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f610cd44000)
	libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f610cb3a000)
	libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f610c934000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f610c730000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f610c52a000)

I have put the plug x11 so that it gets the X11 libs.
But when I upload to the store, I get:

The Store automatic review failed.
A human will soon review your snap, but if you can't wait please write in the snapcraft forum asking for the manual review explicitly.
If you need to disable confinement, please consider using devmode, but note that devmode revision will only be allowed to be released in edge and beta channels.
Please check the errors and some hints below:
  - desktop interfaces (unity7,x11) specified without a corresponding meta/gui/*.desktop file. If using snapcraft, please see https://snapcraft.io/docs/build-snaps/metadata#fixed-assets. Otherwise, please provide a desktop file in meta/gui/*.desktop (it should reference one of the 'apps' from your snapcraft/snap.yaml).

How do I deal with this issue? The snap package name is libresprite-simosx.

It’s asking for a .desktop file. The docs detail this - scroll down to “Desktop files” on that page.

The app works when launched from the command line, but it’s way nicer to ship a desktop file and icon.

Also, I’d strongly urge you to submit your yaml upstream and name the snap libresprite, not libresprite-simosx.

Thanks!

I moved forward and https://github.com/LibreSprite/LibreSprite/pull/25

@popey, can you have a look at https://github.com/LibreSprite/LibreSprite/pull/25

I am trying to figure out where to put the .desktop file when snapcraft.yaml is a hidden file (/.snapcraft.yaml).

I think I cannot use the verbatim .desktop file in the source, because I need to change the Exec: line.

Also, the .desktop file stays in the parts/ directory when the snap is being created. How do I tell snapcraft to include that file from the parts/ directory, into the next steps of the snap creation?

There’s a couple of things you can do.

Option 1) Specify a desktop: line which points to the upstream desktop file, and have an override-build: section which uses sed to replace the exec line. Like this
Option 2) Ship a clean .desktop file in the snap/gui directory which is pre-edited to point to the right exec line. Like this