Skip to content

Commit

Permalink
app-emulation/cloud-init: version bump 17.2 → 18.4
Browse files Browse the repository at this point in the history
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
EvaSDK committed Oct 24, 2018
1 parent 4b5c62d commit aa33094
Show file tree
Hide file tree
Showing 4 changed files with 201 additions and 0 deletions.
1 change: 1 addition & 0 deletions app-emulation/cloud-init/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ DIST cloud-init-0.7.8.tar.gz 508777 BLAKE2B 7b5b3f1b5f28b6a4ba67ef30cbbb32e1a1eb
DIST cloud-init-0.7.9.tar.gz 602188 BLAKE2B c2e2b8538488474cd4674b976f859164f0ab8ed585fc0b59c6e75f23a62fd035b8b76e0700c1e68893fc4a8346b3110ff2b25f13be92ff13eeac0f1ad2405641 SHA512 ee52909f634f51dcf9e1229a8f49faa8c562bf05b69fac108fcc80cb3217f4364a33cf696df015e4dcd7887c68cf6108729850648b4daee07b3d3247ca3cc5b1
DIST cloud-init-17.1.tar.gz 780532 BLAKE2B 10809da2e81d594542d83b2416481c493474cac2e790da25363e631f6dae9edc1e2fd160708121486dd3a2ebd19cfc29d18978cbe7d82eb1aec907762bf7bf0b SHA512 988cae4291c8d6a5bce012b78d651c602c02ad38c3790e9ed9aa7c815ae84c98767718ab9b0d346ddbc9c83cb886d455590128af750183618c0bf0f0c5a79564
DIST cloud-init-17.2.tar.gz 810821 BLAKE2B df1a7c1ed1fc48a7801a53bd89839d963debca6abf7f892d61bf7ec9222ab33bf78221e65d79028e0445cac4c5fe1e0c1620d49aea26c036ee17933d9c1893f5 SHA512 ad1c7f6ca9762b70a1f06a6b538032a7de0c5371fd792260d5959df113f4f51509d184b2207ffa23b41f395c1903d551d66aaf2a2ad60af3594cf1f18d1e4a38
DIST cloud-init-18.4.tar.gz 965112 BLAKE2B 2879aafedea877e4e406a5e837d100ba65e40c62660621f606e7a189af7b1ec8d98ba2c02ae5d253a0b4587502d3a636dec5c2772c968a9037b47e62a05656b4 SHA512 730aca6406f652f55afc2dd50c49eb6708584e0a96715606bcba05cb7f40e47c256faff1f9748f04674a8f941ec9435801c9ed2ac79adec8a6ef167d6b195103
84 changes: 84 additions & 0 deletions app-emulation/cloud-init/cloud-init-18.4.ebuild
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."
}
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

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

0 comments on commit aa33094

Please sign in to comment.