cloud-init/packages/suse/cloud-init.spec.in
2015-03-24 20:22:08 -04:00

164 lines
4.2 KiB
RPMSpec

## This is a cheetah template
# 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/Management
License: ASL 2.0
URL: http://launchpad.net/cloud-init
Source0: ${archive_name}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch: noarch
%endif
BuildRequires: fdupes
BuildRequires: filesystem
BuildRequires: python-devel
BuildRequires: python-setuptools
BuildRequires: python-cheetah
%if 0%{?suse_version} && 0%{?suse_version} <= 1210
%define initsys sysvinit
%else
%define initsys systemd
%endif
# System util packages needed
Requires: iproute2
Requires: e2fsprogs
Requires: net-tools
Requires: procps
Requires: sudo
# 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
%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 \
--skip-build --root=%{buildroot} --prefix=%{_prefix} \
--record-rpm=INSTALLED_FILES --install-lib=%{python_sitelib} \
--init-system=%{initsys}
# Remove non-SUSE templates
rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.debian.*
rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.redhat.*
rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.ubuntu.*
# Remove cloud-init tests
rm -r %{buildroot}/%{python_sitelib}/tests
# Move sysvinit scripts to the correct place and create symbolic links
%if %{initsys} == sysvinit
mkdir -p %{buildroot}/%{_initddir}
mv %{buildroot}%{_sysconfdir}/rc.d/init.d/* %{buildroot}%{_initddir}/
rmdir %{buildroot}%{_sysconfdir}/rc.d/init.d
rmdir %{buildroot}%{_sysconfdir}/rc.d
mkdir -p %{buildroot}/%{_sbindir}
pushd %{buildroot}/%{_initddir}
for file in * ; do
ln -s %{_initddir}/\${file} %{buildroot}/%{_sbindir}/rc\${file}
done
popd
%endif
# Move documentation
mkdir -p %{buildroot}/%{_defaultdocdir}
mv %{buildroot}/usr/share/doc/cloud-init %{buildroot}/%{_defaultdocdir}
for doc in TODO LICENSE ChangeLog requirements.txt; do
cp \${doc} %{buildroot}/%{_defaultdocdir}/cloud-init
done
# Remove duplicate files
%if 0%{?suse_version}
%fdupes %{buildroot}/%{python_sitelib}
%endif
mkdir -p %{buildroot}/var/lib/cloud
%postun
%insserv_cleanup
%files
# Sysvinit scripts
%if %{initsys} == 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
%{_sbindir}/rccloud-*
%endif
# Program binaries
%{_bindir}/cloud-init*
# There doesn't seem to be an agreed upon place for these
# although it appears the standard says /usr/lib but rpmbuild
# will try /usr/lib64 ??
/usr/lib/%{name}/uncloud-init
/usr/lib/%{name}/write-ssh-key-fingerprints
# Docs
%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/*
# Python code is here...
%{python_sitelib}/*
/var/lib/cloud
%changelog
${changelog}