Compare commits

...

72 Commits

Author SHA1 Message Date
Adrian Vladu
7c15a061f8
Merge pull request #3854 from flatcar/ader1990/erofs-tools
overlay coreos-base/coreos: add erofs-utils
2026-05-05 12:53:05 +03:00
flatcar-ci
bd7e729047 New version: main-4690.0.0-nightly-20260504-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-05-04 21:00:35 +00:00
Mathieu Tortuyaux
54f89caa16
Merge pull request #3991 from flatcar/linux-6.12.85-main
Upgrade Linux Kernel for main from 6.12.84 to 6.12.85
2026-05-04 17:51:46 +02:00
Mathieu Tortuyaux
690e13e8ce
Merge pull request #3994 from flatcar/mantle-update-main
Upgrade mantle container image to latest HEAD in main
2026-05-04 17:51:34 +02:00
Flatcar Buildbot
71d6ff8c38 Update mantle container image to latest HEAD
Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
2026-05-04 12:41:50 +00:00
Adrian Vladu
0815cdf5be
Merge pull request #2359 from flatcar/ader1990/fix-arm64-vnc-console-output
sys-kernel: enable kernel virtio vnc output
2026-05-04 15:41:35 +03:00
Dongsu Park
c4b6797a89
Merge pull request #3990 from flatcar/buildbot/monthly-glsa-metadata-updates-2026-05-01
Monthly GLSA metadata 2026-05-01
2026-05-04 13:02:54 +02:00
Flatcar Buildbot
84255d5da1 sys-kernel/coreos-sources: Update from 6.12.84 to 6.12.85
Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
2026-05-01 07:48:35 +00:00
Flatcar Buildbot
fa3b9c0ad2 portage-stable/metadata: Monthly GLSA metadata updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-01 07:48:21 +00:00
flatcar-ci
400b4dabd4 New version: main-4686.0.0-nightly-20260430-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-30 21:00:51 +00:00
Dongsu Park
3fa05e9bda
Merge pull request #3973 from flatcar/linux-6.12.84-main
Upgrade Linux Kernel for main from 6.12.81 to 6.12.84
2026-04-30 14:31:53 +02:00
James Le Cuirot
7c3ca9c250
Merge pull request #3978 from flatcar/mantle-update-main
Upgrade mantle container image to latest HEAD in main
2026-04-30 10:16:13 +01:00
Flatcar Buildbot
e34ee7a91d Update mantle container image to latest HEAD
Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
2026-04-29 21:00:59 +00:00
flatcar-ci
d9a60336d3 New version: main-4685.0.0-nightly-20260429-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-29 21:00:35 +00:00
Krzesimir Nowak
045178e923
Merge pull request #3972 from flatcar/krnowak/python-syntax-warnings
build_library: Make some strings raw to avoid SyntaxWarning messages
2026-04-29 20:55:10 +02:00
Krzesimir Nowak
2c1e758318
Merge pull request #3983 from flatcar/krnowak/select-oem-sysext
build_image: Allow specifying which OEM sysexts to build
2026-04-29 15:54:14 +02:00
Krzesimir Nowak
ecb2e3cd76 build_image: Allow specifying which OEM sysexts to build
Useful if we want to locally generate one kind of image for testing.

Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
2026-04-29 13:01:13 +02:00
flatcar-ci
30a0171ddc New version: main-4684.0.0-nightly-20260428-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-29 09:33:05 +00:00
flatcar-ci
ae2e05911c Revert failed version back to 4676.0.0+nightly-20260420-2100 2026-04-28 22:58:26 +00:00
flatcar-ci
87799f19e1 New version: main-4684.0.0-nightly-20260428-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-28 21:00:29 +00:00
Jan Bronicki
8c571a62be
Merge pull request #3964 from flatcar/john15321/update-sdk-scripts-to-have-better-msgs
Improve SDK container setup messages for new users
2026-04-28 17:40:16 +02:00
Dongsu Park
694490e3f1
Merge pull request #3963 from flatcar/dongsu/ue-rs-20260423
overlay ue-rs: update to 2026-04-28
2026-04-28 17:23:32 +02:00
Adrian Vladu
d8c5d9b3f7 sys-kernel: enable kernel virtio vnc output
Show console logs - serial logs - When enabling VNC console on arm64.

Fixes: https://github.com/flatcar/Flatcar/issues/1553

Signed-off-by: Adrian Vladu <avladu@cloudbasesolutions.com>
2026-04-28 13:15:00 +00:00
Dongsu Park
6463a796a9 overlay ue-rs: update to 2026-04-28
Update ue-rs to 2026-04-28.

Pulls in following PRs:
* https://github.com/flatcar/ue-rs/pull/104
* https://github.com/flatcar/ue-rs/pull/105
* https://github.com/flatcar/ue-rs/pull/106
* https://github.com/flatcar/ue-rs/pull/108
* https://github.com/flatcar/ue-rs/pull/109

Signed-off-by: Dongsu Park <dongsu@dpark.io>
2026-04-28 11:46:17 +02:00
Flatcar Buildbot
7f10cc873b sys-kernel/coreos-sources: Update from 6.12.81 to 6.12.84
Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
2026-04-28 07:49:41 +00:00
flatcar-ci
b09e9e856a Revert failed version back to 4676.0.0+nightly-20260420-2100 2026-04-27 23:50:10 +00:00
flatcar-ci
e5c8901a3d New version: main-4683.0.0-nightly-20260427-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-27 21:00:36 +00:00
Krzesimir Nowak
2b3ad8eeaa build_library: Make some strings raw to avoid SyntaxWarning messages
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
2026-04-27 17:05:47 +02:00
Mathieu Tortuyaux
75776dcff7
Merge pull request #3965 from flatcar/cacerts-3.123.1-main
Update ca-certificates in main from 3.122 to 3.123.1
2026-04-27 17:04:55 +02:00
Adrian Vladu
0871a3161a overlay coreos-base/coreos: add erofs-utils
containerd complains that erofs tools do not exist at startup,
adding these tools to the image.

Implements: https://github.com/flatcar/Flatcar/issues/2047.

Signed-off-by: Adrian Vladu <avladu@cloudbasesolutions.com>
2026-04-27 12:50:35 +00:00
James Le Cuirot
983315c398
Merge pull request #3955 from flatcar/chewi/more-sdk-fixes 2026-04-27 13:31:48 +01:00
Flatcar Buildbot
20a59b28e8 app-misc/ca-certificates: Update from 3.122 to 3.123.1
Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
2026-04-27 07:54:00 +00:00
flatcar-ci
6e8746f372 Revert failed version back to 4676.0.0+nightly-20260420-2100 2026-04-24 23:10:05 +00:00
flatcar-ci
03425fd0c9 New version: main-4680.0.0-nightly-20260424-2100-INTERMEDIATE
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-24 21:00:39 +00:00
James Le Cuirot
2fb7105dba
Merge pull request #3936 from flatcar/firmware-20260410-main
Upgrade Linux Firmware in main from 20260309 to 20260410
2026-04-24 13:24:37 +01:00
Jan Bronicki
2d7b05f635
Improve curl command output and update fallback message for SDK tarball download
Signed-off-by: Jan Bronicki <janbronicki@gmail.com>
2026-04-24 13:50:27 +02:00
flatcar-ci
63c4137c94 Revert failed version back to 4676.0.0+nightly-20260420-2100 2026-04-23 23:00:56 +00:00
flatcar-ci
56f0755cf8 New version: main-4679.0.0-nightly-20260423-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-23 21:00:36 +00:00
flatcar-ci
d515161137 Revert failed version back to 4676.0.0+nightly-20260420-2100 2026-04-22 22:59:05 +00:00
flatcar-ci
2e399ee52d New version: main-4678.0.0-nightly-20260422-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-22 21:00:33 +00:00
James Le Cuirot
c8915792a8
Merge pull request #3956 from zhijianli88/fix-image-scripts
Fix image scripts
2026-04-22 11:21:23 +01:00
James Le Cuirot
22028e4595
Merge pull request #3954 from jqueuniet/secureboot_params
Parameterize secure boot keys
2026-04-22 11:04:51 +01:00
Johann Queuniet
e48c9ffebe
Parameterize secure boot keys
Signed-off-by: Johann Queuniet <sub_code.git@queuniet.fr>
2026-04-22 06:30:48 +02:00
Li Zhijian
87c3463c99 image_to_vm.sh: keep compression source for seamless VM launch
Previously, the compression source was deleted after compression.
Keep it to allow seamless VM launching.

Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
2026-04-22 02:55:24 +00:00
Li Zhijian
73caf995db vm_image_util.sh: use -display curses for QEMU 7.1+
The -curses option was removed in QEMU 7.1, use -display curses
as the replacement.

Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
2026-04-22 02:53:22 +00:00
James Le Cuirot
28831b50a6
sys-apps/baselayout: Modify ${ROOT} rather than ${D} in pkg_preinst
update_sdk_container_image failed to update baselayout because it
touched /sys, which is not allowed in an unprivileged docker build
environment.

dumb-tmpfiles-proc.sh does not touch existing directories, but it was
modifying the staging directory rather than the live filesystem, causing
Portage to record /sys in the package's CONTENTS and then make changes
to it when merging.

We only need to create the directories in pkg_preinst because the other
file types are already created in src_install.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-21 14:15:05 +01:00
James Le Cuirot
8f8977f668
build_image_util: Don't install packages to image with bad USE flags
This generally shouldn't happen, given that we mostly only keep one
instance of a bin package, but just in case.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-21 14:15:04 +01:00
James Le Cuirot
433f8c40fd
app-shells/bash: Apply tentative patch to try to fix wait error
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-21 14:15:03 +01:00
James Le Cuirot
d42574d094
sdk_lib: Don't disable the Portage sandboxes most of the time
We have long run with the ipc, network, and pid sandboxes disabled in
the belief that these did not work in a container even if it was
privileged. I suspect it really did work back then, but it certainly
does work now regardless.

update_sdk_container_image uses Portage in an unprivileged docker build
environment, so it is still necessary to disable these here. However,
this can be done more easily through the environment, and the regular
sandbox should work fine.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-21 14:15:02 +01:00
James Le Cuirot
d121b9594e
update_sdk_container_image: Don't truncate docker build output
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-21 14:15:01 +01:00
James Le Cuirot
d85bbc31a1
overlay profiles: Don't complain when rm_masked_debug_files does nothing
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-21 14:14:57 +01:00
flatcar-ci
ad886d8959 New version: main-4676.0.0-nightly-20260420-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-20 21:00:39 +00:00
James Le Cuirot
2d47b638a2
Merge pull request #3952 from flatcar/mantle-update-main
Upgrade mantle container image to latest HEAD in main
2026-04-20 11:30:56 +01:00
Flatcar Buildbot
d63830d234 Update mantle container image to latest HEAD
Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
2026-04-20 10:27:52 +00:00
Sayan Chowdhury
05e9069a2f
Merge pull request #3948 from flatcar/sayan/update-the-az-kv-token
Update the signing cert on the azure KV
2026-04-20 15:57:38 +05:30
Sayan Chowdhury
ac41293871
Update the signing cert on the azure KV
Signed-off-by: Sayan Chowdhury <sayan.chowdhury2012@gmail.com>
2026-04-20 15:18:20 +05:30
Flatcar Buildbot
1752158c22 sys-kernel/coreos-firmware: Update from 20260309 to 20260410
Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
2026-04-16 07:34:39 +00:00
flatcar-ci
02ea97d938 New version: main-4671.0.0-nightly-20260415-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-15 21:00:35 +00:00
James Le Cuirot
2291572849
Merge pull request #3934 from flatcar/chewi/ignition-mounting
Drop old Ignition OEM mounting code and bump bootengine with new mount handling
2026-04-15 15:32:02 +01:00
James Le Cuirot
32f35c29b1
coreos-base/coreos-init: Bump for new Ignition OEM mount handling
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-15 15:23:44 +01:00
James Le Cuirot
a69494ae03
sys-kernel/bootengine: Bump for new Ignition OEM mount handling
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-15 15:23:43 +01:00
James Le Cuirot
3f8baedc51
sys-apps/ignition: Drop the old OEM mounting code
bootengine will mount the partition before Ignition starts instead.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-15 15:23:41 +01:00
James Le Cuirot
52dec2ded5
Merge pull request #3935 from flatcar/chewi/sdk-portage-patches
update_chroot: Fix /etc/portage/patches symlink
2026-04-15 12:29:45 +01:00
James Le Cuirot
84a195436c
update_chroot: Fix /etc/portage/patches symlink
This was accidentally broken by #3795. I took that change from a branch
where the `COREOS_OVERLAY` variable was no longer used at all.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2026-04-15 12:14:30 +01:00
Mathieu Tortuyaux
0f1bcae7cc
Merge pull request #3933 from flatcar/tormath1/azurekv
sbsign: update Azure key vault location
2026-04-15 11:58:45 +02:00
Mathieu Tortuyaux
65a7e5d43e
Merge pull request #3932 from flatcar/mantle-update-main
Upgrade mantle container image to latest HEAD in main
2026-04-15 11:11:49 +02:00
Mathieu Tortuyaux
5ca3c89a2e
sbsign: update Azure key vault location
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2026-04-15 10:35:33 +02:00
Flatcar Buildbot
f9dc297d83 Update mantle container image to latest HEAD
Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
2026-04-13 21:00:46 +00:00
flatcar-ci
c5834ad4c9 New version: main-4669.0.0-nightly-20260413-2100
Signed-off-by: flatcar-ci <infra+ci@flatcar-linux.org>
2026-04-13 21:00:29 +00:00
Jan Bronicki
b362a4252e
Merge pull request #3927 from flatcar/john15321/automated/add-community-docs-and-update-readme
## Summary

This PR adds standardized community documentation files and updates the README:

### New files
- **`SECURITY.md`** — Links to the [main Flatcar Security Policy](https://github.com/flatcar/Flatcar/blob/main/SECURITY.md) with a section for repo-specific security notes
- **`MAINTAINERS.md`** — Links to the [main Flatcar MAINTAINERS file](https://github.com/flatcar/Flatcar/blob/main/MAINTAINERS.md) with a section for repo-specific maintainers
- **`GOVERNANCE.md`** — Links to the [main Flatcar Governance document](https://github.com/flatcar/Flatcar/blob/main/governance.md) with a section for repo-specific governance
- **`CODE_OF_CONDUCT.md`** — Links to the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md) and the [main Flatcar Code of Conduct](https://github.com/flatcar/Flatcar/blob/main/CODE_OF_CONDUCT.md)

### Updated files
- **`CONTRIBUTING.md`** — Added a note directing users to the [central Flatcar issue tracker](https://github.com/flatcar/Flatcar/issues)

### README.md updates
- Added **Discord** badge ([Flatcar Discord server](https://discord.gg/PMYjFUsJyq))
- Added **OpenSSF Best Practices** badge ([project 10926](https://www.bestpractices.dev/projects/10926))
- Added a note pointing to the [central Flatcar issue tracker](https://github.com/flatcar/Flatcar/issues)
- Appended a **Community & Project Documentation** reference section linking to all community docs

This change is part of a batch update across all Flatcar repositories to ensure consistent community documentation.

Ref: https://github.com/flatcar/Flatcar/issues/1865
2026-04-13 19:53:03 +02:00
Jan Bronicki
8e12828295
docs: Fix readme note about filing issues and links
Signed-off-by: Jan Bronicki <janbronicki@gmail.com>
2026-04-13 19:49:14 +02:00
Jan Bronicki
6b5e76fb87 docs: add community docs, update README badges and references
Add standardized SECURITY.md, MAINTAINERS.md, GOVERNANCE.md, and
CODE_OF_CONDUCT.md. Update README.md with Discord and OpenSSF Best
Practices badges, and append a community documentation reference section.

Ref: https://github.com/flatcar/Flatcar/issues/1865
Signed-off-by: Jan Bronicki <janbronicki@gmail.com>
2026-04-13 16:58:56 +02:00
73 changed files with 424 additions and 370 deletions

9
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,9 @@
# Code of Conduct
The Flatcar project follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
For details on how we uphold community standards across all Flatcar repositories, please see the [main Flatcar Code of Conduct](https://github.com/flatcar/Flatcar/blob/main/CODE_OF_CONDUCT.md).
## Reporting
If you experience or witness unacceptable behavior, please report it following the process outlined in the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).

View File

@ -4,6 +4,8 @@ Whether you're fixing a bug, adding a feature, or improving docs — we apprecia
For more detailed guidelines (finding issues, community meetings, PR lifecycle, commit message format, and more), check out the [main Flatcar CONTRIBUTING guide](https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md). For more detailed guidelines (finding issues, community meetings, PR lifecycle, commit message format, and more), check out the [main Flatcar CONTRIBUTING guide](https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md).
If you want to file an issue for any Flatcar repository, please use the [central Flatcar issue tracker](https://github.com/flatcar/Flatcar/issues).
--- ---
## Repository Specific Guidelines ## Repository Specific Guidelines

11
GOVERNANCE.md Normal file
View File

@ -0,0 +1,11 @@
# Governance
For details on the Flatcar project governance model, decision-making process, and roles, please see the [main Flatcar Governance document](https://github.com/flatcar/Flatcar/blob/main/governance.md).
---
## Repository-Specific Governance
Any governance details specific to this repository will be listed here.
<!-- Add repo-specific governance notes below this line -->

View File

@ -1,9 +1,11 @@
# Maintainers # Maintainers
* Kai Lüke @pothos For the current list of maintainers and their responsibilities, please see the [main Flatcar MAINTAINERS file](https://github.com/flatcar/Flatcar/blob/main/MAINTAINERS.md).
* Gabriel Samfira @gabriel-samfira
* Thilo Fromm @t-lo
See [Governance](https://github.com/flatcar/Flatcar/blob/main/governance.md) for governance, commit, and vote guidelines as well as maintainer responsibilities. Everybody listed in this file is a committer as per governance definition. ---
The contents of this file are synchronized from [Flatcar/MAINTAINERS.md](https://github.com/flatcar/Flatcar/blob/main/MAINTAINERS.md). ## Repository-Specific Maintainers
Any maintainers specific to this repository will be listed here.
<!-- Add repo-specific maintainers below this line -->

View File

@ -1,16 +1,20 @@
# Flatcar Container Linux SDK scripts
<div style="text-align: center"> <div style="text-align: center">
[![Flatcar OS](https://img.shields.io/badge/Flatcar-Website-blue?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNi4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4wIiBpZD0ia2F0bWFuXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgODAwIDYwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgODAwIDYwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzA5QkFDODt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQ0MCwxODIuOGgtMTUuOXYxNS45SDQ0MFYxODIuOHoiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAuNSwzMTcuOWgtMzEuOXYxNS45aDMxLjlWMzE3Ljl6Ii8+DQo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTQzLjgsMzE3LjlINTEydjE1LjloMzEuOVYzMTcuOXoiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02NTUuMiw0MjAuOXYtOTUuNGgtMTUuOXY5NS40aC0xNS45VjI2MmgtMzEuOVYxMzQuOEgyMDkuNFYyNjJoLTMxLjl2MTU5aC0xNS45di05NS40aC0xNnY5NS40aC0xNS45djMxLjINCgloMzEuOXYxNS44aDQ3Ljh2LTE1LjhoMTUuOXYxNS44SDI3M3YtMTUuOGgyNTQuOHYxNS44aDQ3Ljh2LTE1LjhoMTUuOXYxNS44aDQ3Ljh2LTE1LjhoMzEuOXYtMzEuMkg2NTUuMnogTTQ4Ny44LDE1MWg3OS42djMxLjgNCgloLTIzLjZ2NjMuNkg1MTJ2LTYzLjZoLTI0LjJMNDg3LjgsMTUxTDQ4Ny44LDE1MXogTTIzMywyMTQuNlYxNTFoNjMuN3YyMy41aC0zMS45djE1LjhoMzEuOXYyNC4yaC0zMS45djMxLjhIMjMzVjIxNC42eiBNMzA1LDMxNy45DQoJdjE1LjhoLTQ3Ljh2MzEuOEgzMDV2NDcuN2gtOTUuNVYyODYuMUgzMDVMMzA1LDMxNy45eiBNMzEyLjYsMjQ2LjRWMTUxaDMxLjl2NjMuNmgzMS45djMxLjhMMzEyLjYsMjQ2LjRMMzEyLjYsMjQ2LjRMMzEyLjYsMjQ2LjR6DQoJIE00NDguMywzMTcuOXY5NS40aC00Ny44di00Ny43aC0zMS45djQ3LjdoLTQ3LjhWMzAyaDE1Ljl2LTE1LjhoOTUuNVYzMDJoMTUuOUw0NDguMywzMTcuOXogTTQ0MCwyNDYuNHYtMzEuOGgtMTUuOXYzMS44aC0zMS45DQoJdi03OS41aDE1Ljl2LTE1LjhoNDcuOHYxNS44aDE1Ljl2NzkuNUg0NDB6IE01OTEuNiwzMTcuOXY0Ny43aC0xNS45djE1LjhoMTUuOXYzMS44aC00Ny44di0zMS43SDUyOHYtMTUuOGgtMTUuOXY0Ny43aC00Ny44VjI4Ni4xDQoJaDEyNy4zVjMxNy45eiIvPg0KPC9zdmc+DQo=)](https://www.flatcar.org/) [![Flatcar OS](https://img.shields.io/badge/Flatcar-Website-blue?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNi4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4wIiBpZD0ia2F0bWFuXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgODAwIDYwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgODAwIDYwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzA5QkFDODt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQ0MCwxODIuOGgtMTUuOXYxNS45SDQ0MFYxODIuOHoiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAuNSwzMTcuOWgtMzEuOXYxNS45aDMxLjlWMzE3Ljl6Ii8+DQo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTQzLjgsMzE3LjlINTEydjE1LjloMzEuOVYzMTcuOXoiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02NTUuMiw0MjAuOXYtOTUuNGgtMTUuOXY5NS40aC0xNS45VjI2MmgtMzEuOVYxMzQuOEgyMDkuNFYyNjJoLTMxLjl2MTU5aC0xNS45di05NS40aC0xNnY5NS40aC0xNS45djMxLjINCgloMzEuOXYxNS44aDQ3Ljh2LTE1LjhoMTUuOXYxNS44SDI3M3YtMTUuOGgyNTQuOHYxNS44aDQ3Ljh2LTE1LjhoMTUuOXYxNS44aDQ3Ljh2LTE1LjhoMzEuOXYtMzEuMkg2NTUuMnogTTQ4Ny44LDE1MWg3OS42djMxLjgNCgloLTIzLjZ2NjMuNkg1MTJ2LTYzLjZoLTI0LjJMNDg3LjgsMTUxTDQ4Ny44LDE1MXogTTIzMywyMTQuNlYxNTFoNjMuN3YyMy41aC0zMS45djE1LjhoMzEuOXYyNC4yaC0zMS45djMxLjhIMjMzVjIxNC42eiBNMzA1LDMxNy45DQoJdjE1LjhoLTQ3Ljh2MzEuOEgzMDV2NDcuN2gtOTUuNVYyODYuMUgzMDVMMzA1LDMxNy45eiBNMzEyLjYsMjQ2LjRWMTUxaDMxLjl2NjMuNmgzMS45djMxLjhMMzEyLjYsMjQ2LjRMMzEyLjYsMjQ2LjRMMzEyLjYsMjQ2LjR6DQoJIE00NDguMywzMTcuOXY5NS40aC00Ny44di00Ny43aC0zMS45djQ3LjdoLTQ3LjhWMzAyaDE1Ljl2LTE1LjhoOTUuNVYzMDJoMTUuOUw0NDguMywzMTcuOXogTTQ0MCwyNDYuNHYtMzEuOGgtMTUuOXYzMS44aC0zMS45DQoJdi03OS41aDE1Ljl2LTE1LjhoNDcuOHYxNS44aDE1Ljl2NzkuNUg0NDB6IE01OTEuNiwzMTcuOXY0Ny43aC0xNS45djE1LjhoMTUuOXYzMS44aC00Ny44di0zMS43SDUyOHYtMTUuOGgtMTUuOXY0Ny43aC00Ny44VjI4Ni4xDQoJaDEyNy4zVjMxNy45eiIvPg0KPC9zdmc+DQo=)](https://www.flatcar.org/)
[![Discord](https://img.shields.io/badge/Discord-Chat%20with%20us!-5865F2?logo=discord)](https://discord.gg/PMYjFUsJyq)
[![Matrix](https://img.shields.io/badge/Matrix-Chat%20with%20us!-green?logo=matrix)](https://app.element.io/#/room/#flatcar:matrix.org) [![Matrix](https://img.shields.io/badge/Matrix-Chat%20with%20us!-green?logo=matrix)](https://app.element.io/#/room/#flatcar:matrix.org)
[![Slack](https://img.shields.io/badge/Slack-Chat%20with%20us!-4A154B?logo=slack)](https://kubernetes.slack.com/archives/C03GQ8B5XNJ) [![Slack](https://img.shields.io/badge/Slack-Chat%20with%20us!-4A154B?logo=slack)](https://kubernetes.slack.com/archives/C03GQ8B5XNJ)
[![Twitter Follow](https://img.shields.io/twitter/follow/flatcar?style=social)](https://x.com/flatcar) [![Twitter Follow](https://img.shields.io/twitter/follow/flatcar?style=social)](https://x.com/flatcar)
[![Mastodon Follow](https://img.shields.io/badge/Mastodon-Follow-6364FF?logo=mastodon)](https://hachyderm.io/@flatcar) [![Mastodon Follow](https://img.shields.io/badge/Mastodon-Follow-6364FF?logo=mastodon)](https://hachyderm.io/@flatcar)
[![Bluesky](https://img.shields.io/badge/Bluesky-Follow-0285FF?logo=bluesky)](https://bsky.app/profile/flatcar.org) [![Bluesky](https://img.shields.io/badge/Bluesky-Follow-0285FF?logo=bluesky)](https://bsky.app/profile/flatcar.org)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/10926/badge)](https://www.bestpractices.dev/projects/10926)
> **Note:** To file an issue for any Flatcar repository, please use the [central Flatcar issue tracker](https://github.com/flatcar/Flatcar/issues).
</div> </div>
# Flatcar Container Linux SDK scripts
Welcome to the scripts repo, your starting place for most things here in the Flatcar Container Linux SDK. To get started you can find our documentation on [the Flatcar docs website][flatcar-docs]. Welcome to the scripts repo, your starting place for most things here in the Flatcar Container Linux SDK. To get started you can find our documentation on [the Flatcar docs website][flatcar-docs].
The SDK can be used to The SDK can be used to
@ -151,3 +155,13 @@ The script `./bootstrap_sdk_container` bootstraps a new SDK tarball using an exi
# Automation stubs for continuous integration # Automation stubs for continuous integration
Script stubs for various build stages can be found in the [ci-automation](ci-automation) folder. These are helpful for gluing Flatcar Container Linux builds to a continuous integration system. Script stubs for various build stages can be found in the [ci-automation](ci-automation) folder. These are helpful for gluing Flatcar Container Linux builds to a continuous integration system.
---
## Community & Project Documentation
- [Contributing Guidelines](CONTRIBUTING.md) — How to contribute, find issues, and submit pull requests
- [Code of Conduct](CODE_OF_CONDUCT.md) — Standards for respectful and inclusive community participation
- [Security Policy](SECURITY.md) — How to report vulnerabilities and security-related information
- [Maintainers](MAINTAINERS.md) — Current project maintainers and their responsibilities
- [Governance](GOVERNANCE.md) — Project governance model, decision-making process, and roles

15
SECURITY.md Normal file
View File

@ -0,0 +1,15 @@
# Security Policy
The Flatcar project takes security seriously. We appreciate your efforts to responsibly disclose your findings.
For our full security policy, supported versions, and how to report a vulnerability, please see the [main Flatcar Security Policy](https://github.com/flatcar/Flatcar/blob/main/SECURITY.md).
**Please do not open public issues for security vulnerabilities.**
---
## Repository-Specific Security Notes
Any security considerations specific to this repository will be listed here.
<!-- Add repo-specific security notes below this line -->

View File

@ -49,6 +49,8 @@ DEFINE_string developer_data "" \
"Insert a custom cloudinit file into the image." "Insert a custom cloudinit file into the image."
DEFINE_string devcontainer_binhost "${DEFAULT_DEVCONTAINER_BINHOST}" \ DEFINE_string devcontainer_binhost "${DEFAULT_DEVCONTAINER_BINHOST}" \
"Override portage binhost configuration used in development container." "Override portage binhost configuration used in development container."
DEFINE_string oem_sysexts "everything!" \
"A comma-separated list of OEMs to build, by default build all the OEM sysexts. Used only if building OEM sysexts"
# include upload options # include upload options
. "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1
@ -193,7 +195,7 @@ if [[ "${SYSEXT}" -eq 1 ]]; then
create_prod_sysexts "${FLATCAR_PRODUCTION_IMAGE_NAME}" create_prod_sysexts "${FLATCAR_PRODUCTION_IMAGE_NAME}"
fi fi
if [[ "${OEM_SYSEXT}" -eq 1 ]]; then if [[ "${OEM_SYSEXT}" -eq 1 ]]; then
create_oem_sysexts "${FLATCAR_PRODUCTION_IMAGE_NAME}" create_oem_sysexts "${FLATCAR_PRODUCTION_IMAGE_NAME}" "${FLAGS_oem_sysexts}"
fi fi
if [[ ${FLAGS_extract_update} -eq ${FLAGS_TRUE} ]]; then if [[ ${FLAGS_extract_update} -eq ${FLAGS_TRUE} ]]; then

View File

@ -152,7 +152,12 @@ emerge_to_image() {
sudo -E ROOT="${root_fs_dir}" \ sudo -E ROOT="${root_fs_dir}" \
FEATURES="-ebuild-locks -merge-wait" \ FEATURES="-ebuild-locks -merge-wait" \
PORTAGE_CONFIGROOT="${BUILD_DIR}"/configroot \ PORTAGE_CONFIGROOT="${BUILD_DIR}"/configroot \
emerge --usepkgonly --jobs="${NUM_JOBS}" --verbose "$@" emerge \
--usepkgonly \
--binpkg-respect-use=y \
--jobs="${NUM_JOBS}" \
--verbose \
"$@"
# Shortcut if this was just baselayout # Shortcut if this was just baselayout
[[ "$*" == *sys-apps/baselayout ]] && return [[ "$*" == *sys-apps/baselayout ]] && return

View File

@ -88,8 +88,8 @@ def _SplitAndStrip(data):
if 'not found' in line: if 'not found' in line:
raise _LibNotFound(line) raise _LibNotFound(line)
line = re.sub('.*not a dynamic executable.*', '', line) line = re.sub('.*not a dynamic executable.*', '', line)
line = re.sub('.* =>\s+', '', line) line = re.sub(r'.* =>\s+', '', line)
line = re.sub('\(0x.*\)\s?', '', line) line = re.sub(r'\(0x.*\)\s?', '', line)
line = line.strip() line = line.strip()
if not len(line): if not len(line):
continue continue

View File

@ -40,13 +40,13 @@ with open(os.path.join(outputdir, "grub_modules.config"), "w") as f:
f.write(json.dumps({"9": {"binaryvalues": [{"prefix": "grub_module", "values": hashvalues}]}})) f.write(json.dumps({"9": {"binaryvalues": [{"prefix": "grub_module", "values": hashvalues}]}}))
with open(os.path.join(outputdir, "kernel_cmdline.config"), "w") as f: with open(os.path.join(outputdir, "kernel_cmdline.config"), "w") as f:
f.write(json.dumps({"8": {"asciivalues": [{"prefix": "grub_kernel_cmdline", "values": [{"value": "rootflags=rw mount.usrflags=ro BOOT_IMAGE=/flatcar/vmlinuz-[ab] mount.usr=PARTUUID=\S{36} rootflags=rw mount.usrflags=ro consoleblank=0 root=LABEL=ROOT (console=\S+)? (flatcar.autologin=\S+)? verity.usrhash=\\S{64}", "description": "Flatcar kernel command line %s" % version}]}]}})) f.write(json.dumps({"8": {"asciivalues": [{"prefix": "grub_kernel_cmdline", "values": [{"value": r"rootflags=rw mount.usrflags=ro BOOT_IMAGE=/flatcar/vmlinuz-[ab] mount.usr=PARTUUID=\S{36} rootflags=rw mount.usrflags=ro consoleblank=0 root=LABEL=ROOT (console=\S+)? (flatcar.autologin=\S+)? verity.usrhash=\\S{64}", "description": "Flatcar kernel command line %s" % version}]}]}}))
commands = [{"value": '\[.*\]', "description": "Flatcar Grub configuration %s" % version}, commands = [{"value": r'\[.*\]', "description": "Flatcar Grub configuration %s" % version},
{"value": 'gptprio.next -d usr -u usr_uuid', "description": "Flatcar Grub configuration %s" % version}, {"value": 'gptprio.next -d usr -u usr_uuid', "description": "Flatcar Grub configuration %s" % version},
{"value": 'insmod all_video', "description": "Flatcar Grub configuration %s" % version}, {"value": 'insmod all_video', "description": "Flatcar Grub configuration %s" % version},
{"value": 'linux /flatcar/vmlinuz-[ab] rootflags=rw mount.usrflags=ro consoleblank=0 root=LABEL=ROOT (console=\S+)? (flatcar.autologin=\S+)?', "description": "Flatcar Grub configuration %s" % version}, {"value": r'linux /flatcar/vmlinuz-[ab] rootflags=rw mount.usrflags=ro consoleblank=0 root=LABEL=ROOT (console=\S+)? (flatcar.autologin=\S+)?', "description": "Flatcar Grub configuration %s" % version},
{"value": 'menuentry Flatcar \S+ --id=flatcar\S* {', "description": "Flatcar Grub configuration %s" % version}, {"value": r'menuentry Flatcar \S+ --id=flatcar\S* {', "description": "Flatcar Grub configuration %s" % version},
{"value": 'search --no-floppy --set randomize_disk_guid --disk-uuid 00000000-0000-0000-0000-000000000001', "description": "Flatcar Grub configuration %s" % version}, {"value": 'search --no-floppy --set randomize_disk_guid --disk-uuid 00000000-0000-0000-0000-000000000001', "description": "Flatcar Grub configuration %s" % version},
{"value": 'search --no-floppy --set oem --part-label OEM --hint hd0,gpt1', "description": "Flatcar Grub configuration %s" % version}, {"value": 'search --no-floppy --set oem --part-label OEM --hint hd0,gpt1', "description": "Flatcar Grub configuration %s" % version},
{"value": 'set .+', "description": "Flatcar Grub configuration %s" % version}, {"value": 'set .+', "description": "Flatcar Grub configuration %s" % version},

View File

@ -79,7 +79,7 @@ if [ -z "$linux_console" ]; then
terminal_output console serial_com0 terminal_output console serial_com0
elif [ "$grub_platform" = efi ]; then elif [ "$grub_platform" = efi ]; then
if [ "$grub_cpu" = arm64 ]; then if [ "$grub_cpu" = arm64 ]; then
set linux_console="console=ttyAMA0,115200n8" set linux_console="console=ttyAMA0,115200n8 console=tty0"
else else
set linux_console="console=ttyS0,115200n8 console=tty0" set linux_console="console=ttyS0,115200n8 console=tty0"
fi fi

View File

@ -37,6 +37,9 @@ switch_to_strict_mode
. "${BUILD_LIBRARY_DIR}/board_options.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/board_options.sh" || exit 1
. "${BUILD_LIBRARY_DIR}/sbsign_util.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/sbsign_util.sh" || exit 1
SBSIGN_DB_KEY="${SBSIGN_DB_KEY:-/usr/share/sb_keys/DB.key}"
SBSIGN_DB_CERT="${SBSIGN_DB_CERT:-/usr/share/sb_keys/DB.crt}"
# Our GRUB lives under flatcar/grub so new pygrub versions cannot find grub.cfg # Our GRUB lives under flatcar/grub so new pygrub versions cannot find grub.cfg
GRUB_DIR="flatcar/grub/${FLAGS_target}" GRUB_DIR="flatcar/grub/${FLAGS_target}"
@ -202,8 +205,8 @@ case "${FLAGS_target}" in
# Unofficial build: Sign shim with our development key. # Unofficial build: Sign shim with our development key.
sudo sbsign \ sudo sbsign \
--key /usr/share/sb_keys/DB.key \ --key "${SBSIGN_DB_KEY}" \
--cert /usr/share/sb_keys/DB.crt \ --cert "${SBSIGN_DB_CERT}" \
--output "${ESP_DIR}/EFI/boot/boot${EFI_ARCH}.efi" \ --output "${ESP_DIR}/EFI/boot/boot${EFI_ARCH}.efi" \
"${BOARD_ROOT}/usr/lib/shim/shim${EFI_ARCH}.efi" "${BOARD_ROOT}/usr/lib/shim/shim${EFI_ARCH}.efi"
else else

View File

@ -276,13 +276,26 @@ create_prod_sysexts() {
} }
create_oem_sysexts() { create_oem_sysexts() {
local image_name="$1" local image_name=${1}; shift
local requested_oem_sysexts_csv=${1}; shift
local image_sysext_base="${image_name%.bin}_sysext.squashfs" local image_sysext_base="${image_name%.bin}_sysext.squashfs"
local overlay_path local overlay_path
overlay_path=$(portageq get_repo_path / coreos-overlay) overlay_path=$(portageq get_repo_path / coreos-overlay)
local -a oem_sysexts local -a oem_sysexts
get_oem_sysext_matrix "${ARCH}" oem_sysexts get_oem_sysext_matrix "${ARCH}" oem_sysexts
if [[ ${requested_oem_sysexts_csv} != 'everything!' ]]; then
local -a all_oems requested_oems invalid_oems
all_oems=( "${oem_sysexts[@]}" )
all_oems=( "${all_oems[@]%%|*}" )
all_oems=( "${all_oems[@]#oem-}" )
mapfile -t requested_oems <<<"${requested_oem_sysexts_csv//,/$'\n'}"
mapfile -t invalid_oems < <(comm -23 <(printf '%s\n' "${requested_oems[@]}" | sort -u) <(printf '%s\n' "${all_oems[@]}" | sort -u))
if [[ ${#invalid_oems[@]} -gt 0 ]]; then
die "Requested OEMs to build sysexts for are invalid: ${invalid_oems[*]}, valid OEMs are ${all_oems[*]}"
fi
mapfile -t oem_sysexts < <(printf '%s\n' "${oem_sysexts[@]}" | grep '^oem-\('"${requested_oem_sysexts_csv//,/'\|'}"'\)|')
fi
local sysext name metapkg useflags local sysext name metapkg useflags
for sysext in "${oem_sysexts[@]}"; do for sysext in "${oem_sysexts[@]}"; do

View File

@ -3,17 +3,17 @@
# found in the LICENSE file. # found in the LICENSE file.
if [[ ${COREOS_OFFICIAL:-0} -ne 1 ]]; then if [[ ${COREOS_OFFICIAL:-0} -ne 1 ]]; then
SBSIGN_KEY="/usr/share/sb_keys/shim.key" SBSIGN_KEY="${SBSIGN_KEY:-/usr/share/sb_keys/shim.key}"
SBSIGN_CERT="/usr/share/sb_keys/shim.pem" SBSIGN_CERT="${SBSIGN_CERT:-/usr/share/sb_keys/shim.pem}"
else else
SBSIGN_KEY="pkcs11:token=flatcar-sb-dev-hsm-sign-2025" SBSIGN_KEY="pkcs11:token=flatcar-secure-boot-prod-2026-04"
unset SBSIGN_CERT unset SBSIGN_CERT
fi fi
PKCS11_MODULE_PATH="/usr/$(get_sdk_libdir)/pkcs11/azure-keyvault-pkcs11.so" PKCS11_MODULE_PATH="/usr/$(get_sdk_libdir)/pkcs11/azure-keyvault-pkcs11.so"
PKCS11_ENV=( PKCS11_ENV=(
AZURE_KEYVAULT_URL="https://flatcar-sb-dev-kv.vault.azure.net/" AZURE_KEYVAULT_URL="https://flatcar-hsm0001.vault.azure.net/"
PKCS11_MODULE_PATH="${PKCS11_MODULE_PATH}" PKCS11_MODULE_PATH="${PKCS11_MODULE_PATH}"
AZURE_KEYVAULT_PKCS11_DEBUG=1 AZURE_KEYVAULT_PKCS11_DEBUG=1
) )

View File

@ -806,12 +806,12 @@ _write_qemu_common() {
cat >"${VM_README}" <<EOF cat >"${VM_README}" <<EOF
If you have qemu installed (or in the SDK), you can start the image with: If you have qemu installed (or in the SDK), you can start the image with:
cd path/to/image cd path/to/image
./$(basename "${script}") -curses ./$(basename "${script}") -display curses
If you need to use a different ssh key or different ssh port: If you need to use a different ssh key or different ssh port:
./$(basename "${script}") -a ~/.ssh/authorized_keys -p 2223 -- -curses ./$(basename "${script}") -a ~/.ssh/authorized_keys -p 2223 -- -display curses
If you rather you can use the -nographic option instad of -curses. In this If you rather you can use the -nographic option instad of '-display curses'. In this
mode you can switch from the vm to the qemu monitor console with: Ctrl-a c mode you can switch from the vm to the qemu monitor console with: Ctrl-a c
See the qemu man page for more details on the monitor console. See the qemu man page for more details on the monitor console.
@ -890,11 +890,17 @@ _write_qemu_uefi_secure_conf() {
esac esac
# TODO: Remove the temporary flatcar shim signing cert # TODO: Remove the temporary flatcar shim signing cert
local _sb_db_cert="${SBSIGN_DB_CERT:-/usr/share/sb_keys/DB.crt}"
local _sb_extra_db_certs=()
if [[ -z ${SBSIGN_DB_CERT:-} ]]; then
# Default behavior: include the temporary dev shim cert alongside DB.crt
_sb_extra_db_certs=( --add-db "${owner}" "${BUILD_LIBRARY_DIR}/flatcar-sb-dev-shim-2025.cert" )
fi
virt-fw-vars \ virt-fw-vars \
--input "${flash_in}" \ --input "${flash_in}" \
--output "$(_dst_dir)/${flash_rw}" \ --output "$(_dst_dir)/${flash_rw}" \
--add-db "${owner}" /usr/share/sb_keys/DB.crt \ --add-db "${owner}" "${_sb_db_cert}" \
--add-db "${owner}" "${BUILD_LIBRARY_DIR}/flatcar-sb-dev-shim-2025.cert" "${_sb_extra_db_certs[@]}"
sed -e "s%^SECURE_BOOT=.*%SECURE_BOOT=1%" -i "${script}" sed -e "s%^SECURE_BOOT=.*%SECURE_BOOT=1%" -i "${script}"
} }
@ -911,7 +917,7 @@ _write_pxe_conf() {
cat >>"${VM_README}" <<EOF cat >>"${VM_README}" <<EOF
You can pass extra kernel parameters with -append, for example: You can pass extra kernel parameters with -append, for example:
./$(basename "${script}") -curses -append 'sshkey="PUT AN SSH KEY HERE"' ./$(basename "${script}") -display curses -append 'sshkey="PUT AN SSH KEY HERE"'
When using -nographic or -serial you must also enable the serial console: When using -nographic or -serial you must also enable the serial console:
./$(basename "${script}") -nographic -append 'console=ttyS0,115200n8' ./$(basename "${script}") -nographic -append 'console=ttyS0,115200n8'

View File

@ -125,10 +125,6 @@ fi
# -- # --
docker_build() {
PROGRESS_NO_TRUNC=1 $docker build --progress plain "${@}"
}
# build plain SDK container w/o board support # build plain SDK container w/o board support
# #
import_image="flatcar-sdk-import:${docker_vernum}" import_image="flatcar-sdk-import:${docker_vernum}"

View File

@ -0,0 +1 @@
- Add EROFS tools for containerd ([Flatcar#2047](https://github.com/flatcar/Flatcar/issues/2047))

View File

@ -0,0 +1 @@
- Reworked how the OEM partition is mounted at boot time so that Ignition no longer has to handle this by itself, thereby requiring less patching. This should not affect any existing usage, but it is a significant underlying change, so it needs to be called out. Please report any unexpected issues. ([flatcar/script#3934](https://github.com/flatcar/scripts/pull/3934))

View File

@ -0,0 +1 @@
- Enable VNC console serial logs on ARM64 QEMU/KVM instances ([flatcar/scripts#2359](https://github.com/flatcar/scripts/pull/2359))

View File

@ -0,0 +1 @@
- Linux Firmware ([20260410](https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tag/?h=20260410))

View File

@ -0,0 +1 @@
- ca-certificates ([3.123.1](https://firefox-source-docs.mozilla.org/security/nss/releases/nss_3_123_1.html))

View File

@ -0,0 +1 @@
- Linux ([6.12.84](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tag/?h=v6.12.84) (includes [6.12.83](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tag/?h=v6.12.83), [6.12.82](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tag/?h=v6.12.82)))

View File

@ -0,0 +1 @@
- Linux ([6.12.85](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tag/?h=v6.12.85))

View File

@ -232,10 +232,15 @@ function docker_image_from_buildcache() {
local url="https://${BUILDCACHE_SERVER}/containers/${version}/${tgz}" local url="https://${BUILDCACHE_SERVER}/containers/${version}/${tgz}"
local url_release="https://mirror.release.flatcar-linux.net/containers/${version}/${tgz}" local url_release="https://mirror.release.flatcar-linux.net/containers/${version}/${tgz}"
curl --fail --silent --show-error --location --retry-delay 1 --retry 60 \ local curl_progress=(--silent --show-error)
if [[ -t 2 ]]; then
curl_progress=(--progress-bar)
fi
curl --fail "${curl_progress[@]}" --location --retry-delay 1 --retry 60 \
--retry-connrefused --retry-max-time 60 --connect-timeout 20 \ --retry-connrefused --retry-max-time 60 --connect-timeout 20 \
--remote-name "${url}" \ --remote-name "${url}" \
|| curl --fail --silent --show-error --location --retry-delay 1 --retry 60 \ || curl --fail "${curl_progress[@]}" --location --retry-delay 1 --retry 60 \
--retry-connrefused --retry-max-time 60 --connect-timeout 20 \ --retry-connrefused --retry-max-time 60 --connect-timeout 20 \
--remote-name "${url_release}" --remote-name "${url_release}"
@ -254,7 +259,7 @@ function docker_image_from_registry_or_buildcache() {
return return
fi fi
echo "Falling back to tar ball download..." >&2 echo "Container image not found in registry, downloading SDK tarball instead (this is normal for nightly builds)..." >&2
docker_image_from_buildcache "${image}" "${version}" zst || \ docker_image_from_buildcache "${image}" "${version}" zst || \
docker_image_from_buildcache "${image}" "${version}" gz docker_image_from_buildcache "${image}" "${version}" gz
} }

View File

@ -48,6 +48,10 @@ DEFINE_string getbinpkgver "" \
# include upload options # include upload options
. "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1
# Override the default value to false so that
# ./flatcar_production_qemu_uefi.sh can launch the qemu VM later.
FLAGS_only_store_compressed=${FLAGS_FALSE}
# Parse command line # Parse command line
FLAGS "$@" || exit 1 FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}" eval set -- "${FLAGS_ARGV}"

View File

@ -1 +1 @@
ghcr.io/flatcar/mantle:git-ca80a2eaee4cc195ae6e17f9202c1d72e729d460 ghcr.io/flatcar/mantle:git-859a6b1262f61e0aabc74c4c091d4fe49cb57af1

View File

@ -1,4 +1,4 @@
FLATCAR_VERSION=4666.0.0+nightly-20260410-2100 FLATCAR_VERSION=4690.0.0+nightly-20260504-2100
FLATCAR_VERSION_ID=4666.0.0 FLATCAR_VERSION_ID=4690.0.0
FLATCAR_BUILD_ID="nightly-20260410-2100" FLATCAR_BUILD_ID="nightly-20260504-2100"
FLATCAR_SDK_VERSION=4666.0.0+nightly-20260410-2100 FLATCAR_SDK_VERSION=4690.0.0+nightly-20260504-2100

View File

@ -1 +1 @@
DIST nss-3.122.tar.gz 77654239 BLAKE2B a34de23e316cff66f989074c91b6a33788db7fc21bbeadafeb76001aa198dbaf024d33845bbee2c319f5dc65850f0cd6a83cdd50419d2dead6b5ffc25484c03d SHA512 53847c2de0e4608b387d5688ecf005a2a78da67408bda31f522539306816e25580d6046656cd5bb7fb9642feb625a904a17d3102573be96a9fd8b46e14037ff7 DIST nss-3.123.1.tar.gz 77762541 BLAKE2B 68cd408dce23a039ee91ffcfa156817310b56227ab9d9ce130a7909fe0b306777d82b1fe8aac64451b8266feb87d3c0f9d7a8bed757c5c451e077c96a6263f92 SHA512 988927a07d1ac4533e7e89d01a08504e6ff70a7b111c1267e54a9cfe0a3a5674bb8b25e14ad6dca0d8765da3ca591a9be4f977ca172be3cf7af95a52f2e19214

View File

@ -1 +1 @@
DIST coreos-init-1660f54f79dbba285a64c52d3338f5566e1d770d.tar.gz 59695 BLAKE2B 02c67fa98ee0b97123cb322fb6eabacf7ae7a282914408a8246371552ed222cc3eb56f27d5c42230158a4f7907db9cdfd4b7f51e96995aac2a0f903ff34d034d SHA512 d1282837b52f550855e6c0990796e270c32d7b0882b062f401aff9c9eea7a7c8fba4f2a051f9c42be9316022fa8ee214dc28a8078b306577629d01d96e32d5e8 DIST coreos-init-9c940ec78b8eb513397ece28bd6cb0d2af6cc342.tar.gz 60774 BLAKE2B b141646a9ff796825cd0726413c3deacc3d60ac1e9dedbfa72e2f563c4b10ef5f7db5dcafefae75f83a21dd83d811c73611598c27faf70e7d486ffff9d62377e SHA512 4532a1069313cacf2f2d92a71859f6550e87e6cfe1966326b2bfa0279770f2e58d9956ccebc1ddebca2336a8d0e0bc778e73fa0d79c63374a23de5c2b8638c9b

View File

@ -14,7 +14,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/flatcar/init.git" EGIT_REPO_URI="https://github.com/flatcar/init.git"
inherit git-r3 inherit git-r3
else else
EGIT_VERSION="1660f54f79dbba285a64c52d3338f5566e1d770d" # flatcar-master EGIT_VERSION="9c940ec78b8eb513397ece28bd6cb0d2af6cc342" # flatcar-master
SRC_URI="https://github.com/flatcar/init/archive/${EGIT_VERSION}.tar.gz -> ${PN}-${EGIT_VERSION}.tar.gz" SRC_URI="https://github.com/flatcar/init/archive/${EGIT_VERSION}.tar.gz -> ${PN}-${EGIT_VERSION}.tar.gz"
S="${WORKDIR}/init-${EGIT_VERSION}" S="${WORKDIR}/init-${EGIT_VERSION}"
KEYWORDS="amd64 arm arm64 x86" KEYWORDS="amd64 arm arm64 x86"

View File

@ -192,6 +192,7 @@ RDEPEND="${RDEPEND}
sys-fs/cryptsetup sys-fs/cryptsetup
sys-fs/dosfstools sys-fs/dosfstools
sys-fs/e2fsprogs sys-fs/e2fsprogs
sys-fs/erofs-utils
sys-fs/lsscsi sys-fs/lsscsi
sys-fs/lvm2 sys-fs/lvm2
sys-fs/mdadm sys-fs/mdadm

View File

@ -14,7 +14,7 @@ DIST bitflags-2.9.0.crate 47654 BLAKE2B df924872ccb929f3e428976764d50e5468112cb8
DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
DIST bstr-1.12.0.crate 351557 BLAKE2B b57f018ad6c0767b23ff65f30fb7bde6199956e50200b7574c04df851aa7c5510874c98caed575c2d6b1984286d39df96a2f29773081915a4bc94257146b831c SHA512 a2b6bb347c4bda37bbc0908a4b1191261fe69de3f767e196b43410a757cd5ade65c9349be76f0d585b4250a9b811c7834fdfe34274a54e989985f353f5ba345a DIST bstr-1.12.0.crate 351557 BLAKE2B b57f018ad6c0767b23ff65f30fb7bde6199956e50200b7574c04df851aa7c5510874c98caed575c2d6b1984286d39df96a2f29773081915a4bc94257146b831c SHA512 a2b6bb347c4bda37bbc0908a4b1191261fe69de3f767e196b43410a757cd5ade65c9349be76f0d585b4250a9b811c7834fdfe34274a54e989985f353f5ba345a
DIST bumpalo-3.17.0.crate 91975 BLAKE2B b0aca1d64373425384eddcdf8d60dc977058a3d1570451de944ce48aacdb984e73a29ab64fb5b23413582d57a8e32ad8155f6a1479eb00f804afe9d8a9d9e163 SHA512 b2acfb463aa705b9c6a9555858b84f565234110988c880cdb761ab8dc87892ee5d22e65fa935d2cfef9d58869fec0ab64d810b26bf122fdd89b454b6ce65ea1f DIST bumpalo-3.17.0.crate 91975 BLAKE2B b0aca1d64373425384eddcdf8d60dc977058a3d1570451de944ce48aacdb984e73a29ab64fb5b23413582d57a8e32ad8155f6a1479eb00f804afe9d8a9d9e163 SHA512 b2acfb463aa705b9c6a9555858b84f565234110988c880cdb761ab8dc87892ee5d22e65fa935d2cfef9d58869fec0ab64d810b26bf122fdd89b454b6ce65ea1f
DIST bytes-1.10.1.crate 76779 BLAKE2B 96573ff7852cd2d4f37a68cb4d76bc43d2018dc25b7b7e2164df022de4e1974f22d4d3ea7cbfb280667650cdb5063d600f4f76cbdca43dae508f29ced449b0f7 SHA512 03429f01927b94ba6c958c46b2e5bf92a23b39ce9385689e21accd34a5d3be01fd0f665f4bbffb1f7c5bdf1edfb1bf11d5ccad00eff0f9388be39fe2f753d296 DIST bytes-1.11.1.crate 78584 BLAKE2B 4985426ff626d880a0da3d592ba48d697c88a83f48177e2b7380cb55e736a43f3cdf662d99cf0908b599aa8eccfebff2910405559e490b71adcf3f078673cd72 SHA512 7933d18c1a2c1496add2c7193e92c3aa17029c530b7031604ccb7c77c68903f53cf7d41396448b32bdd4f540fef4b37564972dac7b225e6e2ca99cd61179a6ab
DIST bzip2-0.4.4.crate 34197 BLAKE2B b69f8ad38b44eb4912b33d53467492b0ebe6ed740451bdfe9133e71c47a8dbd85b1110a9607c4cc627fbabc44cd86fe0396bb545864632ffb6169f9cfa547b6c SHA512 9cd2b9159bd0b42ac908ecad41f0a737272af94ae0d6dcfe182d2f44bcea4632d32b0456f02322047ea9d6f46377db6cd083f468782bccd6126bcc75cb852555 DIST bzip2-0.4.4.crate 34197 BLAKE2B b69f8ad38b44eb4912b33d53467492b0ebe6ed740451bdfe9133e71c47a8dbd85b1110a9607c4cc627fbabc44cd86fe0396bb545864632ffb6169f9cfa547b6c SHA512 9cd2b9159bd0b42ac908ecad41f0a737272af94ae0d6dcfe182d2f44bcea4632d32b0456f02322047ea9d6f46377db6cd083f468782bccd6126bcc75cb852555
DIST bzip2-sys-0.1.13+1.0.8.crate 633818 BLAKE2B f33f1bf6f01fd30e9ac551caa0092a6346fdaf076ee52967ad7e7c68f3e5d9261413da5185aaafbb11add343a0cc0116dcd1392fe5575a9be779323b729acd48 SHA512 89631b05c21bd06a1fc5911c637d3308c3be2d7d6e0152dd62f1851d286cfbc30ad534800b718d5e273e88409b33f5aca478adccad2c7b05400b3e698eb796e7 DIST bzip2-sys-0.1.13+1.0.8.crate 633818 BLAKE2B f33f1bf6f01fd30e9ac551caa0092a6346fdaf076ee52967ad7e7c68f3e5d9261413da5185aaafbb11add343a0cc0116dcd1392fe5575a9be779323b729acd48 SHA512 89631b05c21bd06a1fc5911c637d3308c3be2d7d6e0152dd62f1851d286cfbc30ad534800b718d5e273e88409b33f5aca478adccad2c7b05400b3e698eb796e7
DIST cc-1.2.19.crate 105910 BLAKE2B 1c3d757f8155e2987ca8fa7709428905d3c66afe5d3379c3a3741c26b6abe288170bf414a9aaacd30eefa75f06dfde4e3f75cbe5cd384c558f2487ef29f1d012 SHA512 d56ebd19090e63bcdf65a738fbe34c03cdd294803ed46d66a6428ff60f2ac14a4eaf3e34870ca0ddb38e489878cb632b5912012e5ffb4e84fd813bb7585f2e2a DIST cc-1.2.19.crate 105910 BLAKE2B 1c3d757f8155e2987ca8fa7709428905d3c66afe5d3379c3a3741c26b6abe288170bf414a9aaacd30eefa75f06dfde4e3f75cbe5cd384c558f2487ef29f1d012 SHA512 d56ebd19090e63bcdf65a738fbe34c03cdd294803ed46d66a6428ff60f2ac14a4eaf3e34870ca0ddb38e489878cb632b5912012e5ffb4e84fd813bb7585f2e2a
@ -33,7 +33,7 @@ DIST env_logger-0.10.2.crate 36402 BLAKE2B 34ef02d0f53fea474e7284fd7021ed3b44b11
DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4 DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
DIST errno-0.3.11.crate 12048 BLAKE2B 6d370edb0712b4b527645460eb663f6434784abe8749356674dddfe7a655fa888a9894d870c44d514186d1ce226d0d4f44955b926a10b14cd3b54d07c40cce50 SHA512 95f64e6e71c9100c36e52f2aa720d244c1a4d1182b18708773bfb4fc69ad55ed78e4918b69a96eb7ce9a2bf6d39fcc23236bb38473d3046f4ab332c260005299 DIST errno-0.3.11.crate 12048 BLAKE2B 6d370edb0712b4b527645460eb663f6434784abe8749356674dddfe7a655fa888a9894d870c44d514186d1ce226d0d4f44955b926a10b14cd3b54d07c40cce50 SHA512 95f64e6e71c9100c36e52f2aa720d244c1a4d1182b18708773bfb4fc69ad55ed78e4918b69a96eb7ce9a2bf6d39fcc23236bb38473d3046f4ab332c260005299
DIST fastrand-2.3.0.crate 15076 BLAKE2B 15c9a1c4f64d94c4bfd38ae139c6fe19b6b621a495c1b57209edd6d76d978eaf018ba77f356b5086c3f462a6de044fb5e3b172fc288309569911a17ec39951bc SHA512 267fecbb7459c8840f03425733d278dd6c4e7637b85b99552877117ed5e8015e094d86aa95841f77064136b7f382276c3cb2c2bef7b2881d272f4aa57c5cf947 DIST fastrand-2.3.0.crate 15076 BLAKE2B 15c9a1c4f64d94c4bfd38ae139c6fe19b6b621a495c1b57209edd6d76d978eaf018ba77f356b5086c3f462a6de044fb5e3b172fc288309569911a17ec39951bc SHA512 267fecbb7459c8840f03425733d278dd6c4e7637b85b99552877117ed5e8015e094d86aa95841f77064136b7f382276c3cb2c2bef7b2881d272f4aa57c5cf947
DIST flatcar-ue-rs-8464c05429d9a034d38b48563d59479fa471606b.tar.gz 84209 BLAKE2B f3eb1d6a54670426d7c1ff7238d7394548ebd6b40af8b23046783c51f7e0b486bb19d7628c232da062f906a676961bf6f512c4f8fea400f4d27f36df46ac931b SHA512 4336be600f36e56dc577487ee47812470c45dc07d6d0c6c4f06754e9425120455821393723c5c99e370f3019ac1a0a49dace3ab1c2537f3fa1899243ad3e7ab7 DIST flatcar-ue-rs-f1e0301c36a2f5259f5d7ea2f2a60769f922b2f5.tar.gz 84543 BLAKE2B b9e179cfa0243eec98ac97d7aa130398827dde71af6ee532859f516a2db802008233c68eb668bbf0bc17475c9085d97d7aadb5968177081d110ebc069d23a8d2 SHA512 5f9a3e4b153ad8d913ec7753ff8750fcddddc0ef40d9e64bee588ab3ae5234bed7169aaa9cf20caa8f8d9bc650223942dc0ad1820bc4b923a82fdd619476a3b6
DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334 DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232 DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
@ -97,10 +97,10 @@ DIST num-iter-0.1.45.crate 10320 BLAKE2B 9f2a60a819e31a6e7e048ae86f7fa029015a738
DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956 DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
DIST object-0.36.7.crate 329938 BLAKE2B 0b02cf2f44e99002909b38125edada1a259feae59fd0e5ef52001755b6878cac710c87c60fbafdbe405281e039f68572ea3d8093d16128899090fd70df7f2fa8 SHA512 dd69172349ecf51fd2351d32cc4453760ca1d15e854a1cf5ed99112032901a54b4645b24163b946deed11f81d3e3035e1a5afd8bff20f335dbd05eceab073478 DIST object-0.36.7.crate 329938 BLAKE2B 0b02cf2f44e99002909b38125edada1a259feae59fd0e5ef52001755b6878cac710c87c60fbafdbe405281e039f68572ea3d8093d16128899090fd70df7f2fa8 SHA512 dd69172349ecf51fd2351d32cc4453760ca1d15e854a1cf5ed99112032901a54b4645b24163b946deed11f81d3e3035e1a5afd8bff20f335dbd05eceab073478
DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990 DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
DIST openssl-0.10.72.crate 283852 BLAKE2B a221ff329fd068da6d88b98e32c0fb9750e074fd87eb261614ba08771df0879fefb80ed0b60a26fcf4ef808e0ff6484f7e4fcbc38146186d30ca4e74d17fa803 SHA512 ee4cfb893e7112fd274baef3283f3bc44385a3e014c9bb4eb24ffc6153fe56e2f66807d8d5874f97254390041cec3affc41bf7b2bc7e5d39bf60413ffb747786 DIST openssl-0.10.78.crate 292622 BLAKE2B 17ec5a5efd1fa997a8179bb107912c62c47ea901d93df1c8c0c63e548427a01e57d79c23f0d4a7d614f0d2059c6c07097a4047aa91dfbc4d224c942615eb3587 SHA512 fc27483ebf36daf4b97a43aab2b347255a35e03268c4424df133c714da41a415025be7e6d12579590ab03d237eebaacf89c056d722a66591a7e77c1f45297b4d
DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c
DIST openssl-probe-0.1.6.crate 8128 BLAKE2B 912371bbd0e105e7281eaa1462d68c6674ae11226f72a9e5c2808be12e975e39a257b5424cafdc527fac9d2313ed928f34ecf407cddbfb179283137e0817631d SHA512 6c2f02a9d42caf578fbd2a40277ad346bef32d191f27564d04a83477d62d6ad1f44945f40234e9425503e3f701a9e0ec8735ade52641170ff57fa6732666ac69 DIST openssl-probe-0.1.6.crate 8128 BLAKE2B 912371bbd0e105e7281eaa1462d68c6674ae11226f72a9e5c2808be12e975e39a257b5424cafdc527fac9d2313ed928f34ecf407cddbfb179283137e0817631d SHA512 6c2f02a9d42caf578fbd2a40277ad346bef32d191f27564d04a83477d62d6ad1f44945f40234e9425503e3f701a9e0ec8735ade52641170ff57fa6732666ac69
DIST openssl-sys-0.9.107.crate 78156 BLAKE2B 7f4b43a7dbd9f58dba412fb87108547858aa74f4d891e5b446154be28afe7f034f5361427b52c3517c58e63eb0dbfe74452bf42031dc54358c4520992df9966f SHA512 e66e0f7cb43e3d8135bc1806d8be304b1b8da0de8254afdf1e5f6d2c52af7833389c06c457cb0c94e8917ce905b35ff73ddcf7bdc81cfb58cc1b177ec4e2d693 DIST openssl-sys-0.9.114.crate 75617 BLAKE2B f4c313dae993116f249d27d9b161263e8ed770ea8ba0446738aa9fcb2f94d2aebb069f6a713f94ed64e99350f3241b095ef6f433b0e4f75cc3de2b0916d04a75 SHA512 a1404b613d77b039fee2e2195867f8db75520aaa558d125c99f1a6694e513e15454914dd8ab84ab1ef4ab729afd53eac8ddf5f3c42d152f758faa1d0c1fbd258
DIST pem-rfc7468-0.7.0.crate 24159 BLAKE2B 478d355dd970b9705ebcf44d74d61ae0694db6de16b2018548fda88546f53e35b965ff72d939def399a49fe97d3c8317a10385ace94b3d552797ec64ace1eb8f SHA512 f47d3b6c7c8bf4547916acc2a3d6671f6c1308e74641419c8f1df810d8bd940aba8f94d361e4cbef3eae3b7f11587cd3996a11be3be41d19111abfcde7a9272a DIST pem-rfc7468-0.7.0.crate 24159 BLAKE2B 478d355dd970b9705ebcf44d74d61ae0694db6de16b2018548fda88546f53e35b965ff72d939def399a49fe97d3c8317a10385ace94b3d552797ec64ace1eb8f SHA512 f47d3b6c7c8bf4547916acc2a3d6671f6c1308e74641419c8f1df810d8bd940aba8f94d361e4cbef3eae3b7f11587cd3996a11be3be41d19111abfcde7a9272a
DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44 DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
DIST pin-project-lite-0.2.16.crate 30504 BLAKE2B efd0b426fcc6ea8852bce499fac61f9755a11c6a2999cbec514f093ba7b3f94b1f2d437ee9abb243e31f3838ac1c74491a212851d7798eb249e209b35e015332 SHA512 971adfe54cfed304647fd944c1c915e78b37eaf0de3a582fb984a5e91f1b7d4db2cf0f53a9a64b64427062d4b41c0a36baddef782411a76ae3be0f8ca45f0718 DIST pin-project-lite-0.2.16.crate 30504 BLAKE2B efd0b426fcc6ea8852bce499fac61f9755a11c6a2999cbec514f093ba7b3f94b1f2d437ee9abb243e31f3838ac1c74491a212851d7798eb249e209b35e015332 SHA512 971adfe54cfed304647fd944c1c915e78b37eaf0de3a582fb984a5e91f1b7d4db2cf0f53a9a64b64427062d4b41c0a36baddef782411a76ae3be0f8ca45f0718
@ -128,7 +128,7 @@ DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aa
DIST rustix-1.0.5.crate 414160 BLAKE2B bc6d64d86501e5e97875fe290029bd6958db41ff90fa3f8d75fca88761a871904b96e0b452a7eaac7177de237ed2693ec8f32c940dce751ecaf1acedf582301a SHA512 df4c0ce07fcecadcccbb59c65e826eb327904f5a590a61539225c11ebcacf067896bb8577c73a490fbcc3ee20175782b847246095143c24f67e073f2073e8b07 DIST rustix-1.0.5.crate 414160 BLAKE2B bc6d64d86501e5e97875fe290029bd6958db41ff90fa3f8d75fca88761a871904b96e0b452a7eaac7177de237ed2693ec8f32c940dce751ecaf1acedf582301a SHA512 df4c0ce07fcecadcccbb59c65e826eb327904f5a590a61539225c11ebcacf067896bb8577c73a490fbcc3ee20175782b847246095143c24f67e073f2073e8b07
DIST rustls-0.23.35.crate 373700 BLAKE2B a4c219adfeed33e415f5cb3ca2d9df7980ed03bb43f2b1dc6f7f3b2723a69dd5d0a9d5f561d2d26da60f90a4106b54588b243c37baec7ec201df51e2abf411cd SHA512 f59f48bded60aad7b23e7c8c0f579713405ed7de45392f7984ceddaca42bc796f86674ec23b4576958042e699dd5a7ed82fac47923ae13dce930b7f3e8c0a039 DIST rustls-0.23.35.crate 373700 BLAKE2B a4c219adfeed33e415f5cb3ca2d9df7980ed03bb43f2b1dc6f7f3b2723a69dd5d0a9d5f561d2d26da60f90a4106b54588b243c37baec7ec201df51e2abf411cd SHA512 f59f48bded60aad7b23e7c8c0f579713405ed7de45392f7984ceddaca42bc796f86674ec23b4576958042e699dd5a7ed82fac47923ae13dce930b7f3e8c0a039
DIST rustls-pki-types-1.13.1.crate 34901 BLAKE2B ebe0a3ef59097ec96491337df232efc1644768ac1d7d9e465e9762a05282c072d9f6dbaf9dbca935405bcad48049f0a8b91db7b3182e16d4c5aca27f1b26033b SHA512 0357a3c66e31447fdf39ed9e29576e2dfbbb012171e71efe322c2cb13856e7441115936375555fb2f700e6a7bc97565c74dc4bc18f8b8b01d335357e220a2c1b DIST rustls-pki-types-1.13.1.crate 34901 BLAKE2B ebe0a3ef59097ec96491337df232efc1644768ac1d7d9e465e9762a05282c072d9f6dbaf9dbca935405bcad48049f0a8b91db7b3182e16d4c5aca27f1b26033b SHA512 0357a3c66e31447fdf39ed9e29576e2dfbbb012171e71efe322c2cb13856e7441115936375555fb2f700e6a7bc97565c74dc4bc18f8b8b01d335357e220a2c1b
DIST rustls-webpki-0.103.8.crate 85810 BLAKE2B a6af950b130e130c0959013662b7be31d73d1bd98e00f507a20a9d980d7b133ee9bdeeeffa6313cdc75a02bbf06e24a314431a6f1a460ac4e00e37d046604412 SHA512 934f630a0c8be9bdc41d491ff8c6cdeb225f180c77b7f1b242d0c4a61390fce7c925ffa09527e5cf872993384a6197ba4685dd0b7466241b4e1811a557366336 DIST rustls-webpki-0.103.13.crate 87513 BLAKE2B c1b8db65355e598a240b545f5fdee8db234df9f4f1c2ffa41ab6e8759365fe88f867686a61dbf4002fb3330c67a172e1c97b53773e0378dbaad6c799646c74af SHA512 367829afe3432a9d80bb4da82e075dd05bc37ecaf801c0944e1af9184565d743abf92d59e6fd433e7f051daac15099273b823e6f417ec46b6b5da43bbdad59b6
DIST rustversion-1.0.20.crate 20666 BLAKE2B 49fabcf276fe3f59b4a1c2e8a07364ba59c5ba4e0a33fe4150ce2eb93c6da42d32ad4d4a197baf6616c1cd703d34fcf5a90186c5467c1656388d55e7962d01a3 SHA512 250be168a4ee64f4b85d78658706659122d5fbbc748f321fe2b9baf48c547de4f0004c87882642645994b7798077c514a44e06b73784a800d04e4cc673aa8906 DIST rustversion-1.0.20.crate 20666 BLAKE2B 49fabcf276fe3f59b4a1c2e8a07364ba59c5ba4e0a33fe4150ce2eb93c6da42d32ad4d4a197baf6616c1cd703d34fcf5a90186c5467c1656388d55e7962d01a3 SHA512 250be168a4ee64f4b85d78658706659122d5fbbc748f321fe2b9baf48c547de4f0004c87882642645994b7798077c514a44e06b73784a800d04e4cc673aa8906
DIST ryu-1.0.20.crate 48738 BLAKE2B b126085448cb58639a7b5867fe313dcaabaf19df478f67fcb6cf15b8e881a21e641878345e0bf1fea7d24b56b921e667fd26a39cb81fca7ea02585332068263f SHA512 329c581429d9b8baa7d9edd9cf20e23fb8002f339d9fb3d50ed4c7eb68fb19c1ba966d52a9c9602265ca5f59f2bd4393ddcb3a7ac20c64aee3096e137eb2a384 DIST ryu-1.0.20.crate 48738 BLAKE2B b126085448cb58639a7b5867fe313dcaabaf19df478f67fcb6cf15b8e881a21e641878345e0bf1fea7d24b56b921e667fd26a39cb81fca7ea02585332068263f SHA512 329c581429d9b8baa7d9edd9cf20e23fb8002f339d9fb3d50ed4c7eb68fb19c1ba966d52a9c9602265ca5f59f2bd4393ddcb3a7ac20c64aee3096e137eb2a384
DIST schannel-0.1.27.crate 42772 BLAKE2B 55b3cdf596d6d490fdbc10298eed7cb1b1bb8d6349ac8700ac2e7db66e1d75f0a5bea5b1b322bf30cc0f982262e96aa421998151a8ee1e620b5a09d25ad4263f SHA512 f469d03c2be014c248e7b6408f541584f250a9d58bc8dd8ff4d1e63f5720cadba1c0579b1e5d97b58844fadaeff10e9cfae6d5cd33c5de0fa4ebe699a8ead4a8 DIST schannel-0.1.27.crate 42772 BLAKE2B 55b3cdf596d6d490fdbc10298eed7cb1b1bb8d6349ac8700ac2e7db66e1d75f0a5bea5b1b322bf30cc0f982262e96aa421998151a8ee1e620b5a09d25ad4263f SHA512 f469d03c2be014c248e7b6408f541584f250a9d58bc8dd8ff4d1e63f5720cadba1c0579b1e5d97b58844fadaeff10e9cfae6d5cd33c5de0fa4ebe699a8ead4a8

View File

@ -20,7 +20,7 @@ CRATES="
block-buffer@0.10.4 block-buffer@0.10.4
bstr@1.12.0 bstr@1.12.0
bumpalo@3.17.0 bumpalo@3.17.0
bytes@1.10.1 bytes@1.11.1
bzip2-sys@0.1.13+1.0.8 bzip2-sys@0.1.13+1.0.8
bzip2@0.4.4 bzip2@0.4.4
cc@1.2.19 cc@1.2.19
@ -104,8 +104,8 @@ CRATES="
once_cell@1.21.3 once_cell@1.21.3
openssl-macros@0.1.1 openssl-macros@0.1.1
openssl-probe@0.1.6 openssl-probe@0.1.6
openssl-sys@0.9.107 openssl-sys@0.9.114
openssl@0.10.72 openssl@0.10.78
pem-rfc7468@0.7.0 pem-rfc7468@0.7.0
percent-encoding@2.3.1 percent-encoding@2.3.1
pin-project-lite@0.2.16 pin-project-lite@0.2.16
@ -132,7 +132,7 @@ CRATES="
rustc-demangle@0.1.24 rustc-demangle@0.1.24
rustix@1.0.5 rustix@1.0.5
rustls-pki-types@1.13.1 rustls-pki-types@1.13.1
rustls-webpki@0.103.8 rustls-webpki@0.103.13
rustls@0.23.35 rustls@0.23.35
rustversion@1.0.20 rustversion@1.0.20
ryu@1.0.20 ryu@1.0.20
@ -235,7 +235,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/flatcar/ue-rs.git" EGIT_REPO_URI="https://github.com/flatcar/ue-rs.git"
inherit git-r3 inherit git-r3
else else
EGIT_VERSION="8464c05429d9a034d38b48563d59479fa471606b" # main EGIT_VERSION="f1e0301c36a2f5259f5d7ea2f2a60769f922b2f5" # main
SRC_URI="https://github.com/flatcar/${PN}/archive/${EGIT_VERSION}.tar.gz -> flatcar-${PN}-${EGIT_VERSION}.tar.gz SRC_URI="https://github.com/flatcar/${PN}/archive/${EGIT_VERSION}.tar.gz -> flatcar-${PN}-${EGIT_VERSION}.tar.gz
${CARGO_CRATE_URIS}" ${CARGO_CRATE_URIS}"
S="${WORKDIR}/${PN}-${EGIT_VERSION}" S="${WORKDIR}/${PN}-${EGIT_VERSION}"

View File

@ -0,0 +1,45 @@
https://bugs.gentoo.org/970713
From e359bdc261f9493d91b3cf792fe4fc480ecd6dc3 Mon Sep 17 00:00:00 2001
From: Kerin Millar <kfm@plushkava.net>
Date: Thu, 13 Nov 2025 18:39:28 +0000
Subject: [PATCH] jobs.c: only call bgp_delete on a newly-created pid if
asynchronous
This is a backport of the following change from the devel branch.
jobs.c
- make_child: only call bgp_delete on a newly-created pid if that
process is asynchronous, since that is what will cause it to be
put into the bgpids table. This mostly matters for procsubs and
asynchronous jobs, but will happen for comsubs in async jobs
and coprocs as well.
Bug: https://bugs.gentoo.org/965423
Signed-off-by: Kerin Millar <kfm@plushkava.net>
---
jobs.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/jobs.c b/jobs.c
index cbcc2c15..bafa7c26 100644
--- a/jobs.c
+++ b/jobs.c
@@ -2482,9 +2482,11 @@ make_child (char *command, int flags)
been reused. */
delete_old_job (pid);
- /* Perform the check for pid reuse unconditionally. Some systems reuse
- PIDs before giving a process CHILD_MAX/_SC_CHILD_MAX unique ones. */
- bgp_delete (pid); /* new process, discard any saved status */
+ /* Perform the check for background pid reuse unconditionally.
+ Some systems reuse PIDs before giving a process
+ CHILD_MAX/_SC_CHILD_MAX unique ones. */
+ if (async_p)
+ bgp_delete (pid); /* new background process, discard any saved status */
last_made_pid = pid;
--
2.51.2

View File

@ -128,7 +128,7 @@ cros_pre_pkg_setup_sysroot_build_bin_dir() {
# and also remove their associated debug files to avoid wasting space. # and also remove their associated debug files to avoid wasting space.
cros_post_pkg_preinst_rm_masked_debug_files() { cros_post_pkg_preinst_rm_masked_debug_files() {
local link debug dir=${ED}/usr/lib/debug local link debug dir=${ED}/usr/lib/debug
[[ -d ${dir}/.build-id ]] || return [[ -d ${dir}/.build-id ]] || return 0
while read -d $'\n' -r link; do while read -d $'\n' -r link; do
debug=$(realpath "${link}.debug") || die debug=$(realpath "${link}.debug") || die
rm -f -- "${link}" "${link}.debug" "${debug}" || die rm -f -- "${link}" "${link}.debug" "${debug}" || die

View File

@ -94,7 +94,7 @@ pkg_preinst() {
libdirs=$(get_all_libdirs) libdirs=$(get_all_libdirs)
emake -C "${ED}/usr/share/${PN}" DESTDIR="${EROOT}" LIBDIRS="${libdirs}" layout emake -C "${ED}/usr/share/${PN}" DESTDIR="${EROOT}" LIBDIRS="${libdirs}" layout
SYSTEMD_JOURNAL_GID=${ACCT_GROUP_SYSTEMD_JOURNAL_ID:-190} ROOT_UID=0 ROOT_GID=0 CORE_UID=500 CORE_GID=500 \ SYSTEMD_JOURNAL_GID=${ACCT_GROUP_SYSTEMD_JOURNAL_ID:-190} ROOT_UID=0 ROOT_GID=0 CORE_UID=500 CORE_GID=500 \
DESTDIR=${D} "${ED}/usr/share/${PN}/dumb-tmpfiles-proc.sh" "${ED}/usr/lib/tmpfiles.d" || die DESTDIR=${ROOT} "${ED}/usr/share/${PN}/dumb-tmpfiles-proc.sh" --exclude CZL+ "${ED}/usr/lib/tmpfiles.d" || die
rm -f "${ED}/usr/share/${PN}/Makefile" "${ED}/usr/share/${PN}/dumb-tmpfiles-proc.sh" || die rm -f "${ED}/usr/share/${PN}/Makefile" "${ED}/usr/share/${PN}/dumb-tmpfiles-proc.sh" || die
} }

View File

@ -1,19 +1,21 @@
From b617624e830507f68268db881fdb1576ed25fb41 Mon Sep 17 00:00:00 2001 From df6384f8f0e93ab3b61cd04822cf808c7c2d289a Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com> From: James Le Cuirot <jlecuirot@microsoft.com>
Date: Wed, 25 May 2022 10:38:16 +0200 Date: Wed, 1 Apr 2026 16:11:52 +0100
Subject: [PATCH 13/19] Revert "*: drop OEM URI support" Subject: [PATCH 13/17] Partially revert "*: drop OEM URI support"
This reverts commit 0c088d6de77aa1b1f47b9252a07f51cb1e249df3. This partially reverts commit 0c088d6de77aa1b1f47b9252a07f51cb1e249df3.
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
--- ---
config/v3_0/types/url.go | 2 +- config/v3_0/types/url.go | 2 +-
config/v3_1/types/url.go | 2 +- config/v3_1/types/url.go | 2 +-
config/v3_2/types/url.go | 2 +- config/v3_2/types/url.go | 2 +-
config/v3_3/types/url.go | 2 +- config/v3_3/types/url.go | 2 +-
config/v3_4/types/url.go | 2 +- config/v3_4/types/url.go | 2 +-
docs/supported-platforms.md | 1 + docs/supported-platforms.md | 2 ++
internal/distro/distro.go | 11 ++++- internal/distro/distro.go | 3 +++
internal/resource/url.go | 91 +++++++++++++++++++++++++++++++++++++ internal/resource/url.go | 27 +++++++++++++++++++++++++++
8 files changed, 106 insertions(+), 7 deletions(-) 8 files changed, 37 insertions(+), 5 deletions(-)
diff --git a/config/v3_0/types/url.go b/config/v3_0/types/url.go diff --git a/config/v3_0/types/url.go b/config/v3_0/types/url.go
index 2d8c44b1..f560bc22 100644 index 2d8c44b1..f560bc22 100644
@ -81,32 +83,23 @@ index b1f96337..752044ce 100644
case "s3": case "s3":
if v, ok := u.Query()["versionId"]; ok { if v, ok := u.Query()["versionId"]; ok {
diff --git a/docs/supported-platforms.md b/docs/supported-platforms.md diff --git a/docs/supported-platforms.md b/docs/supported-platforms.md
index afd49437..f8e1d3ae 100644 index afd49437..897eeabd 100644
--- a/docs/supported-platforms.md --- a/docs/supported-platforms.md
+++ b/docs/supported-platforms.md +++ b/docs/supported-platforms.md
@@ -12,6 +12,7 @@ Ignition is currently supported for the following platforms: @@ -12,6 +12,8 @@ Ignition is currently supported for the following platforms:
* [Amazon Web Services] (`aws`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Amazon Web Services] (`aws`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [Microsoft Azure] (`azure`)- Ignition will read its configuration from the custom data provided to the instance. Cloud SSH keys are handled separately. * [Microsoft Azure] (`azure`)- Ignition will read its configuration from the custom data provided to the instance. Cloud SSH keys are handled separately.
* [Microsoft Azure Stack] (`azurestack`) - Ignition will read its configuration from the custom data provided to the instance. Cloud SSH keys are handled separately. * [Microsoft Azure Stack] (`azurestack`) - Ignition will read its configuration from the custom data provided to the instance. Cloud SSH keys are handled separately.
+* Bare Metal - Use the `ignition.config.url` kernel parameter to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, `s3://`, or `gs://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/usr/share/oem`. +* Bare Metal - Use the `ignition.config.url` kernel parameter to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, `s3://`, or `gs://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/usr/share/oem`.
+* PXE - Use the `ignition.config.url` and first boot kernel parameters to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, or `s3://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/usr/share/oem`.
* [Brightbox] (`brightbox`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Brightbox] (`brightbox`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [CloudStack] (`cloudstack`) - Ignition will read its configuration from the instance userdata via either metadata service or config drive. Cloud SSH keys are handled separately. * [CloudStack] (`cloudstack`) - Ignition will read its configuration from the instance userdata via either metadata service or config drive. Cloud SSH keys are handled separately.
* [DigitalOcean] (`digitalocean`) - Ignition will read its configuration from the droplet userdata. Cloud SSH keys and network configuration are handled separately. * [DigitalOcean] (`digitalocean`) - Ignition will read its configuration from the droplet userdata. Cloud SSH keys and network configuration are handled separately.
diff --git a/internal/distro/distro.go b/internal/distro/distro.go diff --git a/internal/distro/distro.go b/internal/distro/distro.go
index 9d9351e7..f3c32aaf 100644 index 9d9351e7..fb12b792 100644
--- a/internal/distro/distro.go --- a/internal/distro/distro.go
+++ b/internal/distro/distro.go +++ b/internal/distro/distro.go
@@ -23,13 +23,17 @@ import ( @@ -30,6 +30,8 @@ var (
// -X github.com/flatcar/ignition/v2/internal/distro.mdadmCmd=/opt/bin/mdadm
var (
// Device node directories and paths
- diskByLabelDir = "/dev/disk/by-label"
+ diskByLabelDir = "/dev/disk/by-label"
+ diskByPartUUIDDir = "/dev/disk/by-partuuid"
+ oemDevicePath = "/dev/disk/by-label/OEM"
// initrd file paths
kernelCmdlinePath = "/proc/cmdline"
bootIDPath = "/proc/sys/kernel/random/boot_id" bootIDPath = "/proc/sys/kernel/random/boot_id"
// initramfs directory containing distro-provided base config // initramfs directory containing distro-provided base config
systemConfigDir = "/usr/lib/ignition" systemConfigDir = "/usr/lib/ignition"
@ -115,15 +108,7 @@ index 9d9351e7..f3c32aaf 100644
// Helper programs // Helper programs
groupaddCmd = "groupadd" groupaddCmd = "groupadd"
@@ -83,11 +87,14 @@ var ( @@ -88,6 +90,7 @@ func DiskByLabelDir() string { return diskByLabelDir }
luksCexSecureKeyRepo = "/etc/zkey/repository/"
)
-func DiskByLabelDir() string { return diskByLabelDir }
+func DiskByLabelDir() string { return diskByLabelDir }
+func DiskByPartUUIDDir() string { return diskByPartUUIDDir }
+func OEMDevicePath() string { return fromEnv("OEM_DEVICE", oemDevicePath) }
func KernelCmdlinePath() string { return kernelCmdlinePath } func KernelCmdlinePath() string { return kernelCmdlinePath }
func BootIDPath() string { return bootIDPath } func BootIDPath() string { return bootIDPath }
func SystemConfigDir() string { return fromEnv("SYSTEM_CONFIG_DIR", systemConfigDir) } func SystemConfigDir() string { return fromEnv("SYSTEM_CONFIG_DIR", systemConfigDir) }
@ -132,15 +117,10 @@ index 9d9351e7..f3c32aaf 100644
func GroupaddCmd() string { return groupaddCmd } func GroupaddCmd() string { return groupaddCmd }
func GroupdelCmd() string { return groupdelCmd } func GroupdelCmd() string { return groupdelCmd }
diff --git a/internal/resource/url.go b/internal/resource/url.go diff --git a/internal/resource/url.go b/internal/resource/url.go
index 5f08f059..a9f7f7ba 100644 index 5f08f059..ab1d80fa 100644
--- a/internal/resource/url.go --- a/internal/resource/url.go
+++ b/internal/resource/url.go +++ b/internal/resource/url.go
@@ -23,10 +23,12 @@ import ( @@ -27,6 +27,7 @@ import (
"fmt"
"hash"
"io"
+ "io/ioutil"
"net"
"net/http" "net/http"
"net/url" "net/url"
"os" "os"
@ -148,17 +128,15 @@ index 5f08f059..a9f7f7ba 100644
"strings" "strings"
"syscall" "syscall"
"time" "time"
@@ -34,7 +36,9 @@ import ( @@ -34,6 +35,7 @@ import (
"cloud.google.com/go/compute/metadata" "cloud.google.com/go/compute/metadata"
"cloud.google.com/go/storage" "cloud.google.com/go/storage"
configErrors "github.com/flatcar/ignition/v2/config/shared/errors" configErrors "github.com/flatcar/ignition/v2/config/shared/errors"
+ "github.com/flatcar/ignition/v2/internal/distro" + "github.com/flatcar/ignition/v2/internal/distro"
"github.com/flatcar/ignition/v2/internal/log" "github.com/flatcar/ignition/v2/internal/log"
+ "github.com/flatcar/ignition/v2/internal/systemd"
"github.com/flatcar/ignition/v2/internal/util" "github.com/flatcar/ignition/v2/internal/util"
"golang.org/x/oauth2/google" "golang.org/x/oauth2/google"
"google.golang.org/api/option" @@ -165,6 +167,8 @@ func (f *Fetcher) FetchToBuffer(u url.URL, opts FetchOptions) ([]byte, error) {
@@ -165,6 +169,8 @@ func (f *Fetcher) FetchToBuffer(u url.URL, opts FetchOptions) ([]byte, error) {
err = f.fetchFromTFTP(u, dest, opts) err = f.fetchFromTFTP(u, dest, opts)
case "data": case "data":
err = f.fetchFromDataURL(u, dest, opts) err = f.fetchFromDataURL(u, dest, opts)
@ -167,7 +145,7 @@ index 5f08f059..a9f7f7ba 100644
case "s3", "arn": case "s3", "arn":
buf := &s3buf{ buf := &s3buf{
WriteAtBuffer: manager.NewWriteAtBuffer([]byte{}), WriteAtBuffer: manager.NewWriteAtBuffer([]byte{}),
@@ -237,6 +243,8 @@ func (f *Fetcher) Fetch(u url.URL, dest *os.File, opts FetchOptions) error { @@ -237,6 +241,8 @@ func (f *Fetcher) Fetch(u url.URL, dest *os.File, opts FetchOptions) error {
return f.fetchFromTFTP(u, dest, opts) return f.fetchFromTFTP(u, dest, opts)
case "data": case "data":
return f.fetchFromDataURL(u, dest, opts) return f.fetchFromDataURL(u, dest, opts)
@ -176,7 +154,7 @@ index 5f08f059..a9f7f7ba 100644
case "s3", "arn": case "s3", "arn":
return f.fetchFromS3(u, dest, opts) return f.fetchFromS3(u, dest, opts)
case "gs": case "gs":
@@ -447,6 +455,53 @@ type s3target interface { @@ -447,6 +453,27 @@ type s3target interface {
io.ReadSeeker io.ReadSeeker
} }
@ -195,81 +173,15 @@ index 5f08f059..a9f7f7ba 100644
+ if fi, err := os.Open(absPath); err == nil { + if fi, err := os.Open(absPath); err == nil {
+ defer fi.Close() + defer fi.Close()
+ return f.decompressCopyHashAndVerify(dest, fi, opts) + return f.decompressCopyHashAndVerify(dest, fi, opts)
+ } else if !os.IsNotExist(err) { + } else {
+ f.Logger.Err("failed to read oem config: %v", err) + f.Logger.Err("failed to read oem config: %v", err)
+ return ErrFailed + return ErrFailed
+ } + }
+
+ f.Logger.Info("oem config not found in %q, looking on oem partition",
+ distro.OEMLookasideDir())
+
+ oemMountPath, err := ioutil.TempDir("/mnt", "oem")
+ if err != nil {
+ f.Logger.Err("failed to create mount path for oem partition: %v", err)
+ return ErrFailed
+ }
+ // try oemMountPath, requires mounting it.
+ if err := f.mountOEM(oemMountPath); err != nil {
+ f.Logger.Err("failed to mount oem partition: %v", err)
+ return ErrFailed
+ }
+ defer os.Remove(oemMountPath)
+ defer f.umountOEM(oemMountPath)
+
+ absPath = filepath.Join(oemMountPath, path)
+ fi, err := os.Open(absPath)
+ if err != nil {
+ f.Logger.Err("failed to read oem config: %v", err)
+ return ErrFailed
+ }
+ defer fi.Close()
+
+ return f.decompressCopyHashAndVerify(dest, fi, opts)
+} +}
+ +
// FetchFromS3 gets data from an S3 bucket as described by u and writes it into // FetchFromS3 gets data from an S3 bucket as described by u and writes it into
// dest, returning an error if one is encountered. It will attempt to acquire // dest, returning an error if one is encountered. It will attempt to acquire
// IAM credentials from the EC2 metadata service, and if this fails will attempt // IAM credentials from the EC2 metadata service, and if this fails will attempt
@@ -735,3 +790,39 @@ func (f *Fetcher) parseARN(arnURL string) (string, string, string, string, error
key := strings.Join(urlSplit[1:], "/")
return bucket, key, "", regionHint, nil
}
+
+// mountOEM waits for the presence of and mounts the oem partition at
+// oemMountPath. oemMountPath will be created if it does not exist.
+func (f *Fetcher) mountOEM(oemMountPath string) error {
+ dev := []string{distro.OEMDevicePath()}
+ if err := systemd.WaitOnDevices(context.Background(), dev, "oem-cmdline"); err != nil {
+ f.Logger.Err("failed to wait for oem device: %v", err)
+ return err
+ }
+
+ if err := os.MkdirAll(oemMountPath, 0700); err != nil {
+ f.Logger.Err("failed to create oem mount point: %v", err)
+ return err
+ }
+
+ if err := f.Logger.LogOp(
+ func() error {
+ return syscall.Mount(dev[0], oemMountPath, "ext4", 0, "")
+ },
+ "mounting %q at %q", distro.OEMDevicePath(), oemMountPath,
+ ); err != nil {
+ return fmt.Errorf("failed to mount device %q at %q: %v",
+ distro.OEMDevicePath(), oemMountPath, err)
+ }
+
+ return nil
+}
+
+// umountOEM unmounts the oem partition at oemMountPath.
+func (f *Fetcher) umountOEM(oemMountPath string) {
+ // ignore the error for the linter
+ _ = f.Logger.LogOp(
+ func() error { return syscall.Unmount(oemMountPath, 0) },
+ "unmounting %q", oemMountPath,
+ )
+}
-- --
2.51.0 2.53.0

View File

@ -0,0 +1,41 @@
From 22332650e3b97479aca7144b04a6dbd2590596de Mon Sep 17 00:00:00 2001
From: James Le Cuirot <jlecuirot@microsoft.com>
Date: Mon, 6 Apr 2026 13:13:58 +0100
Subject: [PATCH 14/18] config: Support oem:// schema in newer config spec
versions
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
---
config/v3_5/types/url.go | 2 +-
config/v3_6_experimental/types/url.go | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/config/v3_5/types/url.go b/config/v3_5/types/url.go
index b1f96337..752044ce 100644
--- a/config/v3_5/types/url.go
+++ b/config/v3_5/types/url.go
@@ -32,7 +32,7 @@ func validateURL(s string) error {
}
switch u.Scheme {
- case "http", "https", "tftp", "gs":
+ case "http", "https", "tftp", "gs", "oem":
return nil
case "s3":
if v, ok := u.Query()["versionId"]; ok {
diff --git a/config/v3_6_experimental/types/url.go b/config/v3_6_experimental/types/url.go
index b1f96337..752044ce 100644
--- a/config/v3_6_experimental/types/url.go
+++ b/config/v3_6_experimental/types/url.go
@@ -32,7 +32,7 @@ func validateURL(s string) error {
}
switch u.Scheme {
- case "http", "https", "tftp", "gs":
+ case "http", "https", "tftp", "gs", "oem":
return nil
case "s3":
if v, ok := u.Query()["versionId"]; ok {
--
2.53.0

View File

@ -1,39 +0,0 @@
From ca4cd35a3124d696c236549111b1655f6feffb97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kai=20L=C3=BCke?= <kailuke@microsoft.com>
Date: Wed, 7 Jul 2021 18:40:52 +0200
Subject: [PATCH 14/19] internal/resource/url: support btrfs as OEM partition
filesystem
When btrfs is used to fit more content into the partition, mounting
fails because ext4 was hardcoded.
When mounting ext4 fails, try mounting as btrfs.
---
internal/resource/url.go | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/internal/resource/url.go b/internal/resource/url.go
index a9f7f7ba..4471db96 100644
--- a/internal/resource/url.go
+++ b/internal/resource/url.go
@@ -811,8 +811,17 @@ func (f *Fetcher) mountOEM(oemMountPath string) error {
},
"mounting %q at %q", distro.OEMDevicePath(), oemMountPath,
); err != nil {
- return fmt.Errorf("failed to mount device %q at %q: %v",
+ f.Logger.Err("failed to mount ext4 device %q at %q, trying btrfs: %v",
distro.OEMDevicePath(), oemMountPath, err)
+ if err := f.Logger.LogOp(
+ func() error {
+ return syscall.Mount(dev[0], oemMountPath, "btrfs", 0, "")
+ },
+ "mounting %q at %q", distro.OEMDevicePath(), oemMountPath,
+ ); err != nil {
+ return fmt.Errorf("failed to mount btrfs device %q at %q: %v",
+ distro.OEMDevicePath(), oemMountPath, err)
+ }
}
return nil
--
2.51.0

View File

@ -1,7 +1,7 @@
From 9840bd7740f5667f8b2d6e3d87da226dab14bf83 Mon Sep 17 00:00:00 2001 From f0030362abcedf24149860673ef0596cf3051787 Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com> From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Mon, 4 Mar 2024 15:05:14 +0100 Date: Mon, 4 Mar 2024 15:05:14 +0100
Subject: [PATCH 17/19] docs: Add re-added platforms to docs to pass tests Subject: [PATCH 17/18] docs: Add re-added platforms to docs to pass tests
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com> Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Co-Authored-By: Krzesimir Nowak <knowak@microsoft.com Co-Authored-By: Krzesimir Nowak <knowak@microsoft.com
@ -10,18 +10,18 @@ Co-Authored-By: Krzesimir Nowak <knowak@microsoft.com
1 file changed, 4 insertions(+) 1 file changed, 4 insertions(+)
diff --git a/docs/supported-platforms.md b/docs/supported-platforms.md diff --git a/docs/supported-platforms.md b/docs/supported-platforms.md
index f8e1d3ae..0a30664c 100644 index 897eeabd..2a861637 100644
--- a/docs/supported-platforms.md --- a/docs/supported-platforms.md
+++ b/docs/supported-platforms.md +++ b/docs/supported-platforms.md
@@ -15,6 +15,7 @@ Ignition is currently supported for the following platforms: @@ -16,6 +16,7 @@ Ignition is currently supported for the following platforms:
* Bare Metal - Use the `ignition.config.url` kernel parameter to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, `s3://`, or `gs://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/usr/share/oem`. * PXE - Use the `ignition.config.url` and first boot kernel parameters to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, or `s3://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/usr/share/oem`.
* [Brightbox] (`brightbox`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Brightbox] (`brightbox`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [CloudStack] (`cloudstack`) - Ignition will read its configuration from the instance userdata via either metadata service or config drive. Cloud SSH keys are handled separately. * [CloudStack] (`cloudstack`) - Ignition will read its configuration from the instance userdata via either metadata service or config drive. Cloud SSH keys are handled separately.
+* `cloudsigma` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. +* `cloudsigma` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [DigitalOcean] (`digitalocean`) - Ignition will read its configuration from the droplet userdata. Cloud SSH keys and network configuration are handled separately. * [DigitalOcean] (`digitalocean`) - Ignition will read its configuration from the droplet userdata. Cloud SSH keys and network configuration are handled separately.
* [Exoscale] (`exoscale`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Exoscale] (`exoscale`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [Google Cloud] (`gcp`) - Ignition will read its configuration from the instance metadata entry named "user-data". Cloud SSH keys are handled separately. * [Google Cloud] (`gcp`) - Ignition will read its configuration from the instance metadata entry named "user-data". Cloud SSH keys are handled separately.
@@ -30,6 +31,9 @@ Ignition is currently supported for the following platforms: @@ -31,6 +32,9 @@ Ignition is currently supported for the following platforms:
* [Equinix Metal] (`packet`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Equinix Metal] (`packet`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [IBM Power Systems Virtual Server] (`powervs`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [IBM Power Systems Virtual Server] (`powervs`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [QEMU] (`qemu`) - Ignition will read its configuration from the 'opt/com.coreos/config' key on the QEMU Firmware Configuration Device (available in QEMU 2.4.0 and higher). * [QEMU] (`qemu`) - Ignition will read its configuration from the 'opt/com.coreos/config' key on the QEMU Firmware Configuration Device (available in QEMU 2.4.0 and higher).
@ -32,5 +32,5 @@ index f8e1d3ae..0a30664c 100644
* [UpCloud] (`upcloud`) - Ignition will read its configuration from the instance userdata fetched from the metadata service (which is NOT enabled by default, make sure you enable it if you use custom images). Cloud SSH keys are handled separately. * [UpCloud] (`upcloud`) - Ignition will read its configuration from the instance userdata fetched from the metadata service (which is NOT enabled by default, make sure you enable it if you use custom images). Cloud SSH keys are handled separately.
* [VirtualBox] (`virtualbox`) - Use the VirtualBox guest property `/Ignition/Config` to provide the config to the virtual machine. * [VirtualBox] (`virtualbox`) - Use the VirtualBox guest property `/Ignition/Config` to provide the config to the virtual machine.
-- --
2.51.0 2.53.0

View File

@ -1,16 +1,18 @@
From 8bf635277ccd8f0aeb3bb2e2c67f73dd4188e618 Mon Sep 17 00:00:00 2001 From 8f5d1b4685b12817ea7d65673de51b3ee384988d Mon Sep 17 00:00:00 2001
From: James Le Cuirot <jlecuirot@microsoft.com> From: James Le Cuirot <jlecuirot@microsoft.com>
Date: Wed, 25 Mar 2026 10:55:24 +0000 Date: Wed, 25 Mar 2026 10:55:24 +0000
Subject: [PATCH 18/21] /usr/share/oem -> /oem Subject: [PATCH 18/18] /usr/share/oem -> /oem
Flatcar previously kept looking at the initrd's /usr/share/oem even Flatcar previously kept looking at the initrd's /usr/share/oem even
after the migration for compatibility, but the minimal initrd now moves after the migration for compatibility, but the minimal initrd now moves
it to /oem before Ignition starts. it to /oem before Ignition starts.
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
--- ---
config/util/translate.go | 2 +- config/util/translate.go | 2 +-
docs/supported-platforms.md | 2 +- docs/supported-platforms.md | 4 ++--
internal/distro/distro.go | 2 +- internal/distro/distro.go | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-) 3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/config/util/translate.go b/config/util/translate.go diff --git a/config/util/translate.go b/config/util/translate.go
index 347d148c..d4c057b2 100644 index 347d148c..d4c057b2 100644
@ -26,23 +28,25 @@ index 347d148c..d4c057b2 100644
// generate a new path // generate a new path
fsMap[name] = "/tmp/" + name + "-ign" + strconv.FormatUint(addedSuffixCounter, 10) fsMap[name] = "/tmp/" + name + "-ign" + strconv.FormatUint(addedSuffixCounter, 10)
diff --git a/docs/supported-platforms.md b/docs/supported-platforms.md diff --git a/docs/supported-platforms.md b/docs/supported-platforms.md
index 0a30664c..1522d0ef 100644 index 2a861637..084f5964 100644
--- a/docs/supported-platforms.md --- a/docs/supported-platforms.md
+++ b/docs/supported-platforms.md +++ b/docs/supported-platforms.md
@@ -12,7 +12,7 @@ Ignition is currently supported for the following platforms: @@ -12,8 +12,8 @@ Ignition is currently supported for the following platforms:
* [Amazon Web Services] (`aws`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Amazon Web Services] (`aws`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [Microsoft Azure] (`azure`)- Ignition will read its configuration from the custom data provided to the instance. Cloud SSH keys are handled separately. * [Microsoft Azure] (`azure`)- Ignition will read its configuration from the custom data provided to the instance. Cloud SSH keys are handled separately.
* [Microsoft Azure Stack] (`azurestack`) - Ignition will read its configuration from the custom data provided to the instance. Cloud SSH keys are handled separately. * [Microsoft Azure Stack] (`azurestack`) - Ignition will read its configuration from the custom data provided to the instance. Cloud SSH keys are handled separately.
-* Bare Metal - Use the `ignition.config.url` kernel parameter to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, `s3://`, or `gs://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/usr/share/oem`. -* Bare Metal - Use the `ignition.config.url` kernel parameter to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, `s3://`, or `gs://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/usr/share/oem`.
-* PXE - Use the `ignition.config.url` and first boot kernel parameters to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, or `s3://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/usr/share/oem`.
+* Bare Metal - Use the `ignition.config.url` kernel parameter to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, `s3://`, or `gs://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/oem`. +* Bare Metal - Use the `ignition.config.url` kernel parameter to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, `s3://`, or `gs://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/oem`.
+* PXE - Use the `ignition.config.url` and first boot kernel parameters to provide a URL to the configuration. The URL can use the `http://`, `https://`, `tftp://`, or `s3://` schemes to specify a remote config or the `oem://` scheme to specify a local config, rooted in `/oem`.
* [Brightbox] (`brightbox`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * [Brightbox] (`brightbox`) - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
* [CloudStack] (`cloudstack`) - Ignition will read its configuration from the instance userdata via either metadata service or config drive. Cloud SSH keys are handled separately. * [CloudStack] (`cloudstack`) - Ignition will read its configuration from the instance userdata via either metadata service or config drive. Cloud SSH keys are handled separately.
* `cloudsigma` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately. * `cloudsigma` - Ignition will read its configuration from the instance userdata. Cloud SSH keys are handled separately.
diff --git a/internal/distro/distro.go b/internal/distro/distro.go diff --git a/internal/distro/distro.go b/internal/distro/distro.go
index f3c32aaf..36bdf3f5 100644 index fb12b792..3a6c2ae3 100644
--- a/internal/distro/distro.go --- a/internal/distro/distro.go
+++ b/internal/distro/distro.go +++ b/internal/distro/distro.go
@@ -33,7 +33,7 @@ var ( @@ -31,7 +31,7 @@ var (
// initramfs directory containing distro-provided base config // initramfs directory containing distro-provided base config
systemConfigDir = "/usr/lib/ignition" systemConfigDir = "/usr/lib/ignition"
// initramfs directory to check before retrieving file from OEM partition // initramfs directory to check before retrieving file from OEM partition

View File

@ -1,44 +0,0 @@
From 14b7be1a0a51408df54b36590a25d2cbab228bbc Mon Sep 17 00:00:00 2001
From: James Le Cuirot <jlecuirot@microsoft.com>
Date: Wed, 25 Mar 2026 11:09:40 +0000
Subject: [PATCH 20/21] Create /mnt directory before attempting to mount OEM
partition
This was previously fixed, but it then broke again when the /mnt/oem
mount path was replaced with a temp directory under /mnt. Parent
directories are not created for you when requesting a temp directory.
---
internal/resource/url.go | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/internal/resource/url.go b/internal/resource/url.go
index 4471db96..86136422 100644
--- a/internal/resource/url.go
+++ b/internal/resource/url.go
@@ -478,6 +478,11 @@ func (f *Fetcher) fetchFromOEM(u url.URL, dest io.Writer, opts FetchOptions) err
f.Logger.Info("oem config not found in %q, looking on oem partition",
distro.OEMLookasideDir())
+ if err := os.MkdirAll("/mnt", 0755); err != nil {
+ f.Logger.Err("failed to create /mnt directory for oem mount path: %v", err)
+ return err
+ }
+
oemMountPath, err := ioutil.TempDir("/mnt", "oem")
if err != nil {
f.Logger.Err("failed to create mount path for oem partition: %v", err)
@@ -800,11 +805,6 @@ func (f *Fetcher) mountOEM(oemMountPath string) error {
return err
}
- if err := os.MkdirAll(oemMountPath, 0700); err != nil {
- f.Logger.Err("failed to create oem mount point: %v", err)
- return err
- }
-
if err := f.Logger.LogOp(
func() error {
return syscall.Mount(dev[0], oemMountPath, "ext4", 0, "")
--
2.53.0

View File

@ -1,34 +0,0 @@
From daab4ae13c6511183609c5160999ab1e011a0d8c Mon Sep 17 00:00:00 2001
From: James Le Cuirot <jlecuirot@microsoft.com>
Date: Wed, 25 Mar 2026 11:12:37 +0000
Subject: [PATCH 21/21] Replace deprecated ioutil.TempDir call with
os.MkdirTemp
---
internal/resource/url.go | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/internal/resource/url.go b/internal/resource/url.go
index 86136422..a38f4e87 100644
--- a/internal/resource/url.go
+++ b/internal/resource/url.go
@@ -23,7 +23,6 @@ import (
"fmt"
"hash"
"io"
- "io/ioutil"
"net"
"net/http"
"net/url"
@@ -483,7 +482,7 @@ func (f *Fetcher) fetchFromOEM(u url.URL, dest io.Writer, opts FetchOptions) err
return err
}
- oemMountPath, err := ioutil.TempDir("/mnt", "oem")
+ oemMountPath, err := os.MkdirTemp("/mnt", "oem")
if err != nil {
f.Logger.Err("failed to create mount path for oem partition: %v", err)
return ErrFailed
--
2.53.0

View File

@ -28,15 +28,13 @@ else
"${FILESDIR}/0010-VMware-Fix-guestinfo.-.config.data-and-.config.url-v.patch" "${FILESDIR}/0010-VMware-Fix-guestinfo.-.config.data-and-.config.url-v.patch"
"${FILESDIR}/0011-config-version-handle-configuration-version-1.patch" "${FILESDIR}/0011-config-version-handle-configuration-version-1.patch"
"${FILESDIR}/0012-config-util-add-cloud-init-detection-to-initial-pars.patch" "${FILESDIR}/0012-config-util-add-cloud-init-detection-to-initial-pars.patch"
"${FILESDIR}/0013-Revert-drop-OEM-URI-support.patch" "${FILESDIR}/0013-Partially-revert-drop-OEM-URI-support.patch"
"${FILESDIR}/0014-internal-resource-url-support-btrfs-as-OEM-partition.patch" "${FILESDIR}/0014-config-Support-oem-schema-in-newer-config-spec-versi.patch"
"${FILESDIR}/0015-translation-support-OEM-and-oem.patch" "${FILESDIR}/0015-translation-support-OEM-and-oem.patch"
"${FILESDIR}/0016-revert-internal-oem-drop-noop-OEMs.patch" "${FILESDIR}/0016-revert-internal-oem-drop-noop-OEMs.patch"
"${FILESDIR}/0017-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch" "${FILESDIR}/0017-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch"
"${FILESDIR}/0018-usr-share-oem-oem.patch" "${FILESDIR}/0018-usr-share-oem-oem.patch"
"${FILESDIR}/0019-internal-exec-stages-mount-Mount-oem.patch" "${FILESDIR}/0019-internal-exec-stages-mount-Mount-oem.patch"
"${FILESDIR}/0020-Create-mnt-directory-before-attempting-to-mount-OEM-.patch"
"${FILESDIR}/0021-Replace-deprecated-ioutil.TempDir-call-with-os.Mkdir.patch"
) )
fi fi

View File

@ -54,7 +54,7 @@ src_compile() {
fi fi
emake_args+=( VENDOR_CERT_FILE="${SHIM_SIGNING_CERTIFICATE}" ) emake_args+=( VENDOR_CERT_FILE="${SHIM_SIGNING_CERTIFICATE}" )
else else
emake_args+=( VENDOR_CERT_FILE="/usr/share/sb_keys/shim.der" ) emake_args+=( VENDOR_CERT_FILE="${SHIM_SIGNING_CERTIFICATE:-/usr/share/sb_keys/shim.der}" )
fi fi
emake "${emake_args[@]}" || die emake "${emake_args[@]}" || die
} }

View File

@ -1 +1 @@
DIST bootengine-9c6a9e4c03e27cdfc5056bf6a76788d2b7165cbb.tar.gz 37123 BLAKE2B a3fafdd8ca38f5eca2df8cfe7fb7825ecfa3b41146c1be327fdf261444d52fa7c582b8351239d1c50532db89d3b863dde445de5dfe60ad167c36c8c8460c2a40 SHA512 e3569138b05b7c07554a37a767a60318f1df918532317f1a9f11b2cd12fc5e7079f8c713287104169575eea93fd83c4238cf230787941341f1d157e9069527bb DIST bootengine-003a67d93a99705391a0a1fa825f018b074d8e8b.tar.gz 37805 BLAKE2B 25abb7cf425a02c330245c7efc63406ee823fd9921afd39f9b413eda1451fa48ed150dd104cb550f9b81e7445b4c9e50a0ec55077dbf6de0c712cbcb7339dd67 SHA512 a9246398a560a7bbdb7b1d714012fdca65a2475843cfcb5fd20551086165623d248c577b6170fb32a75709a67014b33581c415e4c5410202e29a57e6a0ff6d88

View File

@ -10,7 +10,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/flatcar/bootengine.git" EGIT_REPO_URI="https://github.com/flatcar/bootengine.git"
inherit git-r3 inherit git-r3
else else
EGIT_VERSION="9c6a9e4c03e27cdfc5056bf6a76788d2b7165cbb" # flatcar-master EGIT_VERSION="003a67d93a99705391a0a1fa825f018b074d8e8b" # flatcar-master
SRC_URI="https://github.com/flatcar/bootengine/archive/${EGIT_VERSION}.tar.gz -> ${PN}-${EGIT_VERSION}.tar.gz" SRC_URI="https://github.com/flatcar/bootengine/archive/${EGIT_VERSION}.tar.gz -> ${PN}-${EGIT_VERSION}.tar.gz"
S="${WORKDIR}/${PN}-${EGIT_VERSION}" S="${WORKDIR}/${PN}-${EGIT_VERSION}"
KEYWORDS="amd64 arm arm64 x86" KEYWORDS="amd64 arm arm64 x86"
@ -20,26 +20,14 @@ LICENSE="BSD"
SLOT="0/${PVR}" SLOT="0/${PVR}"
src_install() { src_install() {
insinto /usr/lib/dracut/modules.d/
doins -r dracut/.
dosbin update-bootengine dosbin update-bootengine
dosbin minimal-init dosbin minimal-init
insinto /usr/lib/dracut/modules.d
doins -r dracut/.
# must be executable since dracut's install scripts just # must be executable since dracut's install scripts just
# re-use existing filesystem permissions during initrd creation. # re-use existing filesystem permissions during initrd creation.
chmod +x \ cd "${ED}"/usr/lib/dracut/modules.d || die
"${ED}"/usr/lib/dracut/modules.d/51*-generator/*-generator \ find "${S}"/dracut -type f -executable -printf "%P\0" | xargs -0 chmod +x || die
"${ED}"/usr/lib/dracut/modules.d/51diskless-generator/diskless-btrfs \
"${ED}"/usr/lib/dracut/modules.d/51networkd-dependency-generator/*-generator \
"${ED}"/usr/lib/dracut/modules.d/50flatcar-network/parse-ip-for-networkd.sh \
"${ED}"/usr/lib/dracut/modules.d/53disk-uuid/disk-uuid.sh \
"${ED}"/usr/lib/dracut/modules.d/53ignition/ignition-generator \
"${ED}"/usr/lib/dracut/modules.d/53ignition/ignition-setup.sh \
"${ED}"/usr/lib/dracut/modules.d/53ignition/ignition-setup-pre.sh \
"${ED}"/usr/lib/dracut/modules.d/53ignition/ignition-kargs-helper \
"${ED}"/usr/lib/dracut/modules.d/53ignition/retry-umount.sh \
"${ED}"/usr/lib/dracut/modules.d/99setup-root/initrd-setup-root \
"${ED}"/usr/lib/dracut/modules.d/99setup-root/initrd-setup-root-after-ignition \
"${ED}"/usr/lib/dracut/modules.d/99setup-root/gpg-agent-wrapper \
|| die chmod
} }

View File

@ -1 +1 @@
DIST linux-firmware-20260309.tar.xz 610973936 BLAKE2B 62ec056ad09d3e6740b12454845ffeea250785b566f9c6239ebae19e52d3237a49eeb18bae3726cb7a1bb0bca7ad24b9bbac440132ba8fac3d0adccf654ab4c4 SHA512 2feb9f1221d72e909e36b1d56f50c8f4f20eb00dfcbbb1fa0e9661d0f4cc1a731ef9d8167e1dbe3edd637be9fcc20a3844dae44e05826bd441f77d6b44614e53 DIST linux-firmware-20260410.tar.xz 619615856 BLAKE2B c35531a94841d733690dbfd1e08c6be6c24124a20eac1c75b290820839e962773640a33b29c29376137d55be95d8e5304a86425e2a631b1a0dcc62d45a5d1f6d SHA512 b16c603e058cb1a92cf199c95318adc6dee874920bee377b7c95ca8cc8dabd26d53a97f3aef52c01fde8d186352895e909483fa7c729c8793b9974ccc130a4a6

View File

@ -169,12 +169,12 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_VERITY=m CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
CONFIG_DNS_RESOLVER=y CONFIG_DNS_RESOLVER=y
CONFIG_DRM=m CONFIG_DRM=y
CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_QXL=m CONFIG_DRM_QXL=m
CONFIG_DRM_SIMPLEDRM=m CONFIG_DRM_SIMPLEDRM=m
CONFIG_DRM_TTM_HELPER=m CONFIG_DRM_TTM_HELPER=m
CONFIG_DRM_VIRTIO_GPU=m CONFIG_DRM_VIRTIO_GPU=y
CONFIG_DST_CACHE=y CONFIG_DST_CACHE=y
CONFIG_DUMMY=m CONFIG_DUMMY=m
CONFIG_DYNAMIC_DEBUG=y CONFIG_DYNAMIC_DEBUG=y
@ -1009,7 +1009,7 @@ CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_RHINE_MMIO=y
CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m CONFIG_VIRTIO_BLK=m
CONFIG_VIRTIO_CONSOLE=m CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_FS=m CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO=y

View File

@ -1,2 +1,2 @@
DIST linux-6.12.tar.xz 147906904 BLAKE2B b2ec2fc69218cacabbbe49f78384a5d259ca581b717617c12b000b16f4a4c59ee348ea886b37147f5f70fb9a7a01c1e2c8f19021078f6b23f5bc62d1c48d5e5e SHA512 a37b1823df7b4f72542f689b65882634740ba0401a42fdcf6601d9efd2e132e5a7650e70450ba76f6cd1f13ca31180f2ccee9d54fe4df89bc0000ade4380a548 DIST linux-6.12.tar.xz 147906904 BLAKE2B b2ec2fc69218cacabbbe49f78384a5d259ca581b717617c12b000b16f4a4c59ee348ea886b37147f5f70fb9a7a01c1e2c8f19021078f6b23f5bc62d1c48d5e5e SHA512 a37b1823df7b4f72542f689b65882634740ba0401a42fdcf6601d9efd2e132e5a7650e70450ba76f6cd1f13ca31180f2ccee9d54fe4df89bc0000ade4380a548
DIST patch-6.12.81.xz 4327232 BLAKE2B eb81e142bc7825061ae43efb062248f88868346bc6d449de0fd524b419ab1f5d524e9042390778971321229035c0f4dc5b481101bb2aa2f47512975e5ff5c790 SHA512 fbd813a24adeb4892079bae49b13c46acb7bb234f19a996de00b7ac2d95ca382d0e56195e393c1bd0a09051f1e36301e972924bd1fba2848e62c5d531d092b3d DIST patch-6.12.85.xz 4377956 BLAKE2B a4ce6472229c01003884ece108f60f2e9458d7fae38ebc47e7b598e1245e7a396fbc01aca3a7d310825b1f39acbe588b6865311d3ac7b4f48d2f404a728c942e SHA512 6b7c0c220ca26b900462b21641f8615f7c84dc25cc79527c8d32e9ac5742bb89851d30a69e1f1b1bfdb5bd353153c31ae523538eca1cead8cc12261a47f4a18b

View File

@ -1,24 +1,24 @@
-----BEGIN PGP SIGNED MESSAGE----- -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512 Hash: SHA512
MANIFEST Manifest.files.gz 606986 BLAKE2B a1a7c8f65fa2d227109ddc598ecd792925cbf4dd59fd721d0e3d30d2ca2d680abe6f48efd8c7f747286a8b9b83dd77ab08effbd12fd5cff7aea22ff05b4b3249 SHA512 1d46d342b6898d53ef6e234a4ca25659b7a64373067f8d911b4a7efe73a227178e519cb54901fc15172d8a4113aeafaf14390ce5e552d1e17e50d3297a8f0701 MANIFEST Manifest.files.gz 607306 BLAKE2B 92017b6799c6b9c6711d15259ccc5be7553c29a3562d24a367c7d7fa515cce981f1217aad923c07afa53479c855092c79ea478c7db5c27df5970742f0481eaaf SHA512 4fb6dcd2062715f4926aa685e41323a46d1b1f83e7be9008f32bd997a354c2cf495d9a497cf42a39b59bc734dabbeb4a8cb987031227e5f6741d4c6fc3ec95bf
TIMESTAMP 2026-04-01T07:08:01Z TIMESTAMP 2026-05-01T07:08:09Z
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQKvBAEBCgCZFiEE4dartjv8+0ugL98c7FkO6skYklAFAmnMxFEbFIAAAAAABAAO iQKvBAEBCgCZFiEE4dartjv8+0ugL98c7FkO6skYklAFAmn0UVkbFIAAAAAABAAO
bWFudTIsMi41KzEuMTEsMiwyXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25z bWFudTIsMi41KzEuMTEsMiwyXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25z
Lm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRFMUQ2QUJCNjNCRkNGQjRCQTAyRkRG Lm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRFMUQ2QUJCNjNCRkNGQjRCQTAyRkRG
MUNFQzU5MEVFQUM5MTg5MjUwAAoJEOxZDurJGJJQCCMQAJqLP7jt/MtqrWUu66/N MUNFQzU5MEVFQUM5MTg5MjUwAAoJEOxZDurJGJJQehAQAIbfYrOfZXXVM5NCsVSH
g4C4QYQY65p5tHkq6lFs/X24MeAtuRUgKbaOQm02KZJNb61bvZBdgtNE8P14qWJX s9QR1OC6QdiSTci3jmOmSqRzMQtIEq0MpOmuFYtJuoCZcGuE8jKpSyx12PArZRYW
LtJ8hqYOJiDT3hDhnL5Z+UbjIxDdn6m2udztvXvdkgRiQEUnhaTv8BpeOwvdGnZ4 abGU7C+hGt6qF73p47FewiTLHQv3kBEKV8H/sJCuFv6aoOqczSxFnpJiIDP2Cr2O
nswP+jJ5hMK4tYuMFy96jO39jKAbKo4HNYQCW8CJe4/HRSboXe20Z+N74xqq5M2e 5oQtnpvS06Yu+GcRzkwiKQ05UP4yprfoFk7Y7RlaTniVoSNdXwTEVF33CuJNQyT8
aajm7K7adRALxIYM2Ih3V64LfVsPn31TzMfXaFk0y4p3f82uZ/hTophDZIdePR0M 7mD68mxYAlL71M56yE7a6AZPMd+QpqJf+mqpGBMAO3A9J0UHdYTnQG4RZZsgLvvy
a1hkcQRPdHOmbVftt3llye5XoSmq0d+Pie7axQUJVwlFd+gORzNqvK3U+9PeeKjB Zg0hSafEedVmokw5Iw8QqGdBHscCoL2H5I+0rPhjwHto9MrD5lmFYWh10xi3ncGW
FU6wU1vmR2mlIE90prbdDKPkoNhOnn9CVLHRHYl0M8WLh4TATrDl0HcUbEOrE/CC EV7YKfY7nzr2UdPWyingtMcHXgUz4oo1rNHSfBJ9bNizqxraJUFo4ZEC7xTHyeiB
vay9V4s+lABWZh2D/BToIrWUs0UMpWtt/5e5ZANrECj7T5ExWngHY7zCCDn1dySw yjKPVOFXkr0njGso3O6Xo+KRyG5bfNWst3Bz5E6rxlGozwEZtvtfOHYrUe8vzQHp
Poabc3KIQlBzmstxNBqTUIvxdaxhvF+Hh7Fj4Grzzmsgio76mBhQLUF2ML8vquVe LNmczBy8M13dMC6DIYtalp9Gdi9K8Si+bFCepe9Ux92DFDcaymT3WyJauva+3NT/
ipeNd0fnGIWUN6eGdC6BZ73wVC66r53bSjHPMa+N6KyCgmHbGP/HCE0GuUvnKtBc g76MRRW9Ez/p7h1J0wRYF0GLLaYC7l7kr4pavUHu8VvP0SS/fQanCmIpnPYUUqwe
joBONGhatuZEM3zLIMLLxHg4cMYVEF2vA19Mh89OhYQDlIbEf5Bc/LpPYOtN3LdD /rzIzuZGtU1lW0ynXlGiosxh3zIQgw7WthjlsQTWH3XiRu02ZKrkCDY56ZDmmGl0
vHcXTmn2vbBiAIieKmqm6Elk INhWuascPpUN8zEuK0URt1zS
=iTBC =xCZR
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glsa SYSTEM "http://www.gentoo.org/dtd/glsa.dtd">
<glsa id="202604-03">
<title>FUSE: Multiple Vulnerabilities</title>
<synopsis>Multiple vulnerabilities have been found in FUSE, the worst of which can lead to code execution.</synopsis>
<product type="ebuild">fuse</product>
<announced>2026-04-17</announced>
<revised count="1">2026-04-17</revised>
<bug>971552</bug>
<access>remote</access>
<affected>
<package name="sys-fs/fuse" auto="yes" arch="*">
<unaffected range="ge" slot="3">3.18.1</unaffected>
<vulnerable range="lt" slot="3">3.18.1</vulnerable>
</package>
</affected>
<background>
<p>FUSE (Filesystem in Userspace) is an interface for userspace programs to export a filesystem to the Linux kernel.</p>
</background>
<description>
<p>The following vulnerabilities have been discovered in FUSE: a NULL pointer dereference (when running with the NUMA architecture) and a use-after-free. The worst of which can lead to code execution. Please review the CVE identifiers referenced below for details.</p>
</description>
<impact type="normal">
<p>The following is a possible outcome: denial of service (crash) and potential code execution.</p>
</impact>
<workaround>
<p>There is no known workaround at this time.</p>
</workaround>
<resolution>
<p>All FUSE users should upgrade to the latest version:</p>
<code>
# emerge --sync
# emerge --ask --oneshot --verbose ">=sys-fs/fuse-3.18.1:3"
</code>
</resolution>
<references>
<uri link="https://nvd.nist.gov/vuln/detail/CVE-2026-33150">CVE-2026-33150</uri>
<uri link="https://nvd.nist.gov/vuln/detail/CVE-2026-33179">CVE-2026-33179</uri>
</references>
<metadata tag="requester" timestamp="2026-04-17T19:33:25.077082Z">csfore</metadata>
<metadata tag="submitter" timestamp="2026-04-17T19:33:25.079638Z">csfore</metadata>
</glsa>

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glsa SYSTEM "http://www.gentoo.org/dtd/glsa.dtd">
<glsa id="202604-04">
<title>DTrace: Arbitrary file creation via dtprobed</title>
<synopsis>A DTrace component, dtprobed, allows arbitrary file creation through crafted USDT provider names.</synopsis>
<product type="ebuild">dtrace</product>
<announced>2026-04-17</announced>
<revised count="1">2026-04-17</revised>
<bug>971491</bug>
<access>local</access>
<affected>
<package name="dev-debug/dtrace" auto="yes" arch="*">
<unaffected range="ge">2.0.6</unaffected>
<vulnerable range="lt">2.0.6</vulnerable>
</package>
</affected>
<background>
<p>DTrace is a dynamic tracing tool for analysing or debugging the whole system. Specifically, dtprobed is a component of the DTrace system that keeps track of USDT probes within running processes, parsing and storing the DOF they provide for later consumption by dtrace proper.</p>
</background>
<description>
<p>A vulnerability has been found in dtprobed that allows for arbitrary file creation through specially crafted USDT provider names.</p>
</description>
<impact type="normal">
<p>The worst possible outcome is the ability for an attacker to run arbitrary code via the maliciously created file.</p>
</impact>
<workaround>
<p>There is no known workaround at this time.</p>
</workaround>
<resolution>
<p>All DTrace users should upgrade to the latest version:</p>
<code>
# emerge --sync
# emerge --ask --oneshot --verbose ">=dev-debug/dtrace-2.0.6"
</code>
</resolution>
<references>
<uri link="https://nvd.nist.gov/vuln/detail/CVE-2026-21991">CVE-2026-21991</uri>
</references>
<metadata tag="requester" timestamp="2026-04-17T20:47:15.308512Z">csfore</metadata>
<metadata tag="submitter" timestamp="2026-04-17T20:47:15.311877Z">csfore</metadata>
</glsa>

View File

@ -1 +1 @@
Wed, 01 Apr 2026 07:08:00 +0000 Fri, 01 May 2026 07:08:08 +0000

View File

@ -1 +1 @@
d2078931cc4cb1c6d04130dacbed885a7d2bf71c 1773030064 2026-03-09T04:21:04Z f40d2fdd24a34342a4c050396f064a038ebebb9b 1776459195 2026-04-17T20:53:15Z

View File

@ -17,11 +17,6 @@ RUN if ! grep -q portage /etc/passwd; then \
echo "portage:x:250:250:portage:/var/tmp/portage:/bin/false" >>/etc/passwd; \ echo "portage:x:250:250:portage:/var/tmp/portage:/bin/false" >>/etc/passwd; \
fi fi
# fix "Unable to unshare: EPERM ..." in containers
# (see https://github.com/gentoo/gentoo-docker-images/issues/81)
RUN echo 'export FEATURES="-ipc-sandbox -network-sandbox -pid-sandbox"' \
>> /etc/skel/.bashrc
RUN groupadd sdk RUN groupadd sdk
RUN useradd -g sdk -G portage sdk RUN useradd -g sdk -G portage sdk
RUN echo "sdk ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/sdk-user RUN echo "sdk ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/sdk-user

View File

@ -4,22 +4,13 @@ FROM ${BASE}
COPY --chown=sdk:sdk sdk_container/ /mnt/host/source COPY --chown=sdk:sdk sdk_container/ /mnt/host/source
COPY --chown=sdk:sdk . /mnt/host/source/src/scripts COPY --chown=sdk:sdk . /mnt/host/source/src/scripts
# Disable all sandboxing for SDK updates since some core packages
# (like GO) fail to build from a permission error otherwise.
RUN cp /home/sdk/.bashrc /home/sdk/.bashrc.bak
RUN echo 'export FEATURES="-sandbox -usersandbox -ipc-sandbox -network-sandbox -pid-sandbox"' \
>> /home/sdk/.bashrc
RUN chown sdk:sdk /mnt/host/source RUN chown sdk:sdk /mnt/host/source
RUN /home/sdk/sdk_entry.sh ./update_chroot --toolchain_boards="amd64-usr arm64-usr" RUN FEATURES="-ipc-sandbox -network-sandbox -pid-sandbox" \
/home/sdk/sdk_entry.sh ./update_chroot --toolchain_boards="amd64-usr arm64-usr"
RUN /home/sdk/sdk_entry.sh ./setup_board --board="arm64-usr" --regen_configs RUN /home/sdk/sdk_entry.sh ./setup_board --board="arm64-usr" --regen_configs
RUN /home/sdk/sdk_entry.sh ./setup_board --board="amd64-usr" --regen_configs RUN /home/sdk/sdk_entry.sh ./setup_board --board="amd64-usr" --regen_configs
# Restore original .bashrc to remove sandbox disablement
RUN mv /home/sdk/.bashrc.bak /home/sdk/.bashrc
RUN chown sdk:sdk /home/sdk/.bashrc
# Clean up ephemeral key directory variables that were added during build # Clean up ephemeral key directory variables that were added during build
RUN sed -i -e '/export MODULE_SIGNING_KEY_DIR=/d' \ RUN sed -i -e '/export MODULE_SIGNING_KEY_DIR=/d' \
-e '/export MODULES_SIGN_KEY=/d' \ -e '/export MODULES_SIGN_KEY=/d' \

View File

@ -41,6 +41,11 @@ docker=${docker_a[*]}
function call_docker() { function call_docker() {
"${docker_a[@]}" "${@}" "${docker_a[@]}" "${@}"
} }
function docker_build() {
PROGRESS_NO_TRUNC=1 call_docker build --progress plain "${@}"
}
# -- # --
# Common "echo" function # Common "echo" function
@ -213,6 +218,9 @@ function setup_sdk_env() {
\ \
USE FEATURES PORTAGE_USERNAME FORCE_STAGES \ USE FEATURES PORTAGE_USERNAME FORCE_STAGES \
SIGNER \ SIGNER \
SBSIGN_KEY SBSIGN_CERT SBSIGN_DB_KEY SBSIGN_DB_CERT \
SHIM_SIGNING_CERTIFICATE \
MODULE_SIGNING_KEY_DIR SYSEXT_SIGNING_KEY_DIR \
all_proxy ftp_proxy http_proxy https_proxy no_proxy; do all_proxy ftp_proxy http_proxy https_proxy no_proxy; do
if [ -n "${!var:-}" ] ; then if [ -n "${!var:-}" ] ; then
@ -300,6 +308,7 @@ function gnupg_ssh_gcloud_mount_opts() {
if [[ -e ${GOOGLE_APPLICATION_CREDENTIALS:-} ]] ; then if [[ -e ${GOOGLE_APPLICATION_CREDENTIALS:-} ]] ; then
creds_dir=$(dirname "${GOOGLE_APPLICATION_CREDENTIALS}") creds_dir=$(dirname "${GOOGLE_APPLICATION_CREDENTIALS}")
if [[ -d ${creds_dir} ]] ; then if [[ -d ${creds_dir} ]] ; then
echo "Mounting gcloud credentials from ${creds_dir} (used for artifact uploads, safe to ignore if not needed, not baked into any image)"
echo "-v $creds_dir:$creds_dir" echo "-v $creds_dir:$creds_dir"
args_ref+=( -v "${creds_dir}:${creds_dir}" ) args_ref+=( -v "${creds_dir}:${creds_dir}" )
fi fi

View File

@ -72,10 +72,14 @@ fi
# Create key directory if not already configured in .bashrc # Create key directory if not already configured in .bashrc
if ! grep -q 'export MODULE_SIGNING_KEY_DIR=' /home/sdk/.bashrc; then if ! grep -q 'export MODULE_SIGNING_KEY_DIR=' /home/sdk/.bashrc; then
# For official builds, use ephemeral keys. For unofficial builds, use persistent directory if [[ -n ${MODULE_SIGNING_KEY_DIR:-} ]]; then
if [[ ${COREOS_OFFICIAL:-0} -eq 1 ]]; then # Pre-set via environment (e.g. .sdkenv) — use as-is
:
elif [[ ${COREOS_OFFICIAL:-0} -eq 1 ]]; then
# For official builds, use ephemeral keys
MODULE_SIGNING_KEY_DIR=$(su sdk -c "mktemp -d") MODULE_SIGNING_KEY_DIR=$(su sdk -c "mktemp -d")
else else
# For unofficial builds, use persistent directory
MODULE_SIGNING_KEY_DIR="/home/sdk/.module-signing-keys" MODULE_SIGNING_KEY_DIR="/home/sdk/.module-signing-keys"
su sdk -c "mkdir -p ${MODULE_SIGNING_KEY_DIR@Q}" su sdk -c "mkdir -p ${MODULE_SIGNING_KEY_DIR@Q}"
fi fi
@ -97,7 +101,10 @@ if grep -q 'export SYSEXT_SIGNING_KEY_DIR' /home/sdk/.bashrc; then
fi fi
fi fi
grep -q 'export SYSEXT_SIGNING_KEY_DIR' /home/sdk/.bashrc || { grep -q 'export SYSEXT_SIGNING_KEY_DIR' /home/sdk/.bashrc || {
if [[ ${COREOS_OFFICIAL:-0} -eq 1 ]]; then if [[ -n ${SYSEXT_SIGNING_KEY_DIR:-} ]]; then
# Pre-set via environment (e.g. .sdkenv) — use as-is
:
elif [[ ${COREOS_OFFICIAL:-0} -eq 1 ]]; then
SYSEXT_SIGNING_KEY_DIR=$(su sdk -c "mktemp -d") SYSEXT_SIGNING_KEY_DIR=$(su sdk -c "mktemp -d")
else else
SYSEXT_SIGNING_KEY_DIR="/home/sdk/.sysext-signing-keys" SYSEXT_SIGNING_KEY_DIR="/home/sdk/.sysext-signing-keys"

View File

@ -80,7 +80,7 @@ info "Setting up portage..."
sudo mkdir -p "${REPO_CACHE_DIR}/distfiles" sudo mkdir -p "${REPO_CACHE_DIR}/distfiles"
sudo chown "${PORTAGE_USERNAME}:portage" "${REPO_CACHE_DIR}/distfiles" sudo chown "${PORTAGE_USERNAME}:portage" "${REPO_CACHE_DIR}/distfiles"
sudo mkdir -p /etc/portage/repos.conf /var/lib/portage/pkgs sudo mkdir -p /etc/portage/repos.conf /var/lib/portage/pkgs
sudo ln -sfT "${COREOS_OVERLAY}/coreos/user-patches" '/etc/portage/patches' sudo ln -sfT "${REPO_ROOT}/src/third_party/coreos-overlay/coreos/user-patches" /etc/portage/patches
sudo touch /etc/portage/make.conf.user sudo touch /etc/portage/make.conf.user
sudo_clobber "/etc/portage/make.conf" <<EOF sudo_clobber "/etc/portage/make.conf" <<EOF

View File

@ -75,7 +75,8 @@ fi
yell "Creating new SDK container image ${new_sdk_version} from ${base_sdk_version}" yell "Creating new SDK container image ${new_sdk_version} from ${base_sdk_version}"
create_versionfile "${new_sdk_version}" "${os_version}" create_versionfile "${new_sdk_version}" "${os_version}"
$docker build -t "${sdk_build_image}" \ docker_build \
-t "${sdk_build_image}" \
--build-arg BASE="$sdk_container_common_registry/flatcar-sdk-all:${base_sdk_version}" \ --build-arg BASE="$sdk_container_common_registry/flatcar-sdk-all:${base_sdk_version}" \
-f sdk_lib/Dockerfile.sdk-update \ -f sdk_lib/Dockerfile.sdk-update \
. .
@ -87,7 +88,7 @@ for a in all arm64 amd64; do
arm64) rmarch="amd64-usr"; rmcross="x86_64-cros-linux-gnu";; arm64) rmarch="amd64-usr"; rmcross="x86_64-cros-linux-gnu";;
amd64) rmarch="arm64-usr"; rmcross="aarch64-cros-linux-gnu";; amd64) rmarch="arm64-usr"; rmcross="aarch64-cros-linux-gnu";;
esac esac
$docker build -t "$sdk_container_common_registry/flatcar-sdk-${a}:${docker_vernum}" \ docker_build -t "$sdk_container_common_registry/flatcar-sdk-${a}:${docker_vernum}" \
--build-arg VERSION="${docker_vernum}" \ --build-arg VERSION="${docker_vernum}" \
--build-arg RMARCH="${rmarch}" \ --build-arg RMARCH="${rmarch}" \
--build-arg RMCROSS="${rmcross}" \ --build-arg RMCROSS="${rmcross}" \