flatpak: take cairomm from upstream git, not the unreachable cairographics.org - #11
Merged
Ryanmello07 merged 2 commits intoAug 23, 2026
Merged
Conversation
cairomm is the only module in this manifest whose source is not reachable from GitHub's runners, and it took the Flatpak build test down every time it ran: Failed to download sources: module cairomm: Failed to connect to www.cairographics.org port 443 after 60000 ms: Timeout was reached Four attempts across three runs, all the same, so a retry does not help. The host is not down -- it answers a home connection in about 8 seconds -- it just does not answer Azure-hosted runners, which is common for a single unmirrored academic server. There is no mirror to fall back to. cairomm 1.16+ is released by cairographics.org alone: download.gnome.org stops at the 1.12/1.15 API series, Debian's pool stops at 1.14.6, and neither Gentoo distfiles nor Fedora's lookaside carries 1.18.0. flatpak-builder's mirror-urls has nothing to point at. So this switches to cairo's own upstream git, which is where the tarball is cut from and which answers in about 1.5 seconds. Pinned to the commit rather than only the tag: `tag:` alone would follow a tag if it moved, and the commit is what keeps the build reproducible -- the same guarantee the sha256 was providing on the archive. This is a downgrade in one respect and the comment says so: a release tarball is what upstream tested, and a git checkout is not. If cairographics.org ever gets a mirror, this should go back to an archive source. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MAXFxG1EK4jTxQ1iW73BUr
Building cairomm from git rather than a release tarball turns maintainer mode on, which hard-requires mm-common-get, which the GNOME SDK does not ship: ../meson.build:151:18: ERROR: Program 'mm-common-get' not found or not executable Switching it off is safe here rather than merely expedient. mm-common-get fetches the gmmproc scaffolding that generates .h/.cc from .hg/.ccg inputs, and cairomm has none of those -- its 1.18.0 tree contains zero .hg and zero .ccg files, unlike glibmm and gtkmm, which really are generated. The only other thing maintainer mode provides is the documentation toolchain, and -Dbuild-documentation=false already declines it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MAXFxG1EK4jTxQ1iW73BUr
Ryanmello07
added a commit
to urnetwork/build
that referenced
this pull request
Aug 23, 2026
urnetwork/linux#11 moved cairomm off www.cairographics.org, which is not reachable from GitHub's runners and took the Flatpak build test down on four attempts across three runs. Without this bump the flatpak job here still builds the old manifest and still fails on that download, because it builds whatever this pin points at. f41811dcd is the merge of that fix. Verified against the remote rather than transcribed: an earlier attempt at this commit staged a full sha extended from the short one by hand, which shared the first seven characters and was otherwise invented -- a pin that would have failed submodule checkout outright. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MAXFxG1EK4jTxQ1iW73BUr
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
cairommis the only module in the Flatpak manifest whose source cannot be reached from GitHub's runners, and it took the Flatpak build test down on every run:Four attempts across three runs, all identical. The host is not down — it answers a home connection in about 8 seconds — it just does not answer Azure-hosted runners, which is ordinary for a single unmirrored academic server. A retry cannot absorb that, and one was already tried.
There is no mirror
cairomm 1.16+ is released by cairographics.org and nowhere else:
download.gnome.orgSo
mirror-urlshas nothing to point at. The remaining source is cairo's own upstream git, which answers in ~1.5s and is where that tarball is cut from anyway.Two changes
The source becomes
type: git, pinned to the commit rather than only the tag.tag:alone would follow a tag if it moved; the commit is what keeps the build reproducible, and it is the same guarantee thesha256gave on the archive.e0bad547705348657d09db4c9375833d8890cf54is what1.18.0peels to.-Dmaintainer-mode=falseis added, because a checkout is not a released tree, so cairomm switches maintainer mode on and hard-requiresmm-common-get, which the GNOME SDK does not ship:This is safe here, not merely expedient.
mm-common-getfetches the gmmproc scaffolding that generates.h/.ccfrom.hg/.ccginputs — and cairomm's 1.18.0 tree contains zero.hgand zero.ccgfiles. Its sources are hand-written, unlike glibmm and gtkmm which genuinely are generated. Readingmeson.build:145-155, the only other thing maintainer mode provides is the documentation toolchain, and-Dbuild-documentation=falsealready declines that.Honest about the trade
A release tarball is the better input, because it is what upstream tested, and a git checkout is not. The manifest comment says so and says to go back to an archive source if cairographics.org ever gets a mirror. This is the available fix, not the ideal one.
Verified
Built end to end on a GitHub runner via
urnetwork/build'slinux-build.yml, pointed at this branch withlinux_ref:Against 13,082,472 bytes from the last successful tarball build — the same artifact, as expected. All seven modules built, and the run went green end to end.