File xen.spec of Package xen.7317

#
# spec file for package xen
#
# Copyright (c) 2016 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/
#


# needssslcertforbuild

Name:           xen
ExclusiveArch:  %ix86 x86_64 %arm aarch64
%define xvers 4.4
%define xvermaj 4
%define changeset 28698
%define xen_build_dir xen-4.4.4-testing
#
%define with_kmp 0
%define with_xend 0
%define with_xend_tools_pkg 0
%define with_debug 0
%define with_stubdom 0
%define with_gdbsx 0
%define with_dom0_support 0
%define with_qemu_traditional 0
#
%ifarch x86_64
%define with_kmp 1
%define with_debug 1
%define with_stubdom 1
%define with_gdbsx 1
%define with_dom0_support 1
%define with_qemu_traditional 1
%define with_xend_tools_pkg 0
%if %suse_version > 1230
%if %suse_version >= 1315
%define with_xend_tools_pkg 0
%else
%define with_xend_tools_pkg 1
%endif
%endif
%if %suse_version > 1230
%if %suse_version >= 1315
%define with_xend 0
%else
%define with_xend 1
%endif
%else
%define with_xend 1
%endif
%endif
#
%ifarch %arm aarch64
%define with_dom0_support 1
%endif
#
%define max_cpus 4
%ifarch x86_64
%if %suse_version == 1315
%define max_cpus 1024
%else
%define max_cpus 512
%endif
%endif
#
%define xen_install_suffix %{nil}
%ifarch x86_64
%define xen_install_suffix .gz
%endif
# EFI requires gcc 4.6 or newer
# gcc46 is available in 12.1 or sles11sp2
# gcc47 is available in sles11sp3
# 12.2+ have gcc 4.7 as default compiler
%if %suse_version == 1110
%define with_gcc47 1
%else
%define with_gcc47 0
%endif
%define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services
%if %suse_version >= 1230
%define with_systemd 1
%else
%define with_systemd 0
%endif
%ifarch %arm aarch64
BuildRequires:  libfdt1-devel
%endif
%ifarch %ix86 x86_64
BuildRequires:  dev86
%endif
BuildRequires:  bison
BuildRequires:  fdupes
BuildRequires:  flex
BuildRequires:  glib2-devel
BuildRequires:  libaio-devel
BuildRequires:  libbz2-devel
BuildRequires:  libpixman-1-0-devel
BuildRequires:  libuuid-devel
BuildRequires:  libxml2-devel
BuildRequires:  libyajl-devel
%ifarch x86_64
%if 0%{?suse_version} > 1230
BuildRequires:  libspice-server-devel
BuildRequires:  spice-protocol-devel
BuildRequires:  usbredir-devel
%endif
%endif
%if %{?with_qemu_traditional}0
BuildRequires:  SDL-devel
BuildRequires:  pciutils-devel
%endif
%if %{?with_stubdom}0
%if 0%{?suse_version} < 1230
BuildRequires:  texinfo
%else
BuildRequires:  makeinfo
%endif
%endif
BuildRequires:  ncurses-devel
BuildRequires:  openssl-devel
BuildRequires:  python-devel
%if %{?with_systemd}0
BuildRequires:  systemd
%endif
%if %suse_version >= 1120
BuildRequires:  xz-devel
%endif
%if %suse_version <= 1110
BuildRequires:  pmtools
%else
%ifarch %ix86 x86_64
BuildRequires:  acpica
%endif
%endif
%ifarch x86_64
%if %{?with_gcc47}0
BuildRequires:  gcc47
%endif
BuildRequires:  glibc-32bit
BuildRequires:  glibc-devel-32bit
%endif
%if %{?with_kmp}0
BuildRequires:  kernel-source
BuildRequires:  kernel-syms
BuildRequires:  module-init-tools
%if %suse_version >= 1230
BuildRequires:  lndir
BuildRequires:  pesign-obs-integration
%else
BuildRequires:  xorg-x11-util-devel
%endif
%endif

Version:        4.4.4_30
Release:        0
PreReq:         %insserv_prereq %fillup_prereq
Summary:        Xen Virtualization: Hypervisor (aka VMM aka Microkernel)
License:        GPL-2.0
Group:          System/Kernel
Source0:        xen-4.4.4-testing-src.tar.bz2
Source1:        stubdom.tar.bz2
Source2:        qemu-xen-traditional-dir-remote.tar.bz2
Source3:        qemu-xen-dir-remote.tar.bz2
Source4:        seabios-dir-remote.tar.bz2
Source5:        ipxe.tar.bz2
Source6:        figlet.tar.bz2
Source10:       README.SUSE
Source11:       boot.xen
Source12:       boot.local.xenU
Source14:       init.xendomains
Source15:       logrotate.conf
Source18:       xmexample.disks
Source19:       block-nbd
Source20:       block-iscsi
Source21:       block-npiv-common.sh
Source22:       block-npiv
Source23:       block-npiv-vport
Source24:       xmclone.sh
Source26:       init.xen_loop
Source27:       init.50-hvm-xen_conf
%if %{?with_kmp}0
Source28:       kmp_filelist
%endif
Source29:       block-dmmd
# Xen API remote authentication sources
Source30:       etc_pam.d_xen-api
Source31:       xenapiusers
# Sysconfig hook script for Xen
Source32:       xen-updown.sh
# Init script and sysconf file for pciback
Source34:       init.pciback
Source35:       sysconfig.pciback
Source36:       xnloader.py
Source37:       xen2libvirt.py
# Systemd service files
Source41:       xencommons.service
Source42:       xendomains.service
Source43:       xen-watchdog.service
# Xend files
%if %{?with_xend}0
Source50:       init.xend
Source51:       xend-relocation.sh
Source52:       xend-relocation-server.fw
Source53:       domUloader.py
Source54:       xmexample.domUloader
Source55:       xmexample.disks
Source56:       xend.service
%endif
Source57:       xen-utils-0.1.tar.bz2
# For xen-libs
Source99:       baselibs.conf
# http://xenbits.xensource.com/ext/xenalyze
Source20000:    xenalyze.hg.tar.bz2
# Upstream patches
Patch1:         2e5738ff-add-vga-none-support.patch
Patch2:         5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch
Patch3:         5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.patch
Patch4:         53299d8f-xenconsole-reset-tty-on-failure.patch
Patch5:         5346a7a0-x86-AMD-support-further-feature-masking-MSRs.patch
Patch6:         53563ea4-x86-MSI-drop-workaround-for-insecure-Dom0-kernels.patch
Patch7:         53563f86-x86-svm-enable-TSC-scaling.patch
Patch8:         53563fb8-x86-HVM-use-fixed-TSC-value-when-saving-or-restoring.patch
Patch9:         537c790d-fix-memory-leak-in-libxl_cpuid_dispose.patch
Patch10:        537cd0b0-hvmloader-also-cover-PCI-MMIO-ranges-above-4G-with-UC-MTRR-ranges.patch
Patch11:        537cd0cc-hvmloader-PA-range-0xfc000000-0xffffffff-should-be-UC.patch
Patch12:        538c7df7-libxenstat-handle-renamed-vifs.patch
Patch13:        539ebe62-x86-EFI-improve-boot-time-diagnostics.patch
Patch14:        53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.patch
Patch15:        53c9151b-Fix-xl-vncviewer-accesses-port-0-by-any-invalid-domid.patch
Patch16:        53d124e7-fix-list_domain_details-check-config-data-length-0.patch
Patch17:        53dba447-x86-ACPI-allow-CMOS-RTC-use-even-when-ACPI-says-there-is-none.patch
Patch18:        53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch
Patch19:        53e8be5f-x86-vHPET-use-rwlock-instead-of-simple-one.patch
Patch20:        53fcebab-xen-pass-kernel-initrd-to-qemu.patch
Patch21:        53ff3659-x86-consolidate-boolean-inputs-in-hvm-and-p2m.patch
Patch22:        53ff36ae-x86-hvm-treat-non-insn-fetch-NPF-also-as-read-violations.patch
Patch23:        53ff36d5-x86-mem_event-deliver-gla-fault-EPT-violation-information.patch
Patch24:        54005472-EPT-utilize-GLA-GPA-translation-known-for-certain-faults.patch
Patch25:        540f269e-x86-mwait-idle-Broadwell-support.patch
Patch26:        541ad385-x86-suppress-event-check-IPI-to-MWAITing-CPUs.patch
Patch27:        541ad3ca-x86-HVM-batch-vCPU-wakeups.patch
Patch28:        5423e61c-x86emul-fix-SYSCALL-SYSENTER-SYSEXIT-emulation.patch
Patch29:        5424057f-x86-HVM-fix-miscellaneous-aspects-of-x2APIC-emulation.patch
Patch30:        542405b4-x86-HVM-fix-ID-handling-of-x2APIC-emulation.patch
Patch31:        54379e6d-x86-vlapic-don-t-silently-accept-bad-vectors.patch
Patch32:        54467cfc-x86-hvm-further-restrict-x2apic-MSRs.patch
Patch33:        5459f759-xentop-dynamically-expand-columns.patch
Patch34:        5489c2cf-have-architectures-specify-Dom0-PIRQs.patch
Patch35:        548e9c0d-console-allocate-ring-buffer-earlier.patch
Patch36:        54b3f023-xenstored-log-tdb-messages.patch
Patch37:        54f4985f-libxl-fix-libvirtd-double-free.patch
Patch38:        55111ee4-x86-support-newer-Intel-CPU-models.patch
Patch39:        551ac326-xentop-add-support-for-qdisk.patch
Patch40:        551d1dbf-arm-Factor-out-psr_mode_is_user.patch
Patch41:        5527edd2-x86-hvm-Fix-the-unknown-nested-vmexit-reason-80000021-bug.patch
Patch42:        552d293b-x86-vMSI-X-honor-all-mask-requests.patch
Patch43:        552d2966-x86-vMSI-X-add-valid-bits-for-read-acceleration.patch
Patch44:        5548e903-domctl-don-t-truncate-XEN_DOMCTL_max_mem-requests.patch
Patch45:        555de7bb-xl-migrate-live.patch
Patch46:        5576f143-x86-adjust-PV-I-O-emulation-functions-types.patch
Patch47:        55795a52-x86-vMSI-X-support-qword-MMIO-access.patch
Patch48:        5583d9c5-x86-MSI-X-cleanup.patch
Patch49:        5583da09-x86-MSI-track-host-and-guest-masking-separately.patch
Patch50:        55b0a218-x86-PCI-CFG-write-intercept.patch
Patch51:        55b0a255-x86-MSI-X-maskall.patch
Patch52:        55b0a283-x86-MSI-X-teardown.patch
Patch53:        55b0a2ab-x86-MSI-X-enable.patch
Patch54:        55b0a2db-x86-MSI-track-guest-masking.patch
Patch55:        55c322f9-VT-d-add-iommu-igfx-option-to-workaround-graphics-issues.patch
Patch56:        55f7f9d2-libxl-slightly-refine-pci-assignable-add-remove-handling.patch
Patch57:        5603d3aa-libxl-fix-the-cleanup-of-the-backend-path.patch
Patch58:        5604f239-x86-PV-properly-populate-descriptor-tables.patch
Patch59:        561d2046-VT-d-use-proper-error-codes-in-iommu_enable_x2apic_IR.patch
Patch60:        5649bcbe-libxl-relax-readonly-check-introduced-by-XSA-142-fix.patch
Patch61:        564f0639-x86-P2M-consolidate-handling-of-types-without-valid-MFN.patch
Patch62:        56546afb-sched-better-handle-not-inserting-idle-vCPUs.patch
Patch63:        566052a6-VT-d-drop-unneeded-Ivybridge-quirk-workaround.patch
Patch64:        56a0f4a2-x86-mmuext-tighten-TLB-flush-address-checks.patch
Patch65:        56a0f508-x86-fix-and-simplify-MTRR-overlap-checking.patch
Patch66:        56b0a884-x86-vmx-don-t-clobber-exception_bitmap-for-emulated-real-mode.patch
Patch67:        56b0a90a-credit-update-timeslice-under-lock.patch
Patch68:        56b0a92c-recalculate-cpupool-credits-when-updating-timeslice.patch
Patch69:        56b9d9f5-x86-nHVM-avoid-NULL-deref-during-INVLPG-intercept.patch
Patch70:        56bb3f45-hvmloader-fix-scratch_alloc-to-avoid-overlaps.patch
Patch71:        56c48ee5-x86-enforce-consistent-cachability-of-MMIO-mappings.patch
Patch72:        56c48f30-x86-VMX-sanitize-rIP-before-re-entering-guest.patch
Patch73:        56c5cfae-x86emul-fix-rIP-handling.patch
Patch74:        56ceed55-x86-hvm-print-register-state-upon-triple-fault.patch
Patch75:        56d0339f-x86emul-limit-check-branch-targets.patch
Patch76:        56d03711-x86-fpu-add-a-per-domain-field-to-set-the-width-of-FIP-FDP.patch
Patch77:        56d03743-x86-hvm-add-HVM_PARAM_X87_FIP_WIDTH.patch
Patch78:        56e197e7-x86-don-t-flush-the-whole-cache-when-changing-cachability.patch
Patch79:        56e7efb1-vmx-restore-debug-registers-when-injecting-DB-traps.patch
Patch80:        56ebc0fd-x86-fpu-improve-check-for-XSAVE-not-writing-FIP-FDP-fields.patch
Patch81:        56fa73fa-x86-fix-information-leak-on-AMD-CPUs.patch
Patch82:        56fd1d74-x86-HVM-fix-forwarding-of-internally-cached-requests.patch
Patch83:        57026603-unmodified-drivers-enable-use-of-register_oldmem_pfn_is_ram-API.patch
Patch84:        5708158d-x86-vMSI-X-fix-qword-write-covering-vector-control-field.patch
Patch85:        5717b5cd-x86-limit-GFNs-to-32-bits-for-shadowed-superpages.patch
Patch86:        571e0bb9-x86-MSI-handle-both-MSI-X-and-MSI-in-cfg-space-write-intercept.patch
Patch87:        571e0c2b-x86-MSI-X-correctly-track-interrupt-masking-state.patch
Patch88:        571f3a56-x86-vMSI-X-avoid-missing-first-unmask-of-vectors.patch
Patch89:        57220af0-x86-time-fix-gtime_to_gtsc-for-vtsc-1-PV-guests.patch
Patch90:        57220bd5-x86-vMSI-X-also-snoop-qword-writes.patch
Patch91:        57238bb9-x86-vMSI-X-also-snoop-REP-MOVS.patch
Patch92:        57238c1e-x86-fix-domain-cleanup.patch
Patch93:        5734a90d-x86-PoD-skip-eager-reclaim-when-possible.patch
Patch94:        573b116a-x86-mm-fully-honor-PS-bits-in-guest-page-table-walks.patch
Patch95:        573d9029-x86emul-suppress-writeback-upon-unsuccessful-MMX-SSE-AVX.patch
Patch96:        5742fa17-sched-avoid-races-on-time-values-read-from-NOW.patch
Patch97:        57580bbd-kexec-allow-relaxed-placement-via-cmdline.patch
Patch98:        576001df-x86-time-use-local-stamp-in-TSC-calibration-fast-path.patch
Patch99:        57600261-IOMMU-handle-IOMMU-mapping-and-unmapping-failures.patch
Patch100:       57973099-have-schedulers-revise-initial-placement.patch
Patch101:       579730e6-remove-buggy-initial-placement-algorithm.patch
Patch102:       57976073-x86-remove-unsafe-bits-from-mod_lN_entry-fastpath.patch
Patch103:       57a1e603-x86-time-adjust-local-system-time-initialization.patch
Patch104:       57a1e64c-x86-time-introduce-and-use-rdtsc_ordered.patch
Patch105:       57a2f6ac-x86-time-calibrate-TSC-against-platform-timer.patch
Patch106:       57a30261-x86-support-newer-Intel-CPU-models.patch
Patch107:       57ac6316-page-alloc-x86-don-t-restrict-DMA-heap-to-node-0.patch
Patch108:       57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch
Patch109:       57c82be2-x86-32on64-adjust-call-gate-emulation.patch
Patch110:       57c96df3-credit1-fix-a-race-when-picking-initial-pCPU.patch
Patch18801:     xsa188.patch
Patch111:       57d1563d-x86-32on64-don-t-allow-recursive-page-tables-from-L3.patch
Patch112:       57d15679-x86-emulate-Correct-boundary-interactions-of-emulated-insns.patch
Patch113:       57d1569a-x86-shadow-Avoid-overflowing-sh_ctxt-seg_reg.patch
Patch114:       57d18642-x86-segment-Bounds-check-accesses-to-emulation-ctxt-seg_reg.patch
Patch115:       57da8883-credit1-fix-mask-to-be-used-for-tickling.patch
Patch116:       57da8883-credit2-properly-schedule-migration-of-running-vcpu.patch
Patch117:       57dc109a-change-modify-destroy-xen-mappings-to-return-error.patch
Patch118:       57e93e1d-x86emul-correct-loading-of-ss.patch
Patch119:       57e93e4a-x86emul-don-t-allow-null-selector-for-LTR.patch
Patch120:       57e93e89-x86-AMD-apply-erratum-665-workaround.patch
Patch121:       57ee6cbc-credit1-return-time-remaining-to-limit-as-next-timeslice.patch
Patch122:       57f3a8ee-x86emul-honor-guest-CR0-TS-and-CR0-EM.patch
Patch123:       57fb6a91-x86-defer-not-present-segment-checks.patch
Patch124:       5800c51d-x86-hvm-Clobber-cs-L-when-LME-becomes-set.patch
Patch125:       5800caec-x86emul-fix-pushing-of-selector-registers.patch
Patch126:       5800cb06-x86-Viridian-don-t-depend-on-undefined-register-state.patch
Patch127:       5810a9cc-x86-emul-Correct-decoding-of-SReg3-operands.patch
Patch128:       58249392-x86-svm-dont-clobber-eax-edx-if-RDMSR-intercept-fails.patch
Patch129:       582c35d6-x86-vmx-correct-long-mode-check-in-vmx_cpuid_intercept.patch
Patch130:       58343dc2-x86-hvm-Fix-the-handling-of-non-present-segments.patch
Patch131:       58343df8-x86-HVM-dont-load-LDTR-with-VM86-mode-attrs-during-task-switch.patch
Patch132:       58343e24-x86-PV-writes-of-fs-and-gs-base-MSRs-require-canonical-addresses.patch
Patch133:       58343ec2-x86emul-fix-huge-bit-offset-handling.patch
Patch20001:     xsa200.patch
Patch134:       58343f79-pygrub-Properly-quote-results-when-returning-them-to-the-caller.patch
Patch135:       58343fa5-x86-EFI-meet-further-spec-requirements-for-runtime-calls.patch
Patch136:       5837fa68-x86-SVM-don-t-deliver-GP-without-error-code.patch
Patch137:       583816f4-x86-vmx-Don-t-deliver-MC-with-an-error-code.patch
Patch138:       58383d46-x86emul-CMOVcc-always-writes-its-destination.patch
Patch139:       58510cac-x86emul-MOVNTI-no-REP-prefixes.patch
Patch140:       5853ed37-VT-d-correct-dma_msi_set_affinity.patch
Patch141:       5853ee07-x86emul-CMPXCHG16B-aligned-operand.patch
Patch142:       58580060-x86-emul-correct-SYSCALL-eflags-handling.patch
Patch143:       585aa3c5-x86-force-EFLAGS-IF-on-upon-exit-to-PV.patch
Patch144:       587de4a9-x86emul-VEX-B-ignored-in-compat-mode.patch
Patch145:       5882129d-x86emul-LOCK-check-adjustments.patch
Patch146:       58821300-x86-segment-attribute-handling.patch
Patch147:       58873c80-x86-hvm-do-not-set-msr_tsc_adjust-on-.patch
Patch148:       5888b1b3-x86-emulate-dont-assume-addr_size-32-implies-protmode.patch
Patch149:       5899cbd9-EPT-allow-wrcomb-MMIO-mappings-again.patch
Patch150:       58a44771-IOMMU-always-call-teardown-callback.patch
Patch151:       58a48ccc-x86-fix-p2m_flush_table-for-non-nested.patch
Patch152:       58a70d94-VMX-fix-VMCS-race-on-cswitch-paths.patch
Patch153:       58ac1f3f-VMX-dont-leak-host-syscall-MSRs.patch
Patch154:       58cbf682-x86-EFI-avoid-overrunning-mb_modules.patch
Patch155:       58cf9260-x86-EFI-avoid-Xen-when-looking-for-mod-kexec-pos.patch
Patch156:       58cf9277-x86-time-dont-use-vTSC-if-host-guest-freqs-match.patch
Patch157:       58d25ea2-xenstore-add-missing-checks-for-allocation-failure.patch
Patch158:       58da51e7-xenstored-apply-a-write-transaction-rate-limit.patch
Patch159:       58da51e7-xenstored-Log-when-the-write-transaction-rate-limit.patch
Patch160:       58e368c1-kexec-clear-kexec_image-slot-when-unloading.patch
Patch161:       58e395f2-XENMEM_exchange-properly-check-guest-ranges.patch
Patch162:       58e50194-memory-exit-early-from-memory_exchange.patch
Patch163:       58e501b9-memory-dont-hand-MFN-to-translated-guests.patch
Patch164:       58e79a56-x86-mce-make-severity_cpu-private.patch
Patch165:       58e79a79-x86-mce-always-reinit-severity_cpu.patch
Patch166:       58f78b61-x86-move-ucode-loading-earlier.patch
Patch167:       590050dd-x86-32on64-honor-add-to-physmap-batch-size.patch
Patch168:       59087f4e-multicall-deal-with-early-exit-conditions.patch
Patch21501:     xsa215.patch
Patch169:       59087fc2-x86-discard-type-info-when-stealing-pages.patch
Patch170:       590b2716-hvm-fix-crash-in-hvm_save_one.patch
Patch171:       591203a4-x86-pv-fix-int80-bounce-handling.patch
Patch172:       591203b4-x86-pv-align-rsp-before-pushing-failsafe-frame.patch
Patch173:       592fd5f0-stop_machine-fill-result-only-in-case-of-error.patch
Patch174:       5949153f-x86-mm-disallow-page-stealing-from-HVM-domains.patch
Patch175:       594915c3-gnttab-fix-unmap-pin-accounting-race.patch
Patch176:       59491609-gnttab-Avoid-potential-double-put-of-maptrack-entry.patch
Patch177:       5949165a-gnttab-correct-maptrack-table-accesses.patch
Patch178:       594916bb-x86-shadow-hold-refs-during-emulated-writes.patch
Patch179:       5949171b-evtchn-avoid-NULL-derefs.patch
Patch180:       5949179c-memory-fix-return-value-handing-of-guest_remove_page.patch
Patch181:       594917ec-guest_physmap_remove_page-needs-its-return-value-checked.patch
Patch182:       594918ed-gnttab-fix-handling-of-dev_bus_addr-during-unmap.patch
Patch183:       59491909-gnttab-never-create-host-mapping-unless-asked-to.patch
Patch184:       5949191d-gnttab-correct-logic-to-get-page-refs-during-map-requests.patch
Patch185:       59491937-gnttab-__gnttab_unmap_common_complete-is-all-or-nothing.patch
Patch186:       596f257e-x86-fix-hvmemul_insn_fetch.patch
Patch187:       598c3706-cpufreq-only-stop-ondemand-governor-if-started.patch
Patch188:       5992f1e5-x86-grant-disallow-misaligned-PTEs.patch
Patch189:       5992f233-gnttab-correct-pin-status-fixup-for-copy.patch
Patch190:       59958e76-gnttab-dont-use-possibly-unbounded-tail-calls.patch
Patch191:       59958ebf-gnttab-fix-transitive-grant-handling.patch
Patch192:       599da329-arm-mm-release-grant-lock-on-xenmem_add_to_physmap_one-error-paths.patch
Patch193:       59a01223-x86-check-for-alloc-errors-in-modify_xen_mappings.patch
Patch194:       59a9221f-VT-d-use-correct-BDF-for-VF-to-search-VT-d-unit.patch
Patch195:       59b7d664-mm-make-sure-node-is-less-than-MAX_NUMNODES.patch
Patch196:       59b7d6c8-xenstore-dont-unlink-connection-object-twice.patch
Patch197:       59b7d6d9-gnttab-also-validate-PTE-perms-upon-destroy-replace.patch
Patch198:       59d237be-SVM-fix-livelock-for-shadowed-unpaged-guests.patch
Patch199:       59d4d144-x86-PV-fix-generalize-guest-nul-selector-handling.patch
Patch200:       59db60d9-domctl-fix-heap-leak-via-XEN_DOMCTL_getvcpucontext.patch
Patch201:       59df6182-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device.patch
Patch202:       59df61ce-x86-enforce-proper-priv-on-pIRQ-mapping.patch
Patch203:       59df61ea-x86-MSI-disallow-redundant-enabling.patch
Patch204:       59df6206-x86-IRQ-conditionally-preserve-irq-pirq-map-on-error.patch
Patch205:       59df6224-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook.patch
Patch206:       59df636e-x86-HVM-prefill-partially-used-var.patch
Patch207:       59df63b2-x86-limit-linear-page-table-use-to-1-level.patch
Patch208:       59df6499-x86-dont-store-possibly-stale-TLB-flush-time.patch
Patch209:       59df64ea-x86-dont-allow-page_unlock-to-drop-last-type-ref.patch
Patch210:       xsa243-1.patch
Patch211:       59df64ff-x86-shadow-dont-create-self-lin-map-for-4-level-translated.patch
Patch212:       59df6517-x86-fix-IST-handling-during-PCPU-bringup.patch
Patch213:       59ef47bd-gnttab-fix-pin-count-page-reference-race.patch
Patch214:       59ef666f-x86-fix-GS-base-dirty-determination.patch
Patch215:       59ef6699-x86-also-show-FS-GS-base-addresses.patch
Patch216:       59f32b46-x86-dont-latch-wrong-GS-base-addresses.patch
Patch217:       59f3366d-x86-PV-optional-linear-PT.patch
Patch218:       5a0d5c59-x86-dont-wrongly-trigger-linear-pgt-assertion.patch
Patch219:       5a0d5c86-x86-shadow-correct-SH_LINEAR-map-detect-in-sh_guess_wrmap.patch
Patch220:       5a16a51e-sync-CPU-state-upon-final-domain-destruction.patch
Patch221:       5a1d528b-x86-pod-prevent-infinite-loop-when-shattering-large-pages.patch
Patch222:       5a1d52cf-p2m-check-if-removing-p2m-entry-actually-worked.patch
Patch223:       5a1d52e6-p2m-check-return-of-p2m_set_entry-when-decreasing-.patch
Patch224:       5a1d5312-x86-replace-bad-ASSERT-in-xatp1.patch
Patch225:       5a1d5333-x86-check-paging-mode-earlier-in-xatp1.patch
Patch226:       5a1d5350-improve-xatpb-address-checking.patch
Patch227:       5a2fd946-x86-dont-wrongly-trigger-linear-pgt-assertion.patch
Patch228:       5a2fd984-x86-mm-dont-wrongly-set-page-ownership.patch
Patch229:       5a2fd9a9-x86-shadow-fix-refcount-overflow-check.patch
Patch230:       5a2fd9c9-x86-shadow-fix-ref-counting-error-handling.patch
Patch231:       5a2fd9e9-x86-paging-dont-wrongly-BUG-finding-SHARED_M2P_ENTRY.patch
Patch232:       5a33a12f-domctl-improve-locking-during-domain-destruction.patch
Patch233:       5a4caa5e-x86-IRQ-conditionally-preserve-access-perm.patch
Patch234:       5a4caa8c-x86-E820-don-t-overrun-array.patch
Patch235:       5a4fd893-x86-entry-remove-partial-cpu_user_regs.patch
Patch236:       5a4fd894-1-x86-rearrange-RESTORE_ALL-to-restore-in-stack-order.patch
Patch237:       5a4fd894-2-x86-hvm-use-SAVE_ALL-after-VMExit.patch
Patch238:       5a4fd894-3-x86-erase-guest-GPRs-on-entry-to-Xen.patch
Patch239:       5a4fd894-4-clarifications-to-wait-infrastructure.patch
Patch240:       5a534c78-x86-dont-use-incorrect-CPUID-values-for-topology.patch
Patch241:       5a5cb24c-x86-mm-always-set-_PAGE_ACCESSED-on-L4-updates.patch
Patch242:       5a5e2cff-x86-Meltdown-band-aid.patch
Patch243:       5a5e2d73-x86-Meltdown-band-aid-conditional.patch
Patch244:       5a5e3a4e-1-x86-support-compiling-with-indirect-branch-thunks.patch
Patch245:       5a5e3a4e-2-x86-support-indirect-thunks-from-asm.patch
Patch246:       5a5e3a4e-3-x86-report-speculative-mitigation-details.patch
Patch247:       5a5e3a4e-4-x86-AMD-set-lfence-as-Dispatch-Serialising.patch
Patch248:       5a5e3a4e-5-x86-definitions-for-Indirect-Branch-Controls.patch
Patch249:       5a5e3a4e-6-x86-cmdline-opt-to-disable-IBRS-IBPB-STIBP.patch
Patch250:       5a68bc16-x86-acpi-process-softirqs-logging-Cx.patch
Patch251:       5a6b36cd-1-x86-cpuid-handling-of-IBRS-IBPB-STIBP-and-IBRS-for-guests.patch
Patch252:       5a6b36cd-2-x86-msr-emulation-of-SPEC_CTRL-PRED_CMD.patch
Patch253:       5a6b36cd-3-x86-migrate-MSR_SPEC_CTRL.patch
Patch254:       5a6b36cd-4-x86-hvm-permit-direct-access-to-SPEC_CTRL-PRED_CMD.patch
Patch255:       5a6b36cd-5-x86-use-SPEC_CTRL-on-entry.patch
Patch256:       5a6b36cd-6-x86-clobber-RSB-RAS-on-entry.patch
Patch257:       5a6b36cd-7-x86-boot-calculate-best-BTI-mitigation.patch
Patch258:       5a6b36cd-8-x86-issue-speculation-barrier.patch
Patch259:       5a6b36cd-9-x86-clear-SPEC_CTRL-while-idle.patch
Patch260:       5a79d7ed-libxc-packed-initrd-dont-fail-domain-creation.patch
Patch261:       5a7b1bdd-x86-Meltdown-band-aid-less-IPI.patch
Patch262:       5a856a2b-x86-emul-fix-64bit-decoding-of-segment-overrides.patch
Patch263:       5a856a2b-x86-use-32bit-xors-for-clearing-GPRs.patch
Patch264:       5a8be788-x86-nmi-start-NMI-watchdog-on-CPU0-after-SMP.patch
Patch265:       5a95571f-memory-dont-implicitly-unpin-in-decrease-res.patch
Patch266:       5a95576c-gnttab-ARM-dont-corrupt-shared-GFN-array.patch
Patch267:       5a955800-gnttab-dont-free-status-pages-on-ver-change.patch
Patch268:       5a956747-x86-HVM-dont-give-wrong-impression-of-WRMSR-success.patch
Patch269:       5a9eb7f1-x86-xpti-dont-map-stack-guard-pages.patch
Patch270:       5a9eb85c-x86-slightly-reduce-XPTI-overhead.patch
Patch271:       5aa2b6b9-cpufreq-ondemand-CPU-offlining-race.patch
Patch272:       5aaa5c98-x86-ignore-guest-microcode-loads.patch
Patch273:       5aaa9878-x86-vlapic-clear-TMR-bit-for-edge-triggered-intr.patch
Patch274:       5ac63737-x86-disable-XPTI-when-RDCL_NO.patch
Patch275:       5ac63737-x86-log-XPTI-enabled-status.patch
Patch276:       5acb58a2-x86-pv-fix-segs-for-32bit-syscall.patch
Patch277:       5ad4948b-x86-correct-MSR_PRED_CMD-emulation.patch
Patch278:       5ad8c3a7-x86-spec_ctrl-update-retpoline-decision-making.patch
Patch279:       5adda097-x86-HPET-fix-race-triggering-ASSERT.patch
Patch280:       5adde9ed-xpti-fix-double-fault-handling.patch
Patch281:       5ae06fad-SVM-fix-intercepts-for-SYS-CALL-ENTER-MSRs.patch
Patch282:       5ae076d7-libxl-specify-format-of-inserted-cdrom.patch
Patch283:       5ae0770d-x86-fix-slow-int80-path-after-XPTI.patch
Patch284:       5ae31917-x86-cpuidle-init-stats-lock-once.patch
Patch26001:     xsa260-1.patch
Patch26002:     xsa260-2.patch
Patch26003:     xsa260-3.patch
Patch26004:     xsa260-4.patch
Patch26101:     xsa261.patch
Patch26201:     xsa262.patch
Patch21601:     xsa216-qemuu.patch
Patch14001:     xsa140-qemut-1.patch
Patch14002:     xsa140-qemut-2.patch
Patch14003:     xsa140-qemut-3.patch
Patch14004:     xsa140-qemut-4.patch
Patch14005:     xsa140-qemut-5.patch
Patch14006:     xsa140-qemut-6.patch
Patch14007:     xsa140-qemut-7.patch
Patch15501:     xsa155-xen-0001-xen-Add-RING_COPY_REQUEST.patch
Patch15502:     xsa155-xen-0002-blktap2-Use-RING_COPY_REQUEST.patch
Patch15503:     xsa155-xen-0003-libvchan-Read-prod-cons-only-once.patch
Patch16201:     xsa162-qemuu.patch
Patch16401:     xsa164.patch
Patch17501:     xsa175-0001-libxl-Record-backend-frontend-paths-in-libxl-DOMID.patch
Patch17502:     xsa175-0002-libxl-Provide-libxl__backendpath_parse_domid.patch
Patch17503:     xsa175-0003-libxl-Do-not-trust-frontend-in-libxl__devices_destro.patch
Patch17504:     xsa175-0004-libxl-Do-not-trust-frontend-in-libxl__device_nextid.patch
Patch17505:     xsa175-0005-libxl-Do-not-trust-frontend-for-disk-eject-event.patch
Patch17506:     xsa175-0006-libxl-Do-not-trust-frontend-for-disk-in-getinfo.patch
Patch17507:     xsa175-0007-libxl-Do-not-trust-frontend-for-vtpm-list.patch
Patch17508:     xsa175-0008-libxl-Do-not-trust-frontend-for-vtpm-in-getinfo.patch
Patch17509:     xsa175-0009-libxl-Do-not-trust-frontend-for-nic-in-libxl_devid_t.patch
Patch17510:     xsa175-0010-libxl-Do-not-trust-frontend-for-nic-in-getinfo.patch
Patch17801:     xsa178-0001-libxl-Make-copy-of-every-xs-backend-in-libxl-in-_gen.patch
Patch17804:     xsa178-0004-libxl-Do-not-trust-backend-for-vtpm-in-getinfo-uuid.patch
Patch17806:     xsa178-0006-libxl-Do-not-trust-backend-for-disk-eject-vdev.patch
Patch17807:     xsa178-0007-libxl-Do-not-trust-backend-for-disk-fix-driver-domai.patch
Patch17808:     xsa178-0008-libxl-Do-not-trust-backend-for-disk-in-getinfo.patch
Patch17811:     xsa178-0011-libxl-Rename-libxl__device_-nic-channel-_from_xs_be-.patch
Patch17812:     xsa178-0012-libxl-Rename-READ_BACKEND-to-READ_LIBXLDEV.patch
Patch17813:     xsa178-0013-libxl-Have-READ_LIBXLDEV-use-libxl_path-rather-than-.patch
Patch17814:     xsa178-0014-libxl-Do-not-trust-backend-in-nic-getinfo.patch
Patch17815:     xsa178-0015-libxl-Do-not-trust-backend-for-nic-in-devid_to_devic.patch
Patch17816:     xsa178-0016-libxl-Do-not-trust-backend-for-nic-in-list.patch
Patch17819:     xsa178-0019-libxl-Cleanup-Have-libxl__alloc_vdev-use-libxl.patch
Patch17820:     xsa178-0020-libxl-Cleanup-use-libxl__backendpath_parse_domid-in-.patch
Patch17821:     xsa178-0021-libxl-Document-serial-correctly.patch
Patch18401:     xsa184.patch
# Upstream qemu
Patch350:       VNC-Support-for-ExtendedKeyEvent-client-message.patch
Patch351:       0001-net-move-the-tap-buffer-into-TAPState.patch
Patch352:       0002-net-increase-tap-buffer-size.patch
Patch353:       0003-e1000-fix-access-4-bytes-beyond-buffer-end.patch
Patch354:       0004-e1000-secrc-support.patch
Patch355:       0005-e1000-multi-buffer-packet-support.patch
Patch356:       0006-e1000-clear-EOP-for-multi-buffer-descriptors.patch
Patch357:       0007-e1000-verify-we-have-buffers-upfront.patch
Patch358:       0008-e1000-check-buffer-availability.patch
Patch359:       CVE-2013-4540-qemu.patch
Patch360:       CVE-2015-5154-qemut-fix-START-STOP-UNIT-command-completion.patch
Patch361:       CVE-2015-6815-qemut-e1000-fix-infinite-loop.patch
Patch362:       CVE-2015-4037-qemuu-smb-config-dir-name.patch
Patch363:       CVE-2015-4037-qemut-smb-config-dir-name.patch
Patch365:       CVE-2014-0222-qemut-qcow1-validate-l2-table-size.patch
Patch366:       CVE-2015-8345-qemuu-eepro100-infinite-loop-fix.patch
Patch367:       CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch
Patch368:       CVE-2015-8504-qemuu-vnc-avoid-floating-point-exception.patch
Patch369:       CVE-2015-8504-qemut-vnc-avoid-floating-point-exception.patch
Patch370:       CVE-2015-7549-qemuu-pci-null-pointer-dereference-issue.patch
Patch371:       CVE-2015-8558-qemuu-usb-infinite-loop-in-ehci_advance_state-results-in-DoS.patch
Patch372:       CVE-2015-8568-qemuu-net-vmxnet3-avoid-memory-leakage-in-activate_device.patch
Patch373:       CVE-2015-8745-qemuu-net-vmxnet3-read-IMR-registers-instead-of-assert.patch
Patch374:       CVE-2015-8744-qemuu-net-vmxnet3-incorrect-l2-header-validation-leads-to-crash.patch
Patch375:       CVE-2015-8743-qemuu-ne2000-OOB-memory-access-in-ioport-rw-functions.patch
Patch376:       CVE-2015-8743-qemut-ne2000-OOB-memory-access-in-ioport-rw-functions.patch
Patch377:       CVE-2015-8613-qemuu-scsi-initialise-info-object-with-appropriate-size.patch
Patch378:       CVE-2016-1568-qemuu-ide-ahci-reset-ncq-object-to-unused-on-error.patch
Patch379:       CVE-2016-1714-qemuu-fw_cfg-add-check-to-validate-current-entry-value.patch
Patch380:       CVE-2016-1714-qemut-fw_cfg-add-check-to-validate-current-entry-value.patch
Patch381:       CVE-2013-4538-qemuu-ssd0323-fix-buffer-overun-on-invalid-state.patch
Patch382:       CVE-2013-4538-qemut-ssd0323-fix-buffer-overun-on-invalid-state.patch
Patch383:       CVE-2015-7512-qemuu-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
Patch384:       CVE-2015-7512-qemut-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
Patch385:       CVE-2014-3689-qemuu-vmware-vga-vmsvga_verify_rect.patch
Patch386:       CVE-2014-3689-qemuu-vmware-vga-vmsvga_update_rect.patch
Patch387:       CVE-2014-3689-qemuu-vmware-vga-vmsvga_copy_rect.patch
Patch388:       CVE-2014-3689-qemuu-vmware-vga-vmsvga_fill_rect.patch
Patch389:       CVE-2014-3689-qemut-vmware-vga-turn-off-hw-accel.patch
Patch390:       CVE-2014-7815-qemut-vnc-sanitize-bits_per_pixel-from-the-client.patch
Patch391:       CVE-2013-4537-qemuu-ssi-sd-fix-buffer-overrun-on-invalid-state-load.patch
Patch392:       CVE-2013-4537-qemut-ssi-sd-fix-buffer-overrun-on-invalid-state-load.patch
Patch393:       CVE-2015-1779-qemuu-incrementally-decode-websocket-frames.patch
Patch394:       CVE-2015-1779-qemuu-limit-size-of-HTTP-headers-from-websockets-clients.patch
Patch395:       CVE-2013-4539-qemuu-tsc210x-fix-buffer-overrun-on-invalid-state-load.patch
Patch396:       CVE-2013-4539-qemut-tsc210x-fix-buffer-overrun-on-invalid-state-load.patch
Patch397:       CVE-2016-1981-qemuu-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
Patch398:       CVE-2016-1981-qemut-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
Patch399:       CVE-2016-2198-qemuu-usb-ehci-null-pointer-dereference-in-ehci_caps_write.patch
Patch400:       CVE-2014-9718-qemuu-PRDT-overflow-from-guest-to-host.patch
Patch401:       CVE-2013-4534-qemuu-openpic-buffer-overrun-on-incoming-migration.patch
Patch402:       CVE-2013-4534-qemut-openpic-buffer-overrun-on-incoming-migration.patch
Patch403:       CVE-2013-4529-01-qemuu-pci-fix-buffer-overrun-on-invalid-state-load.patch
Patch404:       CVE-2013-4529-02-qemuu-pci-fix-buffer-overrun-on-invalid-state-load.patch
Patch405:       CVE-2013-4529-03-qemuu-pci-fix-buffer-overrun-on-invalid-state-load.patch
Patch406:       CVE-2013-4533-qemut-pxa2xx-buffer-overrun-on-incoming-migration.patch
Patch407:       CVE-2015-5278-qemut-Infinite-loop-in-ne2000_receive-function.patch
Patch408:       CVE-2013-4530-qemuu-pl022-fix-buffer-overun-on-invalid-state-load.patch
Patch409:       CVE-2014-3640-qemut-slirp-NULL-pointer-deref-in-sosendto.patch
Patch410:       CVE-2015-6855-qemuu-ide-divide-by-zero-issue.patch
Patch411:       CVE-2015-8619-qemuu-stack-based-OOB-write-in-hmp_sendkey-routine.patch
Patch412:       CVE-2016-2392-qemuu-usb-null-pointer-dereference-in-NDIS-message-handling.patch
Patch413:       CVE-2016-2391-qemuu-usb-null-pointer-dereference-in-ohci-module.patch
Patch414:       CVE-2016-2391-qemut-usb-null-pointer-dereference-in-ohci-module.patch
Patch415:       CVE-2016-2538-qemuu-usb-integer-overflow-in-remote-NDIS-message-handling.patch
Patch416:       CVE-2016-1922-qemuu-i386-null-pointer-dereference-in-vapic_write.patch
Patch417:       CVE-2013-4527-qemuu-hpet-buffer-overrun-on-invalid-state-load.patch
Patch418:       CVE-2015-8817-qemuu-OOB-access-in-address_space_rw-leads-to-segmentation-fault.patch
Patch419:       CVE-2015-8818-qemuu-OOB-access-in-address_space_rw-leads-to-segmentation-fault.patch
Patch420:       CVE-2016-2841-qemuu-ne2000-infinite-loop-in-ne2000_receive.patch
Patch421:       CVE-2016-2841-qemut-ne2000-infinite-loop-in-ne2000_receive.patch
Patch422:       CVE-2016-4001-qemut-net-buffer-overflow-in-stellaris_enet-emulator.patch
Patch423:       CVE-2016-4001-qemuu-net-buffer-overflow-in-stellaris_enet-emulator.patch
Patch424:       CVE-2016-4002-qemuu-net-buffer-overflow-in-MIPSnet-emulator.patch
Patch425:       CVE-2016-4002-qemut-net-buffer-overflow-in-MIPSnet-emulator.patch
Patch426:       CVE-2016-4020-qemuu-leakage-of-stack-memory-to-guest.patch
Patch427:       CVE-2016-4037-qemuu-usb-Infinite-loop-vulnerability-in-usb_ehci-using-siTD-process.patch
Patch428:       CVE-2016-3710-qemuu-0001-vga-fix-banked-access-bounds-checking.patch
Patch429:       CVE-2016-3710-qemuu-0002-vga-add-vbe_enabled-helper.patch
Patch430:       CVE-2016-3710-qemuu-0003-vga-factor-out-vga-register-setup.patch
Patch431:       CVE-2016-3710-qemuu-0004-vga-update-vga-register-setup-on-vbe-changes.patch
Patch432:       CVE-2016-3710-qemuu-0005-vga-make-sure-vga-register-setup-for-vbe-stays-intac.patch
Patch433:       CVE-2014-3615-qemut-sanity-check-vbe.patch
Patch434:       CVE-2016-3710-qemut-0001-vga-fix-banked-access-bounds-checking.patch
Patch435:       CVE-2016-3710-qemut-0002-vga-add-vbe_enabled-helper.patch
Patch436:       CVE-2016-3710-qemut-0003-vga-factor-out-vga-register-setup.patch
Patch437:       CVE-2016-3710-qemut-0004-vga-update-vga-register-setup-on-vbe-changes.patch
Patch438:       CVE-2016-3710-qemut-0005-vga-make-sure-vga-register-setup-for-vbe-stays-intac.patch
Patch439:       CVE-2016-4439-qemuu-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-esp_reg_write.patch
Patch440:       CVE-2016-4439-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-esp_reg_write.patch
Patch441:       CVE-2016-4441-qemuu-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-get_cmd.patch
Patch442:       CVE-2016-4441-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-get_cmd.patch
Patch443:       CVE-2016-3712-qemuu-vga-add-sr_vbe-register-set.patch
Patch444:       CVE-2016-4952-qemuu-pvscsi-out-of-bounds-access-issue-in-pvsci_ring_init_msg.patch
Patch445:       CVE-2014-3672-qemuu-xsa180.patch
Patch446:       CVE-2014-3672-qemut-xsa180.patch
Patch447:       CVE-2016-5105-qemuu-scsi-megasas-stack-information-leakage-while-reading-configuration.patch
Patch448:       CVE-2016-5106-qemuu-scsi-megasas-out-of-bounds-write-while-setting-controller-properties.patch
Patch449:       CVE-2016-5107-qemuu-scsi-megasas-out-of-bounds-read-in-megasas_lookup_frame-function.patch
Patch450:       CVE-2016-4453-qemuu-vmware-vga-vmsvga-infinite-loop.patch
Patch451:       CVE-2016-4454-qemuu-vmware-vga-vmsvga-out-of-bounds-read.patch
Patch452:       CVE-2016-5126-qemuu-buffer-overflow-in-iscsi_aio_ioctl.patch
Patch453:       CVE-2016-5238-qemuu-scsi-esp-OOB-write-when-using-non-DMA-mode-in-get_cmd.patch
Patch454:       CVE-2016-5238-qemut-scsi-esp-OOB-write-when-using-non-DMA-mode-in-get_cmd.patch
Patch455:       CVE-2016-5337-qemuu-scsi-megasas-information-leakage-in-megasas_ctrl_get_info.patch
Patch456:       CVE-2016-5338-qemuu-scsi-esp-OOB-rw-access-while-processing-ESP_FIFO.patch
Patch457:       CVE-2016-5338-qemut-scsi-esp-OOB-rw-access-while-processing-ESP_FIFO.patch
Patch458:       CVE-2016-6351-qemuu-scsi-esp-make-cmdbuf-big-enough-for-maximum-CDB-size.patch
Patch459:       CVE-2016-6351-qemut-scsi-esp-make-cmdbuf-big-enough-for-maximum-CDB-size.patch
Patch460:       CVE-2016-6351-qemuu-scsi-esp-fix-migration.patch
Patch461:       CVE-2016-6834-qemuu-net-vmxnet3-an-infinite-loop-during-packet-fragmentation.patch
Patch462:       CVE-2016-6835-qemuu-net-vmxnet3-buffer-overflow-in-vmxnet_tx_pkt_parse_headers.patch
Patch463:       CVE-2016-6836-qemuu-net-vmxnet3-information-leakage-in-vmxnet3_complete_packet.patch
Patch464:       CVE-2016-6888-qemuu-net-vmxnet3-integer-overflow-in-packet-initialisation-in-vmxnet3.patch
Patch465:       CVE-2016-6833-qemuu-net-vmxnet3-use-after-free-while-writing.patch
Patch466:       CVE-2016-7908-qemuu-net-Infinite-loop-in-mcf_fec_do_tx.patch
Patch467:       CVE-2016-7908-qemut-net-Infinite-loop-in-mcf_fec_do_tx.patch
Patch468:       CVE-2016-7909-qemuu-net-pcnet-infinite-loop-in-pcnet_rdra_addr.patch
Patch469:       CVE-2016-7909-qemut-net-pcnet-infinite-loop-in-pcnet_rdra_addr.patch
Patch470:       CVE-2016-8576-qemuu-usb-xHCI-infinite-loop-vulnerability-in-xhci_ring_fetch.patch
Patch471:       CVE-2016-8667-qemuu-dma-rc4030-divide-by-zero-error-in-set_next_tick.patch
Patch472:       CVE-2016-8667-qemut-dma-rc4030-divide-by-zero-error-in-set_next_tick.patch
Patch473:       CVE-2016-8669-qemuu-char-divide-by-zero-error-in-serial_update_parameters.patch
Patch474:       CVE-2016-8669-qemut-char-divide-by-zero-error-in-serial_update_parameters.patch
Patch475:       CVE-2016-8910-qemuu-net-rtl8139-infinite-loop-while-transmit-in-Cplus-mode.patch
Patch476:       CVE-2016-8910-qemut-net-rtl8139-infinite-loop-while-transmit-in-Cplus-mode.patch
Patch477:       CVE-2016-8909-qemuu-audio-intel-hda-infinite-loop-in-processing-dma-buffer-stream.patch
Patch478:       CVE-2016-9381-xsa197-qemut.patch
Patch479:       CVE-2016-9381-xsa197-qemuu.patch
Patch480:       CVE-2016-9637-xsa199-qemut.patch
Patch481:       CVE-2016-9101-qemuu-net-eepro100-memory-leakage-at-device-unplug.patch
Patch482:       CVE-2016-9776-qemuu-net-mcf_fec-infinite-loop-while-receiving-data-in-mcf_fec_receive.patch
Patch483:       CVE-2016-9776-qemut-net-mcf_fec-infinite-loop-while-receiving-data-in-mcf_fec_receive.patch
Patch484:       CVE-2016-9907-qemuu-usb-redirector-memory-leakage-when-destroying-redirector.patch
Patch485:       CVE-2016-9911-qemuu-usb-ehci-memory-leakage-in-ehci_init_transfer.patch
Patch486:       CVE-2017-5579-qemuu-serial-host-memory-leakage-in-16550A-UART-emulation.patch
Patch487:       CVE-2016-9921-qemuu-display-cirrus_vga-divide-by-zero-in-cirrus_do_copy.patch
Patch488:       CVE-2016-9921-qemut-display-cirrus_vga-divide-by-zero-in-cirrus_do_copy.patch
Patch489:       CVE-2014-8106-qemut-cirrus-insufficient-blit-region-checks.patch
Patch490:       CVE-2017-2615-qemuu-display-cirrus-oob-access-while-doing-bitblt-copy-backward-mode.patch
Patch491:       CVE-2017-2615-qemut-display-cirrus-oob-access-while-doing-bitblt-copy-backward-mode.patch
Patch492:       CVE-2017-2620-xsa209-qemuu-cirrus_bitblt_cputovideo-does-not-check-if-memory-region-safe.patch
Patch493:       CVE-2017-2620-xsa209-qemut-cirrus_bitblt_cputovideo-does-not-check-if-memory-region-safe.patch
Patch494:       CVE-2017-5856-qemuu-scsi-megasas-host-memory-leakage-in-megasas_handle_dcmd.patch
Patch495:       CVE-2017-5898-qemuu-usb-integer-overflow-in-emulated_apdu_from_guest.patch
Patch496:       CVE-2016-10155-qemuu-watchdog-memory-leakage-in-virtual-hardware-watchdog-wdt_i6300esb.patch
Patch497:       CVE-2017-5973-qemuu-usb-infinite-loop-while-doing-control-transfer-in-xhci_kick_epctx.patch
Patch498:       CVE-2017-6414-qemuu-libcacard-host-memory-leakage-while-creating-new-APDU.patch
Patch499:       CVE-2017-6505-qemuu-usb-an-infinite-loop-issue-in-ohci_service_ed_list.patch
Patch500:       CVE-2017-6505-qemut-usb-an-infinite-loop-issue-in-ohci_service_ed_list.patch
Patch501:       CVE-2017-2633-qemuu-VNC-memory-corruption-due-to-unchecked-resolution-limit.patch
Patch502:       CVE-2016-9603-qemuu-xsa211.patch
Patch503:       CVE-2016-9603-qemut-xsa211.patch
Patch504:       CVE-2017-7718-qemuu-display-cirrus-OOB-read-access-issue.patch
Patch505:       CVE-2017-7718-qemut-display-cirrus-OOB-read-access-issue.patch
Patch506:       CVE-2017-7980-qemuu-cirrus-stop-passing-around-dst-pointers-in-the-blitter.patch
Patch507:       CVE-2017-7980-qemuu-cirrus-stop-passing-around-src-pointers-in-the-blitter.patch
Patch508:       CVE-2017-8309-qemuu-audio-host-memory-leakage-via-capture-buffer.patch
Patch509:       CVE-2017-8309-qemut-audio-host-memory-leakage-via-capture-buffer.patch
Patch510:       CVE-2017-8112-qemuu-scsi-vmw_pvscsi-infinite-loop-in-pvscsi_log2.patch
Patch511:       CVE-2017-9330-qemuu-usb-ohci-infinite-loop-due-to-incorrect-return-value.patch
Patch512:       CVE-2017-9330-qemut-usb-ohci-infinite-loop-due-to-incorrect-return-value.patch
Patch513:       CVE-2017-9374-qemuu-usb-ehci-host-memory-leakage-during-hotunplug.patch
Patch514:       CVE-2017-9503-qemuu-megasas-do-not-read-DCMD-opcode-more-than-once-from-frame.patch
Patch515:       CVE-2017-9503-qemuu-megasas-always-store-SCSIRequest-into-MegasasCmd.patch
Patch516:       CVE-2017-10664-qemuu-nbd-ignore-sigpipe.patch
Patch517:       CVE-2017-10664-qemut-nbd-ignore-sigpipe.patch
Patch518:       CVE-2017-10806-qemuu-usb-redirect-stack-buffer-overflow-in-debug-logging.patch
Patch519:       CVE-2017-11434-qemuu-slirp-out-of-bounds-read-while-parsing-dhcp-options.patch
Patch520:       CVE-2017-11434-qemut-slirp-out-of-bounds-read-while-parsing-dhcp-options.patch
Patch521:       CVE-2017-5526-qemut-audio-memory-leakage-in-es1370-device.patch
Patch522:       CVE-2017-15289-qemuu-cirrus-OOB-access-issue-in-mode4and5-write-functions.patch
Patch523:       CVE-2017-15289-qemut-cirrus-OOB-access-issue-in-mode4and5-write-functions.patch
Patch524:       CVE-2017-13672-qemuu-vga-helper.patch
Patch525:       CVE-2017-13672-qemuu-vga-OOB-read-access-during-display-update.patch
Patch526:       qemuu-add-support-for-cpuid-MSR_IA32_SPEC_CTRL.patch
Patch527:       qemut-add-support-for-cpuid-MSR_IA32_SPEC_CTRL.patch
Patch52901:     CVE-2018-5683-qemuu-out-of-bounds-read-in-vga_draw_text-routine.patch
Patch52902:     CVE-2018-5683-qemut-out-of-bounds-read-in-vga_draw_text-routine.patch
Patch53001:     CVE-2017-18030-qemuu-out-of-bounds-access-in-cirrus_invalidate_region-routine.patch
Patch53002:     CVE-2017-18030-qemut-out-of-bounds-access-in-cirrus_invalidate_region-routine.patch
Patch53101:     CVE-2018-7550-qemuu-multiboot-OOB-access-while-loading-kernel-image.patch
# Our platform specific patches
Patch530:       xen-destdir.patch
Patch531:       xen-xmexample.patch
Patch532:       xen-figlet-makefile.patch
Patch533:       bridge-opensuse.patch
Patch534:       bridge-vlan.patch
Patch535:       bridge-bonding.patch
Patch536:       bridge-record-creation.patch
Patch537:       vif-bridge-no-iptables.patch
Patch538:       vif-bridge-tap-fix.patch
Patch539:       xl-conf-default-bridge.patch
Patch540:       network-nat-open-SuSEfirewall2-FORWARD.patch
Patch541:       udev-rules.patch
Patch542:       xl-coredump-file-location.patch
# Needs to go upstream
Patch544:       suspend_evtchn_lock.patch
Patch545:       xenpaging.doc.patch
Patch546:       local_attach_support_for_phy.patch
Patch547:       hotplug-Linux-block-find-free-loop-fix.patch
Patch548:       add-qxl-support.patch
Patch549:       vif-route.patch
# Qemu traditional
Patch550:       blktap.patch
Patch551:       cdrom-removable.patch
Patch552:       change-vnc-passwd.patch
Patch553:       xen-qemu-iscsi-fix.patch
Patch554:       qemu-security-etch1.patch
Patch555:       xen-disable-qemu-monitor.patch
Patch556:       xen-hvm-default-bridge.patch
Patch557:       qemu-ifup-set-mtu.patch
Patch558:       ioemu-vnc-resize.patch
Patch559:       capslock_enable.patch
Patch560:       altgr_2.patch
Patch561:       log-guest-console.patch
Patch562:       ioemu-blktap-fv-init.patch
Patch563:       ioemu-blktap-image-format.patch
Patch564:       build-tapdisk-ioemu.patch
Patch565:       tapdisk-ioemu-logfile.patch
Patch566:       ioemu-blktap-zero-size.patch
Patch567:       tapdisk-ioemu-shutdown-fix.patch
Patch568:       ioemu-blktap-barriers.patch
Patch569:       bdrv_open2_fix_flags.patch
Patch570:       bdrv_open2_flags_2.patch
Patch571:       ioemu-bdrv-open-CACHE_WB.patch
Patch572:       ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch
Patch573:       qemu-dm-segfault.patch
Patch574:       bdrv_default_rwflag.patch
Patch575:       kernel-boot-hvm.patch
Patch576:       ioemu-watchdog-support.patch
Patch577:       ioemu-watchdog-linkage.patch
Patch578:       ioemu-watchdog-ib700-timer.patch
Patch579:       ioemu-hvm-pv-support.patch
Patch580:       pvdrv_emulation_control.patch
Patch581:       ioemu-disable-scsi.patch
Patch582:       ioemu-disable-emulated-ide-if-pv.patch
Patch583:       xenpaging.qemu.flush-cache.patch
Patch584:       qemu-xen-upstream-blkif-discard.patch
Patch585:       xen_pvonhvm.xen_emul_unplug.patch
Patch586:       libxc-pass-errno-to-callers-of-xc_domain_save.patch
Patch587:       libxl.set-migration-constraints-from-cmdline.patch
Patch588:       libxl.honor-more-top-level-vfb-options.patch
Patch589:       qemu-xen-upstream-megasas-buildtime.patch
Patch590:       libxl.pvscsi.patch
# Xend
Patch600:       xend-set-migration-constraints-from-cmdline.patch
Patch602:       xen.migrate.tools-xend_move_assert_to_exception_block.patch
Patch603:       xend-pvscsi-recognize-also-SCSI-CDROM-devices.patch
Patch604:       xend-config.patch
Patch605:       xend-max-free-mem.patch
Patch606:       xend-hvm-default-pae.patch
Patch607:       xend-vif-route-ifup.patch
Patch608:       xend-xenapi-console-protocol.patch
Patch609:       xend-core-dump-loc.patch
Patch610:       xend-xen-api-auth.patch
Patch611:       xend-checkpoint-rename.patch
Patch612:       xend-xm-save-check-file.patch
Patch613:       xend-xm-create-xflag.patch
Patch614:       xend-domu-usb-controller.patch
Patch615:       xend-devid-or-name.patch
Patch616:       xend-migration-domname-fix.patch
Patch617:       xend-del_usb_xend_entry.patch
Patch618:       xend-xen-domUloader.patch
Patch619:       xend-multi-xvdp.patch
Patch620:       xend-check_device_status.patch
Patch621:       xend-change_home_server.patch
Patch622:       xend-minimum-restart-time.patch
Patch623:       xend-disable-internal-logrotate.patch
Patch624:       xend-config-enable-dump-comment.patch
Patch625:       xend-tools-watchdog-support.patch
Patch626:       xend-console-port-restore.patch
Patch627:       xend-vcpu-affinity-fix.patch
Patch628:       xend-migration-bridge-check.patch
Patch629:       xend-managed-pci-device.patch
Patch630:       xend-hvm-firmware-passthrough.patch
Patch631:       xend-cpuinfo-model-name.patch
Patch632:       xend-xm-reboot-fix.patch
Patch633:       xend-domain-lock.patch
Patch634:       xend-domain-lock-sfex.patch
Patch635:       xend-32on64-extra-mem.patch
Patch636:       xend-hv_extid_compatibility.patch
Patch637:       xend-xenpaging.autostart.patch
Patch638:       xend-remove-xm-deprecation-warning.patch
Patch639:       xend-fix-sendkey.patch
Patch640:       xend-xsa153.patch
# Other bug fixes or features
Patch650:       libxen_permissive.patch
Patch651:       xenconsole-no-multiple-connections.patch
Patch652:       hibernate.patch
Patch653:       stdvga-cache.patch
Patch654:       ipxe-enable-nics.patch
Patch655:       pygrub-netware-xnloader.patch
Patch656:       pygrub-boot-legacy-sles.patch
Patch657:       pygrub-handle-one-line-menu-entries.patch
Patch660:       blktapctrl-close-fifos.patch
Patch661:       blktapctrl-default-to-ioemu.patch
Patch662:       blktapctrl-disable-debug-printf.patch
Patch663:       blktap-pv-cdrom.patch
Patch664:       set-mtu-from-bridge-for-tap-interface.patch
Patch665:       libxl.add-option-for-discard-support-to-xl-disk-conf.patch
Patch666:       aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch
Patch667:       xl-check-for-libvirt-managed-domain.patch
Patch668:       libxl.introduce-an-option-to-disable-the-non-O_DIRECT-workaround.patch
Patch669:       libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
Patch670:       qemu-xen-upstream-qdisk-cache-unsafe.patch
Patch671:       qemu-support-xen-hvm-direct-kernel-boot.patch
Patch672:       qemu-xen-enable-spice-support.patch
Patch673:       tigervnc-long-press.patch
Patch674:       libxl-migration-cleanup-remove-backend-domain-field.patch
Patch675:       libxl-migration-cleanup-update-uuid-name.patch
Patch676:       libxl-restore-cleanup-left-xenstore-entries.patch
Patch677:       blktap-control-socket-race.patch
Patch678:       CVE-2014-0222-blktap-qcow1-validate-l2-table-size.patch
Patch679:       xen.libxl.dmmd.patch
Patch680:       qemu-xen-upstream-allow-every-discard-range.patch
Patch681:       qemu-xen-upstream-hvm-pv-support.patch
Patch682:       qemu-xen-upstream-xen_platform-unplug-also-SCSI-disks.patch
Patch683:       qemu-xen-upstream-free-all-pirqs-for-msi_msix-when-driver-unload.patch
# Xenstored
Patch701:       xs-01-temporary-context.patch
Patch702:       xs-02-get_parent-context.patch
Patch703:       xs-03-read_node-context.patch
Patch704:       xs-04-get_node-context.patch
Patch705:       xs-05-watch-firing-context.patch
Patch706:       xs-06-talloc-report.patch
Patch707:       xs-07-do_mkdir-error.patch
Patch708:       xs-08-add_change_node-fix.patch
Patch709:       xs-09-add_change_node-params.patch
Patch710:       xs-10-call-add_change_node.patch
Patch711:       xs-11-tdb-record-header.patch
Patch712:       xs-12-node-gen-count.patch
Patch713:       xs-13-read-directory-part-support.patch
Patch714:       xs-14-command-array.patch
Patch715:       xs-15-command-return-val.patch
Patch716:       xs-16-function-static.patch
Patch717:       xs-17-arg-parsing.patch
Patch718:       xs-18-default-buffer.patch
Patch719:       xs-19-handle-alloc-failures.patch
Patch720:       xs-20-tdb-version.patch
Patch721:       xs-21-empty-tdb-database.patch
Patch722:       xs-22-reopen_log-fix.patch
Patch723:       xs-23-XS_DEBUG-rename.patch
Patch724:       xs-24-xenstored_control.patch
Patch725:       xs-25-control-enhance.patch
Patch726:       xs-26-log-control.patch
Patch727:       xs-27-memory-report.patch
Patch728:       xs-28-remove-talloc-report.patch
Patch729:       xs-29-define-off_t.patch
Patch730:       0001-xenstore-let-write_node-and-some-callers-return-errn.patch
Patch731:       0002-xenstore-undo-function-rename.patch
Patch732:       0003-xenstore-rework-of-transaction-handling.patch
Patch733:       libxl.LIBXL_DESTROY_TIMEOUT.patch
# Hypervisor and PV driver Patches
Patch800:       x86-no-ERESTART.patch
Patch801:       x86-ioapic-ack-default.patch
Patch802:       x86-cpufreq-report.patch
Patch803:       x86-dom-print.patch
Patch804:       x86-extra-trap-info.patch
Patch820:       supported_module.patch
Patch821:       pvdrv-blkfront-build-upstream.patch
Patch822:       magic_ioport_compat.patch
# Build patches
Patch99997:     disable-wget-check.patch
Patch99998:     tmp-initscript-modprobe.patch
Patch99999:     tmp_build.patch
Url:            http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%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).

In addition to this package you need to install the kernel-xen, xen-libs
and xen-tools packages to use Xen. Xen version 3 and newer also supports
running unmodified guests using full virtualization, if appropriate hardware
is present.

[Hypervisor is a trademark of IBM]



Authors:
--------
    Ian Pratt <ian.pratt@cl.cam.ac.uk>
    Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
    Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
    Mark Williamson <mark.williamson@cl.cam.ac.uk>
    Ewan Mellor <ewan@xensource.com>
    ...

%package libs
Summary:        Xen Virtualization: Libraries
Group:          System/Kernel

%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.

In addition to this package you need to install kernel-xen, xen and
xen-tools to use Xen.


Authors:
--------
    Ian Pratt <ian.pratt@cl.cam.ac.uk>


%if %{?with_dom0_support}0

%package tools
Summary:        Xen Virtualization: Control tools for domain 0
Group:          System/Kernel
Requires:       bridge-utils
%if %suse_version >= 1315
%ifarch x86_64
Requires:       grub2-x86_64-xen
%endif
%endif
Requires:       multipath-tools
Requires:       python
Requires:       python-curses
Requires:       python-lxml
Requires:       python-openssl
Requires:       python-pam
Requires:       python-xml
Requires:       xen-libs = %{version}
# subpackage existed in 10.3
Provides:       xen-tools-ioemu = %{version}
Obsoletes:      xen-tools-ioemu < %{version}
Conflicts:      libvirt < 1.0.5

%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.

In addition to this package you need to install kernel-xen, xen and
xen-libs to use Xen.


Authors:
--------
    Ian Pratt <ian.pratt@cl.cam.ac.uk>


%if %{?with_xend}0
%if %{?with_xend_tools_pkg}0
%package xend-tools
Summary:        Xen Virtualization: Control tools for domain 0
Group:          System/Kernel
Requires:       pciutils
Requires:       python
Requires:       python-curses
Requires:       python-lxml
Requires:       python-openssl
Requires:       python-pam
Requires:       python-xml
Requires:       xen-tools
Conflicts:      libvirt < 1.0.5

%description xend-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 using the legacy xend/xm toolstack.

In addition to this package you need to install kernel-xen, xen and
xen-libs to use Xen.
%endif
%endif
%endif

%package tools-domU
Summary:        Xen Virtualization: Control tools for domain U
Group:          System/Kernel
Conflicts:      xen-tools

%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 <ian.pratt@cl.cam.ac.uk>

%package devel
Summary:        Xen Virtualization: Headers and libraries for development
Group:          System/Kernel
Requires:       libuuid-devel
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.



Authors:
--------
    Ian Pratt <ian.pratt@cl.cam.ac.uk>

%if %{?with_kmp}0

%package KMP
Summary:        Xen para-virtual device drivers for fully virtualized guests
Group:          System/Kernel
Conflicts:      xen
%if %suse_version >= 1230
Requires:       pesign-obs-integration
%endif

%description KMP
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 para-virtual device drivers for fully
virtualized guests.

%endif

%if %{?with_dom0_support}0

%package doc-html
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 <ian.pratt@cl.cam.ac.uk>
%endif

%prep
%setup -q -n %xen_build_dir -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 57 -a 20000
# Upstream patches
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
%patch55 -p1
%patch56 -p1
%patch57 -p1
%patch58 -p1
%patch59 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1
%patch63 -p1
%patch64 -p1
%patch65 -p1
%patch66 -p1
%patch67 -p1
%patch68 -p1
%patch69 -p1
%patch70 -p1
%patch71 -p1
%patch72 -p1
%patch73 -p1
%patch74 -p1
%patch75 -p1
%patch76 -p1
%patch77 -p1
%patch78 -p1
%patch79 -p1
%patch80 -p1
%patch81 -p1
%patch82 -p1
%patch83 -p1
%patch84 -p1
%patch85 -p1
%patch86 -p1
%patch87 -p1
%patch88 -p1
%patch89 -p1
%patch90 -p1
%patch91 -p1
%patch92 -p1
%patch93 -p1
%patch94 -p1
%patch95 -p1
%patch96 -p1
%patch97 -p1
%patch98 -p1
%patch99 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
%patch105 -p1
%patch106 -p1
%patch107 -p1
%patch108 -p1
%patch109 -p1
%patch110 -p1
%patch18801 -p1
%patch111 -p1
%patch112 -p1
%patch113 -p1
%patch114 -p1
%patch115 -p1
%patch116 -p1
%patch117 -p1
%patch118 -p1
%patch119 -p1
%patch120 -p1
%patch121 -p1
%patch122 -p1
%patch123 -p1
%patch124 -p1
%patch125 -p1
%patch126 -p1
%patch127 -p1
%patch128 -p1
%patch129 -p1
%patch130 -p1
%patch131 -p1
%patch132 -p1
%patch133 -p1
%patch20001 -p1
%patch134 -p1
%patch135 -p1
%patch136 -p1
%patch137 -p1
%patch138 -p1
%patch139 -p1
%patch140 -p1
%patch141 -p1
%patch142 -p1
%patch143 -p1
%patch144 -p1
%patch145 -p1
%patch146 -p1
%patch147 -p1
%patch148 -p1
%patch149 -p1
%patch150 -p1
%patch151 -p1
%patch152 -p1
%patch153 -p1
%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
%patch167 -p1
%patch168 -p1
%patch21501 -p1
%patch169 -p1
%patch170 -p1
%patch171 -p1
%patch172 -p1
%patch173 -p1
%patch174 -p1
%patch175 -p1
%patch176 -p1
%patch177 -p1
%patch178 -p1
%patch179 -p1
%patch180 -p1
%patch181 -p1
%patch182 -p1
%patch183 -p1
%patch184 -p1
%patch185 -p1
%patch186 -p1
%patch187 -p1
%patch188 -p1
%patch189 -p1
%patch190 -p1
%patch191 -p1
%patch192 -p1
%patch193 -p1
%patch194 -p1
%patch195 -p1
%patch196 -p1
%patch197 -p1
%patch198 -p1
%patch199 -p1
%patch200 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205 -p1
%patch206 -p1
%patch207 -p1
%patch208 -p1
%patch209 -p1
%patch210 -p1
%patch211 -p1
%patch212 -p1
%patch213 -p1
%patch214 -p1
%patch215 -p1
%patch216 -p1
%patch217 -p1
%patch218 -p1
%patch219 -p1
%patch220 -p1
%patch221 -p1
%patch222 -p1
%patch223 -p1
%patch224 -p1
%patch225 -p1
%patch226 -p1
%patch227 -p1
%patch228 -p1
%patch229 -p1
%patch230 -p1
%patch231 -p1
%patch232 -p1
%patch233 -p1
%patch234 -p1
%patch235 -p1
%patch236 -p1
%patch237 -p1
%patch238 -p1
%patch239 -p1
%patch240 -p1
%patch241 -p1
%patch242 -p1
%patch243 -p1
%patch244 -p1
%patch245 -p1
%patch246 -p1
%patch247 -p1
%patch248 -p1
%patch249 -p1
%patch250 -p1
%patch251 -p1
%patch252 -p1
%patch253 -p1
%patch254 -p1
%patch255 -p1
%patch256 -p1
%patch257 -p1
%patch258 -p1
%patch259 -p1
%patch260 -p1
%patch261 -p1
%patch262 -p1
%patch263 -p1
%patch264 -p1
%patch265 -p1
%patch266 -p1
%patch267 -p1
%patch268 -p1
%patch269 -p1
%patch270 -p1
%patch271 -p1
%patch272 -p1
%patch273 -p1
%patch274 -p1
%patch275 -p1
%patch276 -p1
%patch277 -p1
%patch278 -p1
%patch279 -p1
%patch280 -p1
%patch281 -p1
%patch282 -p1
%patch283 -p1
%patch284 -p1
%patch26001 -p1
%patch26002 -p1
%patch26003 -p1
%patch26004 -p1
%patch26101 -p1
%patch26201 -p1
%patch21601 -p1
%patch14001 -p1
%patch14002 -p1
%patch14003 -p1
%patch14004 -p1
%patch14005 -p1
%patch14006 -p1
%patch14007 -p1
%patch15501 -p1
%patch15502 -p1
%patch15503 -p1
%patch16201 -p1
%patch16401 -p1
%patch17501 -p1
%patch17502 -p1
%patch17503 -p1
%patch17504 -p1
%patch17505 -p1
%patch17506 -p1
%patch17507 -p1
%patch17508 -p1
%patch17509 -p1
%patch17510 -p1
%patch17801 -p1
%patch17804 -p1
%patch17806 -p1
%patch17807 -p1
%patch17808 -p1
%patch17811 -p1
%patch17812 -p1
%patch17813 -p1
%patch17814 -p1
%patch17815 -p1
%patch17816 -p1
%patch17819 -p1
%patch17820 -p1
%patch17821 -p1
%patch18401 -p1
# Upstream qemu patches
%patch350 -p1
%patch351 -p1
%patch352 -p1
%patch353 -p1
%patch354 -p1
%patch355 -p1
%patch356 -p1
%patch357 -p1
%patch358 -p1
%patch359 -p1
%patch360 -p1
%patch361 -p1
%patch362 -p1
%patch363 -p1
%patch365 -p1
%patch366 -p1
%patch367 -p1
%patch368 -p1
%patch369 -p1
%patch370 -p1
%patch371 -p1
%patch372 -p1
%patch373 -p1
%patch374 -p1
%patch375 -p1
%patch376 -p1
%patch377 -p1
%patch378 -p1
%patch379 -p1
%patch380 -p1
%patch381 -p1
%patch382 -p1
%patch383 -p1
%patch384 -p1
%patch385 -p1
%patch386 -p1
%patch387 -p1
%patch388 -p1
%patch389 -p1
%patch390 -p1
%patch391 -p1
%patch392 -p1
%patch393 -p1
%patch394 -p1
%patch395 -p1
%patch396 -p1
%patch397 -p1
%patch398 -p1
%patch399 -p1
%patch400 -p1
%patch401 -p1
%patch402 -p1
%patch403 -p1
%patch404 -p1
%patch405 -p1
%patch406 -p1
%patch407 -p1
%patch408 -p1
%patch409 -p1
%patch410 -p1
%patch411 -p1
%patch412 -p1
%patch413 -p1
%patch414 -p1
%patch415 -p1
%patch416 -p1
%patch417 -p1
%patch418 -p1
%patch419 -p1
%patch420 -p1
%patch421 -p1
%patch422 -p1
%patch423 -p1
%patch424 -p1
%patch425 -p1
%patch426 -p1
%patch427 -p1
%patch428 -p1
%patch429 -p1
%patch430 -p1
%patch431 -p1
%patch432 -p1
%patch433 -p1
%patch434 -p1
%patch435 -p1
%patch436 -p1
%patch437 -p1
%patch438 -p1 
%patch439 -p1
%patch440 -p1
%patch441 -p1
%patch442 -p1
%patch443 -p1
%patch444 -p1
%patch445 -p1
%patch446 -p1
%patch447 -p1
%patch448 -p1
%patch449 -p1
%patch450 -p1
%patch451 -p1
%patch452 -p1
%patch453 -p1
%patch454 -p1
%patch455 -p1
%patch456 -p1
%patch457 -p1
%patch458 -p1
%patch459 -p1
%patch460 -p1
%patch461 -p1
%patch462 -p1
%patch463 -p1
%patch464 -p1
%patch465 -p1
%patch466 -p1
%patch467 -p1
%patch468 -p1
%patch469 -p1
%patch470 -p1
%patch471 -p1
%patch472 -p1
%patch473 -p1
%patch474 -p1
%patch475 -p1
%patch476 -p1
%patch477 -p1
%patch478 -p1
%patch479 -p1
%patch480 -p1
%patch481 -p1
%patch482 -p1
%patch483 -p1
%patch484 -p1
%patch485 -p1
%patch486 -p1
%patch487 -p1
%patch488 -p1
%patch489 -p1
%patch490 -p1
%patch491 -p1
%patch492 -p1
%patch493 -p1
%patch494 -p1
%patch495 -p1
%patch496 -p1
%patch497 -p1
%patch498 -p1
%patch499 -p1
%patch500 -p1
%patch501 -p1
%patch502 -p1
%patch503 -p1
%patch504 -p1
%patch505 -p1
%patch506 -p1
%patch507 -p1
%patch508 -p1
%patch509 -p1
%patch510 -p1
%patch511 -p1
%patch512 -p1
%patch513 -p1
%patch514 -p1
%patch515 -p1
%patch516 -p1
%patch517 -p1
%patch518 -p1
%patch519 -p1
%patch520 -p1
%patch521 -p1
%patch522 -p1
%patch523 -p1
%patch524 -p1
%patch525 -p1
%patch526 -p1
%patch527 -p1
%patch52901 -p1
%patch52902 -p1
%patch53001 -p1
%patch53002 -p1
%patch53101 -p1
# Our platform specific patches
%patch530 -p1
%patch531 -p1
%patch532 -p1
%patch533 -p1
%patch534 -p1
%patch535 -p1
%patch536 -p1
%patch537 -p1
%patch538 -p1
%patch539 -p1
%patch540 -p1
%patch541 -p1
%patch542 -p1
%patch544 -p1
%patch545 -p1
%patch546 -p1
%patch547 -p1
%patch548 -p1
%patch549 -p1
# Qemu traditional
%patch550 -p1
%patch551 -p1
%patch552 -p1
%patch553 -p1
%patch554 -p1
%patch555 -p1
%patch556 -p1
%patch557 -p1
%patch558 -p1
%patch559 -p1
%patch560 -p1
%patch561 -p1
%patch562 -p1
%patch563 -p1
%patch564 -p1
%patch565 -p1
%patch566 -p1
%patch567 -p1
%patch568 -p1
%patch569 -p1
%patch570 -p1
%patch571 -p1
%patch572 -p1
%patch573 -p1
%patch574 -p1
%patch575 -p1
%patch576 -p1
%patch577 -p1
%patch578 -p1
%patch579 -p1
%patch580 -p1
%patch581 -p1
%patch582 -p1
%patch583 -p1
%patch584 -p1
%patch585 -p1
%patch586 -p1
%patch587 -p1
%patch588 -p1
%patch589 -p1
%patch590 -p1
# Xend
%patch600 -p1
%patch602 -p1
%patch603 -p1
%patch604 -p1
%patch605 -p1
%patch606 -p1
%patch607 -p1
%patch608 -p1
%patch609 -p1
%patch610 -p1
%patch611 -p1
%patch612 -p1
%patch613 -p1
%patch614 -p1
%patch615 -p1
%patch616 -p1
%patch617 -p1
%patch618 -p1
%patch619 -p1
%patch620 -p1
%patch621 -p1
%patch622 -p1
%patch623 -p1
%patch624 -p1
%patch625 -p1
%patch626 -p1
%patch627 -p1
%patch628 -p1
%patch629 -p1
%patch630 -p1
%patch631 -p1
%patch632 -p1
%patch633 -p1
%patch634 -p1
%patch635 -p1
%patch636 -p1
%patch637 -p1
%patch638 -p1
%patch639 -p1
%patch640 -p1
# Other bug fixes or features
%patch650 -p1
%patch651 -p1
%patch652 -p1
%patch653 -p1
%patch654 -p1
%patch655 -p1
%patch656 -p1
%patch657 -p1
%patch660 -p1
%patch661 -p1
%patch662 -p1
%patch663 -p1
%patch664 -p1
%patch665 -p1
%patch666 -p1
%patch667 -p1
%patch668 -p1
%patch669 -p1
%patch670 -p1
%patch671 -p1
%patch672 -p1
%patch673 -p1
%patch674 -p1
%patch675 -p1
%patch676 -p1
%patch677 -p1
%patch678 -p1
%patch679 -p1
%patch680 -p1
%patch681 -p1
find -name xen_platform.c -ls
%patch682 -p1
%patch683 -p1
# Xenstored
%patch701 -p1
%patch702 -p1
%patch703 -p1
%patch704 -p1
%patch705 -p1
%patch706 -p1
%patch707 -p1
%patch708 -p1
%patch709 -p1
%patch710 -p1
%patch711 -p1
%patch712 -p1
%patch713 -p1
%patch714 -p1
%patch715 -p1
%patch716 -p1
%patch717 -p1
%patch718 -p1
%patch719 -p1
%patch720 -p1
%patch721 -p1
%patch722 -p1
%patch723 -p1
%patch724 -p1
%patch725 -p1
%patch726 -p1
%patch727 -p1
%patch728 -p1
%patch729 -p1
%patch730 -p1
%patch731 -p1
%patch732 -p1
%patch733 -p1
# Hypervisor and PV driver Patches
%patch800 -p1
%patch801 -p1
%patch802 -p1
%patch803 -p1
%patch804 -p1
%patch820 -p1
%patch821 -p1
%patch822 -p1
# Build patches
%patch99997 -p1
%patch99998 -p1
%patch99999 -p1

# tools/qemu-xen-traditional-dir-remote/configure ./tools/qemu-xen-dir-remote/configure use
# clock_gettime to check whether -lrt is needed - and don't check other functions
# with glibc 2.17 clock_gettime is part of libc, so use timer_settime
sed -i -e 's/int main(void) { clockid_t id; return clock_gettime(id, NULL); }/int main(void) { struct itimerspec  v;timer_t t; return timer_gettime (t, \&v);}/' \
tools/qemu-xen-traditional-dir-remote/configure ./tools/qemu-xen-dir-remote/configure

%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
export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS"
%ifarch x86_64
%if 0%{?suse_version} > 1230
export QEMU_XEN_ENABLE_SPICE="--enable-spice --enable-usb-redir"
%endif
%endif
configure_flags=
%if %{?with_stubdom}0
configure_flags=--enable-stubdom
%else
configure_flags=--disable-stubdom
%endif
%if %{?with_qemu_traditional}0
configure_flags="${configure_flags} --enable-qemu-traditional"
%else
configure_flags="${configure_flags} --disable-qemu-traditional"
%endif
%if %{?with_xend}0
configure_flags="${configure_flags} --enable-xend --enable-blktap1"
%else
%if %{?with_qemu_traditional}0
configure_flags="${configure_flags} --disable-xend --enable-blktap1"
%else
configure_flags="${configure_flags} --disable-xend --disable-blktap1"
%endif
%endif
./configure \
        --enable-xenapi \
        --prefix=/usr \
        --exec_prefix=/usr \
        --bindir=%{_bindir} \
        --sbindir=%{_sbindir} \
        --libdir=%{_libdir} \
        --datadir=%{_datadir} \
        ${configure_flags}
%if %{?with_dom0_support}0
CFLAGS_SAVE=$CFLAGS
%ifarch %ix86 x86_64
make -C xenalyze.hg CC="gcc -I../xen/include -DMAX_CPUS=%{max_cpus} ${RPM_OPT_FLAGS}" %{?_smp_mflags} -k
%endif
make -C tools/include/xen-foreign %{?_smp_mflags}
make tools docs %{?_smp_mflags}
make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes XEN_ROOT=$PWD
%else
make -C tools/include/xen-foreign %{?_smp_mflags}
make tools docs %{?_smp_mflags}
%endif
%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

%install
export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS"
export EXTRA_CFLAGS_QEMU_TRADITIONAL="$RPM_OPT_FLAGS"
export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS"
# EFI
%if %{?with_dom0_support}0
export BRP_PESIGN_FILES="*.ko *.efi /lib/firmware"
make -C xen install \
%if %{?with_gcc47}0
	CC=gcc-4.7 \
%endif
	max_phys_cpus=%{max_cpus} debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT %{?_smp_mflags}
make -C xen clean
install_xen()
{
    local ext=""
    if [ -n "$1" ]; then
        ext="-$1"
        mv $RPM_BUILD_ROOT/boot/xen-%{version}-%{release}%{xen_install_suffix} \
           $RPM_BUILD_ROOT/boot/xen${ext}-%{version}-%{release}%{xen_install_suffix}
        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}%{xen_install_suffix}
    rm $RPM_BUILD_ROOT/boot/xen-%{xvermaj}%{xen_install_suffix}
    rm $RPM_BUILD_ROOT/boot/xen%{xen_install_suffix}
    # Do not link to links; grub cannot follow.
    ln -s xen${ext}-%{version}-%{release}%{xen_install_suffix} $RPM_BUILD_ROOT/boot/xen${ext}-%{xvers}%{xen_install_suffix}
    ln -s xen${ext}-%{version}-%{release}%{xen_install_suffix} $RPM_BUILD_ROOT/boot/xen${ext}-%{xvermaj}%{xen_install_suffix}
    ln -s xen${ext}-%{version}-%{release}%{xen_install_suffix} $RPM_BUILD_ROOT/boot/xen${ext}%{xen_install_suffix}
    ln -sf xen-syms${ext}-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms${ext}
}
%if %{?with_debug}0
make -C xen install max_phys_cpus=%{max_cpus} debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT %{?_smp_mflags}
install_xen dbg
make -C xen clean
%endif
make -C xen install max_phys_cpus=%{max_cpus} debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT %{?_smp_mflags}
install_xen
make -C xen clean
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}
rm -f $RPM_BUILD_ROOT/usr/sbin/{qcow-create,img2qcow,qcow2raw}
echo > xen.files.txt
# EFI depends on gcc47
if test -d $RPM_BUILD_ROOT%{_libdir}/efi
then
	echo %{_libdir}/efi >> xen.files.txt
fi
%ifarch x86_64
ln -s /usr/lib/xen/bin/qemu-dm $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm
ln -s /usr/lib/xen/bin/qemu-system-i386 $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-system-i386
cp -avL xenalyze.hg/dump-raw $RPM_BUILD_ROOT/%{_bindir}/xenalyze.dump-raw
cp -avL xenalyze.hg/xenalyze $RPM_BUILD_ROOT/%{_bindir}
%endif
%else
make -C tools install DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} %{?_smp_mflags}
%endif

# PV driver modules
%if %{?with_kmp}0
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
export INSTALL_MOD_DIR=updates
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
for flavor in %flavors_to_build; do
    make -C /usr/src/linux-obj/%_target_cpu/$flavor modules_install \
        M=$PWD/obj/$flavor
done
%endif

# Stubdom
%if %{?with_dom0_support}0
%if %{?with_stubdom}0
# remove -fstack-protector flag for stubdom build section
export EXTRA_CFLAGS_XEN_TOOLS=$(echo $RPM_OPT_FLAGS |sed -e 's/-fstack-protector//g')
export EXTRA_CFLAGS_QEMU_TRADITIONAL=$(echo $RPM_OPT_FLAGS |sed -e 's/-fstack-protector//g')
export EXTRA_CFLAGS_QEMU_XEN=$(echo $RPM_OPT_FLAGS |sed -e 's/-fstack-protector//g')
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
# restore -fstack-protector flag
export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS"
export EXTRA_CFLAGS_QEMU_TRADITIONAL="$RPM_OPT_FLAGS"
export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS"
%endif

# Docs
make -C docs install \
    DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \
    DOCDIR=%{_defaultdocdir}/xen
for name in COPYING %SOURCE10 %SOURCE11 %SOURCE12; 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 xl-disk-configuration.txt pci-device-reservations.txt \
    xl-network-configuration.markdown xl-numa-placement.markdown \
    xen-command-line.markdown xenstore-paths.markdown; 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 tools/hotplug/Linux/init.d/xendomains $RPM_BUILD_ROOT/etc/init.d/xendomains
ln -s /etc/init.d/xendomains $RPM_BUILD_ROOT/usr/sbin/rcxendomains
install %SOURCE34 $RPM_BUILD_ROOT/etc/init.d/pciback
ln -s /etc/init.d/pciback $RPM_BUILD_ROOT/usr/sbin/rcpciback
install %SOURCE35 $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.pciback
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
install -m644 %SOURCE26 $RPM_BUILD_ROOT/etc/modprobe.d/xen_loop.conf
%if %{?with_kmp}0
install -m644 %SOURCE27 $RPM_BUILD_ROOT/etc/modprobe.d/50-hvm-xen.conf
%endif

# Xend init scripts and related programs
%if %{?with_xend}0
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/etc/udev/rules.d
mkdir -p $RPM_BUILD_ROOT/etc/xen/{vm,examples,scripts}
mv $RPM_BUILD_ROOT/etc/udev/rules.d/xend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xend.rules
install %SOURCE50 $RPM_BUILD_ROOT/etc/init.d/xend
ln -s /etc/init.d/xend $RPM_BUILD_ROOT/usr/sbin/rcxend
install -m755 %SOURCE51 $RPM_BUILD_ROOT/etc/xen/scripts/
mkdir -p $RPM_BUILD_ROOT/%{_fwdefdir}
install -m 644 %{S:26} $RPM_BUILD_ROOT/%{_fwdefdir}/xend-relocation-server
install -m755 %SOURCE53 $RPM_BUILD_ROOT/usr/lib/xen/boot/
mv $RPM_BUILD_ROOT/etc/xen/xmexample* $RPM_BUILD_ROOT/etc/xen/examples
install -m644 %SOURCE54 %SOURCE55 $RPM_BUILD_ROOT/etc/xen/examples/
ln -s /etc/xen/scripts/vm-monitor $RPM_BUILD_ROOT/etc/xen/scripts/set-lock
%if %{?with_systemd}0
mkdir -p %{buildroot}%{_unitdir}
install -m 644 %{SOURCE56} %{buildroot}%{_unitdir}/xend.service
%endif
%endif
make -C tools/xen-utils-0.1 install DESTDIR=$RPM_BUILD_ROOT XEN_INTREE_BUILD=yes XEN_ROOT=$PWD
install -m755 %SOURCE37 $RPM_BUILD_ROOT/usr/sbin/xen2libvirt

# Example config
mkdir -p $RPM_BUILD_ROOT/etc/xen/{vm,examples,scripts}
mv $RPM_BUILD_ROOT/etc/xen/xlexample* $RPM_BUILD_ROOT/etc/xen/examples
rm -f $RPM_BUILD_ROOT/etc/xen/examples/*nbd
install -m644 %SOURCE18 $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 %SOURCE19 %SOURCE20 %SOURCE21 %SOURCE22 %SOURCE23 %SOURCE24 %SOURCE29 $RPM_BUILD_ROOT/etc/xen/scripts/

# Xen API remote authentication files
install -d $RPM_BUILD_ROOT/etc/pam.d
install -m644 %SOURCE30 $RPM_BUILD_ROOT/etc/pam.d/xen-api
install -m644 %SOURCE31 $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 %SOURCE32 $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 %SOURCE15 $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/log/xen
mkdir -p $RPM_BUILD_ROOT/var/log/xen/console
ln -s /var/lib/xen/images $RPM_BUILD_ROOT/etc/xen/images

# Bootloader
mkdir -p $RPM_BUILD_ROOT/usr/lib/xen/boot/
install -m755 %SOURCE36 $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages

# 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

# Systemd
%if %{?with_systemd}0
mkdir -p %{buildroot}%{_unitdir}
install -m 644 %{SOURCE41} %{buildroot}%{_unitdir}/xencommons.service
install -m 644 %{SOURCE42} %{buildroot}%{_unitdir}/xendomains.service
install -m 644 %{SOURCE43} %{buildroot}%{_unitdir}/xen-watchdog.service
%endif

# Clean up unpackaged files
rm -f  $RPM_BUILD_ROOT/%{_datadir}/doc/packages/xen/html/hypercall/x86_64/.deps
rm -f  $RPM_BUILD_ROOT/%{_datadir}/doc/packages/xen/html/hypercall/x86_32/.deps
rm -f  $RPM_BUILD_ROOT/%{_datadir}/doc/packages/xen/html/hypercall/arm/.deps
rm -f  $RPM_BUILD_ROOT/usr/share/xen/qemu/openbios-*
rm -f  $RPM_BUILD_ROOT/usr/share/qemu-xen/qemu/openbios-*
rm -f  $RPM_BUILD_ROOT/usr/share/qemu-xen/qemu/palcode-clipper
rm -f  $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/*.egg-info
rm -rf $RPM_BUILD_ROOT/usr/share/doc/xen/README.*
rm -rf $RPM_BUILD_ROOT/usr/lib/debug
rm -f  $RPM_BUILD_ROOT/usr/etc/qemu/target-x86_64.conf
rm -f  $RPM_BUILD_ROOT/usr/libexec/qemu-bridge-helper
rm -f  $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/qemu-bridge-helper.debug
rm -f  $RPM_BUILD_ROOT/usr/sbin/xen-mfndump
rm -f  $RPM_BUILD_ROOT/usr/lib/debug/usr/sbin/xen-mfndump.debug
rm -f  $RPM_BUILD_ROOT/%{_bindir}/qemu-img-xen
rm -f  $RPM_BUILD_ROOT/%{_bindir}/qemu-nbd-xen

%if %{?with_xend}0
%else
# Remove xend/xm
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/xen/remus/*
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/xen/sv/*
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/xen/util/*
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/xen/xend/*
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/xen/xm/*
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/xen/web/*
rm -rf $RPM_BUILD_ROOT/var/lib/xen/xend-db
rm -f $RPM_BUILD_ROOT/etc/udev/rules.d/xend.rules
rm -f $RPM_BUILD_ROOT/etc/udev/rules.d/40-xend.rules
rm -f $RPM_BUILD_ROOT/etc/init.d/xend
rm -f $RPM_BUILD_ROOT/usr/sbin/rcxend
rm -f $RPM_BUILD_ROOT/usr/sbin/xm
rm -f $RPM_BUILD_ROOT/usr/sbin/xend
rm -f $RPM_BUILD_ROOT/usr/sbin/xen-bugtool
rm -f $RPM_BUILD_ROOT/usr/sbin/xen-python-path
rm -f $RPM_BUILD_ROOT/usr/sbin/blktapctrl
rm -f $RPM_BUILD_ROOT/etc/xen/scripts/xend-relocation.sh
rm -f $RPM_BUILD_ROOT/etc/xen/scripts/domain-lock*
rm -f $RPM_BUILD_ROOT/etc/xen/scripts/vm-monitor
rm -f $RPM_BUILD_ROOT/etc/xen/scripts/blktap
rm -f $RPM_BUILD_ROOT/etc/xen/xm-config.xml
rm -f $RPM_BUILD_ROOT/etc/xen/*.sxp
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xm*
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/xmdomain.cfg*
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/xend-config.sxp*
%endif

# Create symlinks for keymaps
%fdupes -s $RPM_BUILD_ROOT/%{_datadir}

%else
# !with_dom0_support

# 32 bit hypervisor no longer supported.  Remove dom0 tools.
rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc
rm -rf $RPM_BUILD_ROOT/%{_datadir}/man
rm -rf $RPM_BUILD_ROOT/%{_libdir}/xen
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*
rm -rf $RPM_BUILD_ROOT/usr/sbin
rm -rf $RPM_BUILD_ROOT/etc/xen
rm -rf $RPM_BUILD_ROOT/%{_datadir}/qemu-xen
rm -rf $RPM_BUILD_ROOT/var
rm -f  $RPM_BUILD_ROOT/%{_sysconfdir}/bash_completion.d/xl.sh
rm -f  $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/xen*
rm -f  $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/xen*
rm -f  $RPM_BUILD_ROOT/%{_bindir}/*store*
rm -f  $RPM_BUILD_ROOT/%{_bindir}/*trace*
rm -f  $RPM_BUILD_ROOT/%{_bindir}/xenco*
rm -f  $RPM_BUILD_ROOT/%{_bindir}/pygrub
rm -f  $RPM_BUILD_ROOT/%{_bindir}/remus
rm -f  $RPM_BUILD_ROOT/usr/etc/qemu/target-x86_64.conf
rm -f  $RPM_BUILD_ROOT/usr/libexec/qemu-bridge-helper
%endif

%if %{?with_dom0_support}0

%files -f xen.files.txt
%defattr(-,root,root)
/boot/xen-%{version}-%{release}%{xen_install_suffix}
/boot/xen-%{xvermaj}%{xen_install_suffix}
/boot/xen-%{xvers}%{xen_install_suffix}
%if %{?with_debug}0
/boot/xen-dbg-%{version}-%{release}%{xen_install_suffix}
/boot/xen-dbg-%{xvermaj}%{xen_install_suffix}
/boot/xen-dbg-%{xvers}%{xen_install_suffix}
/boot/xen-dbg%{xen_install_suffix}
%endif
/boot/xen-syms
/boot/xen-syms-%{version}-%{release}
%if %{?with_debug}0
/boot/xen-syms-dbg
/boot/xen-syms-dbg-%{version}-%{release}
%endif
/boot/xen%{xen_install_suffix}

%endif

%files libs
%defattr(-,root,root)
%{_libdir}/fs/
%{_libdir}/*.so.*

%if %{?with_dom0_support}0

%files tools
%defattr(-,root,root)
%ifarch %ix86 x86_64
/usr/bin/xenalyze
/usr/bin/xenalyze.dump-raw
%endif
/usr/bin/xencons
/usr/bin/xenstore*
/usr/bin/xentrace*
/usr/bin/pygrub
%if %{?with_qemu_traditional}0
/usr/bin/tapdisk-ioemu
%endif
/usr/bin/remus
/usr/bin/xencov_split
#/usr/sbin/flask-*
/usr/sbin/tap*
/usr/sbin/rcxendomains
/usr/sbin/rcpciback
/usr/sbin/xenbaked
/usr/sbin/xenconsoled
/usr/sbin/xencov
/usr/sbin/xenlockprof
/usr/sbin/xenmon.py
/usr/sbin/xenperf
/usr/sbin/xenpm
/usr/sbin/xenpmd
/usr/sbin/xen-ringwatch
/usr/sbin/xenstored
/usr/sbin/xen-tmem-list-parse
/usr/sbin/xentop
/usr/sbin/xentrace_setmask
/usr/sbin/xenwatchdogd
/usr/sbin/gtracestat
/usr/sbin/gtraceview
/usr/sbin/lock-util
/usr/sbin/td-util
/usr/sbin/vhd-update
/usr/sbin/vhd-util
%if %{?with_gdbsx}0
/usr/sbin/gdbsx
%endif
/usr/sbin/xl
/usr/sbin/xen2libvirt
%ifarch %ix86 x86_64
/usr/sbin/xen-hptool
/usr/sbin/xen-hvmcrash
/usr/sbin/xen-hvmctx
/usr/sbin/xen-lowmemd
/usr/sbin/kdd
%endif
/usr/sbin/xen-list
/usr/sbin/xen-destroy
%dir %attr(700,root,root) /etc/xen
%dir /etc/xen/scripts
%if %{?with_qemu_traditional}0
/etc/xen/scripts/qemu-ifup
%endif
/etc/xen/scripts/block*
/etc/xen/scripts/external-device-migrate
/etc/xen/scripts/hotplugpath.sh
/etc/xen/scripts/locking.sh
/etc/xen/scripts/logging.sh
/etc/xen/scripts/network-*
/etc/xen/scripts/vif2
/etc/xen/scripts/vif-*
/etc/xen/scripts/vscsi
/etc/xen/scripts/xen-hotplug-*
/etc/xen/scripts/xen-network-common.sh
/etc/xen/scripts/xen-script-common.sh
/etc/xen/scripts/xmclone.sh
%{_libdir}/xen
%ifarch x86_64 aarch64
/usr/lib/xen
%endif
/var/adm/fillup-templates/sysconfig.pciback
/var/adm/fillup-templates/sysconfig.xencommons
/var/adm/fillup-templates/sysconfig.xendomains
%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
%ifarch %ix86 x86_64
%dir %attr(700,root,root) /var/lib/xen/xenpaging
%endif
%dir /var/lib/xenstored
%dir /var/log/xen
%dir /var/log/xen/console
%config /etc/logrotate.d/xen
/etc/xen/auto
%config /etc/xen/examples
/etc/xen/images
%config /etc/xen/cpupool
/etc/xen/README*
%config /etc/xen/vm
%config(noreplace) /etc/xen/xenapiusers
%config(noreplace) /etc/xen/xl.conf
%config /etc/pam.d/xen-api
%config /etc/modprobe.d/xen_loop.conf
%config /etc/init.d/xencommons
%config /etc/init.d/xendomains
%config /etc/init.d/xen-watchdog
%config /etc/init.d/pciback
%if %{?with_systemd}0
%{_unitdir}/xencommons.service
%{_unitdir}/xendomains.service
%{_unitdir}/xen-watchdog.service
%endif
%dir /etc/modprobe.d
%dir /etc/udev
%dir /etc/udev/rules.d
/etc/udev/rules.d/40-xen.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
%ifnarch %arm aarch64
%dir %{_datadir}/qemu-xen
%{_datadir}/qemu-xen/*
%endif
%if %{?with_qemu_traditional}0
%dir %{_datadir}/xen
%dir %{_datadir}/xen/qemu
%{_datadir}/xen/qemu/*
%endif
%dir %{_libdir}/python%{pyver}/site-packages/grub
%dir %{_libdir}/python%{pyver}/site-packages/xen
%dir %{_libdir}/python%{pyver}/site-packages/xen/lowlevel
%{_libdir}/python%{pyver}/site-packages/grub/*
%{_libdir}/python%{pyver}/site-packages/xen/__init__*
%{_libdir}/python%{pyver}/site-packages/xen/lowlevel/*
%{_libdir}/python%{pyver}/site-packages/fsimage.so
%{_libdir}/python%{pyver}/site-packages/xnloader.py
%dir %{_defaultdocdir}/xen
%{_defaultdocdir}/xen/COPYING
%{_defaultdocdir}/xen/README.SUSE
%{_defaultdocdir}/xen/boot.local.xenU
%{_defaultdocdir}/xen/boot.xen
%{_defaultdocdir}/xen/misc
%{_mandir}/man1/xentop.1.gz
%{_mandir}/man1/xentrace_format.1.gz
%{_mandir}/man1/xl.1.gz
%{_mandir}/man1/xenstore-chmod.1.gz
%{_mandir}/man1/xenstore-ls.1.gz
%{_mandir}/man1/xenstore.1.gz
%{_mandir}/man5/xl.cfg.5.gz
%{_mandir}/man5/xl.conf.5.gz
%{_mandir}/man5/xlcpupool.cfg.5.gz
%{_mandir}/man8/*.8.gz
%{_mandir}/man1/xen-list.1.gz

%if %{?with_xend}0
%if %{?with_xend_tools_pkg}0
%files xend-tools
%endif
%defattr(-,root,root)
/etc/udev/rules.d/40-xend.rules
/usr/sbin/rcxend
/usr/sbin/xm
/usr/sbin/xend
/usr/sbin/xen-bugtool
/usr/sbin/xen-python-path
/usr/sbin/blktapctrl
%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 %{_libdir}/python%{pyver}/site-packages/xen/remus
%dir %{_libdir}/python%{pyver}/site-packages/xen/util
%dir %{_libdir}/python%{pyver}/site-packages/xen/xend
%dir %{_libdir}/python%{pyver}/site-packages/xen/xm
%dir %{_libdir}/python%{pyver}/site-packages/xen/web
%dir %{_datadir}/xen
%{_datadir}/xen/*.dtd
%config /etc/init.d/xend
%if %{?with_systemd}0
%{_unitdir}/xend.service
%endif
%dir %attr(700,root,root) /etc/xen
%config(noreplace) /etc/xen/*.sxp
%config(noreplace) /etc/xen/*.xml
/etc/xen/scripts/blktap
/etc/xen/scripts/xend-relocation.sh
/etc/xen/scripts/domain-lock*
/etc/xen/scripts/vm-monitor
/etc/xen/scripts/set-lock
%{_libdir}/python%{pyver}/site-packages/xen/remus/*
%{_libdir}/python%{pyver}/site-packages/xen/util/*
%{_libdir}/python%{pyver}/site-packages/xen/xend/*
%{_libdir}/python%{pyver}/site-packages/xen/xm/*
%{_libdir}/python%{pyver}/site-packages/xen/web/*
%config %{_fwdefdir}/xend-relocation-server
%{_mandir}/man1/xm.1.gz
%{_mandir}/man5/xmdomain.cfg.5.gz
%{_mandir}/man5/xend-config.sxp.5.gz
%endif
# with_dom0_support
%endif

%files tools-domU
%defattr(-,root,root)
%ifarch %ix86 x86_64
/usr/bin/xen-detect
%endif
/bin/domu-xenstore
/bin/xenstore-*

%files devel
%defattr(-,root,root)
%{_libdir}/*.a
%{_libdir}/*.so
/usr/include/*

%if %{?with_dom0_support}0

%files doc-html
%defattr(-,root,root)
%{_defaultdocdir}/xen/html

%post
if [ -x /sbin/update-bootloader ]; then
    /sbin/update-bootloader --refresh; exit 0
fi

%post tools
%if %{?with_systemd}0
%{fillup_and_insserv -i -y -n xencommons xencommons}
/bin/systemctl enable xencommons.service
%if %suse_version <= 1230
%if %{?with_xend}0
%{fillup_and_insserv -y -n xend xend}
/bin/systemctl enable xend.service
%endif
%endif
%else
%{fillup_and_insserv -y -n xencommons xencommons}
%if %suse_version <= 1230
%if %{?with_xend}0
# enable both xm (xend based) and xl (libxl based)
if /bin/ls /etc/init.d/rc3.d/S??xend > /dev/null 2>&1 ; then
    if ! /bin/ls /etc/init.d/rc3.d/S??xencommons > /dev/null 2>&1 ; then
        echo "postin %{name}-tools: Forcing insserv xencommons during package upgrade because xend was enabled."
        echo "postin %{name}-tools: with xend"
    fi
    %{fillup_and_insserv -Y -n xencommons xencommons}
else
    %{fillup_and_insserv -y -n xencommons xencommons}
fi
%{fillup_and_insserv -y -n xend xend}
%endif
%endif
%endif

%if %{?with_systemd}0
%{fillup_and_insserv -i -y -n xendomains xendomains}
/bin/systemctl enable xendomains.service
%else
%{fillup_and_insserv -y -n xendomains xendomains}
%{fillup_only -n pciback}
%endif
if [ -f /usr/bin/qemu-img ]; then
    if [ -f /usr/bin/qemu-img-xen ]; then
        rm /usr/bin/qemu-img-xen
    fi
    rm -f /usr/lib/xen/bin/qemu-img-xen
    ln -s /usr/bin/qemu-img /usr/lib/xen/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
    rm -f /usr/lib/xen/bin/qemu-nbd-xen
    ln -s /usr/bin/qemu-nbd /usr/lib/xen/bin/qemu-nbd-xen
fi
if [ -f /usr/bin/qemu-io ]; then
    rm -f /usr/lib/xen/bin/qemu-io-xen
    ln -s /usr/bin/qemu-io /usr/lib/xen/bin/qemu-io-xen
fi
if [ -f /etc/default/grub ] && ! (/usr/bin/grep GRUB_CMDLINE_XEN /etc/default/grub >/dev/null); then
    echo '# Xen boot parameters for all Xen boots' >> /etc/default/grub
    echo 'GRUB_CMDLINE_XEN=""' >> /etc/default/grub
    echo '# Xen boot parameters for non-recovery Xen boots (in addition to GRUB_CMDLINE_XEN)' >> /etc/default/grub
    echo 'GRUB_CMDLINE_XEN_DEFAULT=""' >> /etc/default/grub
fi

%if %{?with_xend}0
%if %{?with_xend_tools_pkg}0
%post xend-tools
%endif
%if %{?with_systemd}0
%{fillup_and_insserv -i -y -n xend xend}
/bin/systemctl enable xend.service
%else
%{fillup_and_insserv -y -n xend xend}
%endif
%endif

%preun tools
%if %{?with_systemd}0
if [ $1 -eq 0 ]; then
    /bin/systemctl disable xencommons.service
    /bin/systemctl disable xendomains.service
%if %suse_version <= 1230
%if %{?with_xend}0
    /bin/systemctl disable xend.service
%endif
%endif
fi
%else
%{stop_on_removal xendomains xencommons}
%if %suse_version <= 1230
%if %{?with_xend}0
%{stop_on_removal xend}
%endif
%endif
%endif

%if %suse_version > 1230
%if %{?with_xend}0
%if %{?with_xend_tools_pkg}0
%preun xend-tools
%endif
%if %{?with_systemd}0
if [ $1 -eq 0 ]; then
    /bin/systemctl disable xend.service
fi
%else
%{stop_on_removal xend}
%endif
%endif
%endif

%postun tools
%if %suse_version <= 1230
%if %{?with_xend}0
%{restart_on_update xend}
%endif
%endif
%{insserv_cleanup}
%if %suse_version <= 1230
%if %{?with_xend}0
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
%endif
%endif

%if %suse_version > 1230
%if %{?with_xend}0
%if %{?with_xend_tools_pkg}0
%postun xend-tools
%endif
%{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
%endif
%endif

%endif

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig

%changelog
openSUSE Build Service is sponsored by