%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %{!?license: %global license %%doc} # The only reason we are archful is because dmidecode is ExclusiveArch # https://bugzilla.redhat.com/show_bug.cgi?id=1067089 %global debug_package %{nil} Name: cloud-init Version: 0.7.5 Release: 10%{?dist}.2 Summary: Cloud instance init scripts Group: System Environment/Base License: GPLv3 URL: http://launchpad.net/cloud-init Source0: https://launchpad.net/cloud-init/trunk/%{version}/+download/%{name}-%{version}.tar.gz Source1: cloud-init-centos.cfg Source2: cloud-init-README.rhel %if 0%{?rhel} >= 7 Source3: cloud-init-tmpfiles.conf %endif # if >= C7 # Patches managed with rdopkg, using github.com/larsks/cloud-init as integration # repository. # patches_base=0.7.5 Patch0001: 0001-update-paths-for-rhel.patch Patch0002: 0002-fix-rsyslog-programname-match.patch Patch0003: 0003-Stopped-calling-udevadm-settle-with-quiet-since-syst.patch Patch0004: 0004-fix-typo-in-settings.py-preventing-metadata-being-fe.patch Patch1001: cloud-init-centos-opennebula.patch Patch1002: cloud-init-centos-hostnamefix.patch Patch1003: cloud-init-centos-opennebula-requiretty.patch Patch1004: cloud-init-centos-cloudstack-urlhandling.patch # Deal with noarch -> arch # https://bugzilla.redhat.com/show_bug.cgi?id=1067089 Obsoletes: cloud-init < 0.7.5-3 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: python-devel BuildRequires: python-setuptools %if 0%{?rhel} >= 7 BuildRequires: systemd-units %endif # if > C7 %ifarch %{?ix86} x86_64 ia64 Requires: dmidecode %endif Requires: e2fsprogs Requires: iproute Requires: libselinux-python Requires: net-tools Requires: policycoreutils-python Requires: procps Requires: python-argparse Requires: python-boto Requires: python-cheetah Requires: python-configobj Requires: python-jsonpatch # python-oauth is required by the MAAS datasource Requires: python-oauth Requires: python-prettytable Requires: python-requests # python-serial is required by the SmartOS datasource but doesn't exist in el6 %if 0%{?rhel} >= 7 Requires: python-serial %endif Requires: PyYAML Requires: rsyslog Requires: shadow-utils Requires: /usr/bin/run-parts %if 0%{?rhel} >= 7 Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units %else # < C7 Requires(post): chkconfig Requires(preun): chkconfig Requires(postun): initscripts %endif # if > C7 %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 %{name}-%{version} %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 %patch0004 -p1 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 cp -p %{SOURCE2} README.rhel %build %{__python} setup.py build %install rm -rf $RPM_BUILD_ROOT %{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT # Don't ship the tests rm -r $RPM_BUILD_ROOT%{python_sitelib}/tests mkdir -p $RPM_BUILD_ROOT/var/lib/cloud %if 0%{?rhel} >= 7 # /run/cloud-init needs a tmpfiles.d entry mkdir -p $RPM_BUILD_ROOT/run/cloud-init mkdir -p $RPM_BUILD_ROOT/%{_tmpfilesdir} cp -p %{SOURCE3} $RPM_BUILD_ROOT/%{_tmpfilesdir}/%{name}.conf %endif # if >= C7 # We supply our own config file since our software differs from Ubuntu's. cp -p %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg %if 0%{?rhel} < 7 sed -i -e 's/, systemd-journal//' $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg %endif if < C7 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d cp -p tools/21-cloudinit.conf $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf %if 0%{?rhel} >= 7 # Install the systemd bits mkdir -p $RPM_BUILD_ROOT/%{_unitdir} cp -p systemd/* $RPM_BUILD_ROOT/%{_unitdir} %else # < C7 # Install the init scripts mkdir -p $RPM_BUILD_ROOT/%{_initrddir} install -p -m 755 sysvinit/debian/* $RPM_BUILD_ROOT/%{_initrddir}/ install -p -m 755 sysvinit/redhat/* $RPM_BUILD_ROOT/%{_initrddir}/ %endif # if >= C7 %clean rm -rf $RPM_BUILD_ROOT %if 0%{?rhel} >= 7 %post if [ $1 -eq 1 ] ; then # Initial installation # Enabled by default per "runs once then goes away" exception /bin/systemctl enable cloud-config.service >/dev/null 2>&1 || : /bin/systemctl enable cloud-final.service >/dev/null 2>&1 || : /bin/systemctl enable cloud-init.service >/dev/null 2>&1 || : /bin/systemctl enable cloud-init-local.service >/dev/null 2>&1 || : fi %preun if [ $1 -eq 0 ] ; then # Package removal, not upgrade /bin/systemctl --no-reload disable cloud-config.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable cloud-final.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable cloud-init.service >/dev/null 2>&1 || : /bin/systemctl --no-reload disable cloud-init-local.service >/dev/null 2>&1 || : # One-shot services -> no need to stop fi %postun /bin/systemctl daemon-reload >/dev/null 2>&1 || : # One-shot services -> no need to restart %else # < C7 %post if [ $1 -eq 1 ] ; then # Initial installation # Enabled by default per "runs once then goes away" exception for svc in init-local init config final; do chkconfig --add cloud-$svc chkconfig cloud-$svc on done fi %preun if [ $1 -eq 0 ] ; then # Package removal, not upgrade for svc in init-local init config final; do chkconfig cloud-$svc off chkconfig --del cloud-$svc done # One-shot services -> no need to stop fi %postun # One-shot services -> no need to restart %endif # if >= C7 %files %if 0%{?rhel} >= 7 %license LICENSE %else # < C7 %doc LICENSE %endif # >= C7 %doc ChangeLog TODO README.rhel %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg %dir %{_sysconfdir}/cloud/cloud.cfg.d %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/*.cfg %doc %{_sysconfdir}/cloud/cloud.cfg.d/README %dir %{_sysconfdir}/cloud/templates %config(noreplace) %{_sysconfdir}/cloud/templates/* %{python_sitelib}/* %{_libexecdir}/%{name} %{_bindir}/cloud-init* %doc %{_datadir}/doc/%{name} %dir /var/lib/cloud %if 0%{?rhel} >= 7 %{_unitdir}/cloud-config.service %{_unitdir}/cloud-config.target %{_unitdir}/cloud-final.service %{_unitdir}/cloud-init-local.service %{_unitdir}/cloud-init.service %{_tmpfilesdir}/%{name}.conf %dir /run/cloud-init %else # < C7 %{_initrddir}/cloud-* %endif # if >= C7 %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf %changelog * Fri Oct 17 2014 Juerg Haefliger 0.7.5-10.2 - Add support for C6 and sysvrc * Wed Sep 10 2014 Karanbir Singh 0.7.5-10.el7.centos.1 - Bump release to prevent flapping with EPEL package * Fri Aug 29 2014 Karanbir Singh 0.7.5-2.el7.centos.1 - Add OpenNebula patch to work with requiretty in sudoers (Jfontan #7543) - Add cloudstack url workaround patch (Lucian #7544) * Tue Aug 26 2014 Karanbir Singh 0.7.5-2.el7.centos - Bump ver * Wed Aug 13 2014 Karanbir Singh - add a patch to fix hostname issues ( Thomas Oulevey #7545) * Tue Jul 29 2014 Karanbir Singh - Upgrade the opennebula datasource (Jfontan #7543) * Tue Jul 15 2014 Karanbir Singh - default to using centos as the login id * Mon Jun 23 2014 Lars Kellogg-Stedman 0.7.5-1 (redhat) - Rebased against upstream 0.7.5-6 in order to pull in GCE support. * Thu Jun 12 2014 Dennis Gilmore - 0.7.5-6 - fix typo in settings.py preventing metadata being fecthed in ec2 * Mon Jun 9 2014 Garrett Holmstrom - 0.7.5-5 - Stopped calling ``udevadm settle'' with --quiet since systemd 213 removed it * Sat Jun 07 2014 Fedora Release Engineering - 0.7.5-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Mon Jun 2 2014 Garrett Holmstrom - 0.7.5-3 - Make dmidecode dependency arch-dependent [RH:1025071 RH:1067089] * Mon Jun 2 2014 Garrett Holmstrom - 0.7.2-9 - Write /etc/locale.conf instead of /etc/sysconfig/i18n [RH:1008250] - Add tmpfiles.d configuration for /run/cloud-init [RH:1103761] - Use the license rpm macro - BuildRequire python-setuptools, not python-setuptools-devel * Fri May 30 2014 Matthew Miller - 0.7.5-2 - add missing python-jsonpatch dependency [RH:1103281] * Tue Apr 29 2014 Sam Kottler - 0.7.5-1 - Update to 0.7.5 and remove patches which landed in the release * Sat Jan 25 2014 Sam Kottler - 0.7.2-8 - Remove patch to the Puppet service unit name [RH:1057860] * Tue Sep 24 2013 Garrett Holmstrom - 0.7.2-7 - Dropped xfsprogs dependency [RH:974329] * Tue Sep 24 2013 Garrett Holmstrom - 0.7.2-6 - Added yum-add-repo module * Fri Sep 20 2013 Garrett Holmstrom - 0.7.2-5 - Fixed puppet agent service name [RH:1008250] - Let systemd handle console output [RH:977952 LP:1228434] - Fixed restorecon failure when selinux is disabled [RH:967002 LP:1228441] - Fixed rsyslog log filtering - Added missing modules [RH:966888] * Sat Aug 03 2013 Fedora Release Engineering - 0.7.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Sat Jun 15 2013 Matthew Miller - 0.7.2-3 - switch ec2-user to "fedora" -- see bugzilla #971439. To use another name, use #cloud-config option "users:" in userdata in cloud metadata service - add that user to systemd-journal group * Fri May 17 2013 Steven Hardy - 0.7.2 - Update to the 0.7.2 release * Thu May 02 2013 Steven Hardy - 0.7.2-0.1.bzr809 - Rebased against upstream rev 809, fixes several F18 related issues - Added dependency on python-requests * Sat Apr 6 2013 Orion Poplawski - 0.7.1-4 - Don't ship tests * Wed Feb 13 2013 Fedora Release Engineering - 0.7.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Thu Dec 13 2012 Garrett Holmstrom - 0.7.1-2 - Added default_user to cloud.cfg (this is required for ssh keys to work) * Wed Nov 21 2012 Garrett Holmstrom - 0.7.1-1 - Rebased against version 0.7.1 - Fixed broken sudoers file generation - Fixed "resize_root: noblock" [LP:1080985] * Tue Oct 9 2012 Garrett Holmstrom - 0.7.0-1 - Rebased against version 0.7.0 - Fixed / filesystem resizing * Sat Sep 22 2012 Garrett Holmstrom - 0.7.0-0.3.bzr659 - Added dmidecode dependency for DataSourceAltCloud * Sat Sep 22 2012 Garrett Holmstrom - 0.7.0-0.2.bzr659 - Rebased against upstream rev 659 - Fixed hostname persistence - Fixed ssh key printing - Fixed sudoers file permissions * Mon Sep 17 2012 Garrett Holmstrom - 0.7.0-0.1.bzr650 - Rebased against upstream rev 650 - Added support for useradd --selinux-user * Thu Sep 13 2012 Garrett Holmstrom - 0.6.3-0.5.bzr532 - Use a FQDN (instance-data.) for instance data URL fallback [RH:850916 LP:1040200] - Shut off systemd timeouts [RH:836269] - Send output to the console [RH:854654] * Wed Jul 18 2012 Fedora Release Engineering - 0.6.3-0.4.bzr532 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Wed Jun 27 2012 Pádraig Brady - 0.6.3-0.3.bzr532 - Add support for installing yum packages * Sat Mar 31 2012 Andy Grimm - 0.6.3-0.2.bzr532 - Fixed incorrect interpretation of relative path for AuthorizedKeysFile (BZ #735521) * Mon Mar 5 2012 Garrett Holmstrom - 0.6.3-0.1.bzr532 - Rebased against upstream rev 532 - Fixed runparts() incompatibility with Fedora * Thu Jan 12 2012 Fedora Release Engineering - 0.6.2-0.8.bzr457 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Wed Oct 5 2011 Garrett Holmstrom - 0.6.2-0.7.bzr457 - Disabled SSH key-deleting on startup * Wed Sep 28 2011 Garrett Holmstrom - 0.6.2-0.6.bzr457 - Consolidated selinux file context patches - Fixed cloud-init.service dependencies - Updated sshkeytypes patch - Dealt with differences from Ubuntu's sshd * Sat Sep 24 2011 Garrett Holmstrom - 0.6.2-0.5.bzr457 - Rebased against upstream rev 457 - Added missing dependencies * Fri Sep 23 2011 Garrett Holmstrom - 0.6.2-0.4.bzr450 - Added more macros to the spec file * Fri Sep 23 2011 Garrett Holmstrom - 0.6.2-0.3.bzr450 - Fixed logfile permission checking - Fixed SSH key generation - Fixed a bad method call in FQDN-guessing [LP:857891] - Updated localefile patch - Disabled the grub_dpkg module - Fixed failures due to empty script dirs [LP:857926] * Fri Sep 23 2011 Garrett Holmstrom - 0.6.2-0.2.bzr450 - Updated tzsysconfig patch * Wed Sep 21 2011 Garrett Holmstrom - 0.6.2-0.1.bzr450 - Initial packaging