Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
290 commits
Select commit Hold shift + click to select a range
73e163b
Stage 06 audits an image against its own accepted findings, or none, …
DevomB Oct 13, 2026
80b5218
Merge image-stage: an image is audited against its own accepted findings
DevomB Oct 13, 2026
36063b8
Merge toolkit-image: an image's own accepted findings
DevomB Oct 13, 2026
300c1c4
Merge image-layers
DevomB Oct 13, 2026
0cfaf09
Stage 06 runs every check of an image before failing it, so one run s…
DevomB Oct 13, 2026
2e3ec45
Merge image-stage: every image check runs before the step fails
DevomB Oct 13, 2026
55f4202
The browser plan adds what the source research found: two gigabytes o…
DevomB Oct 13, 2026
c21e891
The Distro run keeps the software images' trees in a cache of their o…
DevomB Oct 13, 2026
684fb10
Merge toolkit-image: the images cache, and every check before failing
DevomB Oct 13, 2026
18a7144
Merge image-layers
DevomB Oct 13, 2026
7802e9b
Merge image-stage: an image is audited against its own accepted findi…
DevomB Oct 13, 2026
fa9d890
Merge image-checks: the image audit's own accepted findings
DevomB Oct 13, 2026
b804285
Merge medium-images: stage 06 audits an image against its own accepte…
DevomB Oct 13, 2026
cfd6fd8
Merge install-images: stage 06's image audit fix
DevomB Oct 13, 2026
4afc0ff
The toolkit image takes the Khronos EGL headers from libglvnd, which …
DevomB Oct 13, 2026
8f03b9e
The browser plan takes its four open choices and names pdf.js as the …
DevomB Oct 13, 2026
36a4bfb
The image tree check takes a new directory overlayfs marked opaque, a…
DevomB Oct 13, 2026
976475a
Merge toolkit-image: the EGL headers, and new opaque directories pass…
DevomB Oct 13, 2026
3e66164
Merge image-layers: the EGL headers, and new opaque directories pass …
DevomB Oct 13, 2026
ff89037
The software images' sources are kept in sources/images/, a cache of …
DevomB Oct 13, 2026
4376026
The toolkit image keeps its seven canary-free objects as findings wit…
DevomB Oct 13, 2026
e9e36df
Merge toolkit-image: the toolkit's accepted findings, no libtool arch…
DevomB Oct 13, 2026
449517b
Merge image-layers: the toolkit's accepted findings, no libtool archi…
DevomB Oct 13, 2026
35a67e7
Merge browser-build-plan: the toolkit's accepted findings, no libtool…
DevomB Oct 13, 2026
9ef8b46
The browser's sources and the layers it is built over are pinned: Fir…
DevomB Oct 13, 2026
7e9e38b
fetch-sources fetches the crates a crate's own Cargo.lock names, each…
DevomB Oct 13, 2026
0180469
shellcheck reads source_licences' optional pattern as an image's
DevomB Oct 13, 2026
109415d
The root's sources cache keeps the path it always had, so earlier set…
DevomB Oct 13, 2026
7b28c86
Merge image-sources-cache: the root's cache keeps its path, images/ s…
DevomB Oct 13, 2026
710f9d6
Merge browser-pins: the root's cache keeps its path, images/ set aside
DevomB Oct 13, 2026
fb137d4
Merge toolkit-image: shellcheck reads source_licences' pattern
DevomB Oct 13, 2026
3810689
Merge image-layers: shellcheck reads source_licences' pattern
DevomB Oct 13, 2026
161a6c6
Merge browser-build-plan: shellcheck reads source_licences' pattern
DevomB Oct 13, 2026
e42759d
Merge image-sources-cache: shellcheck reads source_licences' pattern
DevomB Oct 13, 2026
76f675c
Merge browser-pins: shellcheck reads source_licences' pattern
DevomB Oct 13, 2026
7c5f9e2
The browser image: Firefox ESR for Wayland alone over the toolkit, bu…
DevomB Oct 13, 2026
37f65de
The zones suite draws a page with Firefox, headless, in a zone that n…
DevomB Oct 13, 2026
8e7ca2d
The crates test's runner takes no arguments, which shellcheck asks of…
DevomB Oct 13, 2026
911df9e
Merge browser-crates: the crates test's runner takes no arguments
DevomB Oct 13, 2026
0f02f34
The browser image asks a zone for seccomp, which Firefox's content sa…
DevomB Oct 13, 2026
fdd3942
The status page names what the software-image checks prove, the toolk…
DevomB Oct 13, 2026
55b73db
Merge toolkit-image: the status page names the software-image checks
DevomB Oct 13, 2026
5bcf7a8
Merge image-layers: the status page names the software-image checks
DevomB Oct 13, 2026
7d896a5
Merge browser-build-plan: the status page names the software-image ch…
DevomB Oct 13, 2026
77e63eb
Merge image-sources-cache: the status page names the software-image c…
DevomB Oct 13, 2026
a3f1347
Merge browser-pins: the status page names the software-image checks
DevomB Oct 13, 2026
5dca84e
Merge browser-crates: the status page names the software-image checks
DevomB Oct 13, 2026
f336ab0
The status page names the browser's check
DevomB Oct 13, 2026
5006d06
untrusted, personal and work carry the browser image, Alt+Shift+u and…
DevomB Oct 13, 2026
1c9fb4c
The browser image's Firefox reports nothing, joins no study, checks f…
DevomB Oct 13, 2026
b4efe47
Merge browser-image: Firefox's policies
DevomB Oct 13, 2026
72e7563
The clang layer takes no licence text from LLVM's build, as it ships …
DevomB Oct 13, 2026
dbedd59
Merge browser-image: the clang layer's tar takes no licence
DevomB Oct 13, 2026
916cddb
The toolkit's zone round also reads GTK's compiled settings schemas, …
DevomB Oct 13, 2026
85bb851
The design says image_over is not followed through, so a zone names a…
DevomB Oct 13, 2026
5cb68ef
Merge toolkit-image: the toolkit round reads GTK's compiled schemas
DevomB Oct 13, 2026
0b824dd
Merge image-layers: the schemas check, and image_over not followed th…
DevomB Oct 13, 2026
a9e8a8e
Merge browser-build-plan: the schemas check, and image_over not follo…
DevomB Oct 13, 2026
3776a06
Merge image-sources-cache: the schemas check, and image_over not foll…
DevomB Oct 13, 2026
2b4f8e1
Merge browser-pins: the schemas check, and image_over not followed th…
DevomB Oct 13, 2026
8596111
Merge browser-crates: the schemas check, and image_over not followed …
DevomB Oct 13, 2026
c80216f
Merge browser-image: the schemas check, and image_over not followed t…
DevomB Oct 13, 2026
a653253
The images' sources cache carries the signatures too, so an image's p…
DevomB Oct 13, 2026
440873b
Merge image-sources-cache: the images' cache carries the signatures
DevomB Oct 13, 2026
abfaaf7
Merge browser-pins: the images' cache carries the signatures
DevomB Oct 13, 2026
279ebf1
Merge browser-crates: the images' cache carries the signatures
DevomB Oct 13, 2026
acf5194
Merge browser-image: the images' cache carries the signatures
DevomB Oct 13, 2026
ab7c87d
An image's .strip list names what it keeps for the images built over …
DevomB Oct 13, 2026
53890b1
The source bundle carries the crates cbindgen is built from, held to …
DevomB Oct 13, 2026
0d40057
fetch-sources' test holds Mozilla's key row to the KEY file beside th…
DevomB Oct 13, 2026
9ad9df8
Merge toolkit-image: the .strip list
DevomB Oct 13, 2026
f4f9fff
Merge image-layers: the .strip list
DevomB Oct 13, 2026
1220def
Merge browser-build-plan: the .strip list
DevomB Oct 13, 2026
adf39ad
Merge image-sources-cache: the .strip list
DevomB Oct 13, 2026
7224bd3
Merge browser-pins: Mozilla's key row test, the .strip list
DevomB Oct 13, 2026
931f88b
Merge browser-crates: the crates in the bundle, the key row test, the…
DevomB Oct 13, 2026
6e025b3
Merge browser-image: the crates in the bundle, the key row test, the …
DevomB Oct 13, 2026
a48c160
A zone set without network needs no NIC zone: one is required only wh…
DevomB Oct 13, 2026
4a64f01
Merge remote-tracking branch 'origin/software-images' into image-checks
DevomB Oct 13, 2026
870159c
The zones suite's images disk is labelled within ext4's 16 bytes, so …
DevomB Oct 13, 2026
153b0cd
Merge remote-tracking branch 'origin/image-checks' into images-in-pay…
DevomB Oct 13, 2026
a09807f
The update suite lists the staged release with its image list, and ho…
DevomB Oct 13, 2026
887b178
Merge remote-tracking branch 'origin/software-images' into images-req…
DevomB Oct 13, 2026
8ae0fe0
Merge remote-tracking branch 'origin/image-checks' into install-images
DevomB Oct 13, 2026
99197c8
Merge remote-tracking branch 'origin/images-in-payload' into install-…
DevomB Oct 13, 2026
4ffa6b1
Merge remote-tracking branch 'origin/images-requires' into install-im…
DevomB Oct 13, 2026
92ff448
Merge remote-tracking branch 'origin/install-images' into images-full…
DevomB Oct 13, 2026
e8f9a4e
Merge images-full-hash: the stack's whole-hash naming and its guest-c…
DevomB Oct 13, 2026
cfb81de
Merge toolkit-image: the image stack's guest-check fixes
DevomB Oct 13, 2026
92bfbfe
Merge image-layers: the image stack's guest-check fixes
DevomB Oct 13, 2026
49a9cc7
Merge browser-build-plan: the image stack's guest-check fixes
DevomB Oct 13, 2026
a5362b9
Merge image-sources-cache: the image stack's guest-check fixes
DevomB Oct 13, 2026
8851ef7
Merge browser-pins: the image stack's guest-check fixes
DevomB Oct 13, 2026
d8dda45
Merge browser-crates: the image stack's guest-check fixes
DevomB Oct 13, 2026
63adcf8
Merge browser-image: the image stack's guest-check fixes
DevomB Oct 13, 2026
dbe2c31
The browser's zone round may take three minutes, as Firefox's first s…
DevomB Oct 13, 2026
3d99341
Merge browser-image: the browser round's longer bound
DevomB Oct 13, 2026
c1a5e28
The clang layer reads LLVM's zstd with the 1 GiB window it was made w…
DevomB Oct 13, 2026
c7feb0c
Merge browser-image: LLVM's long zstd window, no debug symbols
DevomB Oct 13, 2026
f1ecf7a
Image sources are linked into sources/ by every run that asks for the…
DevomB Oct 13, 2026
2e75bb9
Merge image-sources-cache: image sources linked on every run
DevomB Oct 13, 2026
908af9f
Merge browser-pins: image sources linked on every run
DevomB Oct 13, 2026
a17bf7e
Merge browser-crates: image sources linked on every run
DevomB Oct 13, 2026
ab529fd
Merge browser-image: image sources linked on every run
DevomB Oct 13, 2026
d19e2ed
Merge zones-browser: the software images, the toolkit and the browser…
DevomB Oct 13, 2026
3fe566b
The clang layer gives zstd LLVM's tarball on standard input, as zstd …
DevomB Oct 13, 2026
4a61724
Merge browser-image: zstd reads LLVM's tarball on standard input
DevomB Oct 13, 2026
853957a
Software images are built against the base system up to wlroots, so z…
DevomB Oct 13, 2026
b5aa817
An image's inputs name the sysroot's headers, libraries and pkg-confi…
DevomB Oct 13, 2026
2b5d0f4
Firefox's configure finds llvm-objdump beside clang, and an unzip of …
DevomB Oct 13, 2026
42a3b97
Merge browser-image: llvm-objdump and unzip for Firefox's configure
DevomB Oct 13, 2026
491c5e8
Merge zones-browser: llvm-objdump and unzip for Firefox's configure
DevomB Oct 13, 2026
3fe8a8d
link_surface lists what is there when one of its directories is not
DevomB Oct 13, 2026
25a37de
Merge image-base: the browser stack's fixes and images built against …
DevomB Oct 13, 2026
9c2e9a9
The browser design names its sandbox in a zone as it now is: the name…
DevomB Oct 13, 2026
a1df48b
Merge zones-browser: the browser's sandbox in a zone as it now is
DevomB Oct 13, 2026
c22997f
Merge image-base: the browser's sandbox in a zone as it now is
DevomB Oct 13, 2026
d1d628b
Firefox's configure is given llvm-objdump by name, as it asks only a …
DevomB Oct 13, 2026
d21ffe7
Merge browser-image: llvm-objdump named for Firefox's configure
DevomB Oct 13, 2026
c2fb7fa
Merge browser-image: llvm-objdump named for Firefox's configure
DevomB Oct 13, 2026
4c3651f
Merge browser-image: llvm-objdump named for Firefox's configure
DevomB Oct 13, 2026
d5dc0b2
bindgen's libclang is told where GCC is installed, which its own sear…
DevomB Oct 13, 2026
bf431d5
Merge browser-image: GCC's install dir for bindgen
DevomB Oct 13, 2026
35d0451
Merge browser-image: GCC's install dir for bindgen
DevomB Oct 13, 2026
23c2e55
Merge browser-image: GCC's install dir for bindgen
DevomB Oct 13, 2026
b7a81be
The browser's program list follows Firefox 153's packaging manifest, …
DevomB Oct 13, 2026
08180c1
Merge browser-image: the browser's program list and strip list
DevomB Oct 13, 2026
9cfb43c
Merge browser-image: the browser's program list and strip list
DevomB Oct 13, 2026
5b06d3d
Merge browser-image: the browser's program list and strip list
DevomB Oct 13, 2026
c587095
The browser's program list says only what the packaging manifest lists
DevomB Oct 13, 2026
b64e4a1
Merge browser-image: the program list's comment
DevomB Oct 13, 2026
a4ccd80
Merge browser-image: the program list's comment
DevomB Oct 13, 2026
7bd598e
Merge browser-image: the program list's comment
DevomB Oct 13, 2026
c52e9ff
The roadmap says what of the applications and of software delivery is…
DevomB Oct 13, 2026
acca4c2
Merge zones-browser: the roadmap's applications and software delivery
DevomB Oct 13, 2026
234b2ce
Merge zones-browser: the roadmap's applications and software delivery
DevomB Oct 13, 2026
bba32d0
ADR-015 and ADR-016 are accepted: applications ship as signed images,…
DevomB Oct 13, 2026
b00ce9d
Merge zones-browser: ADR-015 and ADR-016 accepted
DevomB Oct 13, 2026
d14352e
Merge zones-browser: ADR-015 and ADR-016 accepted
DevomB Oct 13, 2026
f777ef6
The roadmap's software delivery names the install media and what is e…
DevomB Oct 13, 2026
dbfcdd0
Merge zones-browser: the roadmap's software delivery
DevomB Oct 13, 2026
511ec27
Merge zones-browser: the roadmap's software delivery
DevomB Oct 13, 2026
cb5a3db
The build's stages list make images, which a medium needs before make…
DevomB Oct 13, 2026
f8b3577
Merge image-base: make images in the build's stages
DevomB Oct 13, 2026
adaf430
building.md says when a zone naming an image starts, with or without …
DevomB Oct 13, 2026
a5f8fed
Merge image-base: building.md's wording
DevomB Oct 13, 2026
95d269e
Firefox plays through ALSA, which its Web MIDI needs anyway, and its …
DevomB Oct 13, 2026
c123296
Merge browser-image: ALSA and the first-run policies
DevomB Oct 13, 2026
b81c156
Merge browser-image: ALSA and the first-run policies
DevomB Oct 13, 2026
391abef
Merge browser-image: ALSA and the first-run policies
DevomB Oct 13, 2026
f1c56d0
Merge sound-hardware (#460): alsa-lib in the root, which Firefox's co…
DevomB Oct 13, 2026
d72580f
The pinned keys keep a blank line between the root's and the images' …
DevomB Oct 13, 2026
fe1d629
The zones that carry the browser allow it the threads it runs
DevomB Oct 13, 2026
07cd4f4
Firefox's build has Python's sqlite3 module, which its Glean step nee…
DevomB Oct 13, 2026
d70c3c9
Merge browser-image: Python's sqlite3 for the build's Glean step
DevomB Oct 13, 2026
808896e
Merge zones-browser: Python's sqlite3 for the build's Glean step
DevomB Oct 13, 2026
fb26e40
Merge image-base: Python's sqlite3 for the build's Glean step
DevomB Oct 13, 2026
e841905
The software images build in a job of their own, between stages 04-05…
DevomB Oct 13, 2026
e3d0a27
Merge images-job (#483): the software images build in a job of their own
DevomB Oct 13, 2026
ce4eaa6
Merge browser-zone-threads (#480): the zones that carry the browser a…
DevomB Oct 13, 2026
751f30b
The browser's design says the images build in a job of their own, and…
DevomB Oct 13, 2026
3ac0248
Merge images-job (#483): the design's words for the job and the build…
DevomB Oct 13, 2026
a37348e
The handed-on trees keep a week on a tag, the build-only layers' tree…
DevomB Oct 13, 2026
1d2f924
Merge images-job (#483): a week's keep on a tag, no build-only trees …
DevomB Oct 13, 2026
3bec07c
Firefox builds with GCC 14: without -fno-delete-null-pointer-checks, …
DevomB Oct 13, 2026
9fff2f3
Merge browser-image: Firefox builds with GCC 14
DevomB Oct 13, 2026
0260b1a
Merge zones-browser: Firefox builds with GCC 14
DevomB Oct 13, 2026
53dd746
Merge image-base: Firefox builds with GCC 14
DevomB Oct 13, 2026
f679588
Firefox's null-check exception says what the low 64 KiB covers and th…
DevomB Oct 13, 2026
01dc0a4
Merge browser-image: the null-check exception's wording
DevomB Oct 13, 2026
49e5b8d
Merge zones-browser: the null-check exception's wording
DevomB Oct 13, 2026
b1d439e
Merge image-base: the null-check exception's wording
DevomB Oct 13, 2026
7a03869
Merge main (6dedaf35): the compositor separation, the second mirror a…
DevomB Oct 13, 2026
47327c7
The image stage makes the work tree's stamps, logs, build and images …
DevomB Oct 15, 2026
a6cc61c
Merge images-job into batch-images-browser
DevomB Oct 15, 2026
444b277
Merge main (620a9155): the window's zone from its socket, acceptance'…
DevomB Oct 15, 2026
f583baa
Firefox ESR 153.5.0, for MFSA 2026-108's security fixes
DevomB Oct 15, 2026
dab7888
The nasm currency rule reads the release directories' links, not the …
DevomB Oct 15, 2026
87f91ac
Merge main (4b5a0b3a): the stage 01-02 cache saved from main alone, s…
DevomB Oct 15, 2026
fa4a50e
Merge firefox-153.5.0 (#497): Firefox ESR 153.5.0, for MFSA 2026-108'…
DevomB Oct 15, 2026
d947e6e
Merge nasm-rule-links (#501): the nasm currency rule reads the releas…
DevomB Oct 15, 2026
eb6f2e7
Firefox builds its remote server and client with X11 only, so a build…
DevomB Oct 15, 2026
478630a
Merge firefox-remote-without-x11 (#502): Firefox builds its remote se…
DevomB Oct 15, 2026
e1c6815
The browser round starts Firefox on a tag nothing is on, so its windo…
DevomB Oct 15, 2026
ff19083
Merge browser-round-own-tag (#505): The browser round starts Firefox …
DevomB Oct 15, 2026
9d8062c
The guide says a zone runs one Firefox, and a second window comes fro…
DevomB Oct 15, 2026
5373647
The browser round checks that Firefox's window is still there 90 s af…
DevomB Oct 15, 2026
483ca37
Merge browser-stays-up (#507): The browser round checks that Firefox'…
DevomB Oct 15, 2026
445fb2d
The proxy's bounds fit a browser on two 4K heads: 1 GiB of pools a co…
DevomB Oct 15, 2026
c0e0266
The roadmap names the memory a zone can make the compositor hold, and…
DevomB Oct 15, 2026
76eff97
Merge proxy-browser-bounds (#508): The proxy's bounds sit above what …
DevomB Oct 15, 2026
faebbe2
Merge roadmap-pool-punch (#509): The roadmap names the memory a zone …
DevomB Oct 15, 2026
fab9d79
Merge main (395d3ded): the laptop stack (suspend with the state key w…
DevomB Oct 15, 2026
31576d7
The browser design says how the browser key and the menu would bring …
DevomB Oct 15, 2026
bb2a893
Merge browser-focus-open (#515): A design for the browser key bringin…
DevomB Oct 15, 2026
de5cf58
Firefox is built with Node.js's release build, a layer no zone gets
DevomB Oct 15, 2026
d4dfe2f
The browser's install step takes the build's Python package source
DevomB Oct 15, 2026
ed09c85
Merge browser-nodejs (#516): Node.js for Firefox's build, a layer the…
DevomB Oct 15, 2026
3972ff3
Merge browser-install-env (#517): mach install runs with the build's …
DevomB Oct 15, 2026
2af1d7b
Stage 01 fetches the root's sources alone
DevomB Oct 15, 2026
3623c75
Merge stage01-root-sources (#519): Stage 01 fetches the root's source…
DevomB Oct 15, 2026
0f7518a
The installer has kryptikd check the medium's signed image list and i…
DevomB Oct 15, 2026
fca8ffa
A medium's image list and images are taken only as regular files, nev…
DevomB Oct 15, 2026
9859ddd
A payload's images are read through the descriptors they were hashed …
DevomB Oct 15, 2026
4463c98
The images' pins start past the update lock, and the installer keeps …
DevomB Oct 15, 2026
d139f80
The installer's cleanup removes the checked image list, so its base d…
DevomB Oct 15, 2026
645230e
The images' descriptors are bash's to pick, so a redirected call cann…
DevomB Oct 15, 2026
1648fb5
Merge images-install-check (#522): The installer has kryptikd check t…
DevomB Oct 15, 2026
997bb25
Merge images-pin-and-verity (#523): A payload's images are read throu…
DevomB Oct 15, 2026
8d38c6a
The browser image keeps four findings without a CET note and three wi…
DevomB Oct 15, 2026
636e7fb
Merge browser-accepted (#529): The browser image keeps four findings …
DevomB Oct 15, 2026
5cdc6e6
Merge main (6ef168ae): the laptop stack's top (USB sticks read in a z…
DevomB Oct 15, 2026
cf0d249
hicolor-icon-theme and cairo have mirrors while their own hosts do no…
DevomB Oct 15, 2026
be2aa22
Every image stage 06 packs has 4096-byte blocks, the size dm-verity r…
DevomB Oct 15, 2026
6755860
Merge image-blocks-4096 (#531): Every image stage 06 packs has 4096-b…
DevomB Oct 15, 2026
9d540a3
Merge toolkit-mirrors (#530): hicolor-icon-theme and cairo from mirro…
DevomB Oct 15, 2026
a63d37c
A zone binds its images' /usr through a descriptor opened as host roo…
DevomB Oct 15, 2026
85180fe
Merge image-sets-searchable (#533): A zone binds its images' /usr thr…
DevomB Oct 15, 2026
b399ce7
The installer holds the target disk locked, so eudev's own re-read ca…
DevomB Oct 16, 2026
b786fe2
A browser round that shows no window says what the proxy refused, wha…
DevomB Oct 16, 2026
50350a9
Merge install-disk-lock (#536): The installer holds the target disk l…
DevomB Oct 16, 2026
b866e9b
Merge browser-window-diagnostics (#537): A browser round that shows n…
DevomB Oct 16, 2026
f7aa4a5
The chrome asks for a waiting zone's passphrase once the state partit…
DevomB Oct 16, 2026
e868b61
Merge the browser batch (b866e9b4): the installer's disk lock (#536) …
DevomB Oct 16, 2026
bab8fb2
Merge chrome-waiting-on-return (#538): The chrome asks for a waiting …
DevomB Oct 16, 2026
0b60d08
The zones suite's pids-limit check starts threads to untrusted's limi…
DevomB Oct 16, 2026
a9ad12c
Merge zones-thread-storm (#539): The zones suite's pids-limit check s…
DevomB Oct 16, 2026
415f072
gui-check: name every call untrusted's filter refuses Firefox, after …
DevomB Oct 16, 2026
133926d
Merge browser-filter-trace (#540): gui-check: name every call untrust…
DevomB Oct 16, 2026
862e93a
A sleep that fails after a zone volume's key went counts itself, so t…
DevomB Oct 16, 2026
8ec774e
Merge the browser batch (133926da): #540, the filter trace after a fa…
DevomB Oct 16, 2026
acf92b6
The seal's count is written 0644 through write_atomic, whatever the d…
DevomB Oct 16, 2026
9a6d45d
software-delivery.md: a corrupted image is refused until the machine …
DevomB Oct 16, 2026
a93da08
Merge seal-left-waiting (#541): A sleep that fails after a zone volum…
DevomB Oct 16, 2026
db7ae86
Merge image-corrupt-doc (#542): software-delivery.md: a corrupted ima…
DevomB Oct 16, 2026
fc7c034
libglvnd has a mirror while gitlab.freedesktop.org does not answer: V…
DevomB Oct 16, 2026
dfe7660
Merge libglvnd-mirror (#544): libglvnd has a mirror while gitlab.free…
DevomB Oct 16, 2026
7950ae8
The pin reviews reach rustc 1.99.1 and pkgconf 3.0.9, the releases up…
DevomB Oct 16, 2026
9b042a6
wlroots and libdrm have a mirror while freedesktop.org's hosts do not…
DevomB Oct 16, 2026
d00298c
The wlroots and libdrm mirror rows go at the table's end, after libglvnd
DevomB Oct 16, 2026
ceb7b85
Twenty-five sources that only their own host served get a second plac…
DevomB Oct 16, 2026
812815b
zones-check: image-corrupt takes EIO in musl's words too
DevomB Oct 16, 2026
83d6fb9
A zone's quotactl fails with EPERM instead of killing the caller
DevomB Oct 16, 2026
7e8109d
Merge pin-reviews-rustc-pkgconf (#548): rustc 1.99.1 and pkgconf 3.0.…
DevomB Oct 16, 2026
47490bf
Merge mirror-wlroots-libdrm (#550): wlroots and libdrm have a mirror …
DevomB Oct 16, 2026
f1d5132
Merge single-host-mirrors (#551): twenty-five sources that only their…
DevomB Oct 16, 2026
2da7c6c
The zones suite's passphrase search leaves out the signed images moun…
DevomB Oct 16, 2026
02bf004
Merge image-corrupt-musl (#552): the corrupt-image check reads EIO in…
DevomB Oct 16, 2026
0baab95
Merge zone-quotactl-soft (#553): quotactl is refused with EPERM in a …
DevomB Oct 16, 2026
d569139
Merge zones-leak-search (#554): the passphrase search skips the signe…
DevomB Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 44 additions & 7 deletions .github/actions/prepare/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ inputs:
description: Also let the runner start VMs (KVM, and virt-fw-vars for the variable stores).
default: 'false'
sources:
description: The upstream sources, cached by sources.lock. Either fetches what the cache lacks; 'fetch' also saves the set, on main.
description: The root's upstream sources, cached by sources.lock. Either fetches what the cache lacks; 'fetch' also saves the set, on main.
default: ''
image-sources:
description: The software images' sources too, a cache of their own keyed by build/images/sources.lock; 'fetch' or 'restore' as for sources.
default: ''
runs:
using: composite
Expand Down Expand Up @@ -35,6 +38,9 @@ runs:
sudo udevadm trigger --name-match=kvm
ls -la /dev/kvm

# The root's set, keyed by its lock alone. images/, the software images' sources, has a cache of
# its own and is set aside while this one is saved: a browser bump then copies none of the root's
# set, and a root bump none of theirs. The path is the one it always had, so earlier sets restore.
- if: inputs.sources != ''
id: sources
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
Expand All @@ -44,22 +50,53 @@ runs:
# A changed lock restores the previous set; every file is still hashed against the lock.
restore-keys: sources-

# A cache evicted since the build job is fetched again, not taken as gone.
- if: inputs.sources != '' && steps.sources.outputs.cache-hit != 'true'
# With the signatures, which verify-signatures keeps beside the root's: when an image's pin alone
# moves, only this cache is saved again.
- if: inputs.image-sources != ''
id: image_sources
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
with:
path: |
/mnt/kryptik/sources/images
/mnt/kryptik/sources/.signatures
key: image-sources-v1-${{ hashFiles('build/images/sources.lock') }}
restore-keys: image-sources-v1-

# A cache evicted since the build job is fetched again, not taken as gone. With the images' sources
# this runs on two hits as well: the root's set restored may be one saved without the links that
# name each image source in sources/ (main's, or an older set's), and only this pass makes them.
- if: (inputs.sources != '' && steps.sources.outputs.cache-hit != 'true') || inputs.image-sources != ''
shell: bash
env:
MODE: ${{ inputs.sources }}
IMAGES: ${{ inputs.image-sources }}
SAVES: ${{ (inputs.sources == 'fetch' && steps.sources.outputs.cache-hit != 'true') || (inputs.image-sources == 'fetch' && steps.image_sources.outputs.cache-hit != 'true') }}
run: |
make sources
if [[ -n "$IMAGES" ]]; then make sources; else ./tools/fetch-sources.sh --root; fi
./tools/prune-sources.sh
# Fetches the signatures into the saved set for CI's gate; this pass is not the verdict.
[[ "$MODE" != fetch ]] || ./tools/verify-signatures.sh > /dev/null 2>&1 || true
# Fetches the signatures into the set saved below for CI's gate; this pass is not the verdict.
[[ "$SAVES" != true ]] || ./tools/verify-signatures.sh > /dev/null 2>&1 || true

# Saved now rather than at the end, so a job that fails later does not refetch the new files.
# From main alone, which every branch's run restores: a branch whose lock adds one file would
# save the whole set again in its own scope, and such copies pushed main's caches out.
- if: inputs.sources == 'fetch' && steps.sources.outputs.cache-hit != 'true' && github.ref == 'refs/heads/main'
shell: bash
run: if [[ -d /mnt/kryptik/sources/images ]]; then mv /mnt/kryptik/sources/images /mnt/kryptik/images-aside; fi

- if: inputs.sources == 'fetch' && steps.sources.outputs.cache-hit != 'true' && github.ref == 'refs/heads/main'
uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
with:
path: /mnt/kryptik/sources
key: sources-v3-${{ hashFiles('sources.lock') }}

- if: always() && inputs.sources == 'fetch' && steps.sources.outputs.cache-hit != 'true' && github.ref == 'refs/heads/main'
shell: bash
run: if [[ -d /mnt/kryptik/images-aside ]]; then mv /mnt/kryptik/images-aside /mnt/kryptik/sources/images; fi

- if: inputs.image-sources == 'fetch' && steps.image_sources.outputs.cache-hit != 'true'
uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
with:
path: |
/mnt/kryptik/sources/images
/mnt/kryptik/sources/.signatures
key: image-sources-v1-${{ hashFiles('build/images/sources.lock') }}
64 changes: 52 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,9 @@ jobs:
sudo mkdir -p /mnt/kryptik && sudo chown "$(id -u):$(id -g)" /mnt/kryptik
./tools/fetch-sources.sh --list

# Restores the last set; `make sources` checks it against the lock and fetches what is missing.
# Restores the last sets; `make sources` checks them against the locks and fetches what is missing.
# The software images' sources, under images/, are a cache of their own (the prepare action's),
# set aside while the root's is saved.
- name: Upstream sources (cached by sources.lock)
id: sources
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
Expand All @@ -135,23 +137,56 @@ jobs:
restore-keys: |
sources-

# Fetches the signatures into the cached set for the gate below; this pass is not the verdict.
# With the signatures, which verify-signatures keeps beside the root's: when an image's pin alone
# moves, only this cache is saved again.
- name: The software images' sources (cached by build/images/sources.lock)
id: image_sources
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
with:
path: |
/mnt/kryptik/sources/images
/mnt/kryptik/sources/.signatures
key: image-sources-v1-${{ hashFiles('build/images/sources.lock') }}
restore-keys: |
image-sources-v1-

# Runs on two hits as well: the root's set restored may be one saved without the links that name
# each image source in sources/ (an older set's), and only this pass makes them. On a miss it
# fetches the signatures into the cached set for the gate below; that pass is not the verdict.
- name: Fetch and verify the sources
if: steps.sources.outputs.cache-hit != 'true'
env:
MISSED: ${{ steps.sources.outputs.cache-hit != 'true' || steps.image_sources.outputs.cache-hit != 'true' }}
run: |
make sources
./tools/prune-sources.sh
./tools/verify-signatures.sh > /dev/null 2>&1 || true
[[ "$MISSED" != true ]] || ./tools/verify-signatures.sh > /dev/null 2>&1 || true

# From main alone, as the Distro jobs save it: a pull request's cache is scoped to its merge
# ref and would duplicate the set.
- name: Set the software images' sources aside
if: ${{ github.ref == 'refs/heads/main' && steps.sources.outputs.cache-hit != 'true' }}
run: if [[ -d /mnt/kryptik/sources/images ]]; then mv /mnt/kryptik/sources/images /mnt/kryptik/images-aside; fi

- name: Save the sources
if: ${{ github.ref == 'refs/heads/main' && steps.sources.outputs.cache-hit != 'true' }}
uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
with:
path: /mnt/kryptik/sources
key: ${{ steps.sources.outputs.cache-primary-key }}

- name: The software images' sources back in place
if: always()
run: if [[ -d /mnt/kryptik/images-aside ]]; then mv /mnt/kryptik/images-aside /mnt/kryptik/sources/images; fi

- name: Save the software images' sources
if: ${{ github.event_name != 'pull_request' && steps.image_sources.outputs.cache-hit != 'true' }}
uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
with:
path: |
/mnt/kryptik/sources/images
/mnt/kryptik/sources/.signatures
key: ${{ steps.image_sources.outputs.cache-primary-key }}

# Informational, as mirrors go down; a one-byte ranged GET, since some GNU mirrors refuse HEAD.
- name: Every source URL is reachable
continue-on-error: true
Expand Down Expand Up @@ -206,17 +241,22 @@ jobs:
- name: Signatures, strict
run: ./tools/verify-signatures.sh --strict

# The root's sources in sources.lock, the software images' in build/images/sources.lock.
- name: sources.lock covers the manifest
run: |
fail=0
while read -r name ver url _; do
file=$(basename "$url")
if ! grep -q " $file\$" sources.lock; then
echo " MISSING FROM LOCK: $file"
fail=1
fi
done < <(./tools/fetch-sources.sh --list)
[ $fail -eq 0 ] && echo "sources.lock covers every manifest entry"
check() {
while read -r name ver url _; do
file=$(basename "$url")
if ! grep -q " $file\$" "$1"; then
echo " MISSING FROM $1: $file"
fail=1
fi
done
}
check sources.lock < <(./tools/fetch-sources.sh --list-root)
check build/images/sources.lock < <(./tools/fetch-sources.sh --list | grep -vxF -f <(./tools/fetch-sources.sh --list-root))
[ $fail -eq 0 ] && echo "sources.lock and build/images/sources.lock cover every manifest entry"
exit $fail

compartments:
Expand Down
Loading
Loading