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