Building on newer than 16.04 - deps

Hi there,

Currently working on building out Krita, but I have run into a problem where the QT version is too old on 16.04.

What is considered “best practice” for this type of situation? My understanding is that snaps should be done against 16.04.

Thank you.

If you’re targeting KDE runtime then you probably want to pull their dependencies directly using their repo, where they’ll be including the newer Qt toolkit as required by the runtime. Otherwise you’ll want to include an additional part which your main build depends on via after: [qt-part].

For example, for Gnome apps, I’ve done similar via enabling the gnome-3-26 PPA off launchpad.

2 Likes

Late follow up - How did you enable the additional PPA?

To enable the gnome-3-26 ppa I used a rather hacky method, but it’s currently the only way it will work:

parts:
  gnome-platform:
    plugin: nil
    after: [desktop-gnome-platform]
    prepare: |
      echo "deb http://ppa.launchpad.net/ubuntu-desktop/gnome-3-26/ubuntu xenial main" | tee /etc/apt/sources.list.d/gnome-3-24.list
      apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 399B698EEA9EF163B6F9A0F62CC98497A1231595
      apt update
      apt upgrade -yy
    prime:
      - -*

  my-part:
    after: [gnome-platform]
    ...

Note that doing it this way will only update the build-packages, and you cannot use the packages in the ppa for stage-packages because those are fetched before the parts are started.

1 Like

@kenvandine What voodoo do you do to bundle the libraries needed by snaps built using newer gnome libs?
Or do you only have libs staged in the platform snap?