diff options
| author | Crucible <crucible@localhost> | 2026-09-22 19:06:07 -0500 |
|---|---|---|
| committer | Crucible <crucible@localhost> | 2026-09-22 19:06:07 -0500 |
| commit | ce2933222cbd0044c148d11523b002be4c2d86b1 (patch) | |
| tree | 3e98adf854db28d57fd153c524954b1115f520c5 | |
| parent | cde96c5ea0c81397fd3214d455a374f76179a7aa (diff) | |
| download | srcux-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.patch | 60 | ||||
| -rw-r--r-- | app-admin/osforge/osforge-0.3.2-r1.ebuild | 58 | ||||
| -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.ebuild | 10 | ||||
| -rw-r--r-- | dev-libs/elfutils/metadata.xml | 3 | ||||
| -rw-r--r-- | profiles/arch/base/package.use.mask | 4 | ||||
| -rw-r--r-- | profiles/base/package.use.mask | 4 |
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 |
