← Back to issue list

remote build: legacy builder doesn't send icon to Launchpad

View original Github issue

Metadata

Project
snapcraft
Number
#4471
Type
issue
State
closed
Author
merlijn-sebrechts
Labels
—
Created
Updated
Closed

Current evaluation

Closed won't fix: the current remote builder handles root-level icons; the affected legacy builder was removed in Snapcraft 9 by #5994 (b08f1a66e).

Resolution: closed stale

Reason: Maintainer @mr-cal confirmed the defect only affected the legacy remote builder, which was scheduled for removal. That builder was removed in Snapcraft 9 by PR #5994, commit b08f1a66e.

Evaluated by: mr-cal-bot

No scores available.

Issue body

### Bug Description remote-build doesn't send the `icon` to Launchpad if the icon is in the root of the repository. ### To Reproduce remote-build a snap where the icon is in the root of the repository. Example repo: discord at this commit https://github.com/snapcrafters/discord/tree/d3344c01a930f831ae7779381e8a0d292c569268 ### Environment remote-build, both on Ubuntu 22.04 and GitHub actions ### snapcraft.yaml ```shell name: discord title: Discord summary: Chat for Communities and Friends description: | Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities. Snaps are confined, as such Discord may be unable to perform some of the tasks it typically does when unconfined. This may result in the system log getting spammed with apparmor errors. Granting access to the system-observe interface when in the snap will enable the features, and thus reduce the logging. snap connect discord:system-observe **Authors** This snap is maintained by the Snapcrafters community, and is not necessarily endorsed or officially maintained by the upstream developers. website: https://discord.com/ contact: https://github.com//snapcrafters/discord/issues issues: https://github.com//snapcrafters/discord/issues source-code: https://github.com//snapcrafters/discord license: Proprietary icon: discord.png version: 0.0.36 base: core22 grade: stable confinement: strict assumes: - snapd2.54 architectures: - build-on: amd64 compression: lzo parts: disable-updater: plugin: nil override-pull: | cat <<'EOF' > disable-updater.sh #!/bin/bash if [ ! -d "$SNAP_USER_DATA"/.config/discord ]; then mkdir -p "$SNAP_USER_DATA"/.config/discord fi CONFIG_FILE="$SNAP_USER_DATA"/.config/discord/settings.json if ! [ -f "$CONFIG_FILE" ]; then echo '{}' > "$CONFIG_FILE" fi ORIG_JSON=$(cat "$CONFIG_FILE") NEW_JSON=$(jq '.SKIP_HOST_UPDATE = true' < "$CONFIG_FILE") if [ "$ORIG_JSON" != "$NEW_JSON" ]; then echo "$NEW_JSON" > "$CONFIG_FILE" fi exec "$@" EOF override-build: | install -m755 -D -t $CRAFT_PART_INSTALL/bin disable-updater.sh stage-packages: - jq launcher: plugin: dump source: launcher override-build: | cp launcher $CRAFT_PART_INSTALL/ discord: plugin: nil override-build: | craftctl default curl -o discord.deb "https://dl.discordapp.net/apps/linux/${SNAPCRAFT_PROJECT_VERSION}/discord-${SNAPCRAFT_PROJECT_VERSION}.deb" dpkg-deb -xv discord.deb $CRAFT_PART_INSTALL/ rm $CRAFT_PART_INSTALL/usr/share/discord/chrome-sandbox # Correct path to icon. sed -i 's|Icon=discord|Icon=/usr/share/discord/discord\.png|' ${CRAFT_PART_INSTALL}/usr/share/discord/discord.desktop build-packages: - curl - sed stage-packages: - libatomic1 - libc++1 - libnspr4 - libnss3 - libxss1 - xdg-utils prime: - -usr/bin/xdg-open cleanup: after: [discord] plugin: nil build-snaps: [ gnome-42-2204 ] override-prime: | set -eux cd /snap/gnome-42-2204/current find . -type f,l -exec rm -f $CRAFT_PRIME/{} \; plugs: shmem: interface: shared-memory private: true apps: discord: extensions: [gnome] command: launcher command-chain: [bin/disable-updater.sh] autostart: discord.desktop desktop: usr/share/applications/discord.desktop environment: # Correct the TMPDIR path for Chromium Framework/Electron to # ensure libappindicator has readable resources TMPDIR: $XDG_RUNTIME_DIR GTK_USE_PORTAL: 1 DISABLE_WAYLAND: 1 plugs: - audio-playback - audio-record - camera - home - mount-observe - network - network-observe - opengl - process-control - removable-media - screen-inhibit-control - shmem - system-observe - unity7 ``` ### Relevant log output ```shell Running on amd64 for amd64 Specified icon 'discord.png' does not exist. Full execution log: '/root/.local/state/snapcraft/log/snapcraft-20231202-120056.334830.log' Build failed Traceback (most recent call last): File "/usr/lib/python3/dist-packages/lpbuildd/target/build_snap.py", line 265, in run self.pull() File "/usr/lib/python3/dist-packages/lpbuildd/target/build_snap.py", line 205, in pull self.run_build_command( File "/usr/lib/python3/dist-packages/lpbuildd/target/operation.py", line 62, in run_build_command return self.backend.run(args, cwd=cwd, env=full_env, **kwargs) File "/usr/lib/python3/dist-packages/lpbuildd/target/lxd.py", line 716, in run subprocess.check_call(cmd, **kwargs) File "/usr/lib/python3.8/subprocess.py", line 364, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['lxc', 'exec', 'lp-jammy-amd64', '--env', 'LANG=C.UTF-8', '--env', 'SHELL=/bin/sh', '--env', 'http_proxy=http://10.10.10.1:8222/', '--env', 'https_proxy=http://10.10.10.1:8222/', '--env', 'GIT_PROXY_COMMAND=/usr/local/bin/lpbuildd-git-proxy', '--env', 'SNAPPY_STORE_NO_CDN=1', '--env', 'SNAPCRAFT_LOCAL_SOURCES=1', '--env', 'SNAPCRAFT_SETUP_CORE=1', '--env', 'SNAPCRAFT_BUILD_INFO=1', '--env', 'SNAPCRAFT_IMAGE_INFO={"build-request-id": "lp-84317756", "build-request-timestamp": "2023-12-02T11:59:01Z", "build_url": "https://launchpad.net/~snapcrafters-bot/+snap/snapcraft-discord-2ce38607310745e1e17f995dfa82de56/+build/2315373"}', '--env', 'SNAPCRAFT_BUILD_ENVIRONMENT=host', '--', '/bin/sh', '-c', 'cd /build/snapcraft-discord-2ce38607310745e1e17f995dfa82de56 && linux64 snapcraft pull']' returned non-zero exit status 1. Revoking proxy token... RUN: /usr/share/launchpad-buildd/bin/in-target scan-for-processes --backend=lxd --series=jammy --arch=amd64 SNAPBUILD-2315373 Scanning for processes to kill in build SNAPBUILD-2315373 ``` ### Additional context _No response_

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed stale Closed won't fix: the current remote builder handles root-level icons; the affected legacy builder was removed in Snapcraft 9 by #5994 (b08f1a66e).
stealth/space-bunny-alpha — closed stale Legacy remote builds omitted root-level icons, but the current builder works correctly; the legacy builder was removed from Snapcraft 9 by #5994 (b08f1a66e).
stealth/space-bunny-alpha — closed stale Closed as won't fix: only the legacy remote builder was affected; it was removed in Snapcraft 9 by PR #5994 (commit b08f1a66e), while the current builder handles root-level icons.
stealth/space-bunny-alpha — closed stale Reported 2023 by external contributor: the legacy remote builder didn't upload repo-root icons to Launchpad, so builds failed with "Specified icon does not exist". Closed won't-fix by mr-cal (2026-01-27); legacy builder removed in PR #5994 (b08f1a66e) for Snapcraft 9.
stealth/space-bunny-alpha — closed not a bug Closed as won't fix by mr-cal: only the legacy remote builder missed root-level icons; the current remote builder works, and the legacy builder was removed in commit b08f1a66e (chore!: remove legacy remote builder, #5994) for Snapcraft 9.
stealth/space-bunny-alpha — closed stale Closed as won't fix: maintainer mr-cal (2026-01-27) confirmed the icon only fails with the legacy remote builder, not the current one, which was later removed in commit b08f1a66e (PR #5994).
stealth/space-bunny-alpha — closed stale Closed as won't fix: the bug only affects the legacy remote builder, which is removed in Snapcraft 9; the current remote builder handles root-level icons correctly.
qwen/qwen3.6-35b-a3b — — Marked won't fix. The bug only affects the legacy remote builder, which will be removed in Snapcraft 9. The current remote builder correctly handles root-level icons.
qwen/qwen3.6-35b-a3b — — Marked won't fix. The bug only affects the legacy remote builder, which will be removed in Snapcraft 9. Maintainers deemed it non-critical and will not implement a fix.
qwen/qwen3.6-35b-a3b — — Won't fix. The bug only affects the legacy remote builder, which is deprecated and being removed in Snapcraft 9. The current remote builder correctly handles root-level icons.
qwen3.6-35b-a3b-mtp-q6 — — Won't fix. Only the legacy remote builder fails to send root-level icons to Launchpad. The current builder works correctly, and the legacy builder will be removed in Snapcraft 9.

Update history

No update history recorded yet.

Related work

  • Superseded By: canonical/snapcraft#5994 (confidence 99%)

    PR #5994 removed the affected legacy remote-builder implementation in Snapcraft 9.

Related issues

Issue Project State Summary Similarity
#2006445 remote-build is not copying files from root of repository snapcraft (launchpad) closed Closed as no longer reproducible with Snapcraft 9's new remote builder; the legacy builder was removed in snapcraft#5994, with no targeted copy fix recorded.
74%
#5712 remote build: legacy builder should give a friendly error when passing `--project` snapcraft closed Closed as won't fix: maintainer mr-cal said the UX tweak wasn't critical because the legacy remote builder is being removed in Snapcraft 9. That removal landed in merged PR #5994 (commit b08f1a66e), closing #5676.
73%
#5676 remote build: remove legacy remote builder snapcraft closed Fixed in merged PR #5994 (commit b08f1a66e) for Snapcraft 9.0 by removing the legacy remote builder, selection logic, strategy env var, and legacy credential support.
72%
#4892 fix(remotebuild): use legacy launchpad credentials if they exist snapcraft merged Merged in snapcraft#4892 as c1c70a249, adding legacy Launchpad credential fallback, build-for: all support, and expanded remote-build tests; fixes #4889.
70%