commit: 9a7bfa8fb85e81b801c72a22d9b7b5c07f11eef2 Author: Matt Jolly <kangie <AT> gentoo <DOT> org> AuthorDate: Sat May 24 01:49:55 2025 +0000 Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org> CommitDate: Fri Oct 3 21:34:12 2025 +0000 URL: https://gitweb.gentoo.org/proj/releng.git/commit/?id=9a7bfa8f
specs: add stage4w-*-23 (WSL) for amd64 and arm64 This commit adds a stage4w (WSL) spec, based on the stage3d spec. This spec includes D3D12 (DirectX) video support, necessating a rebuild of media-libs/mesa and sys-apps/gentoo-wsl-config which includes necessary configuration files and scripts along with QoL enhancements to streamline the Gentoo on WSL experience. Based on user feedbock: - both openrc and systemd images are available - password requirements have been relaxed Bug: https://bugs.gentoo.org/956334 Signed-off-by: Matt Jolly <kangie <AT> gentoo.org> Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org> releases/scripts/wsl.sh | 59 ++++++++++++++++++++++++++++ releases/specs/amd64/stage4w-openrc-23.spec | 22 +++++++++++ releases/specs/amd64/stage4w-systemd-23.spec | 22 +++++++++++ releases/specs/arm64/stage4w-openrc-23.spec | 22 +++++++++++ releases/specs/arm64/stage4w-systemd-23.spec | 22 +++++++++++ 5 files changed, 147 insertions(+) diff --git a/releases/scripts/wsl.sh b/releases/scripts/wsl.sh new file mode 100644 index 00000000..3dcced31 --- /dev/null +++ b/releases/scripts/wsl.sh @@ -0,0 +1,59 @@ +mask_systemd_units() { + local known_bad_units=( + NetworkManager.service + systemd-networkd.service + systemd-networkd.socket + systemd-resolved.service + systemd-tmpfiles-clean.service + systemd-tmpfiles-clean.timer + systemd-tmpfiles-setup-dev-early.service + systemd-tmpfiles-setup-dev.service + systemd-tmpfiles-setup.service + tmp.mount + ) + for unit in "${known_bad_units[@]}"; do + # Mask the unit to prevent it from starting automatically + # We also do this when the OOBE script runs (in case the user does a DIY install from stage3) + # but systemd will start when the container starts, so the earlier the better + systemctl mask "$unit" >/dev/null 2>&1 || true + done +} + +if command -v systemctl >/dev/null 2>&1; then + mask_systemd_units +elif command -v rc-service >/dev/null 2>&1; then + rc-update delete systemd-tmpfiles-setup boot + rc-uptade delete systemd-tmpfiles-setup-dev sysinit +fi + +if ! grep -Fqx 'WSLPATH=${PATH}' /etc/profile; then + # Insert our block before the first line matching the anchor + tmp=$(mktemp) + awk 'BEGIN{done=0} + $0 ~ /^# Load environment settings from profile.env/ && !done { + print "# 961809: WSL: store any injected Windows PATH components" + print "if [[ -f /proc/sys/fs/binfmt_misc/WSLInterop && -n \"$PATH\" ]]; then" + print "\tWSLPATH=${PATH}" + print "fi" + print "" + done=1 + } + { print }' /etc/profile > "$tmp" && cat "$tmp" > /etc/profile + rm -f "$tmp" +fi + +if ! grep -Fqx 'if [[ -v WSLPATH ]]; then' /etc/profile; then + tmp=$(mktemp) + awk 'BEGIN{done=0} + $0 ~ /^# You should override/ && !done { + print "# 961809: suffix WSLPATH to PATH if we stored it" + print "if [[ -v WSLPATH ]]; then" + print "\texport PATH=${PATH}:${WSLPATH}" + print "\tunset WSLPATH" + print "fi" + print "" + done=1 + } + { print }' /etc/profile > "$tmp" && cat "$tmp" > /etc/profile + rm -f "$tmp" +fi diff --git a/releases/specs/amd64/stage4w-openrc-23.spec b/releases/specs/amd64/stage4w-openrc-23.spec new file mode 100644 index 00000000..c9d27bb4 --- /dev/null +++ b/releases/specs/amd64/stage4w-openrc-23.spec @@ -0,0 +1,22 @@ +subarch: amd64 +target: stage4 +version_stamp: wsl-openrc-@TIMESTAMP@ +rel_type: 23.0-default +profile: default/linux/amd64/23.0/desktop +snapshot_treeish: @TREEISH@ +source_subpath: 23.0-default/stage3-amd64-desktop-openrc-@[email protected] +compression_mode: pixz +portage_confdir: @REPO_DIR@/releases/portage/stages +portage_prefix: releng +binrepo_path: amd64/binpackages/23.0/x86-64 + +stage4/use: + -passwdqc + video_cards_d3d12 + +stage4/packages: + media-libs/mesa + sys-apps/gentoo-wsl-config + sys-auth/pambase + +stage4/fsscript: @REPO_DIR@/releases/scripts/wsl.sh diff --git a/releases/specs/amd64/stage4w-systemd-23.spec b/releases/specs/amd64/stage4w-systemd-23.spec new file mode 100644 index 00000000..4d6aee39 --- /dev/null +++ b/releases/specs/amd64/stage4w-systemd-23.spec @@ -0,0 +1,22 @@ +subarch: amd64 +target: stage4 +version_stamp: wsl-systemd-@TIMESTAMP@ +rel_type: 23.0-default +profile: default/linux/amd64/23.0/desktop/systemd +snapshot_treeish: @TREEISH@ +source_subpath: 23.0-default/stage3-amd64-desktop-systemd-@[email protected] +compression_mode: pixz +portage_confdir: @REPO_DIR@/releases/portage/stages +portage_prefix: releng +binrepo_path: amd64/binpackages/23.0/x86-64 + +stage4/use: + -passwdqc + video_cards_d3d12 + +stage4/packages: + media-libs/mesa + sys-apps/gentoo-wsl-config + sys-auth/pambase + +stage4/fsscript: @REPO_DIR@/releases/scripts/wsl.sh diff --git a/releases/specs/arm64/stage4w-openrc-23.spec b/releases/specs/arm64/stage4w-openrc-23.spec new file mode 100644 index 00000000..3ac4f898 --- /dev/null +++ b/releases/specs/arm64/stage4w-openrc-23.spec @@ -0,0 +1,22 @@ +subarch: arm64 +target: stage4 +version_stamp: wsl-openrc-@TIMESTAMP@ +rel_type: 23.0-default +profile: default/linux/arm64/23.0/desktop +snapshot_treeish: @TREEISH@ +source_subpath: 23.0-default/stage3-arm64-desktop-openrc-@[email protected] +compression_mode: pixz +portage_confdir: @REPO_DIR@/releases/portage/stages +portage_prefix: releng +binrepo_path: arm64/binpackages/23.0/arm64 + +stage4/use: + -passwdqc + video_cards_d3d12 + +stage4/packages: + media-libs/mesa + sys-apps/gentoo-wsl-config + sys-auth/pambase + +stage4/fsscript: @REPO_DIR@/releases/scripts/wsl.sh diff --git a/releases/specs/arm64/stage4w-systemd-23.spec b/releases/specs/arm64/stage4w-systemd-23.spec new file mode 100644 index 00000000..bfb8ffbc --- /dev/null +++ b/releases/specs/arm64/stage4w-systemd-23.spec @@ -0,0 +1,22 @@ +subarch: arm64 +target: stage4 +version_stamp: wsl-systemd-@TIMESTAMP@ +rel_type: 23.0-default +profile: default/linux/arm64/23.0/desktop/systemd +snapshot_treeish: @TREEISH@ +source_subpath: 23.0-default/stage3-arm64-desktop-systemd-@[email protected] +compression_mode: pixz +portage_confdir: @REPO_DIR@/releases/portage/stages +portage_prefix: releng +binrepo_path: arm64/binpackages/23.0/arm64 + +stage4/use: + -passwdqc + video_cards_d3d12 + +stage4/packages: + media-libs/mesa + sys-apps/gentoo-wsl-config + sys-auth/pambase + +stage4/fsscript: @REPO_DIR@/releases/scripts/wsl.sh
