← Back to issue list

`package-repositories` fail with the core24 base due to missing packages

View original Github issue

Metadata

Project
snapcraft
Number
#4740
Type
issue
State
closed
Author
Meulengracht
Labels
—
Created
Updated
Closed

Current evaluation

Fixed in merged PR #4754 (commit 712626448) and released in Snapcraft 8.2.1: core24 remote builds now install GPG/dirmngr before configuring package repositories.

Resolution: closed resolved

Reason: PR #4754 was merged as commit 712626448, adding the missing GPG and dirmngr setup for core24 remote builds. The reporter confirmed that the pi-24 Launchpad build now succeeds.

Evaluated by: mr-cal-bot

No scores available.

Issue body

### Bug Description We have a LP recipe for a snap with `base: core24` that's failing due to the following: ``` gpg: WARNING: unsafe permissions on homedir '/tmp/tmpvro98o2s' gpg: error running '/usr/bin/dirmngr': probably not installed gpg: failed to start dirmngr '/usr/bin/dirmngr': Configuration error gpg: can't connect to the dirmngr: Configuration error gpg: keyserver receive failed: No dirmngr ``` The build log is here: https://launchpadlibrarian.net/724229364/buildlog_snap_ubuntu_noble_arm64_pi-24_BUILDING.txt.gz And the recipe is here: https://github.com/snapcore/pi-gadget/blob/24/snapcraft.yaml It seems to happen when we use the following ``` package-repositories: - type: apt ppa: snappy-dev/image ``` We have tried to add the missing packages `gnupg` and `dirmngr` - but snapcraft fails before installing packages. It seems to have had special handling for core22 [here](https://github.com/canonical/snapcraft/blob/be36b4dc0c98fbbff10e38fc8aef23fc39a0e51f/snapcraft/parts/parts.py#L242) ### To Reproduce 1. Create a snap recipe on LP using the latest edge snapcraft. 2. Use a snapcraft.yaml that contains both of these configs options * `base: core24` * `package-repositories:` with `type: apt` ### Environment Snapcraft on LP. ### snapcraft.yaml ```shell name: pi version: 24-1 summary: Raspberry Pi gadget description: | Support files for booting Raspberry Pi. This gadget snap supports the Raspberry Pi 2B, 3B, 3A+, 3B+, 4B, Compute Module 3, and the Compute Module 3+ universally. type: gadget base: core24 build-base: devel assumes: [kernel-assets] platforms: rpi: build-on: arm64 build-for: arm64 rpi-amd64: build-on: amd64 build-for: arm64 package-repositories: - type: apt ppa: snappy-dev/image confinement: strict grade: devel parts: gadget: plugin: nil source: . override-build: | set -x # we only support arm64 for 24 for pi BUILD_ARCH_TRIPLET=aarch64-linux-gnu BUILD_SERIES=noble BUILD_ARCH="$(dpkg-architecture -t $BUILD_ARCH_TRIPLET -q DEB_HOST_ARCH)" # but only use the cross-compiling sources when actually cross compiling # as otherwise its just safer to use the build environment - it offers # much more flexibility. if [ "$CRAFT_ARCH_TRIPLET_BUILD_ON" = "x86_64-linux-gnu" ] || [ -z "$CRAFT_ARCH_TRIPLET_BUILD_ON" ]; then sed -i "/^deb/s/\bSERIES/$BUILD_SERIES/" ./helpers/cross-sources.list sed -i "/^deb/s/\bARCH\b/$BUILD_ARCH/" ./helpers/cross-sources.list OPTIONAL_ARGS="SERIES_HOST=\"$BUILD_SERIES\" SOURCES_HOST=\"./helpers/cross-sources.list\" SOURCES_D_HOST=\"./helpers\"" fi make -C $CRAFT_PART_SRC core \ DESTDIR=${CRAFT_PART_INSTALL} \ SERIES="$BUILD_SERIES" \ ARCH="$BUILD_ARCH" \ ${OPTIONAL_ARGS:-} prime: - boot-assets/* - piboot.conf build-packages: - lsb-release - dpkg-dev - make - gnupg - dirmngr slots: bcm-gpio-0: interface: gpio number: 0 bcm-gpio-1: interface: gpio number: 1 bcm-gpio-2: interface: gpio number: 2 bcm-gpio-3: interface: gpio number: 3 bcm-gpio-4: interface: gpio number: 4 bcm-gpio-5: interface: gpio number: 5 bcm-gpio-6: interface: gpio number: 6 bcm-gpio-7: interface: gpio number: 7 bcm-gpio-8: interface: gpio number: 8 bcm-gpio-9: interface: gpio number: 9 bcm-gpio-10: interface: gpio number: 10 bcm-gpio-11: interface: gpio number: 11 bcm-gpio-12: interface: gpio number: 12 bcm-gpio-13: interface: gpio number: 13 bcm-gpio-14: interface: gpio number: 14 bcm-gpio-15: interface: gpio number: 15 bcm-gpio-16: interface: gpio number: 16 bcm-gpio-17: interface: gpio number: 17 bcm-gpio-18: interface: gpio number: 18 bcm-gpio-19: interface: gpio number: 19 bcm-gpio-20: interface: gpio number: 20 bcm-gpio-21: interface: gpio number: 21 bcm-gpio-22: interface: gpio number: 22 bcm-gpio-23: interface: gpio number: 23 bcm-gpio-24: interface: gpio number: 24 bcm-gpio-25: interface: gpio number: 25 bcm-gpio-26: interface: gpio number: 26 bcm-gpio-27: interface: gpio number: 27 i2c-0: interface: i2c path: /dev/i2c-0 i2c-1: interface: i2c path: /dev/i2c-1 i2c-2: interface: i2c path: /dev/i2c-2 i2c-3: interface: i2c path: /dev/i2c-3 i2c-4: interface: i2c path: /dev/i2c-4 i2c-5: interface: i2c path: /dev/i2c-5 i2c-6: interface: i2c path: /dev/i2c-6 bt-serial: interface: serial-port path: /dev/ttyAMA0 serial0: interface: serial-port path: /dev/ttyS0 serial1: interface: serial-port path: /dev/ttyS1 serial2: interface: serial-port path: /dev/ttyS2 serial3: interface: serial-port path: /dev/ttyS3 serial4: interface: serial-port path: /dev/ttyS4 serial5: interface: serial-port path: /dev/ttyS5 serial6: interface: serial-port path: /dev/ttyS6 serial7: interface: serial-port path: /dev/ttyS7 serial8: interface: serial-port path: /dev/ttyS8 serial9: interface: serial-port path: /dev/ttyS9 spidev0: interface: spi path: /dev/spidev0.0 spidev1: interface: spi path: /dev/spidev0.1 spidev1-0: interface: spi path: /dev/spidev1.0 spidev1-1: interface: spi path: /dev/spidev1.1 spidev2-0: interface: spi path: /dev/spidev2.0 spidev2-1: interface: spi path: /dev/spidev2.1 spidev3-0: interface: spi path: /dev/spidev3.0 spidev3-1: interface: spi path: /dev/spidev3.1 spidev4-0: interface: spi path: /dev/spidev4.0 spidev4-1: interface: spi path: /dev/spidev4.1 spidev5-0: interface: spi path: /dev/spidev5.0 spidev5-1: interface: spi path: /dev/spidev5.1 spidev6-0: interface: spi path: /dev/spidev6.0 spidev6-1: interface: spi path: /dev/spidev6.1 pwm0: interface: pwm chip-number: 0 channel: 0 pwm1: interface: pwm chip-number: 0 channel: 1 ``` ### Relevant log output ```shell https://launchpadlibrarian.net/725096872/buildlog_snap_ubuntu_noble_arm64_pi-24_BUILDING.txt.gz ``` ### Additional context _No response_

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Fixed in merged PR #4754 (commit 712626448) and released in Snapcraft 8.2.1: core24 remote builds now install GPG/dirmngr before configuring package repositories.
stealth/space-bunny-alpha — closed resolved Fixed in PR #4754 (commit 712626448), released in Snapcraft 8.2.1: core24 remote builds now install gpg/dirmngr before configuring package-repositories. Reporter confirmed the pi snap builds on LP.
stealth/space-bunny-alpha — closed resolved Fixed by merged PR #4754: core24 builds now install gpg and dirmngr before using package-repositories. The reporter confirmed pi-24 now builds on Launchpad.
qwen/qwen3.6-35b-a3b — — Fixed via PR #4754. Snapcraft now ensures dirmngr and gnupg are available during the package-repositories step for core24, resolving GPG keyserver failures when adding PPAs. Builds now succeed.
qwen/qwen3.6-35b-a3b — — Fixed via PR #4754. The package-repositories step failed with the core24 base due to missing dirmngr in the build environment. The update resolved the dependency handling, and the reporter confirmed builds now succeed.
qwen/qwen3.6-35b-a3b — — Fixed via PR #4754. The package-repositories PPA setup failed on core24 Launchpad builds due to missing dirmngr and gnupg. Required tools are now installed before repository configuration, resolving the build failure.
qwen3.6-35b-a3b-mtp-q6 — — Fixed via PR #4754. GPG dependencies like dirmngr are now installed before processing package-repositories for core24 bases. The issue is resolved and builds succeed.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: canonical/snapcraft#4754 (confidence 100%)

    Merged fix for installing gpg and dirmngr in core24 builds.

Related issues

Issue Project State Summary Similarity
#4754 fix: install gpg and dirmngr in core24 builds snapcraft merged Merged in Snapcraft 8.2.1 via #4754 (commit 712626448), installing gpg and dirmngr in core24 remote builds before using package-repositories.
87%
#4758 fix: use local keys for package-repos in core24 snapcraft merged Merged PR #4758 (commit b8ff64b89) into hotfix/8.2, making core24 package-repositories use local signing keys; fixes issue #4743 where local key assets were ignored.
72%
#4743 Local key assets are not used in package-repositories for core24 snapcraft closed Fixed in merged PR #4758 (commit b8ff64b89), enabling core24 package repositories to use local signing keys instead of only a keyserver.
71%
#2051567 Using core24 fails due to change in apt sources snapcraft (launchpad) closed Fixed by snapcore/snapcraft#4551, which bumped craft-providers to 1.22.0; the reporter confirmed the fix on latest/edge.
71%
#4805 `version: git` does not work in core24 snapcraft closed version: git failed on core24 because git was missing. Fixed by merging PR #5149 (commit c7d11ac65), which bundles a git binary as craft.git in $SNAP/libexec/snapcraft, with new spread tests.
70%