public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/releng:master commit in: releases/specs/amd64/, releases/specs/arm64/, releases/scripts/
@ 2025-10-03 21:34 Andreas K. Hüttel
  0 siblings, 0 replies; only message in thread
From: Andreas K. Hüttel @ 2025-10-03 21:34 UTC (permalink / raw
  To: gentoo-commits

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-@TIMESTAMP@.tar.xz
+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-@TIMESTAMP@.tar.xz
+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-@TIMESTAMP@.tar.xz
+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-@TIMESTAMP@.tar.xz
+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


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2025-10-03 21:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-03 21:34 [gentoo-commits] proj/releng:master commit in: releases/specs/amd64/, releases/specs/arm64/, releases/scripts/ Andreas K. Hüttel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox