commit: ac8307b6cc40a6a9e4ef8a238733b1e63f8ac583
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 31 22:34:23 2025 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Mar 31 22:34:23 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac8307b6
app-emulation/cloud-init: add 25.1
Signed-off-by: Sam James <sam <AT> gentoo.org>
app-emulation/cloud-init/Manifest | 1 +
app-emulation/cloud-init/cloud-init-25.1.ebuild | 119 ++++++++++++++++++++++++
2 files changed, 120 insertions(+)
diff --git a/app-emulation/cloud-init/Manifest
b/app-emulation/cloud-init/Manifest
index daf41219db2e..7559439b8e29 100644
--- a/app-emulation/cloud-init/Manifest
+++ b/app-emulation/cloud-init/Manifest
@@ -1 +1,2 @@
DIST cloud-init-24.4.tar.gz 1871271 BLAKE2B
438d1296a637211d7a43c9969de6d432b1ab787beab7f617426cdeab67d1c1df28e1adfa610af4dad44c7f46850954ad3d1856bfff143648da0f87fbc4ebdefc
SHA512
1c6901497848d8be29ffb0a7bcbbd2df89d0a2b35a65c33f3db9562a544d9e832308f448dcc24a555791b40f00aca32e5d25b8ad3ccb5e90dda6268e5a125f9c
+DIST cloud-init-25.1.tar.gz 1892801 BLAKE2B
7efc5cb8d1f3c63c7b22660873f8c62d49a32d4f09a16df41777a6e41555606ebb5186c29f5d20396dfabc190f2034f88517076c5e342cb8bc04249bbfcee4a4
SHA512
2a40234e92bd27e12a48ab6d62c638599d82deaaf9b69d9ba2deed6a8234e16fcd5e35e995c1880d61c2a60fbea7699ae73ea849f2f4153067ef4aa8af1b4adf
diff --git a/app-emulation/cloud-init/cloud-init-25.1.ebuild
b/app-emulation/cloud-init/cloud-init-25.1.ebuild
new file mode 100644
index 000000000000..9f7db580b998
--- /dev/null
+++ b/app-emulation/cloud-init/cloud-init-25.1.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit edo python-single-r1 udev
+
+DESCRIPTION="Cloud instance initialisation magic"
+HOMEPAGE="https://launchpad.net/cloud-init"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.launchpad.net/cloud-init"
+else
+ SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="selinux test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+COMMON_DEPEND="
+ $(python_gen_cond_dep '
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ dev-python/oauthlib[${PYTHON_USEDEP}]
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ >=dev-python/configobj-5.0.2[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/netifaces[${PYTHON_USEDEP}]
+ ')
+"
+BDEPEND="
+ ${COMMON_DEPEND}
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/passlib[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ ${PYTHON_DEPS}
+ net-analyzer/macchanger
+ net-analyzer/openbsd-netcat
+ sys-apps/iproute2
+ sys-fs/growpart
+ virtual/logger
+ selinux? ( sec-policy/selinux-cloudinit )
+"
+
+EPYTEST_IGNORE=(
+ # Can't find file
+ tests/unittests/config/test_apt_configure_sources_list_v1.py
+ tests/unittests/config/test_apt_configure_sources_list_v3.py
+ # PORTAGE_TMPDIR too long for unix sockets
+ tests/unittests/test_all_stages.py
+ # TODO
+ tests/unittests/config/test_schema.py
+)
+
+src_prepare() {
+ default
+
+ # Fix location of documentation installation
+ sed -i "s:USR + \"/share/doc/cloud-init:USR + \"/share/doc/${PF}:"
setup.py || die
+
+ if [[ ${PV} == *9999 ]] ; then
+ sed -i 's/version=get_version(),/version=9999,/g' setup.py ||
die
+ fi
+}
+
+src_compile() {
+ edo ${EPYTHON} setup.py build
+}
+
+src_test() {
+ epytest
+}
+
+src_install() {
+ edo ${EPYTHON} setup.py install \
+ --prefix="${EPREFIX}/usr" \
+ --root="${D}" \
+ --init-system=sysvinit_openrc,systemd \
+ --distro gentoo
+ python_optimize
+
+ keepdir /etc/cloud
+
+ # installs as non-executable
+ chmod +x "${D}"/etc/init.d/* || die
+}
+
+pkg_prerm() {
+ udev_reload
+}
+
+pkg_postinst() {
+ udev_reload
+
+ elog "cloud-init-local needs to be run in the boot runlevel because it"
+ elog "modifies services in the default runlevel. When a runlevel is
started"
+ elog "it is cached, so modifications that happen to the current
runlevel"
+ elog "while you are in it are not acted upon."
+}