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