From b60d7bb3d28c81c0845ef4649409e82e7aa29c2b Mon Sep 17 00:00:00 2001 From: Rose Hellsing Date: Fri, 20 Mar 2026 14:56:42 +0100 Subject: [PATCH] sys-apps/seedfiles: Add new package This adds a new package sys-apps/seedfiles which provides a (mostly) drop-in replacement for systemd-tmpfiles Some features are missing from seedfiles but it has been tested on my machine and worked without any issues on my gentoo install using the default tmpfiles installed. Signed-off-by: Rose Hellsing Part-of: https://codeberg.org/gentoo/gentoo/pulls/377 Signed-off-by: Sam James --- sys-apps/seedfiles/Manifest | 1 + sys-apps/seedfiles/files/legacy.conf | 3 ++ sys-apps/seedfiles/files/seedfiles-setup | 18 +++++++++++ sys-apps/seedfiles/files/seedfiles-setup-dev | 20 ++++++++++++ sys-apps/seedfiles/files/tmp.conf | 2 ++ sys-apps/seedfiles/metadata.xml | 15 +++++++++ sys-apps/seedfiles/seedfiles-1.1.ebuild | 34 ++++++++++++++++++++ sys-apps/seedfiles/seedfiles-9999.ebuild | 34 ++++++++++++++++++++ 8 files changed, 127 insertions(+) create mode 100644 sys-apps/seedfiles/Manifest create mode 100644 sys-apps/seedfiles/files/legacy.conf create mode 100644 sys-apps/seedfiles/files/seedfiles-setup create mode 100644 sys-apps/seedfiles/files/seedfiles-setup-dev create mode 100644 sys-apps/seedfiles/files/tmp.conf create mode 100644 sys-apps/seedfiles/metadata.xml create mode 100644 sys-apps/seedfiles/seedfiles-1.1.ebuild create mode 100644 sys-apps/seedfiles/seedfiles-9999.ebuild diff --git a/sys-apps/seedfiles/Manifest b/sys-apps/seedfiles/Manifest new file mode 100644 index 0000000000000..fe654d83888b9 --- /dev/null +++ b/sys-apps/seedfiles/Manifest @@ -0,0 +1 @@ +DIST seedfiles-1.1.tar.gz 47156 BLAKE2B 8d24034ed6264bc4da621791eb10d376464fbb3eea265bb2ee09ce24e6dc13838588181b80bb8422d4c0660a104dd055473234dba2ca034fb21302fcb14ded1f SHA512 337f9b275bf8d3f379ad54edb6687be91e03973b4f1ebfc15adecd7a10fe141d3c3b563f47a431884ff85c346fb583ddca202512086ba7da1930d7f0da26cc66 diff --git a/sys-apps/seedfiles/files/legacy.conf b/sys-apps/seedfiles/files/legacy.conf new file mode 100644 index 0000000000000..2d322e8869607 --- /dev/null +++ b/sys-apps/seedfiles/files/legacy.conf @@ -0,0 +1,3 @@ +# Based on legacy.conf from systemd +d /run/lock +L /var/lock - - - - ../run/lock diff --git a/sys-apps/seedfiles/files/seedfiles-setup b/sys-apps/seedfiles/files/seedfiles-setup new file mode 100644 index 0000000000000..40e77e52a8705 --- /dev/null +++ b/sys-apps/seedfiles/files/seedfiles-setup @@ -0,0 +1,18 @@ +#!/sbin/openrc-run +# Copyright 2026 Gentoo Authors +# Released under the 2-clause BSD license. + +description="Create Volatile Files and Directories" + +depend() +{ + provide tmpfiles-setup tmpfiles.setup + need localmount +} + +start() +{ + ebegin "${description}" + /usr/bin/seedfiles --create --remove --boot --exclude-prefix=/dev + eend $? +} diff --git a/sys-apps/seedfiles/files/seedfiles-setup-dev b/sys-apps/seedfiles/files/seedfiles-setup-dev new file mode 100644 index 0000000000000..5b6fc7932bc66 --- /dev/null +++ b/sys-apps/seedfiles/files/seedfiles-setup-dev @@ -0,0 +1,20 @@ +#!/sbin/openrc-run +# Copyright 2026 Gentoo Authors +# Released under the 2-clause BSD license. + +description="Create Static Devices Nodes in /dev" + +depend() +{ + provide tmpfiles-dev tmpfiles.dev + use dev-mount + before dev + keyword -prefix -vserver +} + +start() +{ + ebegin "${description}" + /usr/bin/seedfiles --prefix=/dev --create --boot + eend $? +} diff --git a/sys-apps/seedfiles/files/tmp.conf b/sys-apps/seedfiles/files/tmp.conf new file mode 100644 index 0000000000000..9f3d19bb7a2d5 --- /dev/null +++ b/sys-apps/seedfiles/files/tmp.conf @@ -0,0 +1,2 @@ +q /tmp 1777 root root +q /var/tmp 1777 root root diff --git a/sys-apps/seedfiles/metadata.xml b/sys-apps/seedfiles/metadata.xml new file mode 100644 index 0000000000000..b75ac34180d45 --- /dev/null +++ b/sys-apps/seedfiles/metadata.xml @@ -0,0 +1,15 @@ + + + + + rose@pinkro.se + Rose Hellsing + + + proxy-maint@gentoo.org + Proxy Maintainers + + + axtlos/seedfiles + + diff --git a/sys-apps/seedfiles/seedfiles-1.1.ebuild b/sys-apps/seedfiles/seedfiles-1.1.ebuild new file mode 100644 index 0000000000000..deb3ecc87f880 --- /dev/null +++ b/sys-apps/seedfiles/seedfiles-1.1.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="A portable drop-in reimplementation of systemd-tmpfiles." +HOMEPAGE="https://git.pinkro.se/Rose/gardenhouse/seedfiles.git/about/" + +if [[ ${PV} = 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://clone.git.pinkro.se/Rose/gardenhouse/seedfiles.git" + EGIT_BRANCH="main" +else + SRC_URI="https://git.pinkro.se/Rose/gardenhouse/seedfiles.git/snapshot/${P}.tar.gz" + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3+" +SLOT="0" + +RDEPEND="virtual/acl" +DEPEND="${RDEPEND}" + +src_install() { + meson_src_install + doinitd "${FILESDIR}"/seedfiles-setup + doinitd "${FILESDIR}"/seedfiles-setup-dev + + # We want to avoid tmpfiles.eclass because we provide it + insinto /usr/lib/tmpfiles.d + doins "${FILESDIR}"/{tmp,legacy}.conf +} diff --git a/sys-apps/seedfiles/seedfiles-9999.ebuild b/sys-apps/seedfiles/seedfiles-9999.ebuild new file mode 100644 index 0000000000000..deb3ecc87f880 --- /dev/null +++ b/sys-apps/seedfiles/seedfiles-9999.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="A portable drop-in reimplementation of systemd-tmpfiles." +HOMEPAGE="https://git.pinkro.se/Rose/gardenhouse/seedfiles.git/about/" + +if [[ ${PV} = 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://clone.git.pinkro.se/Rose/gardenhouse/seedfiles.git" + EGIT_BRANCH="main" +else + SRC_URI="https://git.pinkro.se/Rose/gardenhouse/seedfiles.git/snapshot/${P}.tar.gz" + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3+" +SLOT="0" + +RDEPEND="virtual/acl" +DEPEND="${RDEPEND}" + +src_install() { + meson_src_install + doinitd "${FILESDIR}"/seedfiles-setup + doinitd "${FILESDIR}"/seedfiles-setup-dev + + # We want to avoid tmpfiles.eclass because we provide it + insinto /usr/lib/tmpfiles.d + doins "${FILESDIR}"/{tmp,legacy}.conf +}