summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCrucible <crucible@localhost>2026-09-22 19:06:07 -0500
committerCrucible <crucible@localhost>2026-09-22 19:06:07 -0500
commitce2933222cbd0044c148d11523b002be4c2d86b1 (patch)
tree3e98adf854db28d57fd153c524954b1115f520c5
parentcde96c5ea0c81397fd3214d455a374f76179a7aa (diff)
downloadsrcux-ce2933222cbd0044c148d11523b002be4c2d86b1.tar.gz
srcux-ce2933222cbd0044c148d11523b002be4c2d86b1.tar.xz
srcux-ce2933222cbd0044c148d11523b002be4c2d86b1.zip
Publish baldeagleos-repo candidate 0000000329-20260922-190237
-rw-r--r--app-admin/osforge/files/osforge-0.3.2-preserve-activation-owner.patch60
-rw-r--r--app-admin/osforge/osforge-0.3.2-r1.ebuild58
-rw-r--r--dev-libs/elfutils/elfutils-0.196-r1.ebuild (renamed from dev-libs/elfutils/elfutils-0.196.ebuild)9
-rw-r--r--dev-libs/elfutils/elfutils-9999.ebuild10
-rw-r--r--dev-libs/elfutils/metadata.xml3
-rw-r--r--profiles/arch/base/package.use.mask4
-rw-r--r--profiles/base/package.use.mask4
7 files changed, 142 insertions, 6 deletions
diff --git a/app-admin/osforge/files/osforge-0.3.2-preserve-activation-owner.patch b/app-admin/osforge/files/osforge-0.3.2-preserve-activation-owner.patch
new file mode 100644
index 000000000000..6f2bc64dda3f
--- /dev/null
+++ b/app-admin/osforge/files/osforge-0.3.2-preserve-activation-owner.patch
@@ -0,0 +1,60 @@
+--- a/src/osforge/transition.py
++++ b/src/osforge/transition.py
+@@ -47,12 +47,15 @@
+ os.close(fd)
+
+
+-def atomic_text(path: Path, text: str, *, exclusive: bool = False, mode: int = 0o644) -> None:
++def atomic_text(path: Path, text: str, *, exclusive: bool = False, mode: int = 0o644,
++ owner: tuple[int, int] | None = None) -> None:
+ path.parent.mkdir(parents=True, exist_ok=True)
+ fd, temporary = tempfile.mkstemp(prefix=f".{path.name}.", dir=path.parent)
+ temp = Path(temporary)
+ try:
+ with os.fdopen(fd, "w", encoding="utf-8") as handle:
++ if owner is not None:
++ os.fchown(handle.fileno(), *owner)
+ os.fchmod(handle.fileno(), mode)
+ handle.write(text)
+ handle.flush()
+--- a/src/osforge/repository_activation.py
++++ b/src/osforge/repository_activation.py
+@@ -139,7 +139,9 @@
+ if os.readlink(alias) != str(home / "current"):
+ switch_pointer(alias, home / "current")
+ if text != rendered:
+- atomic_text(config, rendered, mode=stat.S_IMODE(config.stat().st_mode))
++ info = config.stat()
++ atomic_text(config, rendered, mode=stat.S_IMODE(info.st_mode),
++ owner=(info.st_uid, info.st_gid))
+ return {"portage_config": str(config), "local_link": str(alias), "release": str(release)}
+
+
+--- a/tests/test_repository_activation.py
++++ b/tests/test_repository_activation.py
+@@ -66,6 +66,14 @@
+ self.assertEqual(self.alias.resolve(), self.location())
+ self.publish() # Idempotent publication also checks the activation.
+
++ @unittest.skipUnless(os.geteuid() == 0, 'changing file owner requires root')
++ def test_registration_preserves_existing_owner_and_group(self):
++ os.chown(self.config, 65534, 65534)
++ candidate = self.update()
++ self.publish(candidate)
++ info = self.config.stat()
++ self.assertEqual((info.st_uid, info.st_gid), (65534, 65534))
++
+ def test_interrupted_activation_reconciles_without_duplicate_commit(self):
+ candidate = self.update()
+ with patch('osforge.repository_activation.atomic_text', side_effect=OSError('disk failure')):
+--- a/tests/test_merge.py
++++ b/tests/test_merge.py
+@@ -147,7 +147,7 @@
+ def test_merge_plan_writes_ledger_for_valid_configs(self) -> None:
+ with TemporaryDirectory() as tmp:
+ root = Path(tmp)
+- config = OsforgeConfig(path=root / "osforge.toml", state_root=root / "state")
++ config = OsforgeConfig(path=root / "osforge.toml", state_root=root / "state", merge_output_repo=root / "output")
+
+ result = build_merge_plan(
+ config,
diff --git a/app-admin/osforge/osforge-0.3.2-r1.ebuild b/app-admin/osforge/osforge-0.3.2-r1.ebuild
new file mode 100644
index 000000000000..77f3b7c3455f
--- /dev/null
+++ b/app-admin/osforge/osforge-0.3.2-r1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 2026 BaldEagleOS Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1
+
+DESCRIPTION="Shared Foundry and Crucible runtime with OSForge compatibility"
+HOMEPAGE="https://git.baldeagleos.com/osforge"
+SRC_URI="https://distfiles.baldeagleos.com/${P}.tar.gz"
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="usb-writer"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ acct-group/osforge
+ app-arch/tar
+ dev-python/prompt-toolkit[${PYTHON_USEDEP}]
+ dev-vcs/git
+ net-misc/rsync
+ sys-apps/portage
+ usb-writer? (
+ sys-apps/gptfdisk
+ sys-block/parted
+ sys-boot/grub
+ sys-fs/dosfstools
+ sys-fs/e2fsprogs
+ )
+"
+BDEPEND="test? ( app-arch/tar dev-vcs/git net-misc/rsync )"
+
+PATCHES=( "${FILESDIR}/${P}-preserve-activation-owner.patch" )
+
+distutils_enable_tests unittest
+
+python_test() {
+ eunittest -s tests
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ newinitd src/osforge/data/openrc/osforged osforged
+ newconfd src/osforge/data/openrc/osforged.confd osforged
+ dodoc -r examples docs
+ if use usb-writer; then
+ dosbin scripts/osforge-write-usb
+ fi
+}
+
+pkg_postinst() {
+ elog "Foundry and Crucible share the OSForge runtime and existing job history."
+ elog "Existing configurations and roots are adopted in place."
+ elog "Start the compatible daemon with: rc-service osforged start"
+ elog "Enable it at boot with: rc-update add osforged default"
+}
diff --git a/dev-libs/elfutils/elfutils-0.196.ebuild b/dev-libs/elfutils/elfutils-0.196-r1.ebuild
index 64e3da562586..865d08243268 100644
--- a/dev-libs/elfutils/elfutils-0.196.ebuild
+++ b/dev-libs/elfutils/elfutils-0.196-r1.ebuild
@@ -28,7 +28,7 @@ fi
LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
SLOT="0"
-IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls static-libs test +utils valgrind zstd"
+IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls stackprof static-libs test +utils valgrind zstd"
RESTRICT="!test? ( test )"
REQUIRED_USE="debuginfod? ( libarchive )"
@@ -44,7 +44,10 @@ RDEPEND="
)
libarchive? ( >=app-arch/libarchive-3.1.2:= )
lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] )
- utils? ( libpfm? ( dev-libs/libpfm:= ) )
+ stackprof? (
+ >=dev-libs/json-c-0.11:=
+ libpfm? ( dev-libs/libpfm:= )
+ )
zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] )
elibc_musl? (
dev-libs/libbsd
@@ -131,7 +134,7 @@ multilib_src_configure() {
# Could do dummy if needed? We could also split libdebuginfod
# (client support) into its own USE if required.
$(multilib_native_use_enable debuginfod libdebuginfod)
- $(multilib_native_use_enable utils stackprof)
+ $(multilib_native_use_enable stackprof)
$(use_enable valgrind valgrind-annotations)
# Explicitly disable thread safety, it's not recommended by upstream
diff --git a/dev-libs/elfutils/elfutils-9999.ebuild b/dev-libs/elfutils/elfutils-9999.ebuild
index 6f43af1f01f9..865d08243268 100644
--- a/dev-libs/elfutils/elfutils-9999.ebuild
+++ b/dev-libs/elfutils/elfutils-9999.ebuild
@@ -28,7 +28,7 @@ fi
LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
SLOT="0"
-IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls static-libs test +utils valgrind zstd"
+IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls stackprof static-libs test +utils valgrind zstd"
RESTRICT="!test? ( test )"
REQUIRED_USE="debuginfod? ( libarchive )"
@@ -44,7 +44,10 @@ RDEPEND="
)
libarchive? ( >=app-arch/libarchive-3.1.2:= )
lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] )
- utils? ( libpfm? ( dev-libs/libpfm:= ) )
+ stackprof? (
+ >=dev-libs/json-c-0.11:=
+ libpfm? ( dev-libs/libpfm:= )
+ )
zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] )
elibc_musl? (
dev-libs/libbsd
@@ -66,6 +69,7 @@ BDEPEND+="
PATCHES=(
"${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch
"${FILESDIR}"/${PN}-0.191-musl-macros.patch
+ "${FILESDIR}"/${PN}-0.196-skip-static-test.patch
)
src_prepare() {
@@ -130,7 +134,7 @@ multilib_src_configure() {
# Could do dummy if needed? We could also split libdebuginfod
# (client support) into its own USE if required.
$(multilib_native_use_enable debuginfod libdebuginfod)
- $(multilib_native_use_enable utils stackprof)
+ $(multilib_native_use_enable stackprof)
$(use_enable valgrind valgrind-annotations)
# Explicitly disable thread safety, it's not recommended by upstream
diff --git a/dev-libs/elfutils/metadata.xml b/dev-libs/elfutils/metadata.xml
index ca6e83f1edce..c5eb9a2385ee 100644
--- a/dev-libs/elfutils/metadata.xml
+++ b/dev-libs/elfutils/metadata.xml
@@ -20,6 +20,9 @@
See https://developers.redhat.com/articles/2024/06/11/get-system-wide-profiles-binaries-without-frame-pointers.
</flag>
+ <flag name="stackprof">
+ Build eu-stackprof tool: a tool for collecting system-wide stacktrace profiles.
+ </flag>
<flag name="utils">Install command-line utilities (all the eu-* programs).</flag>
</use>
<upstream>
diff --git a/profiles/arch/base/package.use.mask b/profiles/arch/base/package.use.mask
index 621a5da6f845..7531c2cb2c01 100644
--- a/profiles/arch/base/package.use.mask
+++ b/profiles/arch/base/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# Sam James <sam@gentoo.org> (2026-09-23)
+# Only supported on some arches.
+dev-libs/elfutils stackprof
+
# Michał Górny <mgorny@gentoo.org> (2026-09-22)
# Fortran modules require llvm-core/flang.
llvm-runtimes/openmp fortran
diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index 3b85983dafe0..116f30bedcf8 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -6,6 +6,10 @@
# New entries go on top.
+# Sam James <sam@gentoo.org> (2026-09-23)
+# Only supported on Linux.
+dev-libs/elfutils stackprof
+
# Andreas Sturmlechner <asturm@gentoo.org> (2026-09-19)
# Building documentation is broken in this version. Bug #976293
~dev-cpp/eigen-3.4.1 doc