diff options
3 files changed, 153 insertions, 0 deletions
diff --git a/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch b/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch new file mode 100644 index 00000000..f61b82ce --- /dev/null +++ b/recipes-extended/cloud-init/cloud-init/0001-setup.py-check-for-install-anywhere-in-args.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From 5c96379a4727c07fb5222208525013ec8b878184 Mon Sep 17 00:00:00 2001 | ||
2 | From: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
3 | Date: Wed, 4 Nov 2020 21:15:50 -0500 | ||
4 | Subject: [PATCH] setup.py: check for 'install' anywhere in args | ||
5 | |||
6 | The python3distutils bbclass calls setup.py in a different way then | ||
7 | cloud-init expects .. the 'install' is not argument 1, but is in fact | ||
8 | after a 'build' and some other options. | ||
9 | |||
10 | So rather than checking for install to be argv[1], we check for it | ||
11 | anywhere in the arguments are trigger the template replacement to | ||
12 | happen. | ||
13 | |||
14 | Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
15 | --- | ||
16 | setup.py | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/setup.py b/setup.py | ||
20 | index cbacf48e..5f13d9eb 100755 | ||
21 | --- a/setup.py | ||
22 | +++ b/setup.py | ||
23 | @@ -87,7 +87,7 @@ def render_tmpl(template, mode=None): | ||
24 | |||
25 | # older versions of tox use bdist (xenial), and then install from there. | ||
26 | # newer versions just use install. | ||
27 | - if not (sys.argv[1] == 'install' or sys.argv[1].startswith('bdist*')): | ||
28 | + if not ('install' in sys.argv or sys.argv[1].startswith('bdist*')): | ||
29 | return template | ||
30 | |||
31 | tmpl_ext = ".tmpl" | ||
32 | -- | ||
33 | 2.25.1 | ||
34 | |||
diff --git a/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch b/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch new file mode 100644 index 00000000..869fb311 --- /dev/null +++ b/recipes-extended/cloud-init/cloud-init/cloud-init-source-local-lsb-functions.patch | |||
@@ -0,0 +1,64 @@ | |||
1 | From 72dd3b4b38705442d821fe97a40061f23e748769 Mon Sep 17 00:00:00 2001 | ||
2 | From: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
3 | Date: Thu, 6 Mar 2014 01:55:09 -0500 | ||
4 | Subject: [PATCH] cloud-init: source local lsb functions | ||
5 | |||
6 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
7 | --- | ||
8 | sysvinit/debian/cloud-config | 1 + | ||
9 | sysvinit/debian/cloud-final | 1 + | ||
10 | sysvinit/debian/cloud-init | 1 + | ||
11 | sysvinit/debian/cloud-init-local | 1 + | ||
12 | 4 files changed, 4 insertions(+) | ||
13 | |||
14 | diff --git a/sysvinit/debian/cloud-config b/sysvinit/debian/cloud-config | ||
15 | index 53322748ac65..7874dcfab9b0 100644 | ||
16 | --- a/sysvinit/debian/cloud-config | ||
17 | +++ b/sysvinit/debian/cloud-config | ||
18 | @@ -30,6 +30,7 @@ SCRIPTNAME=/etc/init.d/$NAME | ||
19 | # Depend on lsb-base (>= 3.2-14) to ensure that this file is present | ||
20 | # and status_of_proc is working. | ||
21 | . /lib/lsb/init-functions | ||
22 | +. /etc/init.d/functions | ||
23 | |||
24 | if init_is_upstart; then | ||
25 | case "$1" in | ||
26 | diff --git a/sysvinit/debian/cloud-final b/sysvinit/debian/cloud-final | ||
27 | index 55afc8b0678a..661314f0b64c 100644 | ||
28 | --- a/sysvinit/debian/cloud-final | ||
29 | +++ b/sysvinit/debian/cloud-final | ||
30 | @@ -32,6 +32,7 @@ SCRIPTNAME=/etc/init.d/$NAME | ||
31 | # Depend on lsb-base (>= 3.2-14) to ensure that this file is present | ||
32 | # and status_of_proc is working. | ||
33 | . /lib/lsb/init-functions | ||
34 | +. /etc/init.d/functions | ||
35 | |||
36 | if init_is_upstart; then | ||
37 | case "$1" in | ||
38 | diff --git a/sysvinit/debian/cloud-init b/sysvinit/debian/cloud-init | ||
39 | index 48fa04233f00..d3ccec99bacc 100755 | ||
40 | --- a/sysvinit/debian/cloud-init | ||
41 | +++ b/sysvinit/debian/cloud-init | ||
42 | @@ -30,6 +30,7 @@ SCRIPTNAME=/etc/init.d/$NAME | ||
43 | # Depend on lsb-base (>= 3.2-14) to ensure that this file is present | ||
44 | # and status_of_proc is working. | ||
45 | . /lib/lsb/init-functions | ||
46 | +. /etc/init.d/functions | ||
47 | |||
48 | if init_is_upstart; then | ||
49 | case "$1" in | ||
50 | diff --git a/sysvinit/debian/cloud-init-local b/sysvinit/debian/cloud-init-local | ||
51 | index 802ee8e9f386..c309e8347324 100644 | ||
52 | --- a/sysvinit/debian/cloud-init-local | ||
53 | +++ b/sysvinit/debian/cloud-init-local | ||
54 | @@ -29,6 +29,7 @@ SCRIPTNAME=/etc/init.d/$NAME | ||
55 | # Depend on lsb-base (>= 3.2-14) to ensure that this file is present | ||
56 | # and status_of_proc is working. | ||
57 | . /lib/lsb/init-functions | ||
58 | +. /etc/init.d/functions | ||
59 | |||
60 | if init_is_upstart; then | ||
61 | case "$1" in | ||
62 | -- | ||
63 | 1.7.10.4 | ||
64 | |||
diff --git a/recipes-extended/cloud-init/cloud-init_20.3.bb b/recipes-extended/cloud-init/cloud-init_20.3.bb new file mode 100644 index 00000000..31b4066f --- /dev/null +++ b/recipes-extended/cloud-init/cloud-init_20.3.bb | |||
@@ -0,0 +1,55 @@ | |||
1 | DESCRIPTION = "Init scripts for use on cloud images" | ||
2 | HOMEPAGE = "https://github.com/canonical/cloud-init" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "GPLv3" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=c6dd79b6ec2130a3364f6fa9d6380408" | ||
6 | |||
7 | SRCREV = "1431c8a1bddaabf85e1bbb32bf316a3aef20036e" | ||
8 | SRC_URI = "git://github.com/canonical/cloud-init \ | ||
9 | file://cloud-init-source-local-lsb-functions.patch \ | ||
10 | file://0001-setup.py-check-for-install-anywhere-in-args.patch \ | ||
11 | " | ||
12 | |||
13 | S = "${WORKDIR}/git" | ||
14 | |||
15 | DISTUTILS_INSTALL_ARGS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '--init-system=sysvinit_deb', '', d)}" | ||
16 | DISTUTILS_INSTALL_ARGS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--init-system=systemd', '', d)}" | ||
17 | |||
18 | do_install_append() { | ||
19 | ln -s ${libdir}/${BPN}/uncloud-init ${D}${sysconfdir}/cloud/uncloud-init | ||
20 | ln -s ${libdir}/${BPN}/write-ssh-key-fingerprints ${D}${sysconfdir}/cloud/write-ssh-key-fingerprints | ||
21 | } | ||
22 | |||
23 | inherit pkgconfig | ||
24 | inherit setuptools3 | ||
25 | inherit update-rc.d | ||
26 | inherit systemd | ||
27 | |||
28 | inherit python3native | ||
29 | |||
30 | PACKAGES += "${PN}-systemd" | ||
31 | |||
32 | FILES_${PN} += "${sysconfdir}/* \ | ||
33 | ${datadir}/*" | ||
34 | |||
35 | FILES_${PN}-systemd += "${systemd_unitdir}/*" | ||
36 | RDEPENDS_${PN}-systemd += " ${PN}" | ||
37 | |||
38 | INITSCRIPT_PACKAGES = "${PN}" | ||
39 | INITSCRIPT_NAME_${BPN} = "cloud-init" | ||
40 | |||
41 | DEPENDS += "python3-pyyaml-native \ | ||
42 | python3-requests-native \ | ||
43 | python3-jinja2-native \ | ||
44 | " | ||
45 | |||
46 | RDEPENDS_${PN} = "python3 \ | ||
47 | python3-jinja2 \ | ||
48 | python3-configobj \ | ||
49 | python3-requests \ | ||
50 | python3-jsonpatch \ | ||
51 | python3-jsonschema \ | ||
52 | python3-pyyaml \ | ||
53 | python3-oauthlib \ | ||
54 | " | ||
55 | |||