# # spec file for package xen # # Copyright (c) 2011 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 4.1 %define xvermaj 4 %define changeset 23013 %define xen_build_dir xen-4.1.0-testing %define with_kmp 1 %define with_stubdom 0 BuildRequires: LibVNCServer-devel BuildRequires: SDL-devel BuildRequires: automake BuildRequires: bin86 BuildRequires: curl-devel BuildRequires: dev86 BuildRequires: graphviz BuildRequires: latex2html BuildRequires: libjpeg-devel BuildRequires: libxml2-devel BuildRequires: ncurses-devel BuildRequires: openssl BuildRequires: openssl-devel BuildRequires: pciutils-devel BuildRequires: python-devel BuildRequires: texinfo BuildRequires: transfig BuildRequires: libbz2-devel %if %suse_version >= 1120 BuildRequires: xz-devel %endif %if %suse_version <= 1110 BuildRequires: pmtools %else BuildRequires: acpica %endif %if %suse_version >= 1030 BuildRequires: texlive BuildRequires: texlive-latex %else BuildRequires: te_ams BuildRequires: te_latex BuildRequires: tetex %endif %ifarch x86_64 BuildRequires: glibc-32bit glibc-devel-32bit BuildRequires: gcc-32bit BuildRequires: gcc43-32bit %define max_cpus 256 %define pae_enabled n %else %define max_cpus 32 %define pae_enabled y %endif BuildRequires: glibc-devel %if %{?with_kmp}0 BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11 %endif Version: 4.1.0_01 Release: 5 License: GPLv2+ Group: System/Kernel AutoReqProv: on PreReq: %insserv_prereq %fillup_prereq Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) Source0: xen-4.1.0-testing-src.tar.bz2 Source1: stubdom.tar.bz2 Source2: xen-utils-0.1.tar.bz2 Source3: README.SuSE Source4: boot.xen Source5: boot.local.xenU Source6: init.xend Source7: init.xendomains Source8: logrotate.conf Source9: domUloader.py Source10: xmexample.domUloader Source11: xmexample.disks Source12: block-nbd Source13: block-iscsi Source14: block-npiv-common.sh Source15: block-npiv Source16: block-npiv-vport Source17: xmclone.sh Source18: xend-relocation.sh Source19: init.xen_loop %if %{?with_kmp}0 Source20: xen_pvdrivers.conf Source21: kmp_filelist %endif Source22: block-dmmd # Xen API remote authentication sources Source23: etc_pam.d_xen-api Source24: xenapiusers # sysconfig hook script for Xen Source25: xen-updown.sh Source99: baselibs.conf # http://xenbits.xensource.com/ext/xenalyze.hg Source20000: xenalyze.hg.tar.bz2 # Upstream patches # Upstream qemu patches # Our patches Patch300: xen-config.diff Patch301: xend-config.diff Patch302: xen-destdir.diff Patch303: xen-rpmoptflags.diff Patch304: xen-warnings.diff Patch305: xen-changeset.diff Patch306: xen-paths.diff Patch307: xen-xmexample.diff Patch308: xen-xmexample-vti.diff Patch309: xen-fixme-doc.diff Patch310: xen-domUloader.diff Patch311: xen-no-dummy-nfs-ip.diff Patch312: serial-split.patch Patch313: xen-xm-top-needs-root.diff Patch314: xen-max-free-mem.diff Patch322: bridge-opensuse.patch Patch323: bridge-vlan.diff Patch324: bridge-bonding.diff Patch325: bridge-record-creation.patch Patch326: network-nat.patch Patch327: udev-rules.patch Patch328: vif-route-ifup.patch Patch329: network-nat-open-SuSEfirewall2-FORWARD.patch Patch340: xen-hvm-default-bridge.diff Patch341: xen-hvm-default-pae.diff Patch342: xm-test-cleanup.diff Patch343: tools-xc_kexec.diff Patch344: tools-kboot.diff Patch345: libxen_permissive.patch Patch346: xenapi-console-protocol.patch Patch347: xen-disable-qemu-monitor.diff Patch348: qemu-security-etch1.diff Patch350: cdrom-removable.patch Patch351: xend-core-dump-loc.diff Patch352: blktap.patch Patch353: xen-qemu-iscsi-fix.patch Patch354: xen-api-auth.patch Patch355: tools-gdbserver-build.diff Patch356: ioemu-vnc-resize.patch Patch357: ioemu-debuginfo.patch Patch358: vif-bridge-no-iptables.patch Patch359: xenconsole-no-multiple-connections.patch # Needs to go upstream Patch360: checkpoint-rename.patch Patch361: xm-save-check-file.patch Patch362: xm-create-xflag.patch Patch370: xend-sysconfig.patch Patch371: domu-usb-controller.patch Patch372: usb-list.patch Patch373: xend-devid-or-name.patch Patch374: suspend_evtchn_lock.patch # Patches for snapshot support Patch400: snapshot-ioemu-save.patch Patch401: snapshot-ioemu-restore.patch Patch402: snapshot-ioemu-delete.patch Patch403: snapshot-xend.patch Patch404: snapshot-without-pv-fix.patch # ioemu part of blktap patch series Patch410: ioemu-blktap-fv-init.patch Patch411: ioemu-blktap-image-format.patch Patch412: build-tapdisk-ioemu.patch Patch413: tapdisk-ioemu-logfile.patch Patch414: ioemu-blktap-zero-size.patch Patch415: tapdisk-ioemu-shutdown-fix.patch Patch420: blktapctrl-default-to-ioemu.patch Patch421: ioemu-blktap-barriers.patch # Other bug fixes or features Patch423: bdrv_open2_fix_flags.patch Patch424: bdrv_open2_flags_2.patch Patch425: ioemu-bdrv-open-CACHE_WB.patch Patch426: ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch Patch427: xen-ioemu-hvm-pv-support.diff Patch428: qemu-dm-segfault.patch Patch429: hibernate.patch Patch430: del_usb_xend_entry.patch Patch431: capslock_enable.patch Patch433: multi-xvdp.patch Patch434: check_device_status.patch Patch435: change_home_server.patch Patch436: altgr_2.patch Patch438: stdvga-cache.patch Patch439: minios-fixups.patch Patch440: bdrv_default_rwflag.patch Patch442: xen-minimum-restart-time.patch Patch443: vif-bridge.mtu.patch Patch444: xentrace.dynamic_sized_tbuf.patch # Jim's domain lock patch Patch450: xend-domain-lock.patch # Hypervisor and PV driver Patches Patch500: 32on64-extra-mem.patch Patch501: x86-ioapic-ack-default.patch Patch502: x86-cpufreq-report.patch Patch504: dom-print.patch Patch505: pvdrv-import-shared-info.patch Patch506: x86-show-page-walk-early.patch Patch507: x86-extra-trap-info.patch Patch508: pvdrv_emulation_control.patch Patch509: blktap-pv-cdrom.patch Patch510: pv-driver-build.patch Patch511: supported_module.diff Patch512: magic_ioport_compat.patch Patch650: disable_emulated_device.diff Patch651: ioemu-disable-scsi.patch Patch652: ioemu-disable-emulated-ide-if-pv.patch Patch700: hv_extid_compatibility.patch # FATE 310510 Patch10001: xenpaging.tools_xenpaging_cleanup.patch Patch10002: xenpaging.pageout_policy.patch Patch10003: xenpaging.get_paged_frame.patch Patch10004: xenpaging.makefile.patch Patch10010: xenpaging.policy_linear.patch Patch10011: xenpaging.pagefile.patch Patch10012: xenpaging.xenpaging_init.patch Patch10013: xenpaging.mem_paging_tool_qemu_flush_cache.patch Patch10014: xenpaging.machine_to_phys_mapping.patch Patch10015: xenpaging.populate_only_if_paged.patch Patch10017: xenpaging.autostart.patch Patch10018: xenpaging.signal_handling.patch Patch10019: xenpaging.MRU_SIZE.patch Patch10020: xenpaging.guest_remove_page.patch Patch10021: xenpaging.mem_event_check_ring-free_requests.patch Patch10022: xenpaging.blacklist.patch Patch10023: xenpaging.autostart_delay.patch Patch10024: xenpaging.page_already_populated.patch Patch10025: xenpaging.notify_policy_only_once.patch Patch10026: xenpaging.num_pages_equal_max_pages.patch Patch10027: xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch Patch10028: xenpaging.HVMCOPY_gfn_paged_out.patch Patch10029: xenpaging.optimize_p2m_mem_paging_populate.patch Patch10030: xenpaging.paging_prep_enomem.patch Patch10031: xenpaging.print-arguments.patch Patch10032: xenpaging.no_domain_id.patch Patch10033: xenpaging.runtime_mru_size.patch Patch10040: xenpaging.doc.patch # Build patch Patch99999: 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()") %define pyver %(python -c "import sys; print sys.version[:3]") %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: GPLv2+ 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: GPLv2+ 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 python-lxml # 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: GPLv2+ 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: GPLv2+ 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: GPLv2+ 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: GPLv2+ 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: GPLv2+ 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 -a 1 -a 20000 tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools %patch300 -p1 %patch301 -p1 %patch302 -p1 %patch303 -p1 %patch304 -p1 %patch305 -p1 %patch306 -p1 %patch307 -p1 %patch308 -p1 %patch309 -p1 %patch310 -p1 %patch311 -p1 %patch312 -p1 %patch313 -p1 %patch314 -p1 %patch322 -p1 %patch323 -p1 %patch324 -p1 %patch325 -p1 %patch326 -p1 %patch327 -p1 %patch328 -p1 %patch329 -p1 %patch340 -p1 %patch341 -p1 %patch342 -p1 #%patch343 -p1 kexec %patch344 -p1 %patch345 -p1 %patch346 -p1 %patch347 -p1 %patch348 -p1 %patch350 -p1 %patch351 -p1 %patch352 -p1 %patch353 -p1 %patch354 -p1 ###%patch355 -p1 gdbserver %patch356 -p1 %patch357 -p1 %patch358 -p1 %patch359 -p1 %patch360 -p1 %patch361 -p1 %patch362 -p1 %patch370 -p1 %patch371 -p1 %patch372 -p1 %patch373 -p1 #%patch374 -p1 suspend_evtchn_lock, buildservice build problem %patch400 -p1 %patch401 -p1 %patch402 -p1 %patch403 -p1 %patch404 -p1 %patch410 -p1 %patch411 -p1 %patch412 -p1 %patch413 -p1 %patch414 -p1 %patch415 -p1 %patch420 -p1 %patch421 -p1 %patch423 -p1 %patch424 -p1 %patch425 -p1 %patch426 -p1 %patch427 -p1 %patch428 -p1 %patch429 -p1 %patch430 -p1 %patch431 -p1 %patch433 -p1 %patch434 -p1 %patch435 -p1 %patch436 -p1 %patch438 -p1 %patch439 -p1 %patch440 -p1 %patch442 -p1 %patch443 -p1 %patch444 -p1 %patch450 -p1 %patch500 -p1 %patch501 -p1 %patch502 -p1 %patch504 -p1 %patch505 -p1 %patch506 -p1 %patch507 -p1 %patch508 -p1 %patch509 -p1 %patch510 -p1 %patch511 -p1 %patch512 -p1 %patch650 -p1 %patch651 -p1 %patch652 -p1 %patch700 -p1 #%patch10001 -p1 #%patch10002 -p1 #%patch10003 -p1 #%patch10004 -p1 #%patch10010 -p1 #%patch10011 -p1 #%patch10012 -p1 #%patch10013 -p1 #%patch10014 -p1 #%patch10015 -p1 #%patch10017 -p1 #%patch10018 -p1 #%patch10019 -p1 #%patch10020 -p1 #%patch10021 -p1 #%patch10022 -p1 #%patch10023 -p1 #%patch10024 -p1 #%patch10025 -p1 #%patch10026 -p1 #%patch10027 -p1 #%patch10028 -p1 #%patch10029 -p1 #%patch10030 -p1 #%patch10031 -p1 #%patch10032 -p1 #%patch10033 -p1 #%patch10040 -p1 %patch99999 -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 xenalyze.hg CC="gcc -I../xen/include" %{?_smp_mflags} make -C tools/include/xen-foreign %{?_smp_mflags} make tools docs %{?_smp_mflags} make -C tools/debugger/gdbsx #### there are code problems that don't pass the 02-check-gcc-output, hence bitbucket ###env MAKE="make %{?_smp_mflags}" ./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 \ %{?_smp_mflags} \ M=$PWD cd ../.. done %endif make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes %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} } make -C xen install max_phys_cpus=%{max_cpus} pae=%{pae_enabled} debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT %{?_smp_mflags} install_xen dbg make -C xen clean make -C xen install max_phys_cpus=%{max_cpus} pae=%{pae_enabled} debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT %{?_smp_mflags} install_xen make -C xen clean export CFLAGS="$RPM_OPT_FLAGS" export RPM_OPT_FLAGS make -C tools/include/xen-foreign %{?_smp_mflags} # tools export XEN_PYTHON_NATIVE_INSTALL=1 make -C tools install \ DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} %{?_smp_mflags} ###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} %{?_smp_mflags} %ifarch x86_64 mkdir -p $RPM_BUILD_ROOT/${_libdir}/xen/bin/ ln -s /usr/lib/xen/bin/qemu-dm $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm %endif cp -avL xenalyze.hg/dump-raw $RPM_BUILD_ROOT/%{_bindir}/xenalyze.dump-raw cp -avL xenalyze.hg/xenalyze $RPM_BUILD_ROOT/%{_bindir} %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 %SOURCE20 $RPM_BUILD_ROOT/etc/modprobe.d/xen_pvdrivers.conf %endif %if %{?with_stubdom}0 # stubdom make stubdom %{?_smp_mflags} make -C stubdom install \ DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \ DOCDIR=%{_defaultdocdir}/xen INCDIR=%{_includedir} mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/xen %ifarch x86_64 ln -s /usr/lib/xen/boot/pv-grub-x86_32.gz $RPM_BUILD_ROOT/usr/lib/xen/boot/pv-grub-x86_32.gz ln -s /usr/lib/xen/bin/stubdom-dm $RPM_BUILD_ROOT/usr/lib64/xen/bin/stubdom-dm ln -s /usr/lib/xen/bin/stubdompath.sh $RPM_BUILD_ROOT/usr/lib64/xen/bin/stubdompath.sh %endif %endif # docs make -C docs install \ DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \ DOCDIR=%{_defaultdocdir}/xen for name in COPYING %SOURCE3 %SOURCE4 %SOURCE5; 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 xenpaging.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 %SOURCE6 $RPM_BUILD_ROOT/etc/init.d/xend ln -s /etc/init.d/xend $RPM_BUILD_ROOT/usr/sbin/rcxend install %SOURCE7 $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 %SOURCE19 $RPM_BUILD_ROOT/etc/modprobe.d/xen_loop.conf # 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 %SOURCE10 %SOURCE11 $RPM_BUILD_ROOT/etc/xen/examples/ install -m644 tools/xentrace/formats $RPM_BUILD_ROOT/etc/xen/examples/xentrace_formats.txt # scripts rm -f $RPM_BUILD_ROOT/etc/xen/scripts/block-*nbd install -m755 %SOURCE12 %SOURCE13 %SOURCE14 %SOURCE15 %SOURCE16 %SOURCE17 %SOURCE18 %SOURCE22 $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 %SOURCE8 $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/lib/xen/xenpaging mkdir -p $RPM_BUILD_ROOT/var/log/xen ln -s /var/lib/xen/images $RPM_BUILD_ROOT/etc/xen/images # Bootloader install -m755 %SOURCE9 $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 # xen utils make -C tools/xen-utils-0.1 install DESTDIR=$RPM_BUILD_ROOT XEN_INTREE_BUILD=yes # 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 -f $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/*.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/xen/create.dtd rm -f $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm.debug rm -f $RPM_BUILD_ROOT/%{_bindir}/qemu-img-xen rm -f $RPM_BUILD_ROOT/%{_bindir}/qemu-nbd-xen # This is necessary because of the build of libconfig for libxl #rm -rf $RPM_BUILD_ROOT/$RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT/%{_libdir}/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.* %{_libdir}/libvhd.so.* %{_libdir}/libxlutil.so.* %{_libdir}/libblktapctl.so.* %files tools %defattr(-,root,root) /usr/bin/xenalyze /usr/bin/xenalyze.dump-raw /usr/bin/xencons /usr/bin/xenstore* /usr/bin/xentrace* /usr/bin/pygrub /usr/bin/tapdisk-ioemu /usr/bin/remus /usr/sbin/blktapctrl /usr/sbin/flask-loadpolicy /usr/sbin/flask-getenforce /usr/sbin/flask-setenforce /usr/sbin/rcxend /usr/sbin/rcxendomains /usr/sbin/tapdisk /usr/sbin/xen* /usr/sbin/xm /usr/sbin/xsview /usr/sbin/gtracestat /usr/sbin/gtraceview /usr/sbin/lock-util /usr/sbin/tapdisk-client /usr/sbin/tapdisk-diff /usr/sbin/tapdisk-stream /usr/sbin/tapdisk2 /usr/sbin/td-util /usr/sbin/vhd-update /usr/sbin/vhd-util /usr/sbin/xen-list /usr/sbin/gdbsx /usr/sbin/xl /usr/sbin/kdd /usr/sbin/tap-ctl %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 %{_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 %attr(700,root,root) /var/lib/xen/xenpaging %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 /etc/init.d/xend /etc/init.d/xendomains /etc/init.d/xencommons /etc/init.d/xen-watchdog %config /etc/logrotate.d/xen %dir %attr(700,root,root) /etc/xen /etc/xen/auto %config /etc/xen/examples /etc/xen/images /etc/xen/scripts /etc/xen/cpupool #/etc/xen/scripts/qemu-ifup /etc/xen/README* %config /etc/xen/vm %config(noreplace) /etc/xen/*.sxp %config(noreplace) /etc/xen/*.xml %config(noreplace) /etc/xen/xenapiusers %config(noreplace) /etc/xen/xl.conf %config /etc/pam.d/xen-api %config /etc/modprobe.d/xen_loop.conf %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 /etc/bash_completion.d/xl.sh %dir %{_defaultdocdir}/xen %{_defaultdocdir}/xen/COPYING %{_defaultdocdir}/xen/README.SuSE %{_defaultdocdir}/xen/boot.local.xenU %{_defaultdocdir}/xen/boot.xen %{_defaultdocdir}/xen/misc %dir %{_libdir}/python%{pyver}/site-packages/xen %dir %{_libdir}/python%{pyver}/site-packages/grub %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/*.dtd %{_datadir}/xen/qemu/* %{_datadir}/xen/man/man1/* %{_datadir}/xen/man/man8/* %if %{?with_stubdom}0 /usr/lib/xen/bin/stubdom-dm /usr/lib/xen/bin/stubdompath.sh %ifarch x86_64 %{_libdir}/xen/bin/stubdom-dm %{_libdir}/xen/bin/stubdompath.sh %endif %endif %{_libdir}/xen/bin/qemu-dm %ifarch x86_64 /usr/lib/xen/bin/qemu-dm # NEEDS FIXING ##/usr/lib64/xen/bin/xc_kexec %else # NEEDS FIXING #/usr/lib/xen/bin/xc_kexec %endif /usr/lib/xen/boot/hvmloader #%pysite/xen/* %{_libdir}/python%{pyver}/site-packages/xen/* /usr/lib/xen/boot/domUloader.py #%pysite/grub/* %{_libdir}/python%{pyver}/site-packages/grub/* #%pysite/fsimage.so %{_libdir}/python%{pyver}/site-packages/fsimage.so %if %{?with_stubdom}0 /usr/lib/xen/boot/ioemu-stubdom.gz /usr/lib/xen/boot/pv-grub-x86_32.gz %ifarch x86_64 /usr/lib/xen/boot/pv-grub-x86_64.gz %endif %endif %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 %{_libdir}/libvhd.a %{_libdir}/libvhd.so %{_libdir}/libxlutil.a %{_libdir}/libxlutil.so %{_libdir}/libblktapctl.a %{_libdir}/libblktapctl.so /usr/bin/serial-split /usr/include/blktaplib.h /usr/include/fsimage* /usr/include/xen*.h /usr/include/xen/ /usr/include/xs.h /usr/include/xs_lib.h /usr/include/libxl.h /usr/include/_libxl_types.h /usr/include/libxl_uuid.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} if [ -f /usr/bin/qemu-img ]; then if [ -f /usr/bin/qemu-img-xen ]; then rm /usr/bin/qemu-img-xen fi ln -s /usr/bin/qemu-img /usr/bin/qemu-img-xen fi if [ -f /usr/bin/qemu-nbd ]; then if [ -f /usr/bin/qemu-nbd-xen ]; then rm /usr/bin/qemu-nbd-xen fi ln -s /usr/bin/qemu-nbd /usr/bin/qemu-nbd-xen fi %preun tools %{stop_on_removal xendomains xend} %postun tools %{restart_on_update xend} %{insserv_cleanup} if [ -f /usr/bin/qemu-img-xen ]; then rm /usr/bin/qemu-img-xen fi if [ -f /usr/bin/qemu-nbd-xen ]; then rm /usr/bin/qemu-nbd-xen fi %post libs /sbin/ldconfig %postun libs /sbin/ldconfig %changelog