xen/xen.spec

1709 lines
58 KiB
RPMSpec

#
# spec file for package xen
#
# Copyright (c) 2012 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/
#
Name: xen
ExclusiveArch: %ix86 x86_64
%define xvers 4.1
%define xvermaj 4
%define changeset 23174
%define xen_build_dir xen-4.1.2-testing
%define with_kmp 1
%define with_stubdom 1
# EFI requires gcc46 or newer
# its available in 12.1 or >= sles11sp2
%if %suse_version == 1110
%define with_gcc46 1
%else
%define with_gcc46 0
%endif
%ifarch x86_64
%define with_dom0_support 1
%else
%define with_dom0_support 0
%endif
%define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services
%if %suse_version > 1140
%define with_xend 1
%else
%define with_xend 1
%endif
BuildRequires: LibVNCServer-devel
BuildRequires: SDL-devel
BuildRequires: automake
BuildRequires: bin86
BuildRequires: curl-devel
BuildRequires: dev86
BuildRequires: graphviz
BuildRequires: latex2html
BuildRequires: libbz2-devel
BuildRequires: libjpeg-devel
BuildRequires: libuuid-devel
BuildRequires: libxml2-devel
BuildRequires: ncurses-devel
BuildRequires: openssl
BuildRequires: openssl-devel
BuildRequires: pciutils-devel
BuildRequires: python-devel
BuildRequires: texinfo
BuildRequires: transfig
%if %suse_version >= 1120
BuildRequires: xz-devel
%endif
%if %suse_version <= 1110
BuildRequires: pmtools
%else
BuildRequires: acpica
%endif
%if %suse_version >= 1030
BuildRequires: texlive
BuildRequires: texlive-latex
%else
BuildRequires: te_ams
BuildRequires: te_latex
BuildRequires: tetex
%endif
%ifarch x86_64
%if %{?with_gcc46}0
BuildRequires: gcc46
BuildRequires: libgcc46
BuildRequires: libgcc46-32bit
%endif
BuildRequires: gcc-32bit
BuildRequires: gcc43-32bit
BuildRequires: glibc-32bit
BuildRequires: glibc-devel-32bit
%define max_cpus 256
%define pae_enabled n
%else
%define max_cpus 32
%define pae_enabled y
%endif
BuildRequires: glibc-devel
%if %{?with_kmp}0
BuildRequires: kernel-source
BuildRequires: kernel-syms
BuildRequires: module-init-tools
BuildRequires: xorg-x11
%endif
Version: 4.1.2_17
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.1.2-testing-src.tar.bz2
Source1: stubdom.tar.bz2
Source2: xen-utils-0.1.tar.bz2
Source3: README.SuSE
Source4: boot.xen
Source5: boot.local.xenU
Source6: init.xend
Source7: init.xendomains
Source8: logrotate.conf
Source9: domUloader.py
Source10: xmexample.domUloader
Source11: xmexample.disks
Source12: block-nbd
Source13: block-iscsi
Source14: block-npiv-common.sh
Source15: block-npiv
Source16: block-npiv-vport
Source17: xmclone.sh
Source18: xend-relocation.sh
Source19: init.xen_loop
%if %{?with_kmp}0
Source20: xen_pvdrivers.conf
Source21: kmp_filelist
%endif
Source22: block-dmmd
# Xen API remote authentication sources
Source23: etc_pam.d_xen-api
Source24: xenapiusers
# sysconfig hook script for Xen
Source25: xen-updown.sh
# Firewall service file for xend relocation server
Source26: xend-relocation-server.fw
# init script and sysconf file for pciback
Source27: init.pciback
Source28: sysconfig.pciback
Source99: baselibs.conf
# http://xenbits.xensource.com/ext/xenalyze
Source20000: xenalyze.hg.tar.bz2
# Upstream patches
Patch22998: 22998-x86-get_page_from_l1e-retcode.patch
Patch22999: 22999-x86-mod_l1_entry-retcode.patch
Patch23000: 23000-x86-mod_l2_entry-retcode.patch
Patch23050: 23050-xentrace_dynamic_tracebuffer_allocation.patch
Patch23074: 23074-pfn.h.patch
Patch23091: 23091-xentrace_fix_t_info_pages_calculation..patch
Patch23092: 23092-xentrace_print_calculated_numbers_in_calculate_tbuf_size.patch
Patch23093: 23093-xentrace_remove_gdprintk_usage_since_they_are_not_in_guest_context.patch
Patch23094: 23094-xentrace_update_comments.patch
Patch23095: 23095-xentrace_use_consistent_printk_prefix.patch
Patch23096: 23096-x86-hpet-no-cpumask_lock.patch
Patch23099: 23099-x86-rwlock-scalability.patch
Patch23103: 23103-x86-pirq-guest-eoi-check.patch
Patch23127: 23127-vtd-bios-settings.patch
Patch23128: 23128-xentrace_correct_formula_to_calculate_t_info_pages.patch
Patch23129: 23129-xentrace_remove_unneeded_debug_printk.patch
Patch23173: 23173-xentrace_Move_register_cpu_notifier_call_into_boot-time_init..patch
Patch23199: 23199-amd-iommu-unmapped-intr-fault.patch
Patch23233: 23233-hvm-cr-access.patch
Patch23234: 23234-svm-decode-assist-base.patch
Patch23235: 23235-svm-decode-assist-crs.patch
Patch23236: 23236-svm-decode-assist-invlpg.patch
Patch23238: 23238-svm-decode-assist-insn-fetch.patch
Patch23239: 23239-xentrace_correct_overflow_check_for_number_of_per-cpu_trace_pages.patch
Patch23246: 23246-x86-xsave-enable.patch
Patch23303: 23303-cpufreq-misc.patch
Patch23304: 23304-amd-oprofile-strings.patch
Patch23305: 23305-amd-fam15-xenoprof.patch
Patch23306: 23306-amd-fam15-vpmu.patch
Patch23308: 23308-xentrace_Move_the_global_variable_t_info_first_offset_into_calculate_tbuf_size.patch
Patch23309: 23309-xentrace_Mark_data_size___read_mostly_because_its_only_written_once.patch
Patch23310: 23310-xentrace_Remove_unneeded_cast_when_assigning_pointer_value_to_dst.patch
Patch23334: 23334-amd-fam12+14-vpmu.patch
Patch23383: 23383-libxc-rm-static-vars.patch
Patch23404: 23404-xentrace_reduce_trace_buffer_size_to_something_mfn_offset_can_reach.patch
Patch23405: 23405-xentrace_fix_type_of_offset_to_avoid_ouf-of-bounds_access.patch
Patch23406: 23406-xentrace_update___insert_record_to_copy_the_trace_record_to_individual_mfns.patch
Patch23407: 23407-xentrace_allocate_non-contiguous_per-cpu_trace_buffers.patch
Patch23437: 23437-amd-fam15-TSC-scaling.patch
Patch23462: 23462-libxc-cpu-feature.patch
Patch23506: 23506-x86_Disable_set_gpfn_from_mfn_until_m2p_table_is_allocated..patch
Patch23507: 23507-xenpaging_update_machine_to_phys_mapping_during_page_deallocation.patch
Patch23508: 23508-vmx-proc-based-ctls-probe.patch
Patch23509: 23509-x86_32_Fix_build_Define_machine_to_phys_mapping_valid.patch
Patch23511: 23511-amd-fam15-no-flush-for-C3.patch
Patch23562: 23562-xenpaging_remove_unused_spinlock_in_pager.patch
Patch23571: 23571-vtd-fault-verbosity.patch
Patch23574: 23574-x86-dom0-compressed-ELF.patch
Patch23575: 23575-x86-DMI.patch
Patch23576: 23576-x86_show_page_walk_also_for_early_page_faults.patch
Patch23577: 23577-tools_merge_several_bitop_functions_into_xc_bitops.h.patch
Patch23578: 23578-xenpaging_add_xs_handle_to_struct_xenpaging.patch
Patch23579: 23579-xenpaging_drop_xc.c_remove_ASSERT.patch
Patch23580: 23580-xenpaging_drop_xc.c_remove_xc_platform_info_t.patch
Patch23581: 23581-xenpaging_drop_xc.c_remove_xc_wait_for_event.patch
Patch23582: 23582-xenpaging_drop_xc.c_move_xc_mem_paging_flush_ioemu_cache.patch
Patch23583: 23583-xenpaging_drop_xc.c_move_xc_wait_for_event_or_timeout.patch
Patch23584: 23584-xenpaging_drop_xc.c_remove_xc_files.patch
Patch23585: 23585-xenpaging_correct_dropping_of_pages_to_avoid_full_ring_buffer.patch
Patch23586: 23586-xenpaging_do_not_bounce_p2mt_back_to_the_hypervisor.patch
Patch23587: 23587-xenpaging_remove_srand_call.patch
Patch23588: 23588-xenpaging_remove_return_values_from_functions_that_can_not_fail.patch
Patch23589: 23589-xenpaging_catch_xc_mem_paging_resume_errors.patch
Patch23590: 23590-xenpaging_remove_local_domain_id_variable.patch
Patch23591: 23591-xenpaging_move_num_pages_into_xenpaging_struct.patch
Patch23592: 23592-xenpaging_start_paging_in_the_middle_of_gfn_range.patch
Patch23593: 23593-xenpaging_pass_integer_to_xenpaging_populate_page.patch
Patch23594: 23594-xenpaging_add_helper_function_for_unlinking_pagefile.patch
Patch23595: 23595-xenpaging_add_watch_thread_to_catch_guest_shutdown.patch
Patch23596: 23596-xenpaging_implement_stopping_of_pager_by_sending_SIGTERM-SIGINT.patch
Patch23597: 23597-xenpaging_remove_private_mem_event.h.patch
Patch23599: 23599-tools_fix_build_after_recent_xenpaging_changes.patch
Patch23610: 23610-x86-topology-info.patch
Patch23611: 23611-amd-fam15-topology.patch
Patch23613: 23613-EFI-headers.patch
Patch23614: 23614-x86_64-EFI-boot.patch
Patch23615: 23615-x86_64-EFI-runtime.patch
Patch23616: 23616-x86_64-EFI-MPS.patch
Patch23643: 23643-xentrace_Allow_tracing_to_be_enabled_at_boot.patch
Patch23676: 23676-x86_64-image-map-bounds.patch
Patch23719: 23719-xentrace_update___trace_var_comment.patch
Patch23723: 23723-x86-CMOS-lock.patch
Patch23724: 23724-x86-smpboot-x2apic.patch
Patch23726: 23726-x86-intel-flexmigration-v2.patch
Patch23735: 23735-guest-dom0-cap.patch
Patch23747: 23747-mmcfg-base-address.patch
Patch23749: 23749-mmcfg-reservation.patch
Patch23752: 23752-x86-shared-IRQ-vector-maps.patch
Patch23754: 23754-AMD-perdev-vector-map.patch
Patch23771: 23771-x86-ioapic-clear-pin.patch
Patch23772: 23772-x86-trampoline.patch
Patch23774: 23774-x86_64-EFI-EDD.patch
Patch23781: 23781-pm-wide-ACPI-ids.patch
Patch23782: 23782-x86-ioapic-clear-irr.patch
Patch23783: 23783-ACPI-set-_PDC-bits.patch
Patch23795: 23795-intel-ich10-quirk.patch
Patch23800: 23800-x86_64-guest-addr-range.patch
Patch23804: 23804-x86-IPI-counts.patch
Patch23817: 23817-mem_event_add_ref_counting_for_free_requestslots.patch
Patch23818: 23818-mem_event_use_mem_event_mark_and_pause_in_mem_event_check_ring.patch
Patch23819: 23819-make-docs.patch
Patch23827: 23827-xenpaging_use_batch_of_pages_during_final_page-in.patch
Patch23841: 23841-mem_event_pass_mem_event_domain_pointer_to_mem_event_functions.patch
Patch23842: 23842-mem_event_use_different_ringbuffers_for_share_paging_and_access.patch
Patch23853: 23853-x86-pv-cpuid-xsave.patch
Patch23874: 23874-xenpaging_track_number_of_paged_pages_in_struct_domain.patch
Patch23897: 23897-x86-mce-offline-again.patch
Patch23900: 23900-xzalloc.patch
Patch23904: 23904-xenpaging_use_p2m-get_entry_in_p2m_mem_paging_functions.patch
Patch23905: 23905-xenpaging_fix_locking_in_p2m_mem_paging_functions.patch
Patch23906: 23906-xenpaging_remove_confusing_comment_from_p2m_mem_paging_populate.patch
Patch23908: 23908-p2m_query-modify_p2mt_with_p2m_lock_held.patch
Patch23925: 23925-x86-AMD-ARAT-Fam12.patch
Patch23933: 23933-pt-bus2bridge-update.patch
Patch23943: 23943-xenpaging_clear_page_content_after_evict.patch
Patch23949: 23949-constify_vcpu_set_affinitys_second_parameter.patch
Patch23953: 23953-xenpaging_handle_evict_failures.patch
Patch23955: 23955-x86-pv-cpuid-xsave.patch
Patch23957: 23957-cpufreq-error-paths.patch
Patch23978: 23978-xenpaging_check_p2mt_in_p2m_mem_paging_functions.patch
Patch23979: 23979-xenpaging_document_p2m_mem_paging_functions.patch
Patch23980: 23980-xenpaging_disallow_paging_in_a_PoD_guest.patch
Patch23993: 23993-x86-microcode-amd-fix-23871.patch
Patch24104: 24104-waitqueue_Double_size_of_x86_shadow_stack..patch
Patch24105: 24105-xenpaging_compare_domain_pointer_in_p2m_mem_paging_populate.patch
Patch24106: 24106-mem_event_check_capabilities_only_once.patch
Patch24116: 24116-x86-continuation-cancel.patch
Patch24123: 24123-x86-cpuidle-quiesce.patch
Patch24124: 24124-x86-microcode-amd-quiesce.patch
Patch24137: 24137-revert-23666.patch
Patch24138: 24138-xenpaging_munmap_all_pages_after_page-in.patch
Patch24144: 24144-cpufreq-turbo-crash.patch
Patch24148: 24148-shadow-pgt-dying-op-performance.patch
Patch24153: 24153-x86-emul-feature-checks.patch
Patch24155: 24155-x86-ioapic-EOI-after-migration.patch
Patch24156: 24156-x86-ioapic-shared-vectors.patch
Patch24157: 24157-x86-xstate-init.patch
Patch24168: 24168-x86-vioapic-clear-remote_irr.patch
Patch24171: 24171-x86waitqueue_Allocate_whole_page_for_shadow_stack..patch
Patch24178: 24178-debug_Add_domain-vcpu_pause_count_info_to_d_key..patch
Patch24189: 24189-x86-p2m-pod-locking.patch
Patch24190: 24190-hap-log-dirty-disable-rc.patch
Patch24193: 24193-hap-track-dirty-vram-rc.patch
Patch24195: 24195-waitqueue_Detect_saved-stack_overflow_and_crash_the_guest..patch
Patch24196: 24196-waitqueue_Reorder_prepare_to_wait_so_that_vcpu_is_definitely_on_the.patch
Patch24197: 24197-x86-waitqueue_Because_we_have_per-cpu_stacks_we_must_wake_up_on_teh.patch
Patch24201: 24201-x86-pcpu-platform-op.patch
Patch24208: 24208-xenpaging_remove_filename_from_comment.patch
Patch24209: 24209-xenpaging_remove_obsolete_comment_in_resume_path.patch
Patch24210: 24210-xenpaging_use_PERROR_to_print_errno.patch
Patch24211: 24211-xenpaging_simplify_file_op.patch
Patch24212: 24212-xenpaging_print_gfn_in_failure_case.patch
Patch24213: 24213-xenpaging_update_xenpaging_init.patch
Patch24214: 24214-xenpaging_remove_xc_dominfo_t_from_paging_t.patch
Patch24215: 24215-xenpaging_track_the_number_of_paged-out_pages.patch
Patch24216: 24216-xenpaging_move_page_add-resume_loops_into_its_own_function..patch
Patch24217: 24217-xenpaging_improve_mainloop_exit_handling.patch
Patch24218: 24218-libxc_add_bitmap_clear_function.patch
Patch24219: 24219-xenpaging_retry_unpageable_gfns.patch
Patch24220: 24220-xenpaging_install_into_LIBEXEC_dir.patch
Patch24221: 24221-xenpaging_add_XEN_PAGING_DIR_-_libxl_xenpaging_dir_path.patch
Patch24222: 24222-xenpaging_use_guests_tot_pages_as_working_target.patch
Patch24223: 24223-xenpaging_watch_the_guests_memory-target-tot_pages_xenstore_value.patch
Patch24224: 24224-xenpaging_add_cmdline_interface_for_pager.patch
Patch24225: 24225-xenpaging_improve_policy_mru_list_handling.patch
Patch24226: 24226-xenpaging_add_debug_to_show_received_watch_event..patch
Patch24227: 24227-xenpaging_restrict_pagefile_permissions.patch
Patch24231: 24231-waitqueue_Implement_wake_up_nroneall..patch
Patch24232: 24232-waitqueue_Hold_a_reference_to_a_domain_on_a_waitqueue..patch
Patch24261: 24261-x86-cpuidle-Westmere-EX.patch
Patch24269: 24269-mem_event_move_mem_event_domain_out_of_struct_domain.patch
Patch24270: 24270-Free_d-mem_event_on_domain_destruction..patch
Patch24272: 24272-xenpaging_Fix_c-s_235070a29c8c3ddf7_update_machine_to_phys_mapping_during_page_deallocation.patch
Patch24275: 24275-x86-emul-lzcnt.patch
Patch24277: 24277-x86-dom0-features.patch
Patch24278: 24278-x86-dom0-no-PCID.patch
Patch24282: 24282-x86-log-dirty-bitmap-leak.patch
Patch24318: 24318-x86-mm_Fix_checks_during_foreign_mapping_of_paged_pages.patch
Patch24344: 24344-tools-x86_64_Fix_cpuid_inline_asm_to_not_clobber_stacks_red_zone.patch
Patch24327: 24327-After_preparing_a_page_for_page-in_allow_immediate_fill-in_of_the_page_contents.patch
Patch24328: 24328-Tools_Libxc_wrappers_to_automatically_fill_in_page_oud_page_contents_on_prepare.patch
Patch24329: 24329-Teach_xenpaging_to_use_the_new_and_non-racy_xc_mem_paging_load_interface.patch
Patch24357: 24357-firmware-no-_PS0-_PS3.patch
Patch24358: 24358-kexec-compat-overflow.patch
Patch24359: 24359-x86-domU-features.patch
Patch24360: 24360-x86-pv-domU-no-PCID.patch
Patch24389: 24389-amd-fam10-gart-tlb-walk-err.patch
Patch24391: 24391-x86-pcpu-version.patch
Patch24411: 24411-x86-ucode-AMD-Fam15.patch
Patch24412: 24412-x86-AMD-errata-model-shift.patch
Patch24417: 24417-amd-erratum-573.patch
Patch24429: 24429-mceinj-tool.patch
Patch24447: 24447-x86-TXT-INIT-SIPI-delay.patch
Patch24448: 24448-x86-pt-irq-leak.patch
Patch24453: 24453-x86-vIRQ-IRR-TMR-race.patch
Patch24456: 24456-x86-emul-lea.patch
Patch24459: 24459-libxl-vifname.patch
Patch24466: 24466-libxc_Only_retry_mapping_pages_when_ENOENT_is_returned.patch
Patch24478: 24478-libxl_add_feature_flag_to_xenstore_for_XS_RESET_WATCHES.patch
Patch24517: 24517-VT-d-fault-softirq.patch
Patch24527: 24527-AMD-Vi-fault-softirq.patch
Patch24535: 24535-x86-vMSI-misc.patch
Patch24566: 24566-tools-libxc_fix_error_handling_in_xc_mem_paging_load.patch
Patch24586: 24586-x86-mm_Properly_account_for_paged_out_pages.patch
Patch24609: 24609-tools-libxc_handle_fallback_in_linux_privcmd_map_foreign_bulk_properly.patch
Patch24610: 24610-xenpaging_make_file_op_largefile_aware.patch
Patch24615: 24615-VESA-lfb-flush.patch
Patch24690: 24690-x86-PCI-SERR-no-deadlock.patch
Patch24701: 24701-gnttab-map-grant-ref-recovery.patch
Patch24742: 24742-gnttab-misc.patch
Patch24780: 24780-x86-paging-use-clear_guest.patch
Patch24781: 24781-x86-vmce-mcg_ctl.patch
Patch24805: 24805-x86-MSI-X-dom0-ro.patch
Patch24883: 24883-x86-guest-walk-not-present.patch
Patch24886: 24886-x86-vmce-mcg_ctl-default.patch
Patch24887: 24887-x86-vmce-sr.patch
Patch24888: 24888-pci-release-devices.patch
Patch24950: 24950-gnttab-copy-mapped.patch
Patch24970: 24970-x86-cpuidle-deny-port-access.patch
Patch24996: 24996-x86-cpuidle-array-overrun.patch
Patch25041: 25041-tapdisk2-create-init-name.patch
Patch25098: 25098-x86-emul-lock-UD.patch
Patch25101: 25101-x86-hpet-disable.patch
# Upstream qemu patches
Patch100: ioemu-9868-MSI-X.patch
Patch101: ioemu-9869-MSI-X-init.patch
Patch102: ioemu-9873-MSI-X-fix-unregister_iomem.patch
Patch103: ioemu-9877-MSI-X-device-cleanup.patch
Patch104: cve-2012-0029-qemu-xen-unstable.patch
# Our patches
Patch300: xen-config.diff
Patch301: xend-config.diff
Patch302: xen-destdir.diff
Patch303: xen-rpmoptflags.diff
Patch304: xen-warnings.diff
Patch305: xen-warnings-unused.diff
Patch306: xen-changeset.diff
Patch307: xen-paths.diff
Patch308: xen-xmexample.diff
Patch309: xen-xmexample-vti.diff
Patch310: xen-fixme-doc.diff
Patch311: xen-domUloader.diff
Patch312: xen-no-dummy-nfs-ip.diff
Patch313: serial-split.patch
Patch314: xen-xm-top-needs-root.diff
Patch315: xen-max-free-mem.diff
Patch322: bridge-opensuse.patch
Patch323: bridge-vlan.diff
Patch324: bridge-bonding.diff
Patch325: bridge-record-creation.patch
Patch326: network-nat.patch
Patch327: udev-rules.patch
Patch328: vif-route-ifup.patch
Patch329: network-nat-open-SuSEfirewall2-FORWARD.patch
Patch340: xen-hvm-default-bridge.diff
Patch341: xen-hvm-default-pae.diff
Patch342: xm-test-cleanup.diff
Patch343: tools-xc_kexec.diff
Patch344: tools-kboot.diff
Patch345: libxen_permissive.patch
Patch346: xenapi-console-protocol.patch
Patch347: xen-disable-qemu-monitor.diff
Patch348: qemu-security-etch1.diff
Patch350: cdrom-removable.patch
Patch351: xend-core-dump-loc.diff
Patch352: blktap.patch
Patch353: xen-qemu-iscsi-fix.patch
Patch354: xen-api-auth.patch
Patch355: ioemu-vnc-resize.patch
Patch356: ioemu-debuginfo.patch
Patch357: vif-bridge-no-iptables.patch
Patch358: xenconsole-no-multiple-connections.patch
Patch359: disable-xl-when-using-xend.patch
# Needs to go upstream
Patch370: checkpoint-rename.patch
Patch371: xm-save-check-file.patch
Patch372: xm-create-xflag.patch
Patch373: xend-sysconfig.patch
Patch374: domu-usb-controller.patch
Patch375: usb-list.patch
Patch376: xend-devid-or-name.patch
Patch377: suspend_evtchn_lock.patch
Patch378: log-guest-console.patch
Patch379: xend-migration-domname-fix.patch
Patch380: xm-create-maxmem.patch
Patch381: vif-bridge-tap-fix.patch
Patch382: xencommons-xenstored-root.patch
Patch383: xend-cpuid.patch
# Patches for snapshot support
Patch400: snapshot-ioemu-save.patch
Patch401: snapshot-ioemu-restore.patch
Patch402: snapshot-ioemu-delete.patch
Patch403: snapshot-xend.patch
Patch404: snapshot-without-pv-fix.patch
# ioemu part of blktap patch series
Patch410: ioemu-blktap-fv-init.patch
Patch411: ioemu-blktap-image-format.patch
Patch412: build-tapdisk-ioemu.patch
Patch413: tapdisk-ioemu-logfile.patch
Patch414: ioemu-blktap-zero-size.patch
Patch415: tapdisk-ioemu-shutdown-fix.patch
Patch420: blktapctrl-default-to-ioemu.patch
Patch421: ioemu-blktap-barriers.patch
# Other bug fixes or features
Patch423: bdrv_open2_fix_flags.patch
Patch424: bdrv_open2_flags_2.patch
Patch425: ioemu-bdrv-open-CACHE_WB.patch
Patch426: ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch
Patch427: xen-ioemu-hvm-pv-support.diff
Patch428: qemu-dm-segfault.patch
Patch429: hibernate.patch
Patch430: del_usb_xend_entry.patch
Patch431: capslock_enable.patch
Patch433: multi-xvdp.patch
Patch434: check_device_status.patch
Patch435: change_home_server.patch
Patch436: altgr_2.patch
Patch438: stdvga-cache.patch
Patch439: minios-fixups.patch
Patch440: bdrv_default_rwflag.patch
Patch442: xen-minimum-restart-time.patch
Patch443: vif-bridge.mtu.patch
Patch445: hotplug.losetup.patch
Patch446: xend-disable-internal-logrotate.patch
Patch447: xend-config-enable-dump-comment.patch
Patch448: change-vnc-passwd.patch
Patch449: kernel-boot-hvm.patch
Patch450: ioemu-watchdog-support.patch
Patch451: ioemu-watchdog-linkage.patch
Patch452: ioemu-watchdog-ib700-timer.patch
Patch453: tools-watchdog-support.patch
Patch454: xend-console-port-restore.patch
Patch455: xencommons-proc-xen.patch
Patch456: xend-vcpu-affinity-fix.patch
Patch457: xenstored.XS_RESET_WATCHES.patch
Patch458: xen-cpupool-xl-config-format.patch
Patch459: xl-create-pv-with-qcow2-img.patch
Patch460: ipxe-gcc45-warnings.patch
Patch461: ipxe-ipv4-fragment.patch
Patch462: ipxe-enable-nics.patch
Patch463: blktap-close-fifos.patch
Patch464: blktap-disable-debug-printf.patch
# Jim's domain lock patch
Patch480: xend-domain-lock.patch
Patch481: xend-domain-lock-sfex.patch
# Hypervisor and PV driver Patches
Patch500: 32on64-extra-mem.patch
Patch501: x86-ioapic-ack-default.patch
Patch502: x86-cpufreq-report.patch
Patch504: dom-print.patch
Patch505: pvdrv-import-shared-info.patch
Patch507: x86-extra-trap-info.patch
Patch508: pvdrv_emulation_control.patch
Patch509: blktap-pv-cdrom.patch
Patch510: pv-driver-build.patch
Patch511: supported_module.diff
Patch512: magic_ioport_compat.patch
Patch513: xen.sles11sp1.bug684297.xen_oldmem_pfn_is_ram.patch
Patch514: xen.sles11sp1.fate311487.xen_platform_pci.dmistring.patch
Patch650: disable_emulated_device.diff
Patch651: ioemu-disable-scsi.patch
Patch652: ioemu-disable-emulated-ide-if-pv.patch
Patch700: hv_extid_compatibility.patch
Patch701: xen.no-default-runlevel-4.patch
# FATE 310510
Patch1100: xenpaging.versioned-interface.patch
Patch1101: xenpaging.mmap-before-nominate.patch
Patch1102: xenpaging.p2m_is_paged.patch
Patch1103: xenpaging.evict_fail_fast_forward.patch
Patch1104: xenpaging.error-handling.patch
Patch1105: xenpaging.mem_event-use-wait_queue.patch
Patch1106: xenpaging.waitqueue-paging.patch
Patch1107: xenpaging.evict_mmap_readonly.patch
Patch1126: xenpaging.guest-memusage.patch
Patch1129: xenpaging.autostart.patch
Patch1130: xenpaging.doc.patch
Patch1131: xenpaging.speedup-page-out.patch
Patch1132: xenpaging.speedup-page-in.gfn_to_slot.patch
Patch1134: xen-unstable.misc.linux_privcmd_map_foreign_bulk.retry_paged.patch
Patch1135: xenpaging.speedup-page-out.resume_pages.find_next_bit_set.patch
Patch1136: xenpaging.speedup-page-out.policy_choose_victim.patch
Patch1137: xenpaging.speedup-page-out.evict_pages.free_slot_stack.patch
Patch1142: xenpaging.qemu.flush-cache.patch
# xenalyze
Patch20000: xenalyze.gcc46.patch
# Build 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).
Xen does support booting other Operating Systems; ports of NetBSD
(Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich)
exist. A port of Windows XP was developed for an earlier version of
Xen, but is not available for release due to license restrictions.
In addition to this package you need to install the kernel-xen and
xen-tools to use Xen. Xen 3 also supports running unmodified guests
using full virtualization, if appropriate hardware is present. Install
xen-tools-ioemu if you want to use this.
[Hypervisor is a trademark of IBM]
Authors:
--------
Ian Pratt <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
#Requires: xen = %{version}
%description libs
Xen is a virtual machine monitor for x86 that supports execution of
multiple guest operating systems with unprecedented levels of
performance and resource isolation.
This package contains the libraries used to interact with the Xen
virtual machine monitor.
Modern computers are sufficiently powerful to use virtualization to
present the illusion of many smaller virtual machines (VMs), each
running a separate operating system instance. Successful partitioning
of a machine to support the concurrent execution of multiple operating
systems poses several challenges. Firstly, virtual machines must be
isolated from one another: It is not acceptable for the execution of
one to adversely affect the performance of another. This is
particularly true when virtual machines are owned by mutually
untrusting users. Secondly, it is necessary to support a variety of
different operating systems to accommodate the heterogeneity of popular
applications. Thirdly, the performance overhead introduced by
virtualization should be small.
Xen uses a technique called paravirtualization: The guest OS is
modified, mainly to enhance performance.
The Xen hypervisor (microkernel) does not provide device drivers for
your hardware (except for CPU and memory). This job is left to the
kernel that's running in domain 0. Thus the domain 0 kernel is
privileged; it has full hardware access. It's started immediately after
Xen starts up. Other domains have no access to the hardware; instead
they use virtual interfaces that are provided by Xen (with the help of
the domain 0 kernel).
Xen does support booting other Operating Systems; ports of NetBSD
(Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich)
exist. A port of Windows XP was developed for an earlier version of
Xen, but is not available for release due to license restrictions.
Authors:
--------
Ian Pratt <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
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 = 3.2
Obsoletes: xen-tools-ioemu <= 3.2
%description tools
Xen is a virtual machine monitor for x86 that supports execution of
multiple guest operating systems with unprecedented levels of
performance and resource isolation.
This package contains the control tools that allow you to start, stop,
migrate, and manage virtual machines.
Modern computers are sufficiently powerful to use virtualization to
present the illusion of many smaller virtual machines (VMs), each
running a separate operating system instance. Successful partitioning
of a machine to support the concurrent execution of multiple operating
systems poses several challenges. Firstly, virtual machines must be
isolated from one another: It is not acceptable for the execution of
one to adversely affect the performance of another. This is
particularly true when virtual machines are owned by mutually
untrusting users. Secondly, it is necessary to support a variety of
different operating systems to accommodate the heterogeneity of popular
applications. Thirdly, the performance overhead introduced by
virtualization should be small.
Xen uses a technique called paravirtualization: The guest OS is
modified, mainly to enhance performance.
The Xen hypervisor (microkernel) does not provide device drivers for
your hardware (except for CPU and memory). This job is left to the
kernel that's running in domain 0. Thus the domain 0 kernel is
privileged; it has full hardware access. It's started immediately after
Xen starts up. Other domains have no access to the hardware; instead
they use virtual interfaces that are provided by Xen (with the help of
the domain 0 kernel).
Xen does support booting other Operating Systems; ports of NetBSD
(Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich)
exist. A port of Windows XP was developed for an earlier version of
Xen, but is not available for release due to license restrictions.
In addition to this package you need to install kernel-xen and xen to
use Xen.
Authors:
--------
Ian Pratt <ian.pratt@cl.cam.ac.uk>
%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: xen-libs = %{version}
%description devel
Xen is a virtual machine monitor for x86 that supports execution of
multiple guest operating systems with unprecedented levels of
performance and resource isolation.
This package contains the libraries and header files needed to create
tools to control virtual machines.
Modern computers are sufficiently powerful to use virtualization to
present the illusion of many smaller virtual machines (VMs), each
running a separate operating system instance. Successful partitioning
of a machine to support the concurrent execution of multiple operating
systems poses several challenges. Firstly, virtual machines must be
isolated from one another: It is not acceptable for the execution of
one to adversely affect the performance of another. This is
particularly true when virtual machines are owned by mutually
untrusting users. Secondly, it is necessary to support a variety of
different operating systems to accommodate the heterogeneity of popular
applications. Thirdly, the performance overhead introduced by
virtualization should be small.
Xen uses a technique called paravirtualization: The guest OS is
modified, mainly to enhance performance.
The Xen hypervisor (microkernel) does not provide device drivers for
your hardware (except for CPU and memory). This job is left to the
kernel that's running in domain 0. Thus the domain 0 kernel is
privileged; it has full hardware access. It's started immediately after
Xen starts up. Other domains have no access to the hardware; instead
they use virtual interfaces that are provided by Xen (with the help of
the domain 0 kernel).
Xen does support booting other Operating Systems; ports of NetBSD
(Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich)
exist. A port of Windows XP was developed for an earlier version of
Xen, but is not available for release due to license restrictions.
Authors:
--------
Ian Pratt <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
%description KMP
Xen para-virtual device drivers for fully virtualized guests
Xen is a virtual machine monitor for x86 that supports execution of
multiple guest operating systems with unprecedented levels of
performance and resource isolation.
This package contains the libraries and header files needed to create
tools to control virtual machines.
Modern computers are sufficiently powerful to use virtualization to
present the illusion of many smaller virtual machines (VMs), each
running a separate operating system instance. Successful partitioning
of a machine to support the concurrent execution of multiple operating
systems poses several challenges. Firstly, virtual machines must be
isolated from one another: It is not acceptable for the execution of
one to adversely affect the performance of another. This is
particularly true when virtual machines are owned by mutually
untrusting users. Secondly, it is necessary to support a variety of
different operating systems to accommodate the heterogeneity of popular
applications. Thirdly, the performance overhead introduced by
virtualization should be small.
Xen uses a technique called paravirtualization: The guest OS is
modified, mainly to enhance performance.
The Xen hypervisor (microkernel) does not provide device drivers for
your hardware (except for CPU and memory). This job is left to the
kernel that's running in domain 0. Thus the domain 0 kernel is
privileged; it has full hardware access. It's started immediately after
Xen starts up. Other domains have no access to the hardware; instead
they use virtual interfaces that are provided by Xen (with the help of
the domain 0 kernel).
Xen does support booting other Operating Systems; ports of NetBSD
(Christian Limpach), FreeBSD (Kip Macy), and Plan 9 (Ron Minnich)
exist. A port of Windows XP was developed for an earlier version of
Xen, but is not available for release due to license restrictions.
%endif
%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>
%package doc-pdf
Summary: Xen Virtualization: PDF documentation
Group: Documentation/Other
%description doc-pdf
Xen is a virtual machine monitor for x86 that supports execution of
multiple guest operating systems with unprecedented levels of
performance and resource isolation.
xen-doc-pdf contains the online documentation in PDF format. Use
xpdf/kpdf/gpdf/gv/... to read the files in
/usr/share/doc/packages/xen/pdf/
Authors:
--------
Ian Pratt <ian.pratt@cl.cam.ac.uk>
%endif
%prep
%setup -q -n %xen_build_dir -a 1 -a 20000
%patch20000 -p1
tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
# Upstream patches
%patch22998 -p1
%patch22999 -p1
%patch23000 -p1
%patch23050 -p1
%patch23074 -p1
%patch23091 -p1
%patch23092 -p1
%patch23093 -p1
%patch23094 -p1
%patch23095 -p1
%patch23096 -p1
%patch23099 -p1
%patch23103 -p1
%patch23127 -p1
%patch23128 -p1
%patch23129 -p1
%patch23173 -p1
%patch23199 -p1
%patch23233 -p1
%patch23234 -p1
%patch23235 -p1
%patch23236 -p1
%patch23238 -p1
%patch23239 -p1
%patch23246 -p1
%patch23303 -p1
%patch23304 -p1
%patch23305 -p1
%patch23306 -p1
%patch23308 -p1
%patch23309 -p1
%patch23310 -p1
%patch23334 -p1
%patch23383 -p1
%patch23404 -p1
%patch23405 -p1
%patch23406 -p1
%patch23407 -p1
%patch23437 -p1
%patch23462 -p1
%patch23506 -p1
%patch23507 -p1
%patch23508 -p1
%patch23509 -p1
%patch23511 -p1
%patch23562 -p1
%patch23571 -p1
%patch23574 -p1
%patch23575 -p1
%patch23576 -p1
%patch23577 -p1
%patch23578 -p1
%patch23579 -p1
%patch23580 -p1
%patch23581 -p1
%patch23582 -p1
%patch23583 -p1
%patch23584 -p1
%patch23585 -p1
%patch23586 -p1
%patch23587 -p1
%patch23588 -p1
%patch23589 -p1
%patch23590 -p1
%patch23591 -p1
%patch23592 -p1
%patch23593 -p1
%patch23594 -p1
%patch23595 -p1
%patch23596 -p1
%patch23597 -p1
%patch23599 -p1
%patch23610 -p1
%patch23611 -p1
%patch23613 -p1
%patch23614 -p1
%patch23615 -p1
%patch23616 -p1
%patch23643 -p1
%patch23676 -p1
%patch23719 -p1
%patch23723 -p1
%patch23724 -p1
%patch23726 -p1
%patch23735 -p1
%patch23747 -p1
%patch23749 -p1
%patch23752 -p1
%patch23754 -p1
%patch23771 -p1
%patch23772 -p1
%patch23774 -p1
%patch23781 -p1
%patch23782 -p1
%patch23783 -p1
%patch23795 -p1
%patch23800 -p1
%patch23804 -p1
%patch23817 -p1
%patch23818 -p1
%patch23819 -p1
%patch23827 -p1
%patch23841 -p1
%patch23842 -p1
%patch23853 -p1
%patch23874 -p1
%patch23897 -p1
%patch23900 -p1
%patch23904 -p1
%patch23905 -p1
%patch23906 -p1
%patch23908 -p1
%patch23925 -p1
%patch23933 -p1
%patch23943 -p1
%patch23949 -p1
%patch23953 -p1
%patch23955 -p1
%patch23957 -p1
%patch23978 -p1
%patch23979 -p1
%patch23980 -p1
%patch23993 -p1
%patch24104 -p1
%patch24105 -p1
%patch24106 -p1
%patch24116 -p1
%patch24123 -p1
%patch24124 -p1
%patch24137 -p1
%patch24138 -p1
%patch24144 -p1
%patch24148 -p1
%patch24153 -p1
%patch24155 -p1
%patch24156 -p1
%patch24157 -p1
%patch24168 -p1
%patch24171 -p1
%patch24178 -p1
%patch24189 -p1
%patch24190 -p1
%patch24193 -p1
%patch24195 -p1
%patch24196 -p1
%patch24197 -p1
%patch24201 -p1
%patch24208 -p1
%patch24209 -p1
%patch24210 -p1
%patch24211 -p1
%patch24212 -p1
%patch24213 -p1
%patch24214 -p1
%patch24215 -p1
%patch24216 -p1
%patch24217 -p1
%patch24218 -p1
%patch24219 -p1
%patch24220 -p1
%patch24221 -p1
%patch24222 -p1
%patch24223 -p1
%patch24224 -p1
%patch24225 -p1
%patch24226 -p1
%patch24227 -p1
%patch24231 -p1
%patch24232 -p1
%patch24261 -p1
%patch24269 -p1
%patch24270 -p1
%patch24272 -p1
%patch24275 -p1
%patch24277 -p1
%patch24278 -p1
%patch24282 -p1
%patch24318 -p1
%patch24344 -p1
%patch24327 -p1
%patch24328 -p1
%patch24329 -p1
%patch24357 -p1
%patch24358 -p1
%patch24359 -p1
%patch24360 -p1
%patch24389 -p1
%patch24391 -p1
%patch24411 -p1
%patch24412 -p1
%patch24417 -p1
%patch24429 -p1
%patch24447 -p1
%patch24448 -p1
%patch24453 -p1
%patch24456 -p1
%patch24459 -p1
%patch24466 -p1
%patch24478 -p1
%patch24517 -p1
%patch24527 -p1
%patch24535 -p1
%patch24566 -p1
%patch24586 -p1
%patch24609 -p1
%patch24610 -p1
%patch24615 -p1
%patch24690 -p1
%patch24701 -p1
%patch24742 -p1
%patch24780 -p1
%patch24781 -p1
%patch24805 -p1
%patch24883 -p1
%patch24886 -p1
%patch24887 -p1
%patch24888 -p1
%patch24950 -p1
%patch24970 -p1
%patch24996 -p1
%patch25041 -p1
%patch25098 -p1
%patch25101 -p1
# Qemu
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
# Our patches
%patch300 -p1
%patch301 -p1
%patch302 -p1
%patch303 -p1
%patch304 -p1
%patch305 -p1
%patch306 -p1
%patch307 -p1
%patch308 -p1
%patch309 -p1
%patch310 -p1
%patch311 -p1
%patch312 -p1
%patch313 -p1
%patch314 -p1
%patch315 -p1
%patch322 -p1
%patch323 -p1
%patch324 -p1
%patch325 -p1
%patch326 -p1
%patch327 -p1
%patch328 -p1
%patch329 -p1
%patch340 -p1
%patch341 -p1
%patch342 -p1
#%patch343 -p1 kexec
%patch344 -p1
%patch345 -p1
%patch346 -p1
%patch347 -p1
%patch348 -p1
%patch350 -p1
%patch351 -p1
%patch352 -p1
%patch353 -p1
%patch354 -p1
%patch355 -p1
%patch356 -p1
%patch357 -p1
%patch358 -p1
%patch359 -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
%patch400 -p1
%patch401 -p1
%patch402 -p1
%patch403 -p1
%patch404 -p1
%patch410 -p1
%patch411 -p1
%patch412 -p1
%patch413 -p1
%patch414 -p1
%patch415 -p1
%patch420 -p1
%patch421 -p1
%patch423 -p1
%patch424 -p1
%patch425 -p1
%patch426 -p1
%patch427 -p1
%patch428 -p1
%patch429 -p1
%patch430 -p1
%patch431 -p1
%patch433 -p1
%patch434 -p1
%patch435 -p1
%patch436 -p1
%patch438 -p1
%patch439 -p1
%patch440 -p1
%patch442 -p1
%patch443 -p1
%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
%patch480 -p1
%patch481 -p1
%patch500 -p1
%patch501 -p1
%patch502 -p1
%patch504 -p1
%patch505 -p1
%patch507 -p1
%patch508 -p1
%patch509 -p1
%patch510 -p1
%patch511 -p1
%patch512 -p1
%patch513 -p1
%patch514 -p1
%patch650 -p1
%patch651 -p1
%patch652 -p1
%patch700 -p1
%patch701 -p1
# FATE 310510
%patch1100 -p1
%patch1101 -p1
%patch1102 -p1
%patch1103 -p1
%patch1104 -p1
%patch1105 -p1
%patch1106 -p1
%patch1107 -p1
%patch1126 -p1
%patch1129 -p1
%patch1130 -p1
%patch1131 -p1
%patch1132 -p1
%patch1134 -p1
%patch1135 -p1
%patch1136 -p1
%patch1137 -p1
%patch1142 -p1
#
%patch99998 -p1
%patch99999 -p1
%build
XEN_EXTRAVERSION=%version-%release
XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}}
sed -i "s/XEN_EXTRAVERSION[\t ]*.=.*\$/XEN_EXTRAVERSION = $XEN_EXTRAVERSION/" xen/Makefile
sed -i "s/XEN_CHANGESET[\t ]*=.*\$/XEN_CHANGESET = %{changeset}/" xen/Makefile
RPM_OPT_FLAGS=${RPM_OPT_FLAGS//-fstack-protector/}
export CFLAGS="${RPM_OPT_FLAGS}"
export RPM_OPT_FLAGS
%if %{?with_dom0_support}0
make -C xenalyze.hg CC="gcc -I../xen/include" %{?_smp_mflags}
make -C tools/include/xen-foreign %{?_smp_mflags}
make tools docs %{?_smp_mflags}
make -C tools/debugger/gdbsx
make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes
%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 CFLAGS="$RPM_OPT_FLAGS"
%if %{?with_dom0_support}0
# EFI
%ifarch x86_64
make -C xen install \
%if %{?with_gcc46}0
CC=gcc-4.6 \
%endif
max_phys_cpus=%{max_cpus} debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT %{?_smp_mflags}
make -C xen clean
%endif
install_xen()
{
local ext=""
if [ -n "$1" ]; then
ext="-$1"
mv $RPM_BUILD_ROOT/boot/xen-%{version}-%{release}.gz \
$RPM_BUILD_ROOT/boot/xen${ext}-%{version}-%{release}.gz
mv $RPM_BUILD_ROOT/boot/xen-syms-%{version}-%{release} \
$RPM_BUILD_ROOT/boot/xen-syms${ext}-%{version}-%{release}
fi
rm $RPM_BUILD_ROOT/boot/xen-%{xvers}.gz
rm $RPM_BUILD_ROOT/boot/xen-%{xvermaj}.gz
rm $RPM_BUILD_ROOT/boot/xen.gz
# Do not link to links; grub cannot follow.
ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}-%{xvers}.gz
ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}-%{xvermaj}.gz
ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}.gz
ln -sf xen-syms${ext}-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms${ext}
}
make -C xen install max_phys_cpus=%{max_cpus} pae=%{pae_enabled} debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT %{?_smp_mflags}
install_xen dbg
make -C xen clean
make -C xen install max_phys_cpus=%{max_cpus} pae=%{pae_enabled} debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT %{?_smp_mflags}
install_xen
make -C xen clean
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}
make -C tools/misc/serial-split install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} %{?_smp_mflags}
%ifarch x86_64
mkdir -p $RPM_BUILD_ROOT/${_libdir}/xen/bin/
ln -s /usr/lib/xen/bin/qemu-dm $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm
%endif
# efi depends on gcc46
echo > xen.files.txt
if test -d $RPM_BUILD_ROOT%{_libdir}/efi
then
echo %{_libdir}/efi >> xen.files.txt
fi
cp -avL xenalyze.hg/dump-raw $RPM_BUILD_ROOT/%{_bindir}/xenalyze.dump-raw
cp -avL xenalyze.hg/xenalyze $RPM_BUILD_ROOT/%{_bindir}
%else
make -C tools install DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} %{?_smp_mflags}
make -C tools/misc/serial-split 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
install -m644 %SOURCE20 $RPM_BUILD_ROOT/etc/modprobe.d/xen_pvdrivers-$flavor.conf
done
%endif
%if %{?with_dom0_support}0
# Stubdom
%if %{?with_stubdom}0
make stubdom
make -C stubdom install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \
DOCDIR=%{_defaultdocdir}/xen INCDIR=%{_includedir}
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/xen
%ifarch x86_64
ln -s /usr/lib/xen/bin/stubdom-dm $RPM_BUILD_ROOT/usr/lib64/xen/bin/stubdom-dm
ln -s /usr/lib/xen/bin/stubdompath.sh $RPM_BUILD_ROOT/usr/lib64/xen/bin/stubdompath.sh
%endif
%endif
# Docs
make -C docs install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \
DOCDIR=%{_defaultdocdir}/xen
for name in COPYING %SOURCE3 %SOURCE4 %SOURCE5; do
install -m 644 $name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/
done
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/misc
for name in vtpm.txt crashdb.txt sedf_scheduler_mini-HOWTO.txt xenpaging.txt; do
install -m 644 docs/misc/$name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/misc/
done
%endif
# init scripts
%if %{?with_dom0_support}0
mkdir -p $RPM_BUILD_ROOT/etc/init.d
install %SOURCE6 $RPM_BUILD_ROOT/etc/init.d/xend
ln -s /etc/init.d/xend $RPM_BUILD_ROOT/usr/sbin/rcxend
install %SOURCE7 $RPM_BUILD_ROOT/etc/init.d/xendomains
ln -s /etc/init.d/xendomains $RPM_BUILD_ROOT/usr/sbin/rcxendomains
install %SOURCE27 $RPM_BUILD_ROOT/etc/init.d/pciback
ln -s /etc/init.d/pciback $RPM_BUILD_ROOT/usr/sbin/rcpciback
install %SOURCE28 $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.pciback
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
install -m644 %SOURCE19 $RPM_BUILD_ROOT/etc/modprobe.d/xen_loop.conf
# example config
mkdir -p $RPM_BUILD_ROOT/etc/xen/{vm,examples,scripts}
mv $RPM_BUILD_ROOT/etc/xen/xmexample* $RPM_BUILD_ROOT/etc/xen/examples
rm -f $RPM_BUILD_ROOT/etc/xen/examples/*nbd
install -m644 %SOURCE10 %SOURCE11 $RPM_BUILD_ROOT/etc/xen/examples/
install -m644 tools/xentrace/formats $RPM_BUILD_ROOT/etc/xen/examples/xentrace_formats.txt
# scripts
rm -f $RPM_BUILD_ROOT/etc/xen/scripts/block-*nbd
install -m755 %SOURCE12 %SOURCE13 %SOURCE14 %SOURCE15 %SOURCE16 %SOURCE17 %SOURCE18 %SOURCE22 $RPM_BUILD_ROOT/etc/xen/scripts/
ln -s /etc/xen/scripts/vm-monitor $RPM_BUILD_ROOT/etc/xen/scripts/set-lock
# Xen API remote authentication files
install -d $RPM_BUILD_ROOT/etc/pam.d
install -m644 %SOURCE23 $RPM_BUILD_ROOT/etc/pam.d/xen-api
install -m644 %SOURCE24 $RPM_BUILD_ROOT/etc/xen/
# sysconfig hook for Xen
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/network/scripts
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/network/if-up.d
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/network/if-down.d
install -m755 %SOURCE25 $RPM_BUILD_ROOT/etc/sysconfig/network/scripts
ln -s /etc/sysconfig/network/scripts/xen-updown.sh $RPM_BUILD_ROOT/etc/sysconfig/network/if-up.d/xen
ln -s /etc/sysconfig/network/scripts/xen-updown.sh $RPM_BUILD_ROOT/etc/sysconfig/network/if-down.d/xen
# logrotate
install -m644 -D %SOURCE8 $RPM_BUILD_ROOT/etc/logrotate.d/xen
# directories
mkdir -p $RPM_BUILD_ROOT/var/lib/xenstored
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/images
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/jobs
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/save
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/dump
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/domain
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/migrate
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/vnet
mkdir -p $RPM_BUILD_ROOT/var/log/xen
mkdir -p $RPM_BUILD_ROOT/var/log/xen/console
ln -s /var/lib/xen/images $RPM_BUILD_ROOT/etc/xen/images
# Bootloader
install -m755 %SOURCE9 $RPM_BUILD_ROOT/usr/lib/xen/boot/
# udev support
mkdir -p $RPM_BUILD_ROOT/etc/udev/rules.d
mv $RPM_BUILD_ROOT/etc/udev/rules.d/xen-backend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xen.rules
mv $RPM_BUILD_ROOT/etc/udev/rules.d/xend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xend.rules
# xen utils
make -C tools/xen-utils-0.1 install DESTDIR=$RPM_BUILD_ROOT XEN_INTREE_BUILD=yes
# Clean up unpackaged files
rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/xen/qemu/
rm -f $RPM_BUILD_ROOT/%{_datadir}/doc/qemu/qemu-*
rm -rf $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/ps
rm -rf $RPM_BUILD_ROOT/usr/share/xen/man/man1/qemu/qemu*
rm -f $RPM_BUILD_ROOT/usr/share/xen/qemu/openbios-sparc32
rm -f $RPM_BUILD_ROOT/usr/share/xen/qemu/openbios-sparc64
rm -f $RPM_BUILD_ROOT/usr/share/xen/qemu/openbios-ppc
rm -f $RPM_BUILD_ROOT/usr/sbin/netfix
rm -f $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/*.egg-info
rm -rf $RPM_BUILD_ROOT/html
rm -rf $RPM_BUILD_ROOT/usr/share/doc/xen/README.*
rm -f $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm.debug
rm -f $RPM_BUILD_ROOT/%{_bindir}/qemu-img-xen
rm -f $RPM_BUILD_ROOT/%{_bindir}/qemu-nbd-xen
rm -rf $RPM_BUILD_ROOT/%{_libdir}/debug
#install firewall definitions format is described here:
#/usr/share/SuSEfirewall2/services/TEMPLATE
mkdir -p $RPM_BUILD_ROOT/%{_fwdefdir}
install -m 644 %{S:26} $RPM_BUILD_ROOT/%{_fwdefdir}/xend-relocation-server
%else
# 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/%{_datadir}/xen
rm -rf $RPM_BUILD_ROOT/%{_datadir}/locale
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/bash_completion.d
rm -rf $RPM_BUILD_ROOT/etc/init.d
rm -rf $RPM_BUILD_ROOT/etc/logrotate.d
rm -rf $RPM_BUILD_ROOT/etc/pam.d
rm -rf $RPM_BUILD_ROOT/etc/sysconfig
rm -rf $RPM_BUILD_ROOT/etc/udev
rm -rf $RPM_BUILD_ROOT/etc/xen
rm -rf $RPM_BUILD_ROOT/var
rm -f $RPM_BUILD_ROOT/%{_bindir}/*store*
rm -f $RPM_BUILD_ROOT/%{_bindir}/*trace*
rm -f $RPM_BUILD_ROOT/%{_bindir}/xenalyze*
rm -f $RPM_BUILD_ROOT/%{_bindir}/qemu*
rm -f $RPM_BUILD_ROOT/%{_bindir}/pygrub
rm -f $RPM_BUILD_ROOT/%{_bindir}/remus
rm -f $RPM_BUILD_ROOT/%{_bindir}/tapdisk-ioemu
rm -f $RPM_BUILD_ROOT/%{_bindir}/xencons
%endif
%if %{?with_dom0_support}0
%files -f xen.files.txt
%defattr(-,root,root)
/boot/xen-%{version}-%{release}.gz
/boot/xen-%{xvermaj}.gz
/boot/xen-%{xvers}.gz
/boot/xen-dbg-%{version}-%{release}.gz
/boot/xen-dbg-%{xvermaj}.gz
/boot/xen-dbg-%{xvers}.gz
/boot/xen-dbg.gz
/boot/xen-syms
/boot/xen-syms-%{version}-%{release}
/boot/xen-syms-dbg
/boot/xen-syms-dbg-%{version}-%{release}
/boot/xen.gz
%endif
%files libs
%defattr(-,root,root)
%{_libdir}/fs/
%{_libdir}/*.so.*
%if %{?with_dom0_support}0
%files tools
%defattr(-,root,root)
/usr/bin/xenalyze
/usr/bin/xenalyze.dump-raw
/usr/bin/xencons
/usr/bin/xenstore*
/usr/bin/xentrace*
/usr/bin/pygrub
/usr/bin/tapdisk-ioemu
/usr/bin/remus
/usr/sbin/blktapctrl
/usr/sbin/flask-loadpolicy
/usr/sbin/flask-getenforce
/usr/sbin/flask-setenforce
/usr/sbin/rcxend
/usr/sbin/rcxendomains
/usr/sbin/rcpciback
/usr/sbin/tapdisk
/usr/sbin/xen*
/usr/sbin/xm
/usr/sbin/xsview
/usr/sbin/gtracestat
/usr/sbin/gtraceview
/usr/sbin/lock-util
/usr/sbin/tapdisk-client
/usr/sbin/tapdisk-diff
/usr/sbin/tapdisk-stream
/usr/sbin/tapdisk2
/usr/sbin/td-util
/usr/sbin/vhd-update
/usr/sbin/vhd-util
/usr/sbin/gdbsx
/usr/sbin/xl
/usr/sbin/kdd
/usr/sbin/tap-ctl
%{_libdir}/xen
%ifarch x86_64
/usr/lib/xen
%endif
%{_mandir}/man1/*.1.gz
%{_mandir}/man5/*.5.gz
%{_mandir}/man8/*.8.gz
/var/adm/fillup-templates/*
%dir /var/lib/xen
%dir %attr(700,root,root) /var/lib/xen/images
%dir %attr(700,root,root) /var/lib/xen/save
%dir %attr(700,root,root) /var/lib/xen/dump
%dir %attr(700,root,root) /var/lib/xen/xenpaging
%dir /var/lib/xen/xend-db
%dir /var/lib/xen/xend-db/domain
%dir /var/lib/xen/xend-db/migrate
%dir /var/lib/xen/xend-db/vnet
%dir /var/lib/xenstored
%dir /var/log/xen
%dir /var/log/xen/console
%config /etc/init.d/*
%config /etc/logrotate.d/xen
%dir %attr(700,root,root) /etc/xen
/etc/xen/auto
%config /etc/xen/examples
/etc/xen/images
/etc/xen/scripts
%config /etc/xen/cpupool
/etc/xen/README*
%config /etc/xen/vm
%config(noreplace) /etc/xen/*.sxp
%config(noreplace) /etc/xen/*.xml
%config(noreplace) /etc/xen/xenapiusers
%config(noreplace) /etc/xen/xl.conf
%config /etc/pam.d/xen-api
%config /etc/modprobe.d/xen_loop.conf
%dir /etc/modprobe.d
%dir /etc/udev
%dir /etc/udev/rules.d
/etc/udev/rules.d/40-xen.rules
/etc/udev/rules.d/40-xend.rules
/etc/sysconfig/network/scripts/xen-updown.sh
/etc/sysconfig/network/if-up.d/xen
/etc/sysconfig/network/if-down.d/xen
/etc/bash_completion.d/xl.sh
%dir %{_defaultdocdir}/xen
%{_defaultdocdir}/xen/COPYING
%{_defaultdocdir}/xen/README.SuSE
%{_defaultdocdir}/xen/boot.local.xenU
%{_defaultdocdir}/xen/boot.xen
%{_defaultdocdir}/xen/misc
%dir %{_libdir}/python%{pyver}/site-packages/xen
%dir %{_libdir}/python%{pyver}/site-packages/grub
%dir %{_datadir}/xen
%dir %{_datadir}/xen/man
%dir %{_datadir}/xen/man/man1
%dir %{_datadir}/xen/man/man8
%dir %{_datadir}/xen/qemu
%{_datadir}/xen/*.dtd
%{_datadir}/xen/qemu/*
%{_datadir}/xen/man/man1/*
%{_datadir}/xen/man/man8/*
%{_libdir}/python%{pyver}/site-packages/xen/*
%{_libdir}/python%{pyver}/site-packages/grub/*
%{_libdir}/python%{pyver}/site-packages/fsimage.so
%config %{_fwdefdir}/xend-relocation-server
%endif
%files tools-domU
%defattr(-,root,root)
/usr/bin/xen-detect
/bin/domu-xenstore
/bin/xenstore-*
%files devel
%defattr(-,root,root)
%{_bindir}/serial-split
%{_libdir}/*.a
%{_libdir}/*.so
/usr/include/*
%if %{?with_dom0_support}0
%files doc-html
%defattr(-,root,root)
%{_defaultdocdir}/xen/html
%files doc-pdf
%defattr(-,root,root)
%{_defaultdocdir}/xen/pdf
%endif
%if %{?with_dom0_support}0
%post tools
%if %{?with_xend}0
# with_xend
# 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}
%else
# without_xend
# disable xm (xend based) and enable only 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."
fi
echo "postin %{name}-tools: disabling xend in favor of xencommons. xm command replaced by xl."
%{stop_on_removal xend}
rm -fv /etc/init.d/rc?.d/???xend || :
%{fillup_and_insserv -Y -n xencommons xencommons}
else
%{fillup_and_insserv -y -n xencommons xencommons}
fi
%endif
#
%{fillup_and_insserv -y -n xendomains xendomains}
%{fillup_only -n pciback}
if [ -f /usr/bin/qemu-img ]; then
if [ -f /usr/bin/qemu-img-xen ]; then
rm /usr/bin/qemu-img-xen
fi
ln -s /usr/bin/qemu-img /usr/bin/qemu-img-xen
fi
if [ -f /usr/bin/qemu-nbd ]; then
if [ -f /usr/bin/qemu-nbd-xen ]; then
rm /usr/bin/qemu-nbd-xen
fi
ln -s /usr/bin/qemu-nbd /usr/bin/qemu-nbd-xen
fi
%preun tools
%{stop_on_removal xendomains xend xencommons}
%postun tools
%if %{?with_xend}0
# with_xend
%{restart_on_update xend}
%endif
%{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
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%changelog