summaryrefslogtreecommitdiff
path: root/packages/suse
diff options
context:
space:
mode:
authorJuerg Haefliger <juergh@gmail.com>2013-06-27 13:46:56 +0200
committerJuerg Haefliger <juergh@gmail.com>2013-06-27 13:46:56 +0200
commit9a0c412be667c2b0b235ceef920ebd2df72c1d2f (patch)
treec5fc695bb2d2d70c899fab2c03a6619e69940deb /packages/suse
parentc8eb622ae0c3f9fab2b25112aa87a2dbf39788db (diff)
downloadcloud-init-git-9a0c412be667c2b0b235ceef920ebd2df72c1d2f.tar.gz
Add support for building a SLES rpm package
Diffstat (limited to 'packages/suse')
-rw-r--r--packages/suse/cloud-init.spec.in162
1 files changed, 162 insertions, 0 deletions
diff --git a/packages/suse/cloud-init.spec.in b/packages/suse/cloud-init.spec.in
new file mode 100644
index 00000000..296505c6
--- /dev/null
+++ b/packages/suse/cloud-init.spec.in
@@ -0,0 +1,162 @@
+## 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: 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
+
+# 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 Requires ; 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}