# See: http://www.zarb.org/~jasonc/macros.php # Or: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets # Or: http://www.rpm.org/max-rpm/ch-rpm-inside.html Name: cloud-init Version: 25.2+32.g890873f5 Release: 1%{?dist} Summary: Cloud instance initialization tool Group: System Environment/Base License: Dual-licesed GPLv3 or Apache 2.0 URL: https://github.com/canonical/cloud-init Source0: cloud-init-25.2-32-g890873f5.tar.gz BuildArch: noarch BuildRoot: %{_tmppath} Requires: systemd BuildRequires: pkgconfig(systemd) Requires: systemd-units BuildRequires: systemd-units BuildRequires: bash-completion BuildRequires: meson BuildRequires: pkgconf BuildRequires: python3-devel BuildRequires: systemd-devel BuildRequires: python3-jsonschema BuildRequires: python3-packaging BuildRequires: python3-passlib BuildRequires: python3-pyserial BuildRequires: python3-pytest BuildRequires: python3-pytest-cov BuildRequires: python3-pytest-mock BuildRequires: python3-pytest-xdist BuildRequires: python3-responses # System util packages needed %ifarch %{?ix86} x86_64 ia64 Requires: dmidecode %endif # Install 'dynamic' runtime reqs from *requirements.txt and pkg-deps.json. # Install them as BuildRequires too as they're used for testing. BuildRequires: e2fsprogs Requires: e2fsprogs BuildRequires: hostname Requires: hostname BuildRequires: iproute Requires: iproute BuildRequires: net-tools Requires: net-tools BuildRequires: procps Requires: procps BuildRequires: python3-configobj Requires: python3-configobj BuildRequires: python3-jinja2 Requires: python3-jinja2 BuildRequires: python3-jsonpatch Requires: python3-jsonpatch BuildRequires: python3-jsonschema Requires: python3-jsonschema BuildRequires: python3-oauthlib Requires: python3-oauthlib BuildRequires: python3-pyyaml Requires: python3-pyyaml BuildRequires: python3-requests Requires: python3-requests BuildRequires: rsyslog Requires: rsyslog BuildRequires: shadow-utils Requires: shadow-utils BuildRequires: sudo Requires: sudo # Custom patches Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description Cloud-init is a set of init scripts for cloud instances. Cloud instances need special scripts to run during initialization to retrieve and install ssh keys and to let the user run various scripts. %prep %setup -q -n cloud-init-25.2-32-g890873f5 # Custom patches activation %build %meson -Dinit_system=systemd -Ddistro_templates=chef_client.rb.tmpl,chrony.conf.rhel.tmpl,hosts.redhat.tmpl,ntp.conf.rhel.tmpl,resolv.conf.tmpl,timesyncd.conf.tmpl %meson_build %install %meson_install # Note that /etc/rsyslog.d didn't exist by default until F15. # el6 request: https://bugzilla.redhat.com/show_bug.cgi?id=740420 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d cp -p tools/21-cloudinit.conf \ $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf # Required dirs... mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/cloud mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/%{name} # patch in the full version to version.py version_pys=$(cd "$RPM_BUILD_ROOT" && find . -name version.py -type f) [ -n "$version_pys" ] || { echo "failed to find 'version.py' to patch with version." 1>&2; exit 1; } ( cd "$RPM_BUILD_ROOT" && sed -i "s,@@PACKAGED_VERSION@@,%{version}-%{release}," $version_pys ) %clean rm -rf $RPM_BUILD_ROOT %post %systemd_post cloud-init-main.service cloud-config.service cloud-config.target cloud-final.service cloud-init-network.service cloud-init.target cloud-init-local.service %preun %systemd_preun cloud-init-main.service cloud-config.service cloud-config.target cloud-final.service cloud-init-network.service cloud-init.target cloud-init-local.service %postun %systemd_postun cloud-init-main.service cloud-config.service cloud-config.target cloud-final.service cloud-init-network.service cloud-init.target cloud-init-local.service %files %{_udevrulesdir}/66-azure-ephemeral.rules /usr/lib/systemd/system-generators/cloud-init-generator /usr/lib/systemd/system/sshd-keygen@.service.d/disable-sshd-keygen-if-cloud-init-active.conf %{_unitdir}/cloud-* # Program binaries %{_bindir}/cloud-init* %{_bindir}/cloud-id* # Docs %doc LICENSE ChangeLog requirements.txt %doc %{_defaultdocdir}/cloud-init/* # Configs %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg %dir %{_sysconfdir}/cloud/cloud.cfg.d %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/*.cfg %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/README %dir %{_sysconfdir}/cloud/templates %config(noreplace) %{_sysconfdir}/cloud/templates/* %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf # Bash completion script %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/cloud-init # Man pages %dir %{_mandir}/man1 %{_mandir}/man1/*.gz %{_libexecdir}/%{name} %dir %{_sharedstatedir}/cloud # Python code is here... %{python3_sitelib}/*