Neon/Snap: Difference between revisions

From KDE Community Wiki
No edit summary
No edit summary
Line 27: Line 27:
# Content snap has "external" dev tarball which we utilize to build snaps off of the content snap, problem is that snapcraft does not like files diverging, so whenever a snap stages-packages something that is in the dev tarball (e.g. as part of a runtime dep) but binary different (e.g. newer build) the snapcraft will fail. On auto generated snaps this was worked around by maintaining an exclusion list of packages to not install, this may be auto-injectable into manual builds BUT won't be doable for non-infrastructure builds (i.e. a dev running snapcraft on their system).
# Content snap has "external" dev tarball which we utilize to build snaps off of the content snap, problem is that snapcraft does not like files diverging, so whenever a snap stages-packages something that is in the dev tarball (e.g. as part of a runtime dep) but binary different (e.g. newer build) the snapcraft will fail. On auto generated snaps this was worked around by maintaining an exclusion list of packages to not install, this may be auto-injectable into manual builds BUT won't be doable for non-infrastructure builds (i.e. a dev running snapcraft on their system).
# Discover integration experimental still
# Discover integration experimental still
# snapcraft does not work on archlinux/fedora
# snapcraft does not work on archlinux/fedora (says Aleix)
# Content snap makes development super hard! A locally installed snap cannot connect to the content snap if it was installed from the store, conversely, a locally installed content snap cannot be used by snaps installed from the store. So, either everything needs to be installed locally or through the store, the store round trip makes development of new snaps a right chore and lengthens the feedback cycle considerably. Possible workarounds include maintaining fully-standalone snapcraft.yaml files and having the CI tooling mangle it to base it on the content snap for store uploads.

Revision as of 08:50, 16 August 2017

To use them

https://apachelog.wordpress.com/2017/01/30/kde-applications-in-ubuntu-snap-store/

sudo snap install kde-frameworks-5
sudo snap install kblocks

ISOs from August 11 2017 already come shipped with kde-frameworks-5, this is a simple tar made by Jonathan by using a freshly installed virtual machine, running sudo snap install kde-frameworks-5 and putting /snap, /var/lib/snap and /var/snap into a tar http://embra.edinburghlinux.co.uk/~jr/snapd-kde-frameworks.tar.gz It adds about 600MB to the images.

Problems

(upstream issues ought to be filed/subscribed to and mentioned here)

  1. Content snap not getting installed if snap depending on it gets installed
  2. Installing a content snap into the core ISO requires snapd which requires systemd which cannot (?) run in a docker/lxc/chroot
  3. Theming
    1. How to get theme settings from the host into the snap?
    2. QtStyles are binary plugins and so even when we know which style is configured on the host we cannot just load it
    3. Icon themes in /usr/share and ~/.local cannot be accessed from inside snaps
    4. Same for mouse cursor themes
    5. Same for fonts
  4. There are no debug snaps making debugging of crashes nigh impossible. Possibly needs a way to catch and send cores and then retrace them server-side with (externally) generated debug symbol dumps?
  5. xdg-desktop-portals (with patches) + snapd (with patches). Needs landing or something
    1. FIleIO
    2. Printing
  6. No real way to run unit tests through snapcraft (do we need to?)
  7. Content snap has "external" dev tarball which we utilize to build snaps off of the content snap, problem is that snapcraft does not like files diverging, so whenever a snap stages-packages something that is in the dev tarball (e.g. as part of a runtime dep) but binary different (e.g. newer build) the snapcraft will fail. On auto generated snaps this was worked around by maintaining an exclusion list of packages to not install, this may be auto-injectable into manual builds BUT won't be doable for non-infrastructure builds (i.e. a dev running snapcraft on their system).
  8. Discover integration experimental still
  9. snapcraft does not work on archlinux/fedora (says Aleix)
  10. Content snap makes development super hard! A locally installed snap cannot connect to the content snap if it was installed from the store, conversely, a locally installed content snap cannot be used by snaps installed from the store. So, either everything needs to be installed locally or through the store, the store round trip makes development of new snaps a right chore and lengthens the feedback cycle considerably. Possible workarounds include maintaining fully-standalone snapcraft.yaml files and having the CI tooling mangle it to base it on the content snap for store uploads.