cloud-init/packages/redhat/cloud-init.spec.in

201 lines
5.1 KiB
RPMSpec

## This is a cheetah template
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
# 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
#for $d in $defines
%define ${d}
#end for
Name: cloud-init
Version: ${version}
Release: ${release}${subrelease}%{?dist}
Summary: Cloud instance init scripts
Group: System Environment/Base
License: dual license GPLv3 or Apache 2.0
URL: http://launchpad.net/cloud-init
Source0: ${archive_name}
BuildArch: noarch
BuildRoot: %{_tmppath}
BuildRequires: python-devel
BuildRequires: python-setuptools
BuildRequires: python-cheetah
# System util packages needed
Requires: shadow-utils
Requires: rsyslog
Requires: iproute
Requires: e2fsprogs
Requires: net-tools
Requires: procps
Requires: shadow-utils
Requires: sudo >= 1.7.2p2-3
# Install pypi 'dynamic' requirements
#for $r in $requires
Requires: ${r}
#end for
# Custom patches
#set $size = 0
#for $p in $patches
Patch${size}: $p
#set $size += 1
#end for
#if $sysvinit
Requires(post): chkconfig
Requires(postun): initscripts
Requires(preun): chkconfig
Requires(preun): initscripts
#end if
#if $systemd
BuildRequires: systemd-units
Requires(post): systemd-units
Requires(postun): systemd-units
Requires(preun): systemd-units
#end if
%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}~${release}
# Custom patches activation
#set $size = 0
#for $p in $patches
%patch${size} -p1
#set $size += 1
#end for
%build
%{__python} setup.py build
%install
%{__python} setup.py install -O1 \
--skip-build --root \$RPM_BUILD_ROOT \
--init-system=${init_sys}
# 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
# Remove the tests
rm -rf \$RPM_BUILD_ROOT%{python_sitelib}/tests
# Required dirs...
mkdir -p \$RPM_BUILD_ROOT/%{_sharedstatedir}/cloud
mkdir -p \$RPM_BUILD_ROOT/%{_libexecdir}/%{name}
#if $systemd
mkdir -p \$RPM_BUILD_ROOT/%{_unitdir}
cp -p systemd/* \$RPM_BUILD_ROOT/%{_unitdir}
#end if
%clean
rm -rf \$RPM_BUILD_ROOT
%post
#if $systemd
if [ \$1 -eq 1 ]
then
/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
#end if
#if $sysvinit
/sbin/chkconfig --add %{_initrddir}/cloud-init-local
/sbin/chkconfig --add %{_initrddir}/cloud-init
/sbin/chkconfig --add %{_initrddir}/cloud-config
/sbin/chkconfig --add %{_initrddir}/cloud-final
#end if
%preun
#if $sysvinit
if [ \$1 -eq 0 ]
then
/sbin/service cloud-init stop >/dev/null 2>&1 || :
/sbin/chkconfig --del cloud-init || :
/sbin/service cloud-init-local stop >/dev/null 2>&1 || :
/sbin/chkconfig --del cloud-init-local || :
/sbin/service cloud-config stop >/dev/null 2>&1 || :
/sbin/chkconfig --del cloud-config || :
/sbin/service cloud-final stop >/dev/null 2>&1 || :
/sbin/chkconfig --del cloud-final || :
fi
#end if
#if $systemd
if [ \$1 -eq 0 ]
then
/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 || :
fi
#end if
%postun
#if $systemd
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
#end if
%files
#if $sysvinit
%attr(0755, root, root) %{_initddir}/cloud-config
%attr(0755, root, root) %{_initddir}/cloud-final
%attr(0755, root, root) %{_initddir}/cloud-init-local
%attr(0755, root, root) %{_initddir}/cloud-init
#end if
#if $systemd
%{_unitdir}/cloud-*
#end if
# Program binaries
%{_bindir}/cloud-init*
%{_libexecdir}/%{name}/uncloud-init
%{_libexecdir}/%{name}/write-ssh-key-fingerprints
# Docs
%doc LICENSE ChangeLog TODO.rst 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
%{_libexecdir}/%{name}
%dir %{_sharedstatedir}/cloud
# Python code is here...
%{python_sitelib}/*
%changelog
${changelog}