====== Compiler la dernière version de libvirt ======
Il peut être nécessaire de compiler la dernière version de libvirt car le dépôt [[http://www.lfarkas.org/linux/packages/redhat/5/x86_64/virt/RPMS/|lfarkas]] n'est hyper à jour pour ce paquet (dernière version, la 0.6.4)
Pour cela, il faut disposer d'une CentOS 5 de développement (de préférence en x86_64)
===== Installer mezzanine =====
Récupérer un RPM depuis depuis http://sme-mirror.voxteneo.com/releases/testing/8/smedev/i386/RPMS/ (mezzanine est en noarch, donc pas grave si c'est dans un dépôt pour i386). Puis l'installer via **yum localinstall**
===== Créer un répertoire de dev =====
mkdir localdev
Vérifier la dernière version de libvirt sur la page http://libvirt.org/sources/ et récupérer le srpm (pour fedora)
Puis l'importer par mezzanine:
mzimport -L libvirt*.src.rpm
===== Se placer dans le répertoire =====
cd libvirt
===== Lancer la re-compilation =====
Normalement, aucune modification n'est nécessaire, le spec fournit prend en charge la plateforme el5
On passe juste certains arguments, qui désactive les fonctions non utilisées
À partir de la v 0.8.1, il faut faire une toute petite modification du fichier spec, un test doit être désactivé, car notre version de libxml2 a un bug:
Chercher la section
for i in nodeinfotest daemon-conf seclabeltest
do
rm -f $i
printf "#!/bin/sh\nexit 0\n" > $i
chmod +x $i
done
et la remplacer par
for i in nodeinfotest daemon-conf seclabeltest interfaceschematest
do
rm -f $i
printf "#!/bin/sh\nexit 0\n" > $i
chmod +x $i
done
mzbuild -A "--without xen --without xen-proxy \
--without lxc --without vbox --without esx \
--without phyp --without one --without avahi \
--without openvz --without uml --with nwfilter \
--with libpcap"
Certaines dépendances seront demandés
===== solution alternative =====
Pour compiler avec un serveur de build (type plague), il faut applliquer ce patch au fichier spec:
--- F/libvirt.spec.orig 2011-01-04 09:08:53.000000000 +0100
+++ F/libvirt.spec 2011-01-06 13:01:06.000000000 +0100
@@ -107,6 +107,14 @@
%define with_lxc 0
%endif
+# Custom Firewall-Services
+%if 0%{?rhel} == 5
+%define with_avahi 0
+%define with_xen 0
+%define with_esx 0
+%endif
+# End customization
+
# RHEL-6 has restricted QEMU to x86_64 only, stopped including Xen
# on all archs. Other archs all have LXC available though
%if 0%{?rhel} >= 6
@@ -177,7 +185,7 @@
%endif
# Force QEMU to run as non-root
-%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
+%if 0%{?fedora} >= 12 || 0%{?rhel} >= 5
%define qemu_user qemu
%define qemu_group qemu
%else
@@ -705,7 +713,7 @@
%check
cd tests
# These 3 tests don't current work in a mock build root
-for i in nodeinfotest daemon-conf seclabeltest
+for i in virshtest nodeinfotest daemon-conf seclabeltest interfaceschematest
do
rm -f $i
printf "#!/bin/sh\nexit 0\n" > $i