Skip to content

The browser image carries the texts of Firefox's licences, not only the pointer to them - #518

Merged
DevomB merged 4 commits into
mainfrom
browser-licence-texts
Oct 16, 2026
Merged

DevomB merged 4 commits into
mainfrom
browser-licence-texts

Conversation

@DevomB

@DevomB DevomB commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

What was wrong

Firefox's top-level LICENSE contains only a pointer: "Please see the file toolkit/content/license.html for the copyright licensing conditions attached to this codebase, including copies of the licenses concerned." source_licences takes a tarball's top-level licence files, so the browser image's /usr/share/licenses/firefox/ held that pointer to a path in the source tree and none of the texts. check-image-licences.sh passed, because it asks only that the directory has files. The texts did ship, but only inside omni.ja as about:license.

Separately, make images passes KRYPTIK_STICK_BIN through CHROOT_ENV like the other two Rust binaries, but 04-images.sh cleared only kryptikd's and the proxy's for an image's chroot. With it set, as in one make system images naming all three, stage 03 would make /kryptik-stick in the image's overlay to bind the binary over. tools/check-image-tree.sh refuses that file as one outside /usr, because its mount points name kryptikd's and the proxy's alone. CI's images job runs make -o system images without the variable, so no run met it.

What changed

s_browser_licences passes source_licences the pattern ^[^/]+/toolkit/content/license\.html$, which is what its pattern argument is for. This puts the texts, 100 licences and about 340 KB, at /usr/share/licenses/firefox/toolkit/content/license.html. The row then checks the file is there and not empty, so a later ESR that moves it fails the row instead of shipping the pointer alone.

04-images.sh now enters each image's chroot with KRYPTIK_STICK_BIN= cleared as well. This is its own commit.

When it lands

With the browser batch, as one extra on its push. The branch merges 9d540a3, the batch as it lands. If the batch head moves, the new head is merged again. build/images/browser.sh is an input of the browser image, and 04-images.sh is an input of every image, so the push's run rebuilds each image once, Firefox included (about 3 h). It must land before any release that ships the browser.

How checked

  • I read the tag's files: LICENSE at FIREFOX_153_5_0esr_RELEASE is the pointer above, and toolkit/content/license.html is 341,861 bytes, with 100 licences (one h1 each) among its 141 headings.
  • The combined pattern (licence_members' default, source_licences' own additions and this one) matched firefox-153.5.0/LICENSE and firefox-153.5.0/toolkit/content/license.html. It rejected license.html.orig and a nested toolkit/content/license.html.
  • bash -n passes on both files. The licence file is installed 0644, so browser.programs is unaffected.
  • The env line now clears all three binaries CHROOT_ENV passes (Makefile), and stage 03 binds only a variable that is set (03-chroot-prep.sh).

Firefox's top-level LICENSE says only to see toolkit/content/license.html,
and source_licences took top-level files alone, so the image's licence
directory held a pointer to a path in the source tree. license.html holds
the texts of everything Firefox carries (its about:license): the licences
row takes it too, and fails if it is not there.
…ge-chain fixes, browser.accepted, the mirrors, 4096-byte image blocks
…h kryptikd's and the proxy's

make images passes KRYPTIK_STICK_BIN through CHROOT_ENV like the other two Rust binaries, but only
those two were cleared for an image's chroot. With it set, as in one `make system images` naming all
three, stage 03 would make /kryptik-stick in the image's overlay to bind the binary over, and
tools/check-image-tree.sh refuses that file as one outside /usr: its mount points name kryptikd's and
the proxy's alone. CI's images job runs `make -o system images` without the variable, so no run met it.

04-images.sh is among every image's inputs, so this rebuilds each image once.
@DevomB
DevomB marked this pull request as ready for review October 15, 2026 16:33
… images' /usr through a descriptor opened as host root
@DevomB
DevomB changed the base branch from batch-images-browser to main October 16, 2026 09:29
@DevomB
DevomB merged commit dfd4299 into main Oct 16, 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.

1 participant