%define name xen %define xen_version 3.3.1 %define rel 2 %define xen_release %mkrel %rel %define kernel_version 2.6.18.8 %define kernel_tarball_version 2.6.18 %define kernel_extraversion -xen-%{xen_version}-%{rel}mdv %define kernel_source_dir %{kernel_tarball_version}-xen-3.3.0 # ensures file uniqueness %define kernel_file_string %{kernel_version}%{kernel_extraversion} # ensures package uniqueness %define kernel_package_string %{kernel_version}%{kernel_extraversion} %define major 3.0 %define libname %mklibname %{name} %{major} %define develname %mklibname %{name} -d Name: %{name} Version: %{xen_version} Release: %{xen_release} Summary: The basic tools for managing XEN virtual machines Group: System/Kernel and hardware License: GPL Source0: %{name}-%{version}.tar.gz Source2: linux-2.6.18-xen-3.3.0.tar.gz Source3: xend.init Source4: xendomains.init Source10: zlib-1.2.3.tar.gz Source11: newlib-1.16.0.tar.gz Source12: grub-0.97.tar.gz Source13: lwip-1.3.0.tar.gz Source14: pciutils-2.2.9.tar.bz2 Patch0: xen-3.3.1-fix-stubdom-Makefile.patch Patch1: xen-3.2.0-bnx2-1.4.51b.patch Patch3: xen-3.2.0-squashfs.patch Patch4: xen-3.2.0-use-same-arch-default-config.patch Requires: python Requires: python-twisted-core Requires: python-pyxml Requires: module-init-tools Requires: iptables Requires: bridge-utils Requires: glibc-xen Requires: grub Requires: kernel-xen-%{kernel_package_string} Requires(pre): kernel-xen-%{kernel_package_string} BuildRequires: SDL-devel BuildRequires: curl-devel Buildrequires: dev86-devel BuildRequires: libext2fs-devel BuildRequires: ncurses-devel BuildRequires: libpython-devel >= 2.4 BuildRequires: zlib-devel BuildRequires: tetex-latex BuildRequires: tetex-texi2html BuildRequires: pciutils-devel BuildRequires: texinfo Obsoletes: xen-uptodate BuildRoot: %{_tmppath}/%{name}-%{version} %description The basic tools for managing XEN virtual machines. %package doc Summary: XEN documentation Group: System/Kernel and hardware Obsoletes: xen-uptodate-doc %description doc XEN documentation. %package -n %{libname} Summary: Libraries for %{name} Group: System/Libraries Conflicts: %{name} < 3.1.0-5mdv2008.1 %description -n %{libname} This package contains the libraries needed to run programs dynamically linked with Xen libraries. %package -n %{develname} Summary: Static libraries and header files for %{name} Group: Development/C Requires: %{libname} = %{xen_version}-%{xen_release} Provides: %{name}-devel = %{xen_version}-%{xen_release} Conflicts: %name} < 3.1.0-5mdv2008.1 %description -n %{develname} This package contains the static development libraries and headers needed to compile applications linked with Xen libraries. %package -n kernel-xen-%{kernel_package_string} Version: 1 Release: %mkrel 2 Summary: XEN kernel Group: System/Kernel and hardware Provides: kernel = %{kernel_version} Provides: kernel-xen = %{kernel_version} Obsoletes: kernel-xen-uptodate %description -n kernel-xen-%{kernel_package_string} XEN kernel. %package -n kernel-xen-devel-%{kernel_package_string} Version: 1 Release: %mkrel 2 Summary: XEN kernel sources Group: System/Kernel and hardware Requires: kernel-xen-%{kernel_package_string} Provides: kernel-devel = %{kernel_version} Provides: kernel-xen-devel = %{kernel_version} Obsoletes: kernel-xen-uptodate-devel %description -n kernel-xen-devel-%{kernel_package_string} XEN kernel sources. %prep %setup -q -n %{name}-%{xen_version} %setup -q -T -D -a 2 -n %{name}-%{xen_version} %patch0 -p 1 cd linux-%{kernel_source_dir} %patch1 -p 1 %patch3 -p 1 %patch4 -p 1 cd .. # install additional sources cp %{SOURCE10} stubdom cp %{SOURCE11} stubdom cp %{SOURCE12} stubdom cp %{SOURCE13} stubdom cp %{SOURCE14} stubdom # configure kernel %ifarch x86_64 %define kernel_config_file linux-defconfig_xen_x86_64 %else %define kernel_config_file linux-defconfig_xen_x86_32 %endif perl -pi -e 's/^CONFIG_BLK_DEV_LOOP=.*/CONFIG_BLK_DEV_LOOP=m/' \ buildconfigs/%{kernel_config_file} %build # clean all stuff export CFLAGS="$CFLAGS -fno-strict-aliasing" export HOSTCC="$HOSTCC -fno-strict-aliasing" export XEN_LINUX_SOURCE=tarball export KETCHUP=/bin/true export LINUX_VER=%{kernel_version} export EXTRAVERSION=%{kernel_extraversion} export LINUX_SRCDIR=linux-%{kernel_source_dir} export pae=y make linux-2.6-xen-build < /dev/null %make -C tools HOTPLUGS=install-udev %make -C xen %make -C docs %make -C stubdom %ifarch x86_64 %make -C stubdom pv-grub XEN_TARGET_ARCH=x86_32 %endif %install rm -rf %{buildroot} export DONT_GPRINTIFY=1 export DESTDIR=%{buildroot} #export XEN_LINUX_SOURCE=tarball export KETCHUP=/bin/true export LINUX_VER=%{kernel_version} export EXTRAVERSION=%{kernel_extraversion} export LINUX_SRCDIR=linux-%{kernel_source_dir} export pae=y make linux-2.6-xen-install make -C tools install HOTPLUGS=install-udev make -C xen install make -C stubdom install %ifarch x86_64 make -C stubdom install-grub XEN_TARGET_ARCH=x86_32 %endif # remove additional kernel symlink rm -f %{buildroot}/boot/vmlinuz-2.6-xen-%{kernel_extra_version} rm -f %{buildroot}/boot/xen-3.3.gz rm -f %{buildroot}/boot/xen-3.gz # drop dangling symlinks rm -f %{buildroot}/lib/modules/%{kernel_file_string}/{build,source} # compress modules find %{buildroot}/lib/modules/%{kernel_file_string} -name "*.ko" | xargs gzip -9 /sbin/depmod -u -ae -b %{buildroot} -r \ -F %{buildroot}/boot/System.map-%{kernel_file_string} \ %{kernel_file_string} # create modules description pushd %{buildroot}/lib/modules/%{kernel_file_string} find . -name "*.ko.gz" | xargs /sbin/modinfo | \ perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' \ > modules.description popd # install kernel sources install -d -m 755 %{buildroot}%{_prefix}/src cp -r -L linux-%{kernel_source_dir} \ %{buildroot}%{_prefix}/src/linux-%{kernel_file_string} # clean sources from useless source files pushd %{buildroot}%{_prefix}/src/linux-%{kernel_file_string} for i in alpha arm arm26 avr32 blackfin cris frv h8300 ia64 mips m32r m68k m68knommu parisc powerpc ppc s390 sh sh64 v850 xtensa; do rm -rf arch/$i rm -rf include/asm-$i done %ifnarch %{ix86} x86_64 rm -rf arch/i386 rm -rf arch/x86_64 rm -rf include/asm-i386 rm -rf include/asm-x86_64 %endif %ifnarch sparc sparc64 rm -rf arch/sparc rm -rf arch/sparc64 rm -rf include/asm-sparc rm -rf include/asm-sparc64 %endif popd # fix man pages install -d -m 755 %{buildroot}%{_mandir}/man{1,5} install -m 644 docs/man1/* %{buildroot}%{_mandir}/man1 install -m 644 docs/man5/* %{buildroot}%{_mandir}/man5 # install doc manually rm -rf %{buildroot}%{_docdir}/qemu install -d -m 755 %{buildroot}%{_docdir}/%{name} install -m 644 README %{buildroot}%{_docdir}/%{name} install -m 644 docs/ps/* %{buildroot}%{_docdir}/%{name} install -m 644 docs/pdf/* %{buildroot}%{_docdir}/%{name} # install state directory install -d -m 755 %{buildroot}%{_localstatedir}/lib/xend/{domains,state,storage} # symlink /var/lib/xend to allow live migration to work # https://bugs.launchpad.net/ubuntu/+source/xen-3.2/+bug/277132 (cd %{buildroot}%{_localstatedir}/lib && rmdir xen && ln -sf xend xen) # install our own init scripts install -d -m 755 %{buildroot}%{_initrddir} install -m 755 %{SOURCE3} %{buildroot}%{_initrddir}/xend install -m 755 %{SOURCE4} %{buildroot}%{_initrddir}/xendomains # delete original ones rm -rf %{buildroot}%{_sysconfdir}/init.d %check grep -q "^CONFIG_SQUASHFS=m" %{buildroot}/boot/config-%{kernel_file_string} \ || exit 0 %if %mdkversion < 200900 %post -n %{libname} -p /sbin/ldconfig %endif %if %mdkversion < 200900 %postun -n %{libname} -p /sbin/ldconfig %endif %post /sbin/installkernel %{kernel_file_string} %preun /sbin/installkernel -R %{kernel_file_string} %post -n kernel-xen-devel-%{kernel_package_string} if [ -d /lib/modules/%{kernel_file_string} ]; then ln -sTf /usr/src/linux-%{kernel_file_string} /lib/modules/%{kernel_file_string}/build ln -sTf /usr/src/linux-%{kernel_file_string} /lib/modules/%{kernel_file_string}/source fi %postun -n kernel-xen-devel-%{kernel_package_string} if [ -L /lib/modules/%{kernel_file_string}/build ]; then rm -f /lib/modules/%{kernel_file_string}/build fi if [ -L /lib/modules/%{kernel_file_string}/source ]; then rm -f /lib/modules/%{kernel_file_string}/source fi %clean rm -rf %{buildroot} %files %defattr(-,root,root) %dir %{_docdir}/%{name} %{_docdir}/%{name}/README %config(noreplace) %{_sysconfdir}/sysconfig/xendomains %config(noreplace) %{_sysconfdir}/udev/rules.d/xen-backend.rules %config(noreplace) %{_sysconfdir}/udev/xen-backend.rules %dir %{_sysconfdir}/xen %{_sysconfdir}/xen/scripts %{_sysconfdir}/xen/auto %{_sysconfdir}/xen/qemu-ifup %{_sysconfdir}/xen/README %{_sysconfdir}/xen/README.incompatibilities %config(noreplace) %{_sysconfdir}/xen/*.sxp %config(noreplace) %{_sysconfdir}/xen/*.xml %config(noreplace) %{_sysconfdir}/xen/xmexample* %{_mandir}/man*/* %{_libdir}/xen %if "%{_lib}" != "lib" %{_prefix}/lib/xen %endif %{_libdir}/fs %{_libdir}/python/xen %{_libdir}/python/grub/* %{_libdir}/python/fsimage.so %if %{mdkversion} > 200700 %{_libdir}/python/pygrub-0.3-py%{pyver}.egg-info %{_libdir}/python/xen-3.0-py%{pyver}.egg-info %endif %{_datadir}/xen %{_localstatedir}/lib/xen %{_localstatedir}/lib/xend %{_localstatedir}/lib/xenstored /var/run/xenstored /boot/xen* %{_initrddir}/xend %{_initrddir}/xendomains %{_sbindir}/fs-backend %{_sbindir}/xenstored %{_sbindir}/netfix %{_sbindir}/xm %{_sbindir}/xend %{_sbindir}/xenconsoled %{_sbindir}/xentop %{_sbindir}/xen-bugtool %{_sbindir}/xenbaked %{_sbindir}/xenmon.py %{_sbindir}/blktapctrl %{_sbindir}/img2qcow %{_sbindir}/qcow-create %{_sbindir}/qcow2raw %{_sbindir}/tapdisk %{_sbindir}/xentrace_setmask %{_sbindir}/xen-python-path %{_sbindir}/flask-loadpolicy %{_sbindir}/xsview %{_sbindir}/xenperf %{_sbindir}/xenpm %{_bindir}/xencons %{_bindir}/xentrace %{_bindir}/xentrace_format %{_bindir}/xentrace_setsize %{_bindir}/xenstore-* %{_bindir}/pygrub %{_bindir}/xen-detect %{_bindir}/qemu-img-xen %{_bindir}/xenstore %files -n kernel-xen-%{kernel_package_string} %defattr(-,root,root) /lib/modules/%{kernel_file_string} /boot/System.map-%{kernel_file_string} /boot/config-%{kernel_file_string} /boot/vmlinuz-%{kernel_file_string} %files -n kernel-xen-devel-%{kernel_package_string} %defattr(-,root,root) %{_prefix}/src/linux-%{kernel_file_string} %files doc %defattr(-,root,root) %{_docdir}/%{name}/* %exclude %{_docdir}/%{name}/README %doc docs/ps/* docs/pdf/* %files -n %{libname} %defattr(-,root,root) %{_libdir}/*.so.* %files -n %{develname} %defattr(-,root,root) %{_includedir}/xen %{_includedir}/*.h %{_libdir}/*.so %{_libdir}/*.a %changelog * Tue Feb 03 2009 Guillaume Rousse <guillomovitch@mandriva.org> 3.3.1-2mdv2009.1 + Revision: 337184 - keep bash completion in its own package * Tue Jan 13 2009 Guillaume Rousse <guillomovitch@mandriva.org> 3.3.1-1mdv2009.1 + Revision: 329051 - new version * Mon Dec 29 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.3.0-7mdv2009.1 + Revision: 321269 - build stub domain * Mon Dec 22 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.3.0-6mdv2009.1 + Revision: 317497 - fix xendomains init script, it needs bash, not just sh * Thu Dec 18 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.3.0-5mdv2009.1 + Revision: 315986 - remove additional symlinks in /boot - add %%{_localstatedir}/lib/xen to fix live migration * Fri Nov 14 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.3.0-4mdv2009.1 + Revision: 303279 - ensure pci pass-through support is built ensure udev hotplug support, despite /usr/bin/udevinfo removal * Tue Sep 23 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.3.0-2mdv2009.0 + Revision: 287209 - compile loop driver as a module (bug #36838) - drop patch 5, useless now than we have our own init scripts * Wed Sep 03 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.3.0-1mdv2009.0 + Revision: 279981 - new version * Sat Aug 09 2008 Thierry Vignaud <tvignaud@mandriva.com> 3.2.1-3mdv2009.0 + Revision: 269768 - rebuild early 2009.0 package (before pixel changes) + Guillaume Rousse <guillomovitch@mandriva.org> - add missing python-pyxml dependency (fix #41745) - update bash completion + Pixel <pixel@mandriva.com> - do not call ldconfig in %%post/%%postun, it is now handled by filetriggers - adapt to %%_localstatedir now being /var instead of /var/lib (#22312) * Fri May 23 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.2.1-2mdv2009.0 + Revision: 210415 - update squashfs patch to 3.3 * Thu May 22 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.2.1-1mdv2009.0 + Revision: 210001 - new version check squashfs support is built * Wed May 21 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.2.0-4mdv2009.0 + Revision: 209810 - patch 7: fix sumversion compilation - really apply patch 5 - patch 6: fix compilation with gcc 4.3 - rediff squashfs patch to ensure support is built - no more vnc-devel build dependency * Sat May 17 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.2.0-3mdv2009.0 + Revision: 208456 - add kernel-xen and kernel-xen-devel virtual packages * Sat Mar 22 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.2.0-2mdv2008.1 + Revision: 189471 - minor completion fixes silent initscripts errors * Mon Mar 03 2008 Guillaume Rousse <guillomovitch@mandriva.org> 3.2.0-1mdv2008.1 + Revision: 177959 - new version + Olivier Blin <oblin@mandriva.com> - restore BuildRoot + Thierry Vignaud <tvignaud@mandriva.com> - kill re-definition of %%buildroot on Pixel's request * Fri Dec 07 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.2-3mdv2008.1 + Revision: 116295 - really fix devel package dependencies * Thu Dec 06 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.2-2mdv2008.1 + Revision: 115963 - fix devel package dependencies * Fri Nov 16 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.2-1mdv2008.1 + Revision: 109146 - new version - add kernel and xen versions in kernel package name, to ensure package uniqueness - add xen version in kernel extra string to make the files really unique - workaround curious ln -sf behaviour with directories in kernel-devel installation - fix conflict * Sun Nov 11 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.1-1mdv2008.1 + Revision: 107975 - make kernel-xen virtual package use xen version, not kernel version - new version * Fri Nov 09 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.0-6mdv2008.1 + Revision: 107033 - move the install kernel call to the hypervisor post-installation, so as to break circular dependencies between kernel and hypervisor (kernel alone is not bootable anyway), and make dependencies between hypervisor and kernel stricter - fix ldconfig call to belong to lib package - add a call to installkernel -R when uninstalling kernel - add a conflict from lib packages to previous releases of the main one to help upgrade - make the kernel package provides kernel-xen * Thu Nov 08 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.0-5mdv2008.1 + Revision: 106856 - build missing vnc binaries - let installkernel manage unversioned symlink - compress modules, and create modules.description file, as in other mdv kernels - remove additional vmlinuz symlinks, as per other mdv kernels - fix using extraversion on x86_64 - versioned kernel package and files - split libs and devel files in their own package - standard virtual packages for kernel and kernel-devel packages - no need for the serial support patch, actually, xencons is OK - better squashfs patch + Vincent Danen <vdanen@mandriva.com> -P403: security patch for CVE-2007-3919 * Fri Oct 12 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.0-4mdv2008.1 + Revision: 97223 - build requires tetex-texi2html instead of texi2html - fix serial support on x86_64 - patch3: squashfs support (fix bug#34275) * Fri Oct 05 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.0-3mdv2008.1 + Revision: 95545 - security patches for CVE-2007-1321 and CVE-2007-4993 * Mon Sep 17 2007 Olivier Blin <oblin@mandriva.com> 3.1.0-2mdv2008.0 + Revision: 89095 - make kernel-xen require xen in post script (bootloader-config only configures xen kernels if xen is installed) * Sun Sep 02 2007 Guillaume Rousse <guillomovitch@mandriva.org> 3.1.0-1mdv2008.0 + Revision: 78111 - obsoletes xen-uptodate - merge from xen-uptodate package - make xen-uptodate the new xen package - really fix PAE mismatch on i586 (#32027) - install missing %%{_localstatedir}/xend directory - build PAE hypervisor (fix #32027) - fix memcmp build issue - add missing patch - update bnx2 driver to 1.4.51b, to fix IPMI issues (see http://lists.us.dell.com/pipermail/linux-poweredge/2007-January/029054.html) - don't mark scripts as configuration - handle doc manually - patch0: fix default interface guess - installing kernel is part of kernel package post-installation, not of kernel-devel one - updated completion - fix file list for mdk version <= 2007 - add a bootloader entry (support is just one patch away) - requires grub - fix kernel source tree - call installkernel in %%post to create initrd - don't prepare kernel tree twice, and use sparse kernel tree as devel package content - fix symlink handling in kernel %%post - fix file list in kernel package - drop init patch, merged upstream - change dependencies: make it provide xen, so as to be usable for building other package requiring a recent xen version, hence dropping explicit conflict on regular xen package - new version - can't provide and conflict at once with xen - build only one kernel - split documentation into a subpackage - build host and guest kernels too - change group (fix #29868) - LSB compliant init script + Thierry Vignaud <tvignaud@mandriva.com> - replace %%{_datadir}/man by %%{_mandir}! * Mon Mar 19 2007 Gwenole Beauchesne <gbeauchesne@mandriva.com> 3.0.3-0.20060703.5mdv2007.1 - forward port lib64 fix from 2006-branch * Mon Dec 11 2006 Arnaud Patard <apatard@mandriva.com> 3.0.3-0.20060703.4mdv2007.1 - Rebuilt for python 2.5 - Fix python version check and include egg-info files (G. Rousse) - Add bash-completion support (G. Rousse) * Wed Sep 20 2006 Arnaud Patard <apatard@mandriva.com> 3.0.3-0.20060703.3mdv2007.0 - Rebuild with ncurses 5.5-1.20051029.3mdv2007.0 * Wed Sep 13 2006 Arnaud Patard <apatard@mandriva.com> 3.0.3-0.20060703.2mdv2007.0 - Fix patch0 * Tue Jul 11 2006 Arnaud Patard <apatard@mandriva.com> 3.0.3-0.20060703.1mdv2007.0 - New snapshot * Fri May 19 2006 Arnaud Patard <apatard@mandriva.com> 3.0-0.20060510.1mdk - New snapshot - Disable gprintify - Allow to set bridge mac adress * Tue Jan 17 2006 Arnaud Patard <apatard@mandriva.com> 3.0-0.20051213.1mdk - New snapshot * Mon Jan 16 2006 Stefan van der Eijk <stefan@eijk.nu> 3.0-0.20050823.7mdk - BuildRequires * Fri Sep 09 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 3.0-0.20050823.6mdk - x86_64 fixes for binutils 2.16.9x - requires glibc-xen for */nosegneg/ libs * Fri Aug 12 2005 Flávio Bruno Leitner <fbl@mandriva.com> 3.0-0.20050823.5mdk - updated to snapshot of 2005-08-23 (last know working) * Fri Aug 12 2005 Flávio Bruno Leitner <fbl@mandriva.com> 3.0-0.20050829.4mdk - updated to snapshot of 2005-08-29 * Fri Aug 12 2005 Flávio Bruno Leitner <fbl@mandriva.com> 3.0-0.20050811.3mdk - updated to snapshot of 2005-08-19 * Fri Aug 12 2005 Flávio Bruno Leitner <fbl@mandriva.com> 3.0-0.20050811.2mdk - updated to snapshot of 2005-08-11 * Sat Aug 06 2005 Flávio Bruno Leitner <fbl@mandriva.com> 3.0-0.20050801.1mdk - created package.