164 lines
4.2 KiB
RPMSpec
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}
|