# # spec file for package xen (Version 3.4.1_19664_01) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: xen ExclusiveArch: %ix86 x86_64 %define xvers 3.4 %define xvermaj 3 %define changeset 19664 %define xen_build_dir xen-3.4.1-testing %define with_kmp 0 BuildRequires: LibVNCServer-devel SDL-devel automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel texinfo transfig %if %suse_version >= 1030 BuildRequires: texlive texlive-latex %else BuildRequires: te_ams te_latex tetex %endif %ifarch x86_64 BuildRequires: glibc-32bit glibc-devel-32bit %endif %if %{?with_kmp}0 BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11 %endif Version: 3.4.1_19664_01 Release: 1 License: GPL v2 only Group: System/Kernel AutoReqProv: on PreReq: %insserv_prereq %fillup_prereq Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) Source0: xen-3.4.1-testing-src.tar.bz2 Source2: README.SuSE Source3: boot.xen Source4: boot.local.xenU Source5: init.xend Source6: init.xendomains Source7: logrotate.conf Source8: domUloader.py Source9: xmexample.domUloader Source10: xmexample.disks Source11: block-nbd Source12: block-iscsi Source13: block-npiv Source16: xmclone.sh Source17: xend-relocation.sh Source18: init.xen_loop %if %{?with_kmp}0 Source19: xen_pvdrivers Source20: kmp_filelist %endif # Xen API remote authentication sources Source23: etc_pam.d_xen-api Source24: xenapiusers # sysconfig hook script for Xen Source25: xen-updown.sh # Upstream patches # Our patches Patch100: xen-config.diff Patch101: xend-config.diff Patch102: xen-destdir.diff Patch103: xen-rpmoptflags.diff Patch104: xen-warnings.diff Patch105: xen-changeset.diff Patch106: xen-paths.diff Patch107: xen-xmexample.diff Patch108: xen-xmexample-vti.diff Patch109: xen-fixme-doc.diff Patch110: xen-domUloader.diff Patch111: xen-no-dummy-nfs-ip.diff Patch112: serial-split.patch Patch113: xen-xm-top-needs-root.diff Patch114: xen-tightvnc-args.diff Patch115: xen-max-free-mem.diff Patch116: xen-ioapic-ack-default.diff Patch120: block-losetup-retry.diff Patch121: block-flags.diff Patch122: xen-hvm-default-bridge.diff Patch123: xen-hvm-default-pae.diff Patch124: xm-test-cleanup.diff Patch130: tools-xc_kexec.diff Patch131: tools-kboot.diff Patch132: libxen_permissive.patch Patch133: xenapi-console-protocol.patch Patch134: xen-disable-qemu-monitor.diff Patch135: supported_module.diff Patch136: qemu-security-etch1.diff Patch140: cdrom-removable.patch Patch150: bridge-opensuse.patch Patch151: bridge-vlan.diff Patch152: bridge-bonding.diff Patch153: bridge-hostonly.diff Patch154: bridge-record-creation.patch Patch155: xend-core-dump-loc.diff Patch156: blktap.patch Patch157: xen-qemu-iscsi-fix.patch Patch158: xen-api-auth.patch Patch159: tools-gdbserver-build.diff Patch160: network-route.patch # Needs to go upstream sometime, when python 2.6 is widespread Patch161: udev-rules.patch Patch162: ioemu-vnc-resize.patch # Needs to go upstream Patch163: checkpoint-rename.patch Patch164: network-nat.patch Patch165: ioemu-debuginfo.patch Patch166: xm-save-check-file.patch # Patches for snapshot support Patch200: snapshot-ioemu-save.patch Patch201: snapshot-ioemu-restore.patch Patch202: snapshot-ioemu-delete.patch Patch203: snapshot-xend.patch # ioemu part of blktap patch series Patch210: ioemu-blktap-fv-init.patch Patch211: ioemu-blktap-image-format.patch Patch212: build-tapdisk-ioemu.patch Patch213: tapdisk-ioemu-logfile.patch Patch214: ioemu-blktap-zero-size.patch Patch215: tapdisk-ioemu-shutdown-fix.patch # More random patches Patch220: qemu-dm-segfault.patch Patch221: blktapctrl-default-to-ioemu.patch Patch222: ioemu-blktap-barriers.patch Patch223: bdrv_open2_fix_flags.patch Patch224: bdrv_open2_flags_2.patch # Jim's domain lock patch Patch300: xend-domain-lock.patch # Patches from Jan Patch340: x86_64-note-init-p2m.patch Patch341: x86-cpufreq-report.patch Patch342: dump-exec-state.patch Patch343: dom-print.patch Patch344: pv-driver-build.patch Patch345: x86-show-page-walk-early.patch Patch346: x86-extra-trap-info.patch Patch347: svm-lmsl.patch Patch348: x86_64-5Tb.patch # Other patches Patch400: x86-alloc-cpu-structs.patch Patch401: 32on64-extra-mem.patch Patch402: msi-enable.patch Patch403: xen-ioemu-hvm-pv-support.diff Patch404: pvdrv_emulation_control.patch Patch405: blktap-pv-cdrom.patch Patch406: network-nat-open-SuSEfirewall2-FORWARD.patch Patch407: ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch %if %{?with_kmp}0 Patch450: disable_emulated_device.diff %endif # novell_shim patches Patch500: hv_tools.patch Patch501: hv_xen_base.patch Patch502: hv_xen_extension.patch Patch999: tmp_build.patch Url: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/ BuildRoot: %{_tmppath}/%{name}-%{version}-build %define pysite %(python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()") %if %{?with_kmp}0 %suse_kernel_module_package -n xen um xen -f kmp_filelist %endif %description Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. This package contains the Xen Hypervisor. (tm) Modern computers are sufficiently powerful to use virtualization to present the illusion of many smaller virtual machines (VMs), each running a separate operating system instance. Successful partitioning of a machine to support the concurrent execution of multiple operating systems poses several challenges. Firstly, virtual machines must be isolated from one another: It is not acceptable for the execution of one to adversely affect the performance of another. This is particularly true when virtual machines are owned by mutually untrusting users. Secondly, it is necessary to support a variety of different operating systems to accommodate the heterogeneity of popular applications. Thirdly, the performance overhead introduced by virtualization should be small. Xen uses a technique called paravirtualization: The guest OS is modified, mainly to enhance performance. The Xen hypervisor (microkernel) does not provide device drivers for your hardware (except for CPU and memory). This job is left to the kernel that's running in domain 0. Thus the domain 0 kernel is privileged; it has full hardware access. It's started immediately after Xen starts up. Other domains have no access to the hardware; instead they use virtual interfaces that are provided by Xen (with the help of the domain 0 kernel). Xen does support booting other Operating Systems; ports of NetBSD (Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich) exist. A port of Windows XP was developed for an earlier version of Xen, but is not available for release due to license restrictions. In addition to this package you need to install the kernel-xen and xen-tools to use Xen. Xen 3 also supports running unmodified guests using full virtualization, if appropriate hardware is present. Install xen-tools-ioemu if you want to use this. [Hypervisor is a trademark of IBM] Authors: -------- Ian Pratt Keir Fraser Christian Limpach Mark Williamson Ewan Mellor ... %package libs License: GPL v2 or later Summary: Xen Virtualization: Libraries Group: System/Kernel #Requires: xen = %{version} AutoReqProv: on %description libs Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. This package contains the libraries used to interact with the Xen virtual machine monitor. Modern computers are sufficiently powerful to use virtualization to present the illusion of many smaller virtual machines (VMs), each running a separate operating system instance. Successful partitioning of a machine to support the concurrent execution of multiple operating systems poses several challenges. Firstly, virtual machines must be isolated from one another: It is not acceptable for the execution of one to adversely affect the performance of another. This is particularly true when virtual machines are owned by mutually untrusting users. Secondly, it is necessary to support a variety of different operating systems to accommodate the heterogeneity of popular applications. Thirdly, the performance overhead introduced by virtualization should be small. Xen uses a technique called paravirtualization: The guest OS is modified, mainly to enhance performance. The Xen hypervisor (microkernel) does not provide device drivers for your hardware (except for CPU and memory). This job is left to the kernel that's running in domain 0. Thus the domain 0 kernel is privileged; it has full hardware access. It's started immediately after Xen starts up. Other domains have no access to the hardware; instead they use virtual interfaces that are provided by Xen (with the help of the domain 0 kernel). Xen does support booting other Operating Systems; ports of NetBSD (Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich) exist. A port of Windows XP was developed for an earlier version of Xen, but is not available for release due to license restrictions. Authors: -------- Ian Pratt %package tools License: GPL v2 or later Summary: Xen Virtualization: Control tools for domain 0 Group: System/Kernel Requires: xen-libs = %{version} Requires: bridge-utils multipath-tools python python-curses python-openssl python-pam python-xml pyxml #Requires: ipcalc # subpackage existed in 10.3 Provides: xen-tools-ioemu = 3.2 Obsoletes: xen-tools-ioemu <= 3.2 AutoReqProv: on %description tools Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. This package contains the control tools that allow you to start, stop, migrate, and manage virtual machines. Modern computers are sufficiently powerful to use virtualization to present the illusion of many smaller virtual machines (VMs), each running a separate operating system instance. Successful partitioning of a machine to support the concurrent execution of multiple operating systems poses several challenges. Firstly, virtual machines must be isolated from one another: It is not acceptable for the execution of one to adversely affect the performance of another. This is particularly true when virtual machines are owned by mutually untrusting users. Secondly, it is necessary to support a variety of different operating systems to accommodate the heterogeneity of popular applications. Thirdly, the performance overhead introduced by virtualization should be small. Xen uses a technique called paravirtualization: The guest OS is modified, mainly to enhance performance. The Xen hypervisor (microkernel) does not provide device drivers for your hardware (except for CPU and memory). This job is left to the kernel that's running in domain 0. Thus the domain 0 kernel is privileged; it has full hardware access. It's started immediately after Xen starts up. Other domains have no access to the hardware; instead they use virtual interfaces that are provided by Xen (with the help of the domain 0 kernel). Xen does support booting other Operating Systems; ports of NetBSD (Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich) exist. A port of Windows XP was developed for an earlier version of Xen, but is not available for release due to license restrictions. In addition to this package you need to install kernel-xen and xen to use Xen. Authors: -------- Ian Pratt %package tools-domU License: GPL v2 or later Summary: Xen Virtualization: Control tools for domain U Group: System/Kernel Conflicts: xen-tools AutoReqProv: on %description tools-domU Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. This package contains tools that allow unprivileged domains to query the virtualized environment. Authors: -------- Ian Pratt %package devel License: GPL v2 or later Summary: Xen Virtualization: Headers and libraries for development Group: System/Kernel Requires: xen-libs = %{version} %description devel Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. This package contains the libraries and header files needed to create tools to control virtual machines. Modern computers are sufficiently powerful to use virtualization to present the illusion of many smaller virtual machines (VMs), each running a separate operating system instance. Successful partitioning of a machine to support the concurrent execution of multiple operating systems poses several challenges. Firstly, virtual machines must be isolated from one another: It is not acceptable for the execution of one to adversely affect the performance of another. This is particularly true when virtual machines are owned by mutually untrusting users. Secondly, it is necessary to support a variety of different operating systems to accommodate the heterogeneity of popular applications. Thirdly, the performance overhead introduced by virtualization should be small. Xen uses a technique called paravirtualization: The guest OS is modified, mainly to enhance performance. The Xen hypervisor (microkernel) does not provide device drivers for your hardware (except for CPU and memory). This job is left to the kernel that's running in domain 0. Thus the domain 0 kernel is privileged; it has full hardware access. It's started immediately after Xen starts up. Other domains have no access to the hardware; instead they use virtual interfaces that are provided by Xen (with the help of the domain 0 kernel). Xen does support booting other Operating Systems; ports of NetBSD (Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich) exist. A port of Windows XP was developed for an earlier version of Xen, but is not available for release due to license restrictions. Authors: -------- Ian Pratt %if %{?with_kmp}0 %package KMP License: GPL v2 or later Group: System/Kernel Summary: Xen para-virtual device drivers for fully virtualized guests Conflicts: xen %description KMP Xen para-virtual device drivers for fully virtualized guests Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. This package contains the libraries and header files needed to create tools to control virtual machines. Modern computers are sufficiently powerful to use virtualization to present the illusion of many smaller virtual machines (VMs), each running a separate operating system instance. Successful partitioning of a machine to support the concurrent execution of multiple operating systems poses several challenges. Firstly, virtual machines must be isolated from one another: It is not acceptable for the execution of one to adversely affect the performance of another. This is particularly true when virtual machines are owned by mutually untrusting users. Secondly, it is necessary to support a variety of different operating systems to accommodate the heterogeneity of popular applications. Thirdly, the performance overhead introduced by virtualization should be small. Xen uses a technique called paravirtualization: The guest OS is modified, mainly to enhance performance. The Xen hypervisor (microkernel) does not provide device drivers for your hardware (except for CPU and memory). This job is left to the kernel that's running in domain 0. Thus the domain 0 kernel is privileged; it has full hardware access. It's started immediately after Xen starts up. Other domains have no access to the hardware; instead they use virtual interfaces that are provided by Xen (with the help of the domain 0 kernel). Xen does support booting other Operating Systems; ports of NetBSD (Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich) exist. A port of Windows XP was developed for an earlier version of Xen, but is not available for release due to license restrictions. %endif %package doc-html License: GPL v2 or later Summary: Xen Virtualization: HTML documentation Group: Documentation/HTML %description doc-html Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. xen-doc-html contains the online documentation in HTML format. Point your browser at file:/usr/share/doc/packages/xen/html/ Authors: -------- Ian Pratt %package doc-pdf License: GPL v2 or later Summary: Xen Virtualization: PDF documentation Group: Documentation/Other %description doc-pdf Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. xen-doc-pdf contains the online documentation in PDF format. Use xpdf/kpdf/gpdf/gv/... to read the files in /usr/share/doc/packages/xen/pdf/ Authors: -------- Ian Pratt %prep %setup -q -n %xen_build_dir %patch100 -p1 %patch101 -p1 %patch102 -p1 %patch103 -p1 %patch104 -p1 %patch105 -p1 %patch106 -p1 %patch107 -p1 %patch108 -p1 %patch109 -p1 %patch110 -p1 %patch111 -p1 %patch112 -p1 %patch113 -p1 #%patch114 -p1 - vnc patch, may no longer be applicable. %patch115 -p1 %patch116 -p1 %patch120 -p1 %patch121 -p1 %patch122 -p1 %patch123 -p1 %patch124 -p1 %patch130 -p1 %patch131 -p1 %patch132 -p1 %patch133 -p1 %patch134 -p1 %patch135 -p1 %patch136 -p1 %patch140 -p1 %patch150 -p1 %patch151 -p1 %patch152 -p1 #%patch153 -p1 - hostonly %patch154 -p1 %patch155 -p1 %patch156 -p1 %patch157 -p1 %patch158 -p1 %patch159 -p1 %patch160 -p1 %patch161 -p1 %patch162 -p1 %patch163 -p1 %patch164 -p1 %patch165 -p1 %patch166 -p1 %patch200 -p1 %patch201 -p1 %patch202 -p1 %patch203 -p1 %patch210 -p1 %patch211 -p1 %patch212 -p1 %patch213 -p1 %patch214 -p1 %patch215 -p1 %patch220 -p1 %patch221 -p1 %patch222 -p1 %patch223 -p1 %patch224 -p1 %patch300 -p1 #%patch340 -p1 - Port Later if needed %patch341 -p1 %patch342 -p1 %patch343 -p1 %patch344 -p1 %patch345 -p1 %patch346 -p1 %patch347 -p1 %patch348 -p1 #%patch400 -p1 - Major Port or not needed %patch401 -p1 #%patch402 -p1 - Needed? %patch403 -p1 %patch404 -p1 %patch405 -p1 %patch406 -p1 %patch407 -p1 %if %{?with_kmp}0 %patch450 -p1 %endif %ifarch x86_64 %patch500 -p1 %patch501 -p1 %patch502 -p1 %endif %patch999 -p1 %build XEN_EXTRAVERSION=%version-%release XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}} sed -i "s/XEN_EXTRAVERSION[\t ]*.=.*\$/XEN_EXTRAVERSION = $XEN_EXTRAVERSION/" xen/Makefile sed -i "s/XEN_CHANGESET[\t ]*=.*\$/XEN_CHANGESET = %{changeset}/" xen/Makefile RPM_OPT_FLAGS=${RPM_OPT_FLAGS//-fstack-protector/} export CFLAGS="${RPM_OPT_FLAGS}" export RPM_OPT_FLAGS make -C tools/include/xen-foreign make tools docs cd tools/debugger/gdb # there are code problems that don't pass the 02-check-gcc-output, hence bitbucket ./gdbbuild 1>/dev/null 2>/dev/null cd ../../.. %if %{?with_kmp}0 # pv driver modules export XL=/usr/src/linux export XEN=/usr/src/linux/include/xen mkdir -p obj for flavor in %flavors_to_build; do rm -rf obj/$flavor cp -r unmodified_drivers/linux-2.6 obj/$flavor cd obj/$flavor ./mkbuildtree make -C /usr/src/linux-obj/%_target_cpu/$flavor modules \ M=$PWD cd ../.. done %endif %install test ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT export CFLAGS="$RPM_OPT_FLAGS" export RPM_OPT_FLAGS install_xen() { local ext="" if [ -n "$1" ]; then ext="-$1" mv $RPM_BUILD_ROOT/boot/xen-%{version}-%{release}.gz \ $RPM_BUILD_ROOT/boot/xen${ext}-%{version}-%{release}.gz mv $RPM_BUILD_ROOT/boot/xen-syms-%{version}-%{release} \ $RPM_BUILD_ROOT/boot/xen-syms${ext}-%{version}-%{release} fi rm $RPM_BUILD_ROOT/boot/xen-%{xvers}.gz rm $RPM_BUILD_ROOT/boot/xen-%{xvermaj}.gz rm $RPM_BUILD_ROOT/boot/xen.gz # Do not link to links; grub cannot follow. ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}-%{xvers}.gz ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}-%{xvermaj}.gz ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}.gz ln -sf xen-syms${ext}-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms${ext} } %ifarch %ix86 make -C xen install pae=y debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT install_xen dbg make -C xen clean make -C xen install pae=y debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT install_xen make -C xen clean %else make -C xen install max_phys_cpus=255 pae=n debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT install_xen dbg make -C xen clean make -C xen install max_phys_cpus=255 pae=n debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT install_xen make -C xen clean %endif export CFLAGS="$RPM_OPT_FLAGS" export RPM_OPT_FLAGS make -C tools/include/xen-foreign # tools export XEN_PYTHON_NATIVE_INSTALL=1 make -C tools install \ DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} cp tools/debugger/gdb/gdb-6.2.1-linux-i386-xen/gdb/gdbserver/gdbserver-xen $RPM_BUILD_ROOT/usr/bin/gdbserver-xen rm -f $RPM_BUILD_ROOT/usr/sbin/{qcow-create,img2qcow,qcow2raw} make -C tools/misc/serial-split install \ DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} %ifarch x86_64 mkdir -p $RPM_BUILD_ROOT/usr/lib/xen/bin/ ln -s %{_libdir}/xen/bin/qemu-dm $RPM_BUILD_ROOT/usr/lib/xen/bin/qemu-dm %endif %if %{?with_kmp}0 # pv driver modules export INSTALL_MOD_PATH=$RPM_BUILD_ROOT export INSTALL_MOD_DIR=updates for flavor in %flavors_to_build; do make -C /usr/src/linux-obj/%_target_cpu/$flavor modules_install \ M=$PWD/obj/$flavor done mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d install -m644 %SOURCE19 $RPM_BUILD_ROOT/etc/modprobe.d/xen_pvdrivers %endif # docs make -C docs install \ DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \ DOCDIR=%{_defaultdocdir}/xen for name in COPYING %SOURCE2 %SOURCE3 %SOURCE4; do install -m 644 $name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/ done mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/misc for name in vtpm.txt crashdb.txt sedf_scheduler_mini-HOWTO.txt; do install -m 644 docs/misc/$name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/misc/ done # init scripts mkdir -p $RPM_BUILD_ROOT/etc/init.d install %SOURCE5 $RPM_BUILD_ROOT/etc/init.d/xend ln -s /etc/init.d/xend $RPM_BUILD_ROOT/usr/sbin/rcxend install %SOURCE6 $RPM_BUILD_ROOT/etc/init.d/xendomains ln -s /etc/init.d/xendomains $RPM_BUILD_ROOT/usr/sbin/rcxendomains mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d install -m644 %SOURCE18 $RPM_BUILD_ROOT/etc/modprobe.d/xen_loop # example config mkdir -p $RPM_BUILD_ROOT/etc/xen/{vm,examples,scripts} mv $RPM_BUILD_ROOT/etc/xen/xmexample* $RPM_BUILD_ROOT/etc/xen/examples rm -f $RPM_BUILD_ROOT/etc/xen/examples/*nbd install -m644 %SOURCE9 %SOURCE10 $RPM_BUILD_ROOT/etc/xen/examples/ # scripts rm -f $RPM_BUILD_ROOT/etc/xen/scripts/block-*nbd install -m755 %SOURCE11 %SOURCE12 %SOURCE13 %SOURCE16 %SOURCE17 $RPM_BUILD_ROOT/etc/xen/scripts/ ln -s /etc/xen/scripts/vm-monitor $RPM_BUILD_ROOT/etc/xen/scripts/set-lock # Xen API remote authentication files install -d $RPM_BUILD_ROOT/etc/pam.d install -m644 %SOURCE23 $RPM_BUILD_ROOT/etc/pam.d/xen-api install -m644 %SOURCE24 $RPM_BUILD_ROOT/etc/xen/ # sysconfig hook for Xen mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/network/scripts mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/network/if-up.d mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/network/if-down.d install -m755 %SOURCE25 $RPM_BUILD_ROOT/etc/sysconfig/network/scripts ln -s /etc/sysconfig/network/scripts/xen-updown.sh $RPM_BUILD_ROOT/etc/sysconfig/network/if-up.d/xen ln -s /etc/sysconfig/network/scripts/xen-updown.sh $RPM_BUILD_ROOT/etc/sysconfig/network/if-down.d/xen # logrotate install -m644 -D %SOURCE7 $RPM_BUILD_ROOT/etc/logrotate.d/xen # directories mkdir -p $RPM_BUILD_ROOT/var/lib/xenstored mkdir -p $RPM_BUILD_ROOT/var/lib/xen/images mkdir -p $RPM_BUILD_ROOT/var/lib/xen/jobs mkdir -p $RPM_BUILD_ROOT/var/lib/xen/save mkdir -p $RPM_BUILD_ROOT/var/lib/xen/dump mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/domain mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/migrate mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/vnet mkdir -p $RPM_BUILD_ROOT/var/log/xen mkdir -p $RPM_BUILD_ROOT/var/run/xenstored ln -s /var/lib/xen/images $RPM_BUILD_ROOT/etc/xen/images # Bootloader install -m755 %SOURCE8 $RPM_BUILD_ROOT/usr/lib/xen/boot/ # udev support mkdir -p $RPM_BUILD_ROOT/etc/udev/rules.d mv $RPM_BUILD_ROOT/etc/udev/rules.d/xen-backend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xen.rules mv $RPM_BUILD_ROOT/etc/udev/rules.d/xend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xend.rules #%find_lang xen-vm # po files are misnamed upstream # Clean up unpackaged files rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/xen/qemu/ rm -f $RPM_BUILD_ROOT/%{_datadir}/doc/qemu/qemu-* rm -rf $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/ps rm -rf $RPM_BUILD_ROOT/usr/share/xen/man/man1/qemu/qemu* rm -f $RPM_BUILD_ROOT/usr/share/xen/qemu/openbios-sparc32 rm -f $RPM_BUILD_ROOT/usr/share/xen/qemu/openbios-sparc64 rm -f $RPM_BUILD_ROOT/usr/share/xen/qemu/openbios-ppc rm -f $RPM_BUILD_ROOT/usr/sbin/netfix rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info rm -rf $RPM_BUILD_ROOT/html rm -rf $RPM_BUILD_ROOT/usr/share/doc/xen/README.* rm -f $RPM_BUILD_ROOT/usr/share/doc/xen/create.dtd rm -f $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm.debug %files %defattr(-,root,root) /boot/xen-%{version}-%{release}.gz /boot/xen-%{xvermaj}.gz /boot/xen-%{xvers}.gz /boot/xen-dbg-%{version}-%{release}.gz /boot/xen-dbg-%{xvermaj}.gz /boot/xen-dbg-%{xvers}.gz /boot/xen-dbg.gz /boot/xen-syms /boot/xen-syms-%{version}-%{release} /boot/xen-syms-dbg /boot/xen-syms-dbg-%{version}-%{release} /boot/xen.gz %files libs %defattr(-,root,root) %{_libdir}/fs/ %{_libdir}/libblktap.so.* %{_libdir}/libflask.so.* %{_libdir}/libfsimage.so.* %{_libdir}/libxen*.so.* %files tools %defattr(-,root,root) #/usr/bin/lomount /usr/bin/xencons /usr/bin/xenstore* /usr/bin/xentrace* /usr/bin/pygrub /usr/bin/qemu-img-xen /usr/bin/qemu-nbd-xen /usr/bin/tapdisk-ioemu /usr/bin/gdbserver-xen /usr/sbin/blktapctrl /usr/sbin/flask-loadpolicy /usr/sbin/rcxend /usr/sbin/rcxendomains /usr/sbin/tapdisk /usr/sbin/xen* /usr/sbin/xm /usr/sbin/xsview /usr/sbin/fs-backend %dir %{_libdir}/xen %dir %{_libdir}/xen/bin %ifarch x86_64 %dir /usr/lib/xen %dir /usr/lib/xen/bin %endif %dir /usr/lib/xen/boot #%{_datadir}/xen/*.dtd %{_libdir}/xen/bin/readnotes %{_libdir}/xen/bin/xc_restore %{_libdir}/xen/bin/xc_save %{_libdir}/xen/bin/xenconsole %{_libdir}/xen/bin/xenctx %{_libdir}/xen/bin/lsevtchn %{_mandir}/man1/*.1.gz %{_mandir}/man5/*.5.gz %{_mandir}/man8/*.8.gz /var/adm/fillup-templates/* %dir /var/lib/xen %dir %attr(700,root,root) /var/lib/xen/images %dir %attr(700,root,root) /var/lib/xen/save %dir %attr(700,root,root) /var/lib/xen/dump %dir /var/lib/xen/xend-db %dir /var/lib/xen/xend-db/domain %dir /var/lib/xen/xend-db/migrate %dir /var/lib/xen/xend-db/vnet %dir /var/lib/xenstored %dir /var/log/xen %dir /var/run/xenstored /etc/init.d/xend /etc/init.d/xendomains %config /etc/logrotate.d/xen %dir %attr(700,root,root) /etc/xen /etc/xen/auto %config /etc/xen/examples /etc/xen/images /etc/xen/qemu-ifup /etc/xen/scripts /etc/xen/README* %config /etc/xen/vm %config /etc/xen/*.sxp %config /etc/xen/*.xml %config(noreplace) /etc/xen/xenapiusers %config /etc/pam.d/xen-api %config /etc/modprobe.d/xen_loop %dir /etc/modprobe.d %dir /etc/udev %dir /etc/udev/rules.d /etc/udev/rules.d/40-xen.rules /etc/udev/rules.d/40-xend.rules /etc/sysconfig/network/scripts/xen-updown.sh /etc/sysconfig/network/if-up.d/xen /etc/sysconfig/network/if-down.d/xen %dir %{_defaultdocdir}/xen %{_defaultdocdir}/xen/COPYING %{_defaultdocdir}/xen/README.SuSE %{_defaultdocdir}/xen/boot.local.xenU %{_defaultdocdir}/xen/boot.xen %{_defaultdocdir}/xen/misc %dir %pysite/xen %dir %pysite/grub # formerly tools-ioemu %dir %{_datadir}/xen %dir %{_datadir}/xen/man %dir %{_datadir}/xen/man/man1 %dir %{_datadir}/xen/man/man8 %dir %{_datadir}/xen/qemu %dir %{_datadir}/xen/qemu/keymaps %{_datadir}/xen/qemu/* %{_datadir}/xen/man/man1/* %{_datadir}/xen/man/man8/* %{_libdir}/xen/bin/qemu-dm %ifarch x86_64 /usr/lib/xen/bin/qemu-dm /usr/lib64/xen/bin/xc_kexec %else /usr/lib/xen/bin/xc_kexec %endif /usr/lib/xen/boot/hvmloader %pysite/xen/* /usr/lib/xen/boot/domUloader.py %pysite/grub/* %pysite/fsimage.so %files tools-domU %defattr(-,root,root) /usr/bin/xen-detect /bin/domu-xenstore /bin/xenstore-* %files devel %defattr(-,root,root) %{_libdir}/libblktap.a %{_libdir}/libblktap.so %{_libdir}/libflask.a %{_libdir}/libflask.so %{_libdir}/libfsimage.so %{_libdir}/libxen*.a %{_libdir}/libxen*.so /usr/bin/serial-split /usr/include/blktaplib.h /usr/include/flask.h /usr/include/fsimage* /usr/include/xen*.h /usr/include/xen/ /usr/include/xs.h /usr/include/xs_lib.h %files doc-html %defattr(-,root,root) %{_defaultdocdir}/xen/html %files doc-pdf %defattr(-,root,root) %{_defaultdocdir}/xen/pdf %clean #test ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT #rm -rf $RPM_BUILD_DIR/%xen_build_dir %post tools %{fillup_and_insserv -y -n xend xend} %{fillup_and_insserv -y -n xendomains xendomains} %preun tools %{stop_on_removal xendomains xend} %postun tools %{restart_on_update xend} %{insserv_cleanup} %post libs /sbin/ldconfig %postun libs /sbin/ldconfig %changelog