forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
app-emulation/cloud-init: version bump 17.2 → 18.4
Fix running unittests. Remove unused inherits. Rely on build system for cloud.cfg, templates and documentation installation. Add patches for Gentoo specifics. Package-Manager: Portage-2.3.51, Repoman-2.3.11 RepoMan-Options: --force Signed-off-by: Gilles Dartiguelongue <[email protected]>
- Loading branch information
Showing
4 changed files
with
201 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# Copyright 1999-2018 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
PYTHON_COMPAT=( python2_7 python3_4 python3_5 python3_6 ) | ||
|
||
inherit distutils-r1 | ||
|
||
DESCRIPTION="Cloud instance initialisation magic" | ||
HOMEPAGE="https://launchpad.net/cloud-init" | ||
SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz" | ||
|
||
LICENSE="GPL-3" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~x86" | ||
IUSE="test" | ||
|
||
# remove prettytable in 17.2 | ||
CDEPEND=" | ||
dev-python/jinja[${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/six[${PYTHON_USEDEP}] | ||
" | ||
DEPEND=" | ||
dev-python/setuptools[${PYTHON_USEDEP}] | ||
test? ( | ||
${CDEPEND} | ||
>=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}] | ||
dev-python/mock[${PYTHON_USEDEP}] | ||
dev-python/nose[${PYTHON_USEDEP}] | ||
dev-python/unittest2[${PYTHON_USEDEP}] | ||
dev-python/coverage[${PYTHON_USEDEP}] | ||
dev-python/contextlib2[${PYTHON_USEDEP}] | ||
) | ||
" | ||
RDEPEND=" | ||
${CDEPEND} | ||
net-analyzer/macchanger | ||
sys-apps/iproute2 | ||
sys-fs/growpart | ||
virtual/logger | ||
" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${P}-fix-packages-module.patch | ||
"${FILESDIR}"/${P}-gentoo-support-upstream-templates.patch | ||
) | ||
|
||
src_prepare() { | ||
# Fix location of documentation installation | ||
sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die | ||
distutils-r1_src_prepare | ||
} | ||
|
||
python_test() { | ||
# Do not use Makefile target as it does not setup environment correclty | ||
esetup.py nosetests -v --where cloudinit --where tests/unittests || die | ||
} | ||
|
||
python_install() { | ||
distutils-r1_python_install --init-system=sysvinit_openrc,systemd --distro gentoo | ||
} | ||
|
||
python_install_all() { | ||
keepdir /etc/cloud | ||
|
||
distutils-r1_python_install_all | ||
|
||
# installs as non-executable | ||
chmod +x "${D}"/etc/init.d/* | ||
} | ||
|
||
pkg_postinst() { | ||
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." | ||
} |
25 changes: 25 additions & 0 deletions
25
app-emulation/cloud-init/files/cloud-init-18.4-fix-packages-module.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
From e894c6f57b88305cdf6e4e2b1543475b2e02f436 Mon Sep 17 00:00:00 2001 | ||
From: Gilles Dartiguelongue <[email protected]> | ||
Date: Tue, 23 Oct 2018 18:59:58 +0200 | ||
Subject: [PATCH 1/2] Fix Gentoo package installation command | ||
|
||
--- | ||
cloudinit/distros/gentoo.py | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py | ||
index dc57717d..98ac41ca 100644 | ||
--- a/cloudinit/distros/gentoo.py | ||
+++ b/cloudinit/distros/gentoo.py | ||
@@ -192,7 +192,7 @@ class Distro(distros.Distro): | ||
if pkgs is None: | ||
pkgs = [] | ||
|
||
- cmd = list('emerge') | ||
+ cmd = ['emerge'] | ||
# Redirect output | ||
cmd.append("--quiet") | ||
|
||
-- | ||
2.19.0 | ||
|
91 changes: 91 additions & 0 deletions
91
app-emulation/cloud-init/files/cloud-init-18.4-gentoo-support-upstream-templates.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
From 946ce2b005a71e9922654af79bce51fefa16c3d4 Mon Sep 17 00:00:00 2001 | ||
From: Gilles Dartiguelongue <[email protected]> | ||
Date: Wed, 24 Oct 2018 10:52:46 +0200 | ||
Subject: [PATCH 2/2] Add support for gentoo in cloud.cfg and templates | ||
|
||
--- | ||
config/cloud.cfg.tmpl | 8 ++++++-- | ||
templates/hosts.gentoo.tmpl | 24 ++++++++++++++++++++++++ | ||
tools/render-cloudcfg | 2 +- | ||
3 files changed, 31 insertions(+), 3 deletions(-) | ||
create mode 100644 templates/hosts.gentoo.tmpl | ||
|
||
diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl | ||
index 1fef133a..f66b5f7e 100644 | ||
--- a/config/cloud.cfg.tmpl | ||
+++ b/config/cloud.cfg.tmpl | ||
@@ -134,7 +134,7 @@ cloud_final_modules: | ||
# (not accessible to handlers/transforms) | ||
system_info: | ||
# This will affect which distro class gets used | ||
-{% if variant in ["centos", "debian", "fedora", "rhel", "suse", "ubuntu", "freebsd"] %} | ||
+{% if variant in ["centos", "debian", "fedora", "rhel", "suse", "ubuntu", "freebsd", "gentoo"] %} | ||
distro: {{ variant }} | ||
{% else %} | ||
# Unknown/fallback distro. | ||
@@ -172,7 +172,7 @@ system_info: | ||
primary: http://ports.ubuntu.com/ubuntu-ports | ||
security: http://ports.ubuntu.com/ubuntu-ports | ||
ssh_svcname: ssh | ||
-{% elif variant in ["centos", "rhel", "fedora", "suse"] %} | ||
+{% elif variant in ["centos", "rhel", "fedora", "suse", "gentoo"] %} | ||
# Default user name + that default users groups (if added/used) | ||
default_user: | ||
name: {{ variant }} | ||
@@ -180,6 +180,10 @@ system_info: | ||
gecos: {{ variant }} Cloud User | ||
{% if variant == "suse" %} | ||
groups: [cdrom, users] | ||
+{% elif variant == "gentoo" %} | ||
+ groups: [users, wheel] | ||
+ primary_group: users | ||
+ no-user-group: true | ||
{% else %} | ||
groups: [wheel, adm, systemd-journal] | ||
{% endif %} | ||
diff --git a/templates/hosts.gentoo.tmpl b/templates/hosts.gentoo.tmpl | ||
new file mode 100644 | ||
index 00000000..cd045fa6 | ||
--- /dev/null | ||
+++ b/templates/hosts.gentoo.tmpl | ||
@@ -0,0 +1,24 @@ | ||
+## template:jinja | ||
+{# | ||
+This file /etc/cloud/templates/hosts.gentoo.tmpl is only utilized | ||
+if enabled in cloud-config. Specifically, in order to enable it | ||
+you need to add the following to config: | ||
+ manage_etc_hosts: True | ||
+-#} | ||
+# Your system has configured 'manage_etc_hosts' as True. | ||
+# As a result, if you wish for changes to this file to persist | ||
+# then you will need to either | ||
+# a.) make changes to the master file in /etc/cloud/templates/hosts.gentoo.tmpl | ||
+# b.) change or remove the value of 'manage_etc_hosts' in | ||
+# /etc/cloud/cloud.cfg or cloud-config from user-data | ||
+# | ||
+# The following lines are desirable for IPv4 capable hosts | ||
+127.0.0.1 {{fqdn}} {{hostname}} | ||
+127.0.0.1 localhost.localdomain localhost | ||
+127.0.0.1 localhost4.localdomain4 localhost4 | ||
+ | ||
+# The following lines are desirable for IPv6 capable hosts | ||
+::1 {{fqdn}} {{hostname}} | ||
+::1 localhost.localdomain localhost | ||
+::1 localhost6.localdomain6 localhost6 | ||
+ | ||
diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg | ||
index 8b7cb875..d109044e 100755 | ||
--- a/tools/render-cloudcfg | ||
+++ b/tools/render-cloudcfg | ||
@@ -4,7 +4,7 @@ import argparse | ||
import os | ||
import sys | ||
|
||
-VARIANTS = ["bsd", "centos", "fedora", "rhel", "suse", "ubuntu", "unknown"] | ||
+VARIANTS = ["bsd", "centos", "fedora", "gentoo", "rhel", "suse", "ubuntu", "unknown"] | ||
|
||
if "avoid-pep8-E402-import-not-top-of-file": | ||
_tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) | ||
-- | ||
2.19.0 | ||
|