< Neon Revision as of 16:04, 6 February 2018 (view source)Sitter (talk | contribs)← Older edit Revision as of 16:04, 6 February 2018 (view source) Sitter (talk | contribs) Newer edit → Line 68: Line 68: ## https://bugs.launchpad.net/snapcraft/+bug/1711333 ## https://bugs.launchpad.net/snapcraft/+bug/1711333 ## https://forum.snapcraft.io/t/use-a-separate-manifest-file-or-save-everything-in-snap-snapcraft-yaml/1152 ## https://forum.snapcraft.io/t/use-a-separate-manifest-file-or-save-everything-in-snap-snapcraft-yaml/1152 −# <strike>Dolphin and kfileopen are cluttered with loopback mounts from snapd https://bugs.launchpad.net/ubuntu/+source/snapcraft/+bug/1714941</stike> Kai made a fairly general prupose fix for this in solid, which is technically the wrong level to fix this on but good enough for us+# <strike>Dolphin and kfileopen are cluttered with loopback mounts from snapd https://bugs.launchpad.net/ubuntu/+source/snapcraft/+bug/1714941</strike> Kai made a fairly general prupose fix for this in solid, which is technically the wrong level to fix this on but good enough for us # <strike>Live images should be able to turn off Snap updates</stike> We've dones this by aggressively disabling snapd components. Starting a snap will still cuase the update, but that is nothing we can prevent outside snapd # <strike>Live images should be able to turn off Snap updates</stike> We've dones this by aggressively disabling snapd components. Starting a snap will still cuase the update, but that is nothing we can prevent outside snapd ## https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1723094 ## https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1723094 Revision as of 16:04, 6 February 2018 Contents 1 Usage 1.1 No sudo 2 Building 3 Snapd Problems 4 Snapcraft Problems 5 Troubleshooting Usage 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 done by using snapd's seed capability. No sudo To drop the requirement to have to sudo everything you need to login using ubuntu login credentials first. sudo snap login After that you should have a ~/.snap/auth.json file and snap should work without sudo. Building The snapcraft.yamls we have in our pacakging repositories are generally meant to be built via our tooling and the respective Jenkins jobs. Genearally they can however also be built manually as the tooling only extends them a bit to build from git and install suitable packages for the current content-snap SDK. By and large this is optional though. To build run SNAPCRAFT_PARTS_URI=https://metadata.neon.kde.org/snap/parts.yaml snapcraft The environment variable sets a different remote parts URI to load the -dev and -env parts from. Long term these should be added to the upstream default parts.yaml though. Snapd Problems (upstream issues ought to be filed/subscribed to and mentioned here) Content snap not getting installed if snap depending on it gets installed https://bugs.launchpad.net/snapcraft/+bug/1711329 https://github.com/snapcore/snapd/compare/master...mvo5:default-plugin-provider?expand=1 Installing a content snap into the core ISO requires snapd which requires systemd which cannot (?) run in a docker/lxc/chroot snap download can be used to "preseed" snaps Theming How to get theme settings from the host into the snap? QtStyles are binary plugins and so even when we know which style is configured on the host we cannot just load it Icon themes in /usr/share and ~/.local cannot be accessed from inside snaps Same for mouse cursor themes Same for fonts upstream is aware and working on it https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1585332 Hard to debug applications We have huge wrapper scripts that are required for applications to run properly https://cgit.kde.org/scratch/apol/kf5-snap-env.git/tree/ https://forum.snapcraft.io/t/custom-environment-variables-for-parts/1639/10 It's hard to reach out to debugging tools should be easy-ish to use gdb-server gdb/valgrind/strace need to be in the snap to be reachable Possibly needs a way to catch and send cores and then retrace them server-side with (externally) generated debug symbol dumps? xdg-desktop-portals (with patches) + snapd (with patches). Needs landing or something FIleIO Printing (cups-control gives printer management access which I think we do not need; it is also not auto-connected which makes it useless from a user pov) wip https://forum.snapcraft.io/t/xdg-desktop-portal-proof-of-concept-demo/1027 Discover Software Center integration isn't at the level of PackageKit or Flatpak. Mostly boils down to some appstream support we are lacking appstream ids, useful for de-duplication cannot use snaps for the featured applications list (apps are listed as appstream ids) AppStream ID as id for reviews https://forum.snapcraft.io/t/best-way-to-key-a-snap-for-reviewing/854/2 https://forum.snapcraft.io/t/support-for-appstream-id/2327 No source code storage/retrieval for snaps https://bugs.launchpad.net/snapcraft/+bug/1711333 https://forum.snapcraft.io/t/use-a-separate-manifest-file-or-save-everything-in-snap-snapcraft-yaml/1152 Dolphin and kfileopen are cluttered with loopback mounts from snapd https://bugs.launchpad.net/ubuntu/+source/snapcraft/+bug/1714941 Kai made a fairly general prupose fix for this in solid, which is technically the wrong level to fix this on but good enough for us Live images should be able to turn off Snap updates</stike> We've dones this by aggressively disabling snapd components. Starting a snap will still cuase the update, but that is nothing we can prevent outside snapd https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1723094Snapcraft ProblemsNo real way to run unit tests through snapcraft Talking with snapcraft developers, they suggested using "install: ctest ." much like in here: https://snapcraft.io/docs/build-snaps/node Implemented here: https://cgit.kde.org/scratch/apol/kf5-snap-env.git/plain/README.md 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 problems Make sure that on cleanbuilds we get the deps from the Neon repo instead of ubuntu (for the things Neon implements) Related https://bugs.kde.org/show_bug.cgi?id=385062 https://bugs.launchpad.net/snapcraft/+bug/1719928 Lack of Appstream support Substantial metadata duplication. snap metadata excessively duplicates appstream metadata such as license, summary, version, icon. Makes it undesirable to maintain the data in snapcraft.yaml so it will simply go out of date at some point. https://forum.snapcraft.io/t/extracting-existing-data-from-projects-to-feed-into-snap-yaml/2285 https://github.com/snapcore/snapcraft/issues/1694 Should be extracting the icon and desktop file from the package. Now it's copied in the packaging. Icons do not appear to get installed into hicolor nor hardcoded absolute paths in the desktop files, making icon availability entirely theme-dependent. GPG verification of incoming content is not supported. This breaks the signing chain from tag -> tarball -> pkg -> user. Only applies to tarballs. [Supposedly the tarball is somewhere in the build tree, so we could build custom rigging to download the gpg after snapcraft ran and verify the tarball snapcraft got is the signed one and abort if not]Troubleshootingon <2.26.0 We need to umount the snap if it was already installed: sudo umount /run/snapd/ns/dolphin.mnt Retrieved from "https://community.kde.org/index.php?title=Neon/Snap&oldid=79261" Content is available under Creative Commons License SA 4.0 unless otherwise noted.