164 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			RPMSpec
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			4.1 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:        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 %{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}
 |