]> git.pld-linux.org Git - packages/ganeti.git/blobdiff - ganeti.spec
- added logrotate config and config-backup script
[packages/ganeti.git] / ganeti.spec
index 99036bb3575b235e96e12a9aceed6a2a382c9611..d4db87eebef7db65b1629cc987dbe42072bd8df1 100644 (file)
@@ -1,19 +1,24 @@
 Summary:       Cluster-based virtualization management software
 Name:          ganeti
-Version:       2.6.2
-Release:       0.1
+Version:       2.9.3
+Release:       0.9
 License:       GPL v2
 Group:         Applications/System
-Source0:       https://ganeti.googlecode.com/files/%{name}-%{version}.tar.gz
-# Source0-md5: 9d9a0c5c0341d5775988961449f82b99
+Source0:       http://downloads.ganeti.org/releases/2.9/%{name}-%{version}.tar.gz
+# Source0-md5: 0542ca872bf2d57284359fcc8dc565ef
 Source1:       %{name}.tmpfiles
 Source2:       %{name}-confd.init
 Source3:       %{name}-masterd.init
 Source4:       %{name}-noded.init
 Source5:       %{name}-rapi.init
+Source6:       %{name}-luxid.init
+Source7:       %{name}-mond.init
+Source8:       %{name}.sysconfig
 Patch0:                fix-no-kvm.patch
 Patch1:                systemd.patch
 Patch2:                daemon-util-use-service.patch
+Patch3:                mtl.patch
+Patch4:                use-vm-openvswitch-link.patch
 URL:           https://code.google.com/p/ganeti/
 BuildRequires: autoconf
 BuildRequires: automake
@@ -21,19 +26,32 @@ BuildRequires:      curl-devel
 BuildRequires: fakeroot
 BuildRequires: gawk
 BuildRequires: ghc
+BuildRequires: ghc-Crypto
 BuildRequires: ghc-QuickCheck
 BuildRequires: ghc-curl
 BuildRequires: ghc-haskell-platform
+BuildRequires: ghc-hinotify
+BuildRequires: ghc-hslogger >= 1.2.3
 BuildRequires: ghc-json
+BuildRequires: ghc-regex-pcre
+BuildRequires: ghc-snap-server
+BuildRequires: ghc-temporary
+BuildRequires: ghc-utf8-string
 BuildRequires: gmp-devel
 BuildRequires: hlint
 BuildRequires: hscolour
+BuildRequires: pandoc
 BuildRequires: python
 BuildRequires: python-affinity
+BuildRequires: python-bitarray
+BuildRequires: python-coverage
 BuildRequires: python-devel
 BuildRequires: python-distribute
+BuildRequires: python-ipaddr
+BuildRequires: python-mock >= 1.0.1
 BuildRequires: python-modules
 BuildRequires: python-paramiko
+BuildRequires: python-pep8
 BuildRequires: python-pyOpenSSL
 BuildRequires: python-pycurl
 BuildRequires: python-pyinotify
@@ -45,7 +63,6 @@ Requires(post,preun): /sbin/chkconfig
 Requires(post,preun,postun):   systemd-units >= 38
 Requires:      bridge-utils
 Requires:      drbdsetup >= 8.0.12
-Requires:      drbd-udev
 Requires:      iproute2
 Requires:      iputils-arping
 Requires:      lvm2
@@ -53,8 +70,10 @@ Requires:    openssh-clients
 Requires:      openssh-server
 Requires:      python
 Requires:      python-affinity
+Requires:      python-bitarray
 Requires:      python-devel
 Requires:      python-distribute
+Requires:      python-ipaddr
 Requires:      python-modules
 Requires:      python-paramiko
 Requires:      python-pycurl
@@ -64,9 +83,10 @@ Requires:    python-pyparsing
 Requires:      python-simplejson
 Requires:      rc-scripts
 Requires:      socat
+Requires:      sudo
 Requires:      systemd-units >= 0.38
 #Suggests:     ganeti-instance-debootstrap
-Suggests:      qemu-kvm
+Suggests:      qemu
 Suggests:      xen
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -103,6 +123,8 @@ bash-completion for ganeti.
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 %build
 %{__aclocal} -I autotools
@@ -112,49 +134,74 @@ bash-completion for ganeti.
 %configure \
        IP_PATH=/sbin/ip \
        DOT=/usr/bin/dot \
+       PYCOVERAGE=/usr/bin/coverage-%{py_ver} \
        PYLINT=/usr/bin/pylint \
        SOCAT=/usr/bin/socat \
        QEMUIMG_PATH=/usr/bin/qemu-img \
        --enable-syslog \
-       --enable-htools \
-       --enable-htools-rapi \
-       --enable-confd=python \
+       --enable-confd \
+       --enable-monitoring \
        --enable-socat-escape \
        --with-ssh-initscript=/etc/rc.d/init.d/sshd \
-       --with-ssh-config-dir=/stc/ssh \
-       --with-xen-cmd=xl \
-       --with-kvm-path=/usr/bin/qemu-kvm
+       --with-ssh-config-dir=/etc/ssh \
+       --with-kvm-path=/usr/bin/qemu-kvm \
+       --enable-restricted-commands \
+       --with-user-prefix="gnt-" \
+       --with-group-prefix="gnt-" \
+       --with-export-dir=/var/lib/ganeti/export \
+       --with-iallocator-search-path=%{_libdir}/ganeti/iallocators \
+       --with-os-search-path=/srv/ganeti/os,%{_libdir}/ganeti/os,%{_datadir}/ganeti/os \
+       --with-extstorage-search-path=/srv/ganeti/extstorage,%{_libdir}/ganeti/extstorage,%{_datadir}/ganeti/extstorage
 
 %{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdtmpfilesdir}} \
-       $RPM_BUILD_ROOT/etc/{ganeti,cron.d,bash_completion.d,sysconfig,rc.d/init.d}
+       $RPM_BUILD_ROOT/etc/{ganeti,cron.d,bash_completion.d,sysconfig,rc.d/init.d,sudoers.d,logrotate.d}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
+install -d $RPM_BUILD_ROOT{%{_libdir},%{_datadir}}/ganeti/{os,extstorage}
+
 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ganeti.conf
 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-confd
 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-masterd
 install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-noded
 install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-rapi
+install -p %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-luxid
+install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-mond
 
 %{__sed} -i -e 's|@LIBDIR@|%{_libdir}|g' $RPM_BUILD_ROOT/etc/rc.d/init.d/ganeti-*
 
+cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/ganeti
+
 cp -p doc/examples/bash_completion $RPM_BUILD_ROOT/etc/bash_completion.d/ganeti
 cp -p doc/examples/ganeti.cron $RPM_BUILD_ROOT/etc/cron.d/ganeti
-cp -p doc/examples/ganeti.default $RPM_BUILD_ROOT/etc/sysconfig/ganeti
 cp -p doc/examples/ganeti.target $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p doc/examples/ganeti.target $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p doc/examples/ganeti-{noded,masterd,rapi,confd}.service $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p doc/examples/ganeti-{noded,masterd,rapi,confd,luxid,mond}.service $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p doc/examples/ganeti.sudoers $RPM_BUILD_ROOT/etc/sudoers.d/ganeti
+cp -p doc/examples/ganeti.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/ganeti
+cp -p doc/examples/gnt-config-backup $RPM_BUILD_ROOT%{_sbindir}
 
 %py_postclean
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%pre
+%groupadd -g 300 gnt-masterd
+%groupadd -g 301 gnt-confd
+%groupadd -g 302 gnt-luxid
+%groupadd -g 303 gnt-rapi
+%groupadd -g 304 gnt-daemons
+%groupadd -g 305 gnt-admin
+%useradd -u 300 -d /var/lib/ganeti -g gnt-masterd -G gnt-daemons,gnt-confd,gnt-admin -c "Ganeti Masterd User" gnt-masterd
+%useradd -u 301 -d /var/lib/ganeti -g gnt-confd -G gnt-daemons -c "Ganeti Confd User" gnt-confd
+%useradd -u 302 -d /var/lib/ganeti -g gnt-luxid -G gnt-daemons,gnt-confd,gnt-masterd -c "Ganeti Luxid User" gnt-luxid
+%useradd -u 303 -d /var/lib/ganeti -g gnt-rapi -G gnt-daemons,gnt-admin -c "Ganeti RAPI User" gnt-rapi
+
 %post
 /sbin/chkconfig --add ganeti-noded
 %service ganeti-noded restart
@@ -164,7 +211,11 @@ rm -rf $RPM_BUILD_ROOT
 %service ganeti-rapi restart
 /sbin/chkconfig --add ganeti-confd
 %service ganeti-confd restart
-%systemd_post ganeti.target ganeti-noded.service ganeti-masterd.service ganeti-rapi.service ganeti-confd.service
+/sbin/chkconfig --add ganeti-luxid
+%service ganeti-luxid restart
+/sbin/chkconfig --add ganeti-mond
+%service ganeti-mond restart
+%systemd_post ganeti.target ganeti-noded.service ganeti-masterd.service ganeti-rapi.service ganeti-confd.service ganeti-luxid.service ganeti-mond.service
 
 %preun
 if [ "$1" = "0" ]; then
@@ -176,72 +227,115 @@ if [ "$1" = "0" ]; then
        /sbin/chkconfig --del ganeti-masterd
        %service -q ganeti-noded stop
        /sbin/chkconfig --del ganeti-noded
+       %service -q ganeti-luxid stop
+       /sbin/chkconfig --del ganeti-luxid
+       %service -q ganeti-mond stop
+       /sbin/chkconfig --del ganeti-mond
 fi
-%systemd_preun ganeti.target ganeti-noded.service ganeti-masterd.service ganeti-rapi.service ganeti-confd.service
+%systemd_preun ganeti.target ganeti-noded.service ganeti-masterd.service ganeti-rapi.service ganeti-confd.service ganeti-luxid.service ganeti-mond.service
 
 %postun
+if [ "$1" = "0" ]; then
+       %userremove gnt-rapi
+       %userremove gnt-luxid
+       %userremove gnt-confd
+       %userremove gnt-masterd
+       %groupremove gnt-admin
+       %groupremove gnt-masterd
+       %groupremove gnt-rapi
+       %groupremove gnt-luxid
+       %groupremove gnt-confd
+       %groupremove gnt-daemons
+fi
 %systemd_reload
 
 %files
 %defattr(644,root,root,755)
 %doc NEWS README UPGRADE
 %attr(754,root,root) /etc/rc.d/init.d/ganeti-confd
+%attr(754,root,root) /etc/rc.d/init.d/ganeti-luxid
 %attr(754,root,root) /etc/rc.d/init.d/ganeti-masterd
+%attr(754,root,root) /etc/rc.d/init.d/ganeti-mond
 %attr(754,root,root) /etc/rc.d/init.d/ganeti-noded
 %attr(754,root,root) /etc/rc.d/init.d/ganeti-rapi
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ganeti
+%config(noreplace) %verify(not md5 mtime size) /etc/sudoers.d/ganeti
 %dir %{_sysconfdir}/ganeti
 %{systemdunitdir}/ganeti.target
 %{systemdunitdir}/ganeti-confd.service
+%{systemdunitdir}/ganeti-luxid.service
 %{systemdunitdir}/ganeti-masterd.service
+%{systemdunitdir}/ganeti-mond.service
 %{systemdunitdir}/ganeti-noded.service
 %{systemdunitdir}/ganeti-rapi.service
 %{systemdtmpfilesdir}/ganeti.conf
 /etc/cron.d/ganeti
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/ganeti
+%dir %{_datadir}/ganeti
+%dir %{_datadir}/ganeti/extstorage
+%dir %{_datadir}/ganeti/os
 %dir %{_libdir}/ganeti
-%{_libdir}/ganeti/check-cert-expired
-%{_libdir}/ganeti/daemon-util
-%{_libdir}/ganeti/ensure-dirs
-%{_libdir}/ganeti/import-export
-%{_libdir}/ganeti/kvm-ifup
+%attr(755,root,root) %{_libdir}/ganeti/check-cert-expired
+%attr(755,root,root) %{_libdir}/ganeti/daemon-util
+%attr(755,root,root) %{_libdir}/ganeti/ensure-dirs
+%attr(755,root,root) %{_libdir}/ganeti/import-export
+%attr(755,root,root) %{_libdir}/ganeti/kvm-ifup
+%attr(755,root,root) %{_libdir}/ganeti/mon-collector
+%attr(755,root,root) %{_libdir}/ganeti/net-common
+%attr(755,root,root) %{_libdir}/ganeti/node-daemon-setup
+%attr(755,root,root) %{_libdir}/ganeti/prepare-node-join
+%attr(755,root,root) %{_libdir}/ganeti/vif-ganeti
+%dir %{_libdir}/ganeti/extstorage
 %dir %{_libdir}/ganeti/iallocators
+%dir %{_libdir}/ganeti/os
 %dir %{_libdir}/ganeti/tools
-%{_libdir}/ganeti/tools/burnin
-%{_libdir}/ganeti/tools/cfgshell
-%{_libdir}/ganeti/tools/cfgupgrade
-%{_libdir}/ganeti/tools/cfgupgrade12
-%{_libdir}/ganeti/tools/cluster-merge
-%{_libdir}/ganeti/tools/confd-client
-%{_libdir}/ganeti/tools/fmtjson
-%{_libdir}/ganeti/tools/kvm-console-wrapper
-%{_libdir}/ganeti/tools/lvmstrap
-%{_libdir}/ganeti/tools/master-ip-setup
-%{_libdir}/ganeti/tools/move-instance
-%{_libdir}/ganeti/tools/ovfconverter
-%{_libdir}/ganeti/tools/sanitize-config
-%{_libdir}/ganeti/tools/setup-ssh
-%{_libdir}/ganeti/tools/xen-console-wrapper
+%attr(755,root,root) %{_libdir}/ganeti/tools/burnin
+%attr(755,root,root) %{_libdir}/ganeti/tools/cfgshell
+%attr(755,root,root) %{_libdir}/ganeti/tools/cfgupgrade
+%attr(755,root,root) %{_libdir}/ganeti/tools/cfgupgrade12
+%attr(755,root,root) %{_libdir}/ganeti/tools/cluster-merge
+%attr(755,root,root) %{_libdir}/ganeti/tools/confd-client
+%attr(755,root,root) %{_libdir}/ganeti/tools/fmtjson
+%attr(755,root,root) %{_libdir}/ganeti/tools/kvm-console-wrapper
+%attr(755,root,root) %{_libdir}/ganeti/tools/lvmstrap
+%attr(755,root,root) %{_libdir}/ganeti/tools/master-ip-setup
+%attr(755,root,root) %{_libdir}/ganeti/tools/move-instance
+%attr(755,root,root) %{_libdir}/ganeti/tools/node-cleanup
+%attr(755,root,root) %{_libdir}/ganeti/tools/ovfconverter
+%attr(755,root,root) %{_libdir}/ganeti/tools/sanitize-config
+%attr(755,root,root) %{_libdir}/ganeti/tools/users-setup
+%attr(755,root,root) %{_libdir}/ganeti/tools/vcluster-setup
+%attr(755,root,root) %{_libdir}/ganeti/tools/xen-console-wrapper
 %attr(755,root,root) %{_sbindir}/ganeti-cleaner
 %attr(755,root,root) %{_sbindir}/ganeti-confd
 %attr(755,root,root) %{_sbindir}/ganeti-listrunner
+%attr(755,root,root) %{_sbindir}/ganeti-luxid
 %attr(755,root,root) %{_sbindir}/ganeti-masterd
+%attr(755,root,root) %{_sbindir}/ganeti-mond
 %attr(755,root,root) %{_sbindir}/ganeti-noded
 %attr(755,root,root) %{_sbindir}/ganeti-rapi
 %attr(755,root,root) %{_sbindir}/ganeti-watcher
 %attr(755,root,root) %{_sbindir}/gnt-backup
 %attr(755,root,root) %{_sbindir}/gnt-cluster
+%attr(755,root,root) %{_sbindir}/gnt-config-backup
 %attr(755,root,root) %{_sbindir}/gnt-debug
 %attr(755,root,root) %{_sbindir}/gnt-group
 %attr(755,root,root) %{_sbindir}/gnt-instance
 %attr(755,root,root) %{_sbindir}/gnt-job
+%attr(755,root,root) %{_sbindir}/gnt-network
 %attr(755,root,root) %{_sbindir}/gnt-node
 %attr(755,root,root) %{_sbindir}/gnt-os
-%{_mandir}/man7/ganeti-os-interface.7*
+%attr(755,root,root) %{_sbindir}/gnt-storage
 %{_mandir}/man7/ganeti.7*
+%{_mandir}/man7/ganeti-extstorage-interface.7*
+%{_mandir}/man7/ganeti-os-interface.7*
+%{_mandir}/man7/mon-collector.7*
 %{_mandir}/man8/ganeti-cleaner.8*
 %{_mandir}/man8/ganeti-confd.8*
 %{_mandir}/man8/ganeti-listrunner.8*
+%{_mandir}/man8/ganeti-luxid.8*
 %{_mandir}/man8/ganeti-masterd.8*
+%{_mandir}/man8/ganeti-mond.8*
 %{_mandir}/man8/ganeti-noded.8*
 %{_mandir}/man8/ganeti-rapi.8*
 %{_mandir}/man8/ganeti-watcher.8*
@@ -251,12 +345,16 @@ fi
 %{_mandir}/man8/gnt-group.8*
 %{_mandir}/man8/gnt-instance.8*
 %{_mandir}/man8/gnt-job.8*
+%{_mandir}/man8/gnt-network.8*
 %{_mandir}/man8/gnt-node.8*
 %{_mandir}/man8/gnt-os.8*
+%{_mandir}/man8/gnt-storage.8*
 %dir %{py_sitescriptdir}/ganeti
 %{py_sitescriptdir}/ganeti/*.py*
 %dir %{py_sitescriptdir}/ganeti/client
 %{py_sitescriptdir}/ganeti/client/*.py*
+%dir %{py_sitescriptdir}/ganeti/cmdlib
+%{py_sitescriptdir}/ganeti/cmdlib/*.py*
 %dir %{py_sitescriptdir}/ganeti/confd
 %{py_sitescriptdir}/ganeti/confd/*.py*
 %dir %{py_sitescriptdir}/ganeti/http
@@ -271,26 +369,35 @@ fi
 %{py_sitescriptdir}/ganeti/rapi/*.py*
 %dir %{py_sitescriptdir}/ganeti/server
 %{py_sitescriptdir}/ganeti/server/*.py*
+%dir %{py_sitescriptdir}/ganeti/storage
+%{py_sitescriptdir}/ganeti/storage/*.py*
 %dir %{py_sitescriptdir}/ganeti/tools
 %{py_sitescriptdir}/ganeti/tools/*.py*
 %dir %{py_sitescriptdir}/ganeti/utils
 %{py_sitescriptdir}/ganeti/utils/*.py*
 %dir %{py_sitescriptdir}/ganeti/watcher
 %{py_sitescriptdir}/ganeti/watcher/*.py*
+%dir %attr(755,gnt-masterd,gnt-masterd) /var/lib/ganeti
+%dir %attr(770,gnt-masterd,gnt-daemons) /var/log/ganeti
+%dir %attr(775,gnt-masterd,gnt-daemons) /var/run/ganeti
 
 %files htools
 %defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/harep
 %attr(755,root,root) %{_bindir}/hbal
 %attr(755,root,root) %{_bindir}/hcheck
 %attr(755,root,root) %{_bindir}/hinfo
+%attr(755,root,root) %{_bindir}/hroller
 %attr(755,root,root) %{_bindir}/hscan
 %attr(755,root,root) %{_bindir}/hspace
 %attr(755,root,root) %{_bindir}/htools
-%{_libdir}/ganeti/iallocators/hail
+%attr(755,root,root) %{_libdir}/ganeti/iallocators/hail
 %{_mandir}/man1/hail.1*
+%{_mandir}/man1/harep.1*
 %{_mandir}/man1/hbal.1*
 %{_mandir}/man1/hcheck.1*
 %{_mandir}/man1/hinfo.1*
+%{_mandir}/man1/hroller.1*
 %{_mandir}/man1/hscan.1*
 %{_mandir}/man1/hspace.1*
 %{_mandir}/man1/htools.1*
This page took 0.039464 seconds and 4 git commands to generate.