]> git.pld-linux.org Git - packages/ganeti.git/blame - ganeti.spec
- 2.7.1
[packages/ganeti.git] / ganeti.spec
CommitLineData
7e1fcc70
JR
1Summary: Cluster-based virtualization management software
2Name: ganeti
91589048 3Version: 2.7.1
7e1fcc70
JR
4Release: 0.1
5License: GPL v2
6Group: Applications/System
7Source0: https://ganeti.googlecode.com/files/%{name}-%{version}.tar.gz
91589048 8# Source0-md5: 67f08692bca01d6d93b404ff83ae3a12
7adb0d04 9Source1: %{name}.tmpfiles
a24e1f94
ER
10Source2: %{name}-confd.init
11Source3: %{name}-masterd.init
12Source4: %{name}-noded.init
13Source5: %{name}-rapi.init
554d0f8c 14Patch0: fix-no-kvm.patch
bc935a7a 15Patch1: systemd.patch
4a9e23c9 16Patch2: daemon-util-use-service.patch
7e1fcc70 17URL: https://code.google.com/p/ganeti/
bc935a7a
JR
18BuildRequires: autoconf
19BuildRequires: automake
20BuildRequires: curl-devel
7e1fcc70
JR
21BuildRequires: fakeroot
22BuildRequires: gawk
23BuildRequires: ghc
86f7b894 24BuildRequires: ghc-Crypto
7e1fcc70
JR
25BuildRequires: ghc-QuickCheck
26BuildRequires: ghc-curl
27BuildRequires: ghc-haskell-platform
86f7b894
JR
28BuildRequires: ghc-hinotify
29BuildRequires: ghc-hslogger
7e1fcc70 30BuildRequires: ghc-json
86f7b894
JR
31BuildRequires: ghc-regex-pcre
32BuildRequires: ghc-utf8-string
bc935a7a 33BuildRequires: gmp-devel
7e1fcc70
JR
34BuildRequires: hlint
35BuildRequires: hscolour
36BuildRequires: python
37BuildRequires: python-affinity
86f7b894 38BuildRequires: python-bitarray
a24e1f94 39BuildRequires: python-devel
a24e1f94 40BuildRequires: python-distribute
86f7b894 41BuildRequires: python-ipaddr
7e1fcc70
JR
42BuildRequires: python-modules
43BuildRequires: python-paramiko
bc935a7a 44BuildRequires: python-pyOpenSSL
7e1fcc70
JR
45BuildRequires: python-pycurl
46BuildRequires: python-pyinotify
47BuildRequires: python-pyparsing
48BuildRequires: python-simplejson
43241b14 49BuildRequires: rpm-pythonprov
7e1fcc70 50BuildRequires: rpmbuild(macros) >= 1.647
43241b14 51Requires(post,preun): /sbin/chkconfig
7e1fcc70 52Requires(post,preun,postun): systemd-units >= 38
adaac8ef
JR
53Requires: bridge-utils
54Requires: drbdsetup >= 8.0.12
55Requires: drbd-udev
56Requires: iproute2
57Requires: iputils-arping
58Requires: lvm2
59Requires: openssh-clients
60Requires: openssh-server
61Requires: python
62Requires: python-affinity
63Requires: python-devel
64Requires: python-distribute
65Requires: python-modules
66Requires: python-paramiko
67Requires: python-pycurl
68Requires: python-pyinotify
69Requires: python-pyOpenSSL
70Requires: python-pyparsing
71Requires: python-simplejson
43241b14 72Requires: rc-scripts
adaac8ef 73Requires: socat
7e1fcc70 74Requires: systemd-units >= 0.38
adaac8ef
JR
75#Suggests: ganeti-instance-debootstrap
76Suggests: qemu-kvm
77Suggests: xen
7e1fcc70
JR
78BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79
80%description
81Ganeti is a cluster virtual server management software tool built on
82top of existing virtualization technologies such as Xen or KVM and
83other Open Source software.
84
554d0f8c
JR
85%package htools
86Summary: Cluster allocation tools for Ganeti
87Group: Applications/System
88Requires: %{name} = %{version}-%{release}
7e1fcc70 89
554d0f8c
JR
90%description htools
91These are additional tools used for enhanced allocation and capacity
92calculation on Ganeti clusters.
7e1fcc70 93
554d0f8c
JR
94The tools provided are:
95 - hail, an iallocator script for ganeti
96 - hbal, used to redistribute instances on the cluster
97 - hspace, used for capacity calculation
98 - hscan, used to gather cluster files for offline use in hbal/hspace
7e1fcc70 99
bc935a7a
JR
100%package -n bash-completion-ganeti
101Summary: bash-completion for ganeti
102Group: Applications/Shells
103Requires: %{name} = %{version}
104
105%description -n bash-completion-ganeti
106bash-completion for ganeti.
107
7e1fcc70
JR
108%prep
109%setup -q
554d0f8c 110%patch0 -p1
bc935a7a 111%patch1 -p1
4a9e23c9 112%patch2 -p1
7e1fcc70
JR
113
114%build
bc935a7a
JR
115%{__aclocal} -I autotools
116%{__autoconf}
117%{__automake}
7e1fcc70
JR
118# DON'T use full path to xl binary, just 'xl' (see lib/hypervisor/hv_xen.py for a reason)
119%configure \
120 IP_PATH=/sbin/ip \
121 DOT=/usr/bin/dot \
122 PYLINT=/usr/bin/pylint \
123 SOCAT=/usr/bin/socat \
124 QEMUIMG_PATH=/usr/bin/qemu-img \
125 --enable-syslog \
7e1fcc70
JR
126 --enable-htools-rapi \
127 --enable-confd=python \
128 --enable-socat-escape \
129 --with-ssh-initscript=/etc/rc.d/init.d/sshd \
130 --with-ssh-config-dir=/stc/ssh \
131 --with-xen-cmd=xl \
132 --with-kvm-path=/usr/bin/qemu-kvm
133
134%{__make}
135
136%install
137rm -rf $RPM_BUILD_ROOT
43241b14 138install -d $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdtmpfilesdir}} \
bc935a7a 139 $RPM_BUILD_ROOT/etc/{ganeti,cron.d,bash_completion.d,sysconfig,rc.d/init.d}
7e1fcc70
JR
140
141%{__make} install \
142 DESTDIR=$RPM_BUILD_ROOT
143
a24e1f94
ER
144cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ganeti.conf
145install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-confd
146install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-masterd
147install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-noded
148install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-rapi
bc935a7a 149
4a9e23c9
JR
150%{__sed} -i -e 's|@LIBDIR@|%{_libdir}|g' $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-*
151
a24e1f94
ER
152cp -p doc/examples/bash_completion $RPM_BUILD_ROOT/etc/bash_completion.d/ganeti
153cp -p doc/examples/ganeti.cron $RPM_BUILD_ROOT/etc/cron.d/ganeti
154cp -p doc/examples/ganeti.default $RPM_BUILD_ROOT/etc/sysconfig/ganeti
155cp -p doc/examples/ganeti.target $RPM_BUILD_ROOT%{systemdunitdir}
156cp -p doc/examples/ganeti.target $RPM_BUILD_ROOT%{systemdunitdir}
157cp -p doc/examples/ganeti-{noded,masterd,rapi,confd}.service $RPM_BUILD_ROOT%{systemdunitdir}
7adb0d04 158
43241b14
JR
159%py_postclean
160
7e1fcc70
JR
161%clean
162rm -rf $RPM_BUILD_ROOT
163
7e1fcc70 164%post
da74baa0
JR
165/sbin/chkconfig --add ganeti-noded
166%service ganeti-noded restart
167/sbin/chkconfig --add ganeti-masterd
168%service ganeti-masterd restart
169/sbin/chkconfig --add ganeti-rapi
170%service ganeti-rapi restart
171/sbin/chkconfig --add ganeti-confd
172%service ganeti-confd restart
bc935a7a 173%systemd_post ganeti.target ganeti-noded.service ganeti-masterd.service ganeti-rapi.service ganeti-confd.service
7e1fcc70
JR
174
175%preun
176if [ "$1" = "0" ]; then
da74baa0
JR
177 %service -q ganeti-confd stop
178 /sbin/chkconfig --del ganeti-confd
179 %service -q ganeti-rapi stop
180 /sbin/chkconfig --del ganeti-rapi
181 %service -q ganeti-masterd stop
182 /sbin/chkconfig --del ganeti-masterd
183 %service -q ganeti-noded stop
184 /sbin/chkconfig --del ganeti-noded
7e1fcc70 185fi
bc935a7a 186%systemd_preun ganeti.target ganeti-noded.service ganeti-masterd.service ganeti-rapi.service ganeti-confd.service
7e1fcc70
JR
187
188%postun
189%systemd_reload
7e1fcc70
JR
190
191%files
192%defattr(644,root,root,755)
7adb0d04 193%doc NEWS README UPGRADE
bc935a7a
JR
194%attr(754,root,root) /etc/rc.d/init.d/ganeti-confd
195%attr(754,root,root) /etc/rc.d/init.d/ganeti-masterd
196%attr(754,root,root) /etc/rc.d/init.d/ganeti-noded
197%attr(754,root,root) /etc/rc.d/init.d/ganeti-rapi
198%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ganeti
199%dir %{_sysconfdir}/ganeti
200%{systemdunitdir}/ganeti.target
201%{systemdunitdir}/ganeti-confd.service
202%{systemdunitdir}/ganeti-masterd.service
203%{systemdunitdir}/ganeti-noded.service
204%{systemdunitdir}/ganeti-rapi.service
7adb0d04 205%{systemdtmpfilesdir}/ganeti.conf
bc935a7a 206/etc/cron.d/ganeti
7adb0d04
JR
207%dir %{_libdir}/ganeti
208%{_libdir}/ganeti/check-cert-expired
209%{_libdir}/ganeti/daemon-util
210%{_libdir}/ganeti/ensure-dirs
7adb0d04
JR
211%{_libdir}/ganeti/import-export
212%{_libdir}/ganeti/kvm-ifup
b327c64e
JR
213%{_libdir}/ganeti/mon-collector
214%{_libdir}/ganeti/node-daemon-setup
215%{_libdir}/ganeti/prepare-node-join
43241b14 216%dir %{_libdir}/ganeti/iallocators
7adb0d04
JR
217%dir %{_libdir}/ganeti/tools
218%{_libdir}/ganeti/tools/burnin
219%{_libdir}/ganeti/tools/cfgshell
220%{_libdir}/ganeti/tools/cfgupgrade
221%{_libdir}/ganeti/tools/cfgupgrade12
222%{_libdir}/ganeti/tools/cluster-merge
223%{_libdir}/ganeti/tools/confd-client
224%{_libdir}/ganeti/tools/fmtjson
225%{_libdir}/ganeti/tools/kvm-console-wrapper
226%{_libdir}/ganeti/tools/lvmstrap
227%{_libdir}/ganeti/tools/master-ip-setup
228%{_libdir}/ganeti/tools/move-instance
b327c64e 229%{_libdir}/ganeti/tools/node-cleanup
7adb0d04
JR
230%{_libdir}/ganeti/tools/ovfconverter
231%{_libdir}/ganeti/tools/sanitize-config
b327c64e
JR
232%{_libdir}/ganeti/tools/users-setup
233%{_libdir}/ganeti/tools/vcluster-setup
7adb0d04
JR
234%{_libdir}/ganeti/tools/xen-console-wrapper
235%attr(755,root,root) %{_sbindir}/ganeti-cleaner
236%attr(755,root,root) %{_sbindir}/ganeti-confd
237%attr(755,root,root) %{_sbindir}/ganeti-listrunner
238%attr(755,root,root) %{_sbindir}/ganeti-masterd
239%attr(755,root,root) %{_sbindir}/ganeti-noded
240%attr(755,root,root) %{_sbindir}/ganeti-rapi
241%attr(755,root,root) %{_sbindir}/ganeti-watcher
242%attr(755,root,root) %{_sbindir}/gnt-backup
243%attr(755,root,root) %{_sbindir}/gnt-cluster
244%attr(755,root,root) %{_sbindir}/gnt-debug
245%attr(755,root,root) %{_sbindir}/gnt-group
246%attr(755,root,root) %{_sbindir}/gnt-instance
247%attr(755,root,root) %{_sbindir}/gnt-job
b327c64e 248%attr(755,root,root) %{_sbindir}/gnt-network
7adb0d04
JR
249%attr(755,root,root) %{_sbindir}/gnt-node
250%attr(755,root,root) %{_sbindir}/gnt-os
b327c64e
JR
251%attr(755,root,root) %{_sbindir}/gnt-storage
252%{_mandir}/man7/ganeti-extstorage-interface.7*
7adb0d04
JR
253%{_mandir}/man7/ganeti-os-interface.7*
254%{_mandir}/man7/ganeti.7*
b327c64e 255%{_mandir}/man7/mon-collector.7*
7adb0d04
JR
256%{_mandir}/man8/ganeti-cleaner.8*
257%{_mandir}/man8/ganeti-confd.8*
258%{_mandir}/man8/ganeti-listrunner.8*
259%{_mandir}/man8/ganeti-masterd.8*
260%{_mandir}/man8/ganeti-noded.8*
261%{_mandir}/man8/ganeti-rapi.8*
262%{_mandir}/man8/ganeti-watcher.8*
263%{_mandir}/man8/gnt-backup.8*
264%{_mandir}/man8/gnt-cluster.8*
265%{_mandir}/man8/gnt-debug.8*
266%{_mandir}/man8/gnt-group.8*
267%{_mandir}/man8/gnt-instance.8*
268%{_mandir}/man8/gnt-job.8*
b327c64e 269%{_mandir}/man8/gnt-network.8*
7adb0d04
JR
270%{_mandir}/man8/gnt-node.8*
271%{_mandir}/man8/gnt-os.8*
b327c64e 272%{_mandir}/man8/gnt-storage.8*
7adb0d04
JR
273%dir %{py_sitescriptdir}/ganeti
274%{py_sitescriptdir}/ganeti/*.py*
275%dir %{py_sitescriptdir}/ganeti/client
276%{py_sitescriptdir}/ganeti/client/*.py*
277%dir %{py_sitescriptdir}/ganeti/confd
278%{py_sitescriptdir}/ganeti/confd/*.py*
279%dir %{py_sitescriptdir}/ganeti/http
280%{py_sitescriptdir}/ganeti/http/*.py*
281%dir %{py_sitescriptdir}/ganeti/hypervisor
282%{py_sitescriptdir}/ganeti/hypervisor/*.py*
283%dir %{py_sitescriptdir}/ganeti/impexpd
284%{py_sitescriptdir}/ganeti/impexpd/*.py*
285%dir %{py_sitescriptdir}/ganeti/masterd
286%{py_sitescriptdir}/ganeti/masterd/*.py*
287%dir %{py_sitescriptdir}/ganeti/rapi
288%{py_sitescriptdir}/ganeti/rapi/*.py*
289%dir %{py_sitescriptdir}/ganeti/server
290%{py_sitescriptdir}/ganeti/server/*.py*
291%dir %{py_sitescriptdir}/ganeti/tools
292%{py_sitescriptdir}/ganeti/tools/*.py*
293%dir %{py_sitescriptdir}/ganeti/utils
294%{py_sitescriptdir}/ganeti/utils/*.py*
295%dir %{py_sitescriptdir}/ganeti/watcher
296%{py_sitescriptdir}/ganeti/watcher/*.py*
7e1fcc70 297
554d0f8c 298%files htools
7e1fcc70 299%defattr(644,root,root,755)
a24e1f94
ER
300%attr(755,root,root) %{_bindir}/hbal
301%attr(755,root,root) %{_bindir}/hcheck
302%attr(755,root,root) %{_bindir}/hinfo
b327c64e 303%attr(755,root,root) %{_bindir}/hroller
a24e1f94
ER
304%attr(755,root,root) %{_bindir}/hscan
305%attr(755,root,root) %{_bindir}/hspace
306%attr(755,root,root) %{_bindir}/htools
554d0f8c
JR
307%{_libdir}/ganeti/iallocators/hail
308%{_mandir}/man1/hail.1*
309%{_mandir}/man1/hbal.1*
310%{_mandir}/man1/hcheck.1*
311%{_mandir}/man1/hinfo.1*
b327c64e 312%{_mandir}/man1/hroller.1*
554d0f8c
JR
313%{_mandir}/man1/hscan.1*
314%{_mandir}/man1/hspace.1*
315%{_mandir}/man1/htools.1*
bc935a7a
JR
316
317%files -n bash-completion-ganeti
318%defattr(644,root,root,755)
319/etc/bash_completion.d/ganeti
This page took 0.103707 seconds and 4 git commands to generate.