## template: cheetah # 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: ${version} Release: 1${subrelease}%{?dist} Summary: Cloud instance init scripts Group: System/Management License: GPLv3 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 ${source_name} # 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