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