# Maintainer: Christian Rebischke # Maintainer: David Runge # Contributor: kpcyrd # Contributor: Jonathan Steel # Contributor: Daniel Wallace # Contributor: flaccid aka Chris Fordham # Contributor: Sparadox pkgname=cloud-init pkgver=23.1.2 pkgrel=2 pkgdesc="Cloud instance initialization" arch=(any) url="https://cloud-init.io" license=(GPL3) depends=( bash dhclient python python-configobj python-jinja python-jsonpatch python-jsonschema python-netifaces python-oauthlib python-pyserial python-pyyaml python-requests python-typing-extensions sudo systemd ) makedepends=( netplan python-build python-installer python-setuptools python-wheel ) checkdepends=( python-httpretty python-pytest python-pytest-mock python-responses ) optdepends=( 'cloud-guest-utils: for growpart' 'netplan: for configuring network using netplan' ) backup=( etc/cloud/cloud.cfg etc/cloud/cloud.cfg.d/05_logging.cfg ) source=( https://github.com/canonical/cloud-init/archive/$pkgver/$pkgname-$pkgver.tar.gz $pkgname-22.1-lib_dir.patch ) sha512sums=('04e3cfb8b65d1014c385b5f66e273b2092a61f363d7c93835d05cff5e967e6ef665cb85e456ff6c8f53148072b82b19331c407c3ea8d9c676fcf3b50feecf0dc' '32b7521f0ae4d61a4d86f2f840fb0670e2cdc7bab708fc7b7676b5178b6d660beb3a46b803f5bcd7e0f18c6d6339fc96e20a951dfafadbb0312e4a0cafce325f') b2sums=('053e6e08ab0bcf972e3bc57161ca7c5a62f1e45b6c156c2103a818823e57574f6a2036fcdde405c05c4bd08c366da85e18ad58487faaa5a64533c6976b123aa1' '4e03bd647ca9e1bc3d9c507824d43e4013a20d5bbcb7215755b427d0c7ded9ee48dbfb9faaae703ab2d519aee7c48a40277603c8f874347b574b7ac2b1e1a9fd') prepare() { cd $pkgname-$pkgver # we use /usr/lib patch -Np1 -i ../$pkgname-22.1-lib_dir.patch } build() { cd $pkgname-$pkgver python -m build --wheel --no-isolation } check() { local deselected=( # we don't ship /etc/ca-certificates.conf --deselect tests/unittests/config/test_cc_ca_certs.py::TestRemoveDefaultCaCerts::test_commands ) cd $pkgname-$pkgver pytest -vv "${deselected[@]}" } package() { local _file local site_packages=$(python -c "import site; print(site.getsitepackages()[0])") cd $pkgname-$pkgver python -m installer --destdir="$pkgdir" dist/*.whl # NOTE: due to limitations with PEP517, files are installed to site-packages, # not to the correct global locations (e.g. /etc and /usr), so we remove them # and install them manually below. rm -frv "$pkgdir/$site_packages/"{usr,etc} # configuration and hooks install -vDm 644 config/cloud.cfg.d/* -t "$pkgdir/etc/cloud/cloud.cfg.d/" ./tools/render-cloudcfg --variant arch ./config/cloud.cfg.tmpl "$pkgdir/etc/cloud/cloud.cfg" install -vDm 644 templates/*.tmpl -t "$pkgdir/etc/cloud/templates/" install -vDm 755 tools/hook-network-manager -t "$pkgdir/etc/NetworkManager/dispatcher.d/" install -vDm 755 tools/hook-dhclient -t "$pkgdir/etc/dhcp/dhclient-exit-hooks.d/" install -vDm 755 tools/{ds-identify,hook-hotplug,uncloud-init,write-ssh-key-fingerprints} -t "$pkgdir/usr/lib/$pkgname/" # documentation, man pages and shell completion install -vDm 644 doc/*.txt -t "$pkgdir/usr/share/doc/$pkgname/" install -vDm 644 doc/examples/*.txt -t "$pkgdir/usr/share/doc/$pkgname/examples/" install -vDm 644 doc/examples/seed/* -t "$pkgdir/usr/share/doc/$pkgname/examples/seed/" install -vDm 644 doc/man/*.1 -t "$pkgdir/usr/share/man/man1/" install -vDm 655 bash_completion/$pkgname -t "$pkgdir/usr/share/bash-completion/completions/" # udev rules install -vDm 644 udev/*.rules -t "$pkgdir/usr/lib/udev/rules.d/" # systemd integration install -vdm 755 "$pkgdir/usr/lib/systemd/system"{,-generators} for _file in cloud-{config,final,init-local,init}.service; do ./tools/render-cloudcfg --variant arch ./systemd/$_file.tmpl "$pkgdir/usr/lib/systemd/system/$_file" done install -vDm 644 systemd/*.{service,socket,target} "$pkgdir/usr/lib/systemd/system/" ./tools/render-cloudcfg --variant arch ./systemd/cloud-init-generator.tmpl "$pkgdir/usr/lib/systemd/system-generators/cloud-init-generator" chmod 755 "$pkgdir/usr/lib/systemd/system-generators/cloud-init-generator" install -vDm 644 systemd/disable-sshd-keygen-if-cloud-init-active.conf -t "$pkgdir/usr/lib/systemd/system/sshd-keygen@.service.d/" }