]> git.pld-linux.org Git - packages/ganeti.git/blame - ganeti.spec
- updated files
[packages/ganeti.git] / ganeti.spec
CommitLineData
7e1fcc70
JR
1Summary: Cluster-based virtualization management software
2Name: ganeti
86f7b894 3Version: 2.7.0
7e1fcc70
JR
4Release: 0.1
5License: GPL v2
6Group: Applications/System
7Source0: https://ganeti.googlecode.com/files/%{name}-%{version}.tar.gz
86f7b894 8# Source0-md5: c1f6a94ea4ec395325e47c16db2e5245
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 \
126 --enable-htools \
127 --enable-htools-rapi \
128 --enable-confd=python \
129 --enable-socat-escape \
130 --with-ssh-initscript=/etc/rc.d/init.d/sshd \
131 --with-ssh-config-dir=/stc/ssh \
132 --with-xen-cmd=xl \
133 --with-kvm-path=/usr/bin/qemu-kvm
134
135%{__make}
136
137%install
138rm -rf $RPM_BUILD_ROOT
43241b14 139install -d $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdtmpfilesdir}} \
bc935a7a 140 $RPM_BUILD_ROOT/etc/{ganeti,cron.d,bash_completion.d,sysconfig,rc.d/init.d}
7e1fcc70
JR
141
142%{__make} install \
143 DESTDIR=$RPM_BUILD_ROOT
144
a24e1f94
ER
145cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ganeti.conf
146install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-confd
147install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-masterd
148install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-noded
149install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-rapi
bc935a7a 150
4a9e23c9
JR
151%{__sed} -i -e 's|@LIBDIR@|%{_libdir}|g' $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-*
152
a24e1f94
ER
153cp -p doc/examples/bash_completion $RPM_BUILD_ROOT/etc/bash_completion.d/ganeti
154cp -p doc/examples/ganeti.cron $RPM_BUILD_ROOT/etc/cron.d/ganeti
155cp -p doc/examples/ganeti.default $RPM_BUILD_ROOT/etc/sysconfig/ganeti
156cp -p doc/examples/ganeti.target $RPM_BUILD_ROOT%{systemdunitdir}
157cp -p doc/examples/ganeti.target $RPM_BUILD_ROOT%{systemdunitdir}
158cp -p doc/examples/ganeti-{noded,masterd,rapi,confd}.service $RPM_BUILD_ROOT%{systemdunitdir}
7adb0d04 159
43241b14
JR
160%py_postclean
161
7e1fcc70
JR
162%clean
163rm -rf $RPM_BUILD_ROOT
164
7e1fcc70 165%post
da74baa0
JR
166/sbin/chkconfig --add ganeti-noded
167%service ganeti-noded restart
168/sbin/chkconfig --add ganeti-masterd
169%service ganeti-masterd restart
170/sbin/chkconfig --add ganeti-rapi
171%service ganeti-rapi restart
172/sbin/chkconfig --add ganeti-confd
173%service ganeti-confd restart
bc935a7a 174%systemd_post ganeti.target ganeti-noded.service ganeti-masterd.service ganeti-rapi.service ganeti-confd.service
7e1fcc70
JR
175
176%preun
177if [ "$1" = "0" ]; then
da74baa0
JR
178 %service -q ganeti-confd stop
179 /sbin/chkconfig --del ganeti-confd
180 %service -q ganeti-rapi stop
181 /sbin/chkconfig --del ganeti-rapi
182 %service -q ganeti-masterd stop
183 /sbin/chkconfig --del ganeti-masterd
184 %service -q ganeti-noded stop
185 /sbin/chkconfig --del ganeti-noded
7e1fcc70 186fi
bc935a7a 187%systemd_preun ganeti.target ganeti-noded.service ganeti-masterd.service ganeti-rapi.service ganeti-confd.service
7e1fcc70
JR
188
189%postun
190%systemd_reload
7e1fcc70
JR
191
192%files
193%defattr(644,root,root,755)
7adb0d04 194%doc NEWS README UPGRADE
bc935a7a
JR
195%attr(754,root,root) /etc/rc.d/init.d/ganeti-confd
196%attr(754,root,root) /etc/rc.d/init.d/ganeti-masterd
197%attr(754,root,root) /etc/rc.d/init.d/ganeti-noded
198%attr(754,root,root) /etc/rc.d/init.d/ganeti-rapi
199%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ganeti
200%dir %{_sysconfdir}/ganeti
201%{systemdunitdir}/ganeti.target
202%{systemdunitdir}/ganeti-confd.service
203%{systemdunitdir}/ganeti-masterd.service
204%{systemdunitdir}/ganeti-noded.service
205%{systemdunitdir}/ganeti-rapi.service
7adb0d04 206%{systemdtmpfilesdir}/ganeti.conf
bc935a7a 207/etc/cron.d/ganeti
7adb0d04
JR
208%dir %{_libdir}/ganeti
209%{_libdir}/ganeti/check-cert-expired
210%{_libdir}/ganeti/daemon-util
211%{_libdir}/ganeti/ensure-dirs
7adb0d04
JR
212%{_libdir}/ganeti/import-export
213%{_libdir}/ganeti/kvm-ifup
b327c64e
JR
214%{_libdir}/ganeti/mon-collector
215%{_libdir}/ganeti/node-daemon-setup
216%{_libdir}/ganeti/prepare-node-join
43241b14 217%dir %{_libdir}/ganeti/iallocators
7adb0d04
JR
218%dir %{_libdir}/ganeti/tools
219%{_libdir}/ganeti/tools/burnin
220%{_libdir}/ganeti/tools/cfgshell
221%{_libdir}/ganeti/tools/cfgupgrade
222%{_libdir}/ganeti/tools/cfgupgrade12
223%{_libdir}/ganeti/tools/cluster-merge
224%{_libdir}/ganeti/tools/confd-client
225%{_libdir}/ganeti/tools/fmtjson
226%{_libdir}/ganeti/tools/kvm-console-wrapper
227%{_libdir}/ganeti/tools/lvmstrap
228%{_libdir}/ganeti/tools/master-ip-setup
229%{_libdir}/ganeti/tools/move-instance
b327c64e 230%{_libdir}/ganeti/tools/node-cleanup
7adb0d04
JR
231%{_libdir}/ganeti/tools/ovfconverter
232%{_libdir}/ganeti/tools/sanitize-config
b327c64e
JR
233%{_libdir}/ganeti/tools/users-setup
234%{_libdir}/ganeti/tools/vcluster-setup
7adb0d04
JR
235%{_libdir}/ganeti/tools/xen-console-wrapper
236%attr(755,root,root) %{_sbindir}/ganeti-cleaner
237%attr(755,root,root) %{_sbindir}/ganeti-confd
238%attr(755,root,root) %{_sbindir}/ganeti-listrunner
239%attr(755,root,root) %{_sbindir}/ganeti-masterd
240%attr(755,root,root) %{_sbindir}/ganeti-noded
241%attr(755,root,root) %{_sbindir}/ganeti-rapi
242%attr(755,root,root) %{_sbindir}/ganeti-watcher
243%attr(755,root,root) %{_sbindir}/gnt-backup
244%attr(755,root,root) %{_sbindir}/gnt-cluster
245%attr(755,root,root) %{_sbindir}/gnt-debug
246%attr(755,root,root) %{_sbindir}/gnt-group
247%attr(755,root,root) %{_sbindir}/gnt-instance
248%attr(755,root,root) %{_sbindir}/gnt-job
b327c64e 249%attr(755,root,root) %{_sbindir}/gnt-network
7adb0d04
JR
250%attr(755,root,root) %{_sbindir}/gnt-node
251%attr(755,root,root) %{_sbindir}/gnt-os
b327c64e
JR
252%attr(755,root,root) %{_sbindir}/gnt-storage
253%{_mandir}/man7/ganeti-extstorage-interface.7*
7adb0d04
JR
254%{_mandir}/man7/ganeti-os-interface.7*
255%{_mandir}/man7/ganeti.7*
b327c64e 256%{_mandir}/man7/mon-collector.7*
7adb0d04
JR
257%{_mandir}/man8/ganeti-cleaner.8*
258%{_mandir}/man8/ganeti-confd.8*
259%{_mandir}/man8/ganeti-listrunner.8*
260%{_mandir}/man8/ganeti-masterd.8*
261%{_mandir}/man8/ganeti-noded.8*
262%{_mandir}/man8/ganeti-rapi.8*
263%{_mandir}/man8/ganeti-watcher.8*
264%{_mandir}/man8/gnt-backup.8*
265%{_mandir}/man8/gnt-cluster.8*
266%{_mandir}/man8/gnt-debug.8*
267%{_mandir}/man8/gnt-group.8*
268%{_mandir}/man8/gnt-instance.8*
269%{_mandir}/man8/gnt-job.8*
b327c64e 270%{_mandir}/man8/gnt-network.8*
7adb0d04
JR
271%{_mandir}/man8/gnt-node.8*
272%{_mandir}/man8/gnt-os.8*
b327c64e 273%{_mandir}/man8/gnt-storage.8*
7adb0d04
JR
274%dir %{py_sitescriptdir}/ganeti
275%{py_sitescriptdir}/ganeti/*.py*
276%dir %{py_sitescriptdir}/ganeti/client
277%{py_sitescriptdir}/ganeti/client/*.py*
278%dir %{py_sitescriptdir}/ganeti/confd
279%{py_sitescriptdir}/ganeti/confd/*.py*
280%dir %{py_sitescriptdir}/ganeti/http
281%{py_sitescriptdir}/ganeti/http/*.py*
282%dir %{py_sitescriptdir}/ganeti/hypervisor
283%{py_sitescriptdir}/ganeti/hypervisor/*.py*
284%dir %{py_sitescriptdir}/ganeti/impexpd
285%{py_sitescriptdir}/ganeti/impexpd/*.py*
286%dir %{py_sitescriptdir}/ganeti/masterd
287%{py_sitescriptdir}/ganeti/masterd/*.py*
288%dir %{py_sitescriptdir}/ganeti/rapi
289%{py_sitescriptdir}/ganeti/rapi/*.py*
290%dir %{py_sitescriptdir}/ganeti/server
291%{py_sitescriptdir}/ganeti/server/*.py*
292%dir %{py_sitescriptdir}/ganeti/tools
293%{py_sitescriptdir}/ganeti/tools/*.py*
294%dir %{py_sitescriptdir}/ganeti/utils
295%{py_sitescriptdir}/ganeti/utils/*.py*
296%dir %{py_sitescriptdir}/ganeti/watcher
297%{py_sitescriptdir}/ganeti/watcher/*.py*
7e1fcc70 298
554d0f8c 299%files htools
7e1fcc70 300%defattr(644,root,root,755)
a24e1f94
ER
301%attr(755,root,root) %{_bindir}/hbal
302%attr(755,root,root) %{_bindir}/hcheck
303%attr(755,root,root) %{_bindir}/hinfo
b327c64e 304%attr(755,root,root) %{_bindir}/hroller
a24e1f94
ER
305%attr(755,root,root) %{_bindir}/hscan
306%attr(755,root,root) %{_bindir}/hspace
307%attr(755,root,root) %{_bindir}/htools
554d0f8c
JR
308%{_libdir}/ganeti/iallocators/hail
309%{_mandir}/man1/hail.1*
310%{_mandir}/man1/hbal.1*
311%{_mandir}/man1/hcheck.1*
312%{_mandir}/man1/hinfo.1*
b327c64e 313%{_mandir}/man1/hroller.1*
554d0f8c
JR
314%{_mandir}/man1/hscan.1*
315%{_mandir}/man1/hspace.1*
316%{_mandir}/man1/htools.1*
bc935a7a
JR
317
318%files -n bash-completion-ganeti
319%defattr(644,root,root,755)
320/etc/bash_completion.d/ganeti
This page took 0.162158 seconds and 4 git commands to generate.