← Back to issue list

KDE Neon 6 broken on arm64

View original Github issue

Metadata

Project
snapcraft
Number
#5128
Type
issue
State
open
Author
waveform80
Labels
Created
2024-10-18 13:10:14+00:00
Updated
2025-04-14 07:11:28+00:00
Closed

Current evaluation

No evaluation has been recorded for this issue yet.

Issue body

### Bug Description We're attempting to update the [rpi-imager snap](https://snapcraft.io/rpi-imager) to use the `kde-neon-6` extension. The application has recently moved to Qt6, so this seemed like a reasonable opportunity to try the extension and potentially make the snap much smaller by not embedding most of Qt in it. The snap builds successfully and runs very nicely on amd64. However, on arm64, while the snap builds successfully, it fails to run, complaining that `libQt6Widgets.so.6` is missing. This is meant to come from the `kf6-core22` content snap and, indeed, on amd64 this is present. Unfortunately, the arm64 version of `kf6-core22` appears completely broken. For starters it's a mere 73MB compared to the amd64 variant's 2GB (!), and indeed it is missing Qt6 entirely. I checked the [snapstore page for kf6-core22](https://snapcraft.io/kf6-core22) but there's no contact information registered. In the absence of being able to file a bug against kf6-core22 itself, I figure the next best thing is to try filing a bug against the project with an official extension encouraging its use? It may at the least be worth mentioning on the [snapcraft extensions page](https://snapcraft.io/docs/supported-extensions) that, contrary to appearances, this extension is amd64 only currently? ### To Reproduce On an arm64 box (e.g. a Raspberry Pi 5) with a desktop installation: * Check out and build the snap: * `git clone https://github.com/waveform80/imager-snap` * `git checkout neon-6` * `snapcraft pack` * `sudo snap install --dangerous ./rpi-imager_1.9.0_amd64.snap` * Add the following connections (normally made automatically, but obviously not here with a local build): * `sudo snap connect rpi-imager:hardware-observe` * `sudo snap connect rpi-imager:mount-observe` * `sudo snap connect rpi-imager:network-manager` * `sudo snap connect rpi-imager:removable-media` * `sudo snap connect rpi-imager:udisks2` * Run `rpi-imager` * Observe failure while attempting to load shared library `libQt6Widgets.so.6` Compare the content of `/snap/kd6-core22/current/` between amd64 and arm64 and you should find the missing library located under usr/lib/{arch} on the amd64 variant, but not the arm64 one. ### Environment Built using LXD on Ubuntu 24.04 LTS on a PC (amd64) and a Raspberry Pi 5 (arm64). ### snapcraft.yaml ```yaml name: rpi-imager base: core22 adopt-info: imagewriter summary: Raspberry Pi Imager website: https://www.raspberrypi.com/software/ source-code: https://github.com/raspberrypi/rpi-imager issues: https://github.com/waveform80/imager-snap icon: images/rpi-imager.png license: Apache-2.0 description: | Raspberry Pi Imager is an easy to use application for installing Raspberry Pi OS, or other operating systems, to an SD card ready to use with your Raspberry Pi. Usage is as simple as: 1. Pick the Raspberry Pi board you want to use. 2. Pick the operating system you want to write. 3. Pick the storage you want to write it to (SD card, hard drive, SSD, etc.) 4. Click "NEXT", confirm you wish to overwrite your storage and wait! The application also verifies that the operating system has been written correctly after writing has finished. With certain operating system images, the imager also supports customizing the first boot configuration (you will be prompted for more information after selecting "NEXT" in this case). compression: lzo grade: stable confinement: strict apps: rpi-imager: command: usr/local/bin/rpi-imager desktop: usr/local/share/applications/org.raspberrypi.rpi-imager.desktop extensions: [kde-neon-6] environment: DISABLE_WAYLAND: 1 # Use GTK3 cursor theme, icon theme and open/save file dialogs QT_QPA_PLATFORMTHEME: gtk3 plugs: - home - removable-media # required to re-write first-boot configuration - mount-observe # required to report mounts on target media - network-manager # required to grab image - network-control - cifs-mount - udisks2 # required for writing to sd card - hardware-observe # required to find card with lsblk - gsettings # required for theming on wayland parts: imagewriter: plugin: cmake cmake-parameters: - -DENABLE_CHECK_VERSION=OFF - -DQt6_ROOT= source: https://github.com/raspberrypi/rpi-imager.git source-subdir: src source-type: git override-pull: | craftctl default last_committed_tag="$(git describe --tags $(git rev-list --tags --max-count=1))" last_committed_tag_ver="$(echo ${last_committed_tag} | sed 's/v//' )" git fetch git checkout "$last_committed_tag" echo "Building $last_committed_tag_ver" craftctl set version="$last_committed_tag_ver" # Strip out the vendored dependencies and embedded source if [ -d "$CRAFT_PART_SRC"/embedded ]; then rm -fr "$CRAFT_PART_SRC"/embedded fi # Point the icon to the right place sed -i -e \ 's|^Icon=rpi-imager|Icon=/usr/local/share/icons/hicolor/128x128/apps/rpi-imager.png|' \ "$CRAFT_PART_SRC"/src/linux/org.raspberrypi.rpi-imager.desktop build-packages: - libgnutls28-dev ``` ### Relevant log output ```shell /snap/rpi-imager/x1/usr/local/bin/rpi-imager: error while loading shared libraries: libQt6Widgets.so.6: cannot open shared object file: No such file or directory ``` ### Additional context _No response_

Evaluation history

No evaluation history available.