Diffusion Krita 2d4a5a53f3d5

fix/update snap & port to core18 & depend on neon packages for newer tech

Authored by sitter on Jan 23 2019, 10:19 AM.

Description

fix/update snap & port to core18 & depend on neon packages for newer tech

Summary:
this is largely a partial sync from the kf5 launcher used for the kf5
content snap.

launcher:

  • make sure all lib paths are in ld_library
  • make sure GL drivers may be found
  • make sure nvidia host-mounted drivers may be found
  • rejigger font handling to sit on top of the host fonts instead of shipping ones inside the snap
  • XDG variables are no longer separated by version (the individual HOMEs are already by version e.g. ~/snap/krita/{1,2,3}) so the additional versioning only serves to lose all settings on updates
  • set more XDG variables to ensure they are sound
  • force qtchooser to use suitable paths directed at the snap
  • do not hardcode any SESSION variables or platformtheme. the variables are forwarded into the snap, and Qt will figure out what to do with the environment on its own
  • do not attempt to start KIO slaves via klauncher but instead qprocess fork them (ensures a) not breaking out b) they are in the same pgroup)
  • configure qlibraryinfo to find relevant Qt stuff from the snap (this relies on a neon specific patch in qtbase to make QLI XDG-aware)
  • translations are now working, alas, at a cost to startup performance as we need to generate locales on-demand (it may be prudent to pre-generate some popular locales) to reduce overhead when they are used, at the cost of snap size. this is actually implemented by kf5-locale-gen which generates locales in the snap's home and directs glibc there
  • the launcher now forces plasma theme plugin on all platforms, this is specifically to ensure that the app is fully functional and in fact looks good. this may be revisted once desktop portals are fully available (qt 5.12 and portal SRU into ubuntu 16.04), but even so certain qstyles are not working very well I've been told

snap:

  • now on core18 (i.e. ubuntu 18.04 base)
  • use desktop and desktop-legacy interfaces, the former gives approximately what unity7 does but is directed at the future, the latter is somewhat terribly named because it actually gives access to some key dbus interfaces, such as accessibility and input methods (legacy may be done away with in the future if desktop can grow better confinement rules)
  • do away with the part separation between kdeframeworks and qt, since both are only stage packages there isn't much use derived from them besides blowing up the yaml
  • all packages have been updated to 18.04 variants
  • fonts are no longer being staged (launcher now picks up system fonts)
  • new plasma-integration part makes sure krita neatly integrates into plasma environments
  • setup/ is now snap/ [former is deprecated, same functionality]
  • build is now done in release mode instead of manually setting compile flags

build:

  • to get a newer qt/kf5 stack the snap is using neon builds instead of ubuntu 16.04 builds
  • to properly build, build.sh should be used (which depends on lxd to provision an ephemeral build container with snapd)

Test Plan: builds a snap!

Reviewers: Krita, rempt

Reviewed By: Krita, rempt

Tags: Krita

Differential Revision: https://phabricator.kde.org/D18722

Details

Committed
sitterFeb 5 2019, 11:32 AM
Reviewer
Krita
Differential Revision
D18722: fix/update snap & port to core18 & depend on neon packages for newer tech
Parents
R37:caebac3e0a04: Add usage logging to the buginfo dialog
Branches
Unknown
Tags
Unknown