Skip to content

Building snaps with kde-neon extension is not working #37

@hhromic

Description

@hhromic

Hello, I recently found out about this repository and its intention to be the official way to build Snap packages in Docker.
I tried to build our Snap packages using ghcr.io/canonical/snapcraft:8_core22 but sadly it did not work as expected.

The problem seems to be when using the kde-neon extension.
Consider the following snap/snapcraft.yaml example adapted from the official guide for Qt5/KF applications:

name: kcalc
version: 19.08.0
grade: stable
adopt-info: kcalc
confinement: strict
base: core22

apps:
  kcalc:
    common-id: org.kde.kcalc.desktop
    command: kcalc
    extensions:
      - kde-neon
    plugs:
      - home
      - opengl
      - network
      - network-bind
      - pulseaudio

slots:
  session-dbus-interface:
    interface: dbus
    name: org.kde.kcalc.desktop
    bus: session

parts:
  kcalc:
    parse-info:
      - usr/share/metainfo/org.kde.kcalc.appdata.xml
    plugin: cmake
    build-snaps:
      - kf5-5-111-qt-5-15-11-core22-sdk
    build-packages:
      - libmpfr-dev
      - libgmp-dev
      - libkf5doctools-dev
    stage-packages:
      - libmpfr6
      - libgmp10
    source: https://download.kde.org/stable/applications/19.08.0/src/kcalc-19.08.0.tar.xz
    cmake-parameters:
      - "-DKDE_INSTALL_USE_QT_SYS_PATHS=ON"
      - "-DCMAKE_INSTALL_PREFIX=/usr"
      - "-DCMAKE_BUILD_TYPE=Release"
      - "-DENABLE_TESTING=OFF"
      - "-DBUILD_TESTING=OFF"
      - "-DKDE_SKIP_TEST_SETTINGS=ON"

The above Snapcraft file does not build using the ghcr.io/canonical/snapcraft:8_core22 image:

$ docker run -it -v `pwd`:/project ghcr.io/canonical/snapcraft:8_core22
2024-04-28T21:36:27.568Z [pebble] Started daemon.
2024-04-28T21:36:27.598Z [pebble] POST /v1/services 18.095676ms 202
2024-04-28T21:36:27.599Z [pebble] Started default services with change 1.
2024-04-28T21:36:27.610Z [pebble] Service "snapcraft" starting: /bin/run-snapcraft.sh [ pack ]
2024-04-28T21:36:27.634Z [snapcraft]
2024-04-28T21:36:27.635Z [snapcraft] WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
2024-04-28T21:36:27.635Z [snapcraft]
2024-04-28T21:36:27.925Z [snapcraft] Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
2024-04-28T21:36:27.983Z [snapcraft] Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
2024-04-28T21:36:28.491Z [snapcraft] Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
2024-04-28T21:36:28.640Z [snapcraft] Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
2024-04-28T21:36:28.787Z [snapcraft] Get:5 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]
2024-04-28T21:36:28.939Z [snapcraft] Get:6 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
2024-04-28T21:36:29.099Z [snapcraft] Get:7 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1755 kB]
2024-04-28T21:36:32.254Z [snapcraft] Get:8 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [44.7 kB]
2024-04-28T21:36:32.291Z [snapcraft] Get:9 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [2265 kB]
2024-04-28T21:36:32.380Z [snapcraft] Get:10 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]
2024-04-28T21:36:32.391Z [snapcraft] Get:11 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]
2024-04-28T21:36:32.705Z [snapcraft] Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [2035 kB]
2024-04-28T21:36:33.301Z [snapcraft] Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1370 kB]
2024-04-28T21:36:33.528Z [snapcraft] Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [2339 kB]
2024-04-28T21:36:33.832Z [snapcraft] Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [51.1 kB]
2024-04-28T21:36:33.846Z [snapcraft] Get:16 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [81.0 kB]
2024-04-28T21:36:33.846Z [snapcraft] Get:17 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [31.9 kB]
2024-04-28T21:36:34.320Z [snapcraft] Get:18 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1077 kB]
2024-04-28T21:36:37.034Z [snapcraft] Fetched 31.4 MB in 9s (3359 kB/s)
2024-04-28T21:36:37.034Z [snapcraft] Reading package lists...
2024-04-28T21:36:39.910Z [snapcraft] Building dependency tree...
2024-04-28T21:36:40.215Z [snapcraft] Reading state information...
2024-04-28T21:36:40.273Z [snapcraft] 15 packages can be upgraded. Run 'apt list --upgradable' to see them.
2024-04-28T21:36:45.918Z [snapcraft] Starting Snapcraft 8.0.5
2024-04-28T21:36:45.918Z [snapcraft] Logging execution to '/root/.local/state/snapcraft/log/snapcraft-20240428-213645.910384.log'
2024-04-28T21:36:45.957Z [snapcraft] Running on amd64 for amd64
2024-04-28T21:36:45.966Z [snapcraft] Initializing parts lifecycle
2024-04-28T21:36:45.981Z [snapcraft] Failed to pull source: unable to determine source type of '/usr/share/snapcraft/extensions/desktop/kde-neon'.
2024-04-28T21:36:45.987Z [snapcraft] Full execution log: '/root/.local/state/snapcraft/log/snapcraft-20240428-213645.910384.log'
2024-04-28T21:36:46.344Z [pebble] Service "snapcraft" stopped unexpectedly with code 1
2024-04-28T21:36:46.344Z [pebble] Service "snapcraft" on-failure action is "shutdown", triggering failure shutdown
2024-04-28T21:36:46.344Z [pebble] Server exiting!

The same Snapcraft file does start building correctly in Ubuntu with the regular snapcraft command:

$ snapcraft --use-lxd --verbose
Starting Snapcraft 8.0.5
Logging execution to '/home/hhromic/.local/state/snapcraft/log/snapcraft-20240428-223554.190257.log'
Running on amd64 for amd64
Launching instance...
Starting instance
Starting Snapcraft 8.0.5
Logging execution to '/tmp/snapcraft.log'
Running on amd64 for amd64
Initializing parts lifecycle
Installing build-packages
Installing build-snaps
Pulling kcalc
Fetching stage-packages
Pulling kde-neon/sdk
Building kcalc
:: + cmake /root/parts/kcalc/src -G 'Unix Makefiles' -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=OFF -DBUILD_TESTING=OFF -DKDE_SKIP_TEST_SETTINGS=ON
:: -- The C compiler identification is GNU 11.2.0
:: -- The CXX compiler identification is GNU 11.2.0
:: -- Detecting C compiler ABI info
:: -- Detecting C compiler ABI info - done
:: -- Check for working C compiler: /usr/bin/cc - skipped
:: -- Detecting C compile features
:: -- Detecting C compile features - done
:: -- Detecting CXX compiler ABI info
:: -- Detecting CXX compiler ABI info - done
...

Warning: The kcalc build itself does not actually succeed in this example, but at least it does start building.

Is there something I'm doing wrong when using the ghcr.io/canonical/snapcraft:8_core22 image or Snapcraft files using extensions is not yet supported by the images in this repository?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions