Skip to content

ci: implement Launchpad remote builds for armhf architecture#32

Merged
tillkamppeter merged 10 commits into
OpenPrinting:masterfrom
rkt0209:master
Mar 12, 2026
Merged

ci: implement Launchpad remote builds for armhf architecture#32
tillkamppeter merged 10 commits into
OpenPrinting:masterfrom
rkt0209:master

Conversation

@rkt0209

@rkt0209 rkt0209 commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

Description

This PR expands our CI coverage by successfully introducing armhf builds alongside our existing native pipelines.

Because armhf requires specialized handling, this update leverages Launchpad's remote-build capabilities while keeping the blazing-fast native GitHub Action runners intact for amd64 and arm64. This brings us a massive step closer to a fully complete, multi-architecture CI setup.

Key Changes & Implementations

  • Split CI Workflows (build.yml): * Maintained the existing native matrix job for amd64 and arm64 (including local smoke testing).
    • Introduced a parallel build-remote job exclusively for armhf utilizing snapcraft remote-build --launchpad-accept-public-upload.
  • Architecture Definitions (snapcraft.yaml): * Updated the architectures block with explicit build-on and build-for parameters. This satisfies Launchpad's strict multi-arch requirements while remaining fully compatible with local runner behavior.
  • Ghostscript C99 Compatibility: * Added CFLAGS: "-std=gnu99 -Wno-error=declaration-after-statement" and CXXFLAGS to the ghostscript part. This resolves the ISO C90 mixed-declaration compilation errors encountered on armhf, while remaining perfectly safe and compatible with native GCC builds.
  • Dynamic GCC Targeting: * Updated the scripts part to use "${CRAFT_ARCH_TRIPLET_BUILD_FOR}-gcc" instead of a hardcoded gcc call. This gracefully handles cross-compilation environments and ensures the correct compiler is invoked depending on the target architecture.

Comment thread snapcraft.yaml
# ext:updatesnap
# version-format:
# lower-than: '3'
# no-9x-revisions: true

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not remove these comments from the parts, they are used by the automatic updating workflow.

Comment thread snapcraft.yaml
autotools-configure-parameters:
- --prefix=/
- --exec-prefix=/
# Prevent the libraries from being put into lib64

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you removing all the comments which I have introduced originally?

Comment thread snapcraft.yaml
# ext:updatesnap
# version-format:
# lower-than: '12'
# no-9x-revisions: true

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not remove! Needed for auto-updating!

@tillkamppeter

Copy link
Copy Markdown
Member

Please do not whole-sale remove all the comment lines in the files, esp. snapcraft.yaml. I have originally introduced them with intention. Especially the comment blocks near the beginning of each part, containing updatesnap in their first lines are needed for automatic updating of the components.

@rkt0209

rkt0209 commented Mar 12, 2026

Copy link
Copy Markdown
Contributor Author

I am sorry,I accidently did that.
Just give me a mement ,I Will do it back.
can you please confirm the current snapcraft.yaml :https://github.com/OpenPrinting/cups-snap/blob/master/snapcraft.yaml
is correct or not?
there are a few changes that i have to make for the armhf run.,If current is correct i will just do my required change keeping other things untouched.

…comments and ext:updatesnap blocks that were accidentally overwritten in a previous commit
Comment thread snapcraft.yaml Outdated
usr/lib/cups/backend: lib/cups/backend
usr/sbin: sbin
after: [cups, cups-filters]
after: [cups, cups-filters] No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change has no effect and is only clutter on the diff. Can you remove it?

(Keep newline after the last line in snapcraft.yaml)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am doing it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think its fine now.

Comment thread .github/workflows/build.yml Outdated
with:
name: cups-snap-armhf
path: ./*.snap
if-no-files-found: error No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please keep the newline at the end of each file.

@tillkamppeter tillkamppeter merged commit 978a882 into OpenPrinting:master Mar 12, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants