summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorParide Legovini <paride.legovini@canonical.com>2020-05-02 02:57:24 +0200
committerGitHub <noreply@github.com>2020-05-01 18:57:24 -0600
commit4d2684848722cb2d469ad4fa60999bf81cf7056e (patch)
tree2246e875479392fb7e38ee16bbe0815df7d89308 /packages
parent70dbccbbb27f7cc3f2decd692d41403f0d745c62 (diff)
downloadvyos-cloud-init-4d2684848722cb2d469ad4fa60999bf81cf7056e.tar.gz
vyos-cloud-init-4d2684848722cb2d469ad4fa60999bf81cf7056e.zip
Adapt the package building scripts to use Python 3 (#231)
Since upstream cloud-init has dropped python2 support, adapt remaining package build scripts and tools to python3 only Changes: * Do not template debian/rules as python3 is the only supported version * Drop six from requirements.txt * Makefile: drop everything related to Python 2 * run-container: install the CI deps only on ubuntu|debian * read-version: update the shebang to use Python 3 * brpm: read_dependencies(): drop unused argument * read-dependencies: switch to Py3 and drop the --python-version option * pkg-deps.json: drop the Python version field and update the redhat deps * pkg-deps.json: drop the unittest2 and contextlib2 renames * Update RPM the spec file to use Python 3 when building the RPM * bddeb: drop support for Python 2
Diffstat (limited to 'packages')
-rwxr-xr-xpackages/bddeb26
-rwxr-xr-xpackages/brpm2
-rw-r--r--packages/debian/control.in3
-rwxr-xr-xpackages/debian/rules (renamed from packages/debian/rules.in)6
-rw-r--r--packages/pkg-deps.json55
-rw-r--r--packages/redhat/cloud-init.spec.in10
6 files changed, 31 insertions, 71 deletions
diff --git a/packages/bddeb b/packages/bddeb
index 209765a5..02ac2975 100755
--- a/packages/bddeb
+++ b/packages/bddeb
@@ -59,15 +59,9 @@ def run_helper(helper, args=None, strip=True):
return stdout
-def write_debian_folder(root, templ_data, is_python2, cloud_util_deps):
+def write_debian_folder(root, templ_data, cloud_util_deps):
"""Create a debian package directory with all rendered template files."""
print("Creating a debian/ folder in %r" % (root))
- if is_python2:
- pyver = "2"
- python = "python"
- else:
- pyver = "3"
- python = "python3"
deb_dir = util.abs_join(root, 'debian')
@@ -83,30 +77,23 @@ def write_debian_folder(root, templ_data, is_python2, cloud_util_deps):
# Write out the control file template
reqs_output = run_helper(
- 'read-dependencies',
- args=['--distro', 'debian', '--python-version', pyver])
+ 'read-dependencies', args=['--distro', 'debian'])
reqs = reqs_output.splitlines()
test_reqs = run_helper(
'read-dependencies',
['--requirements-file', 'test-requirements.txt',
- '--system-pkg-names', '--python-version', pyver]).splitlines()
+ '--system-pkg-names']).splitlines()
requires = ['cloud-utils | cloud-guest-utils'] if cloud_util_deps else []
# We consolidate all deps as Build-Depends as our package build runs all
# tests so we need all runtime dependencies anyway.
# NOTE: python package was moved to the front after debuild -S would fail with
# 'Please add apropriate interpreter' errors (as in debian bug 861132)
- requires.extend([python] + reqs + test_reqs)
+ requires.extend(['python3'] + reqs + test_reqs)
templater.render_to_file(util.abs_join(find_root(),
'packages', 'debian', 'control.in'),
util.abs_join(deb_dir, 'control'),
- params={'build_depends': ','.join(requires),
- 'python': python})
-
- templater.render_to_file(util.abs_join(find_root(),
- 'packages', 'debian', 'rules.in'),
- util.abs_join(deb_dir, 'rules'),
- params={'python': python, 'pyver': pyver})
+ params={'build_depends': ','.join(requires)})
def read_version():
@@ -208,8 +195,7 @@ def main():
xdir = util.abs_join(tdir, "cloud-init-%s" % ver_data['version_long'])
templ_data.update(ver_data)
- write_debian_folder(xdir, templ_data, is_python2=args.python2,
- cloud_util_deps=args.cloud_utils)
+ write_debian_folder(xdir, templ_data, cloud_util_deps=args.cloud_utils)
print("Running 'debuild %s' in %r" % (' '.join(args.debuild_args),
xdir))
diff --git a/packages/brpm b/packages/brpm
index 4004fd0e..1be8804c 100755
--- a/packages/brpm
+++ b/packages/brpm
@@ -42,7 +42,7 @@ def run_helper(helper, args=None, strip=True):
return stdout
-def read_dependencies(distro, requirements_file='requirements.txt'):
+def read_dependencies(distro):
"""Returns the Python package depedencies from requirements.txt files.
@returns a tuple of (requirements, test_requirements)
diff --git a/packages/debian/control.in b/packages/debian/control.in
index e9ed64f3..72895b47 100644
--- a/packages/debian/control.in
+++ b/packages/debian/control.in
@@ -10,11 +10,10 @@ Standards-Version: 3.9.6
Package: cloud-init
Architecture: all
Depends: ${misc:Depends},
- ${${python}:Depends},
+ ${python3:Depends},
iproute2,
isc-dhcp-client
Recommends: eatmydata, sudo, software-properties-common, gdisk
-XB-Python-Version: ${python:Versions}
Description: Init scripts for cloud instances
Cloud instances need special scripts to run during initialisation
to retrieve and install ssh keys and to let the user run various scripts.
diff --git a/packages/debian/rules.in b/packages/debian/rules
index e542c7f1..d138deeb 100755
--- a/packages/debian/rules.in
+++ b/packages/debian/rules
@@ -1,12 +1,10 @@
-## template:basic
#!/usr/bin/make -f
INIT_SYSTEM ?= systemd
export PYBUILD_INSTALL_ARGS=--init-system=$(INIT_SYSTEM)
-PYVER ?= python${pyver}
DEB_VERSION := $(shell dpkg-parsechangelog --show-field=Version)
%:
- dh $@ --with $(PYVER),systemd --buildsystem pybuild
+ dh $@ --with python3,systemd --buildsystem pybuild
override_dh_install:
dh_install
@@ -19,7 +17,7 @@ override_dh_install:
override_dh_auto_test:
ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
- http_proxy= make PYVER=python${pyver} check
+ http_proxy= make check
else
@echo check disabled by DEB_BUILD_OPTIONS=$(DEB_BUILD_OPTIONS)
endif
diff --git a/packages/pkg-deps.json b/packages/pkg-deps.json
index f02e8348..80028396 100644
--- a/packages/pkg-deps.json
+++ b/packages/pkg-deps.json
@@ -6,49 +6,31 @@
"dh-systemd"
],
"renames" : {
- "pyyaml" : {
- "2" : "python-yaml",
- "3" : "python3-yaml"
- },
- "pyserial" : {
- "2" : "python-serial",
- "3" : "python3-serial"
- }
+ "pyyaml" : "python3-yaml",
+ "pyserial" : "python3-serial"
},
"requires" : [
"procps"
]
},
+ "centos" : {
+ "build-requires" : [
+ "python3-devel"
+ ],
+ "requires" : [
+ "e2fsprogs",
+ "iproute",
+ "net-tools",
+ "procps",
+ "rsyslog",
+ "shadow-utils",
+ "sudo"
+ ]
+ },
"redhat" : {
"build-requires" : [
- "python-devel",
- "python-setuptools"
+ "python3-devel"
],
- "renames" : {
- "jinja2" : {
- "3" : "python36-jinja2"
- },
- "jsonschema" : {
- "3" : "python36-jsonschema"
- },
- "pyflakes" : {
- "2" : "pyflakes",
- "3" : "python36-pyflakes"
- },
- "pyyaml" : {
- "2" : "PyYAML",
- "3" : "python36-PyYAML"
- },
- "pyserial" : {
- "2" : "pyserial"
- },
- "pytest": {
- "3": "python36-pytest"
- },
- "requests" : {
- "3" : "python36-requests"
- }
- },
"requires" : [
"e2fsprogs",
"iproute",
@@ -61,9 +43,6 @@
},
"suse" : {
"renames" : {
- "pyyaml" : {
- "2" : "python-yaml"
- }
},
"build-requires" : [
"fdupes",
diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in
index 057a5784..4cff2c97 100644
--- a/packages/redhat/cloud-init.spec.in
+++ b/packages/redhat/cloud-init.spec.in
@@ -1,6 +1,4 @@
## template: jinja
-%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-
%define use_systemd (0%{?fedora} && 0%{?fedora} >= 18) || (0%{?rhel} && 0%{?rhel} >= 7)
%if %{use_systemd}
@@ -94,11 +92,11 @@ ssh keys and to let the user run various scripts.
{% endfor %}
%build
-%{__python} setup.py build
+%{__python3} setup.py build
%install
-%{__python} setup.py install -O1 \
+%{__python3} setup.py install -O1 \
--skip-build --root $RPM_BUILD_ROOT \
--init-system=%{init_system}
@@ -109,7 +107,7 @@ cp -p tools/21-cloudinit.conf \
$RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf
# Remove the tests
-rm -rf $RPM_BUILD_ROOT%{python_sitelib}/tests
+rm -rf $RPM_BUILD_ROOT%{python3_sitelib}/tests
# Required dirs...
mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/cloud
@@ -213,4 +211,4 @@ fi
%dir %{_sharedstatedir}/cloud
# Python code is here...
-%{python_sitelib}/*
+%{python3_sitelib}/*