public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andreas K. Hüttel" <dilfridge@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/releng:master commit in: releases/specs/amd64/, releases/specs/arm64/, releases/scripts/
Date: Fri, 03 Oct 2025 21:34:33 +0000 (UTC)	[thread overview]
Message-ID: <1759527252.9a7bfa8fb85e81b801c72a22d9b7b5c07f11eef2.dilfridge@gentoo> (raw)

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


                 reply	other threads:[~2025-10-03 21:34 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1759527252.9a7bfa8fb85e81b801c72a22d9b7b5c07f11eef2.dilfridge@gentoo \
    --to=dilfridge@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox