Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP1:Update
xen
xen.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xen.spec of Package xen
# # spec file for package xen # # Copyright (c) 2024 SUSE LLC # # 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 https://bugs.opensuse.org/ # # needssslcertforbuild #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir /var/adm/fillup-templates %endif Name: xen ExclusiveArch: %ix86 x86_64 aarch64 %define changeset 38667 %define xen_build_dir xen-4.12.4-testing # %define with_gdbsx 0 %define with_dom0_support 0 %bcond_with xen_oxenstored %ifarch x86_64 %bcond_without xen_debug %bcond_without xen_stubdom %else %bcond_with xen_debug %bcond_with xen_stubdom %endif # %ifarch x86_64 %define with_gdbsx 1 %define with_dom0_support 1 %endif # %ifarch %arm aarch64 %define with_dom0_support 1 %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 # gcc48 is available in sles11sp4 # 12.2+ have gcc 4.7 as default compiler %define with_gcc47 0 %define with_gcc48 0 %define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services %systemd_requires BuildRequires: systemd-devel %define with_systemd_modules_load %{_prefix}/lib/modules-load.d PreReq: %fillup_prereq %ifarch %arm aarch64 %if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120200 ) BuildRequires: libfdt-devel %else BuildRequires: libfdt1-devel %endif %endif BuildRequires: autoconf >= 2.67 BuildRequires: bison BuildRequires: fdupes %if 0%{?suse_version} > 1315 BuildRequires: figlet %endif BuildRequires: flex BuildRequires: glib2-devel BuildRequires: libaio-devel BuildRequires: libbz2-devel BuildRequires: libnl3-devel BuildRequires: libpixman-1-0-devel BuildRequires: libuuid-devel BuildRequires: libxml2-devel BuildRequires: libyajl-devel %if %{with xen_stubdom} %if 0%{?suse_version} < 1230 BuildRequires: texinfo %else BuildRequires: makeinfo %endif %endif BuildRequires: ncurses-devel %if %{?with_dom0_support}0 %if %{with xen_oxenstored} BuildRequires: ocaml BuildRequires: ocaml-compiler-libs BuildRequires: ocaml-findlib BuildRequires: ocaml-ocamldoc BuildRequires: ocaml-runtime %endif %endif BuildRequires: acpica BuildRequires: openssl-devel BuildRequires: python3-devel BuildRequires: systemd BuildRequires: xz-devel %ifarch x86_64 BuildRequires: gcc-32bit BuildRequires: gcc-c++ %if %{?with_gcc47}0 BuildRequires: gcc47 %endif %if %{?with_gcc48}0 BuildRequires: gcc48 %endif BuildRequires: glibc-32bit BuildRequires: glibc-devel-32bit BuildRequires: makeinfo %endif %ifarch x86_64 BuildRequires: pesign-obs-integration %endif Version: 4.12.4_44 Release: 0 Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) License: GPL-2.0-only Group: System/Kernel Source0: xen-4.12.4-testing-src.tar.bz2 Source1: stubdom.tar.bz2 Source5: ipxe.tar.bz2 Source6: mini-os.tar.bz2 Source9: xen.changes Source10: README.SUSE Source11: boot.xen Source12: boot.local.xenU Source13: xen-supportconfig Source15: logrotate.conf Source21: block-npiv-common.sh Source22: block-npiv Source23: block-npiv-vport Source26: init.xen_loop Source29: block-dmmd # Xen API remote authentication sources Source30: etc_pam.d_xen-api Source31: xenapiusers # 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: xen-dom0-modules.service Source57: xen-utils-0.1.tar.bz2 # For xen-libs Source99: baselibs.conf # Upstream patches Patch1: 5d53ed45-pygrub-Failing-to-set-value-to-0-in-Grub2ConfigFile.patch Patch2: 5db1be79-libxl-Offer-API-versions-0x040700-and-0x040800.patch Patch3: 5e5001ee-x86-p2m-PoD-accounting-in-gpae.patch Patch4: 5e86fa2a-x86-p2m_remove_page-retval.patch Patch5: 5e86fa57-x86-p2m-remove-MFN-check.patch Patch6: 5faa974f-evtchn-rework-per-channel-lock.patch Patch7: 5faa978b-evtchn-revert-52e1fc47abc3a0123.patch Patch35101: xsa351-1.patch Patch35102: xsa351-2.patch Patch8: 5faac497-xen-arm-Always-trap-AMU-system-registers.patch Patch9: 5fbcdf2e-evtchn-FIFO-access-last.patch Patch10: 5fbcdf99-x86-DMI-fix-SMBIOS-pointer-check.patch Patch11: 5fbd042b-memory-off-by-one-in-XSA-346.patch Patch12: 5fc4ee23-evtchn-FIFO-queue-locking.patch Patch13: 5fca3b32-tools-libs-ctrl-fix-dumping-of-ballooned-guest.patch Patch14: 5fd8aef3-x86-avoid-calling-do_resume.patch Patch15: 5fd8af4b-evtchn-FIFO-add-2nd-smp_rmb.patch Patch16: 5fd8b02d-evtchn-FIFO-reorder-and-synchronize.patch Patch17: 5ff458f2-x86-vPCI-tolerate-disabled-MSI-X-entry.patch Patch18: 5ff71655-x86-dpci-EOI-regardless-of-masking.patch Patch19: 5ffc58c4-ACPI-reduce-verbosity-by-default.patch Patch20: 5ffc58e8-x86-ACPI-dont-overwrite-FADT.patch Patch21: 600999ad-x86-dpci-do-not-remove-pirqs-from.patch Patch22: 600ab341-x86-vioapic-EOI-check-IRR-before-inject.patch Patch23: 6011bbc7-x86-timer-fix-boot-without-PIT.patch Patch24: 6013e4bd-memory-bail-from-page-scrub-when-CPU-offline.patch Patch25: 601d4396-x86-EFI-suppress-ld-2-36-debug-info.patch Patch26: 602bd768-page_alloc-only-flush-after-scrubbing.patch Patch27: 602e5a8c-gnttab-never-permit-mapping-transitive-grants.patch Patch28: 602e5abb-gnttab-bypass-IOMMU-when-mapping-own-grant.patch Patch29: 6037b02e-x86-EFI-suppress-ld-2-36-base-relocs.patch Patch30: 60410127-gcc11-adjust-rijndaelEncrypt.patch Patch31: 60422428-x86-shadow-avoid-fast-fault-path.patch Patch32: 604b9070-VT-d-disable-QI-IR-before-init.patch Patch33: 60631c38-VT-d-QI-restore-flush-hooks.patch Patch34: 60787714-x86-HPET-factor-legacy-replacement-mode-enabling.patch Patch35: 60787714-x86-HPET-avoid-legacy-replacement-mode.patch Patch36: 608676f2-VT-d-register-based-invalidation-optional.patch Patch37: 60afe616-x86-CPUID-rework-HLE-and-RTM-handling.patch Patch38: 60ba695e-tools-libs-ctrl-fix-xc_core_arch_map_p2m-to-support.patch Patch39: 60be0e24-credit2-pick-runnable-unit.patch Patch40: 60be0e42-credit2-per-entity-load-tracking-when-continuing.patch Patch41: 60be3097-x86-CPUID-fix-HLE-and-RTM-handling-again.patch Patch42: 60bf9e19-Arm-create-dom0less-domUs-earlier.patch Patch43: 60bf9e1a-Arm-boot-modules-scrubbing.patch Patch44: 5e15e174-libxl-dont-needlessly-report-highmem-in-use.patch Patch45: 60bf9e1b-VT-d-size-qinval-queue-dynamically.patch Patch46: 60bf9e1c-AMD-IOMMU-size-command-buffer-dynamically.patch Patch47: 60bf9e1d-VT-d-eliminate-flush-related-timeouts.patch Patch48: 60bf9e1e-x86-spec-ctrl-protect-against-SCSB.patch Patch49: 60bf9e1f-x86-spec-ctrl-mitigate-TAA-after-S3.patch Patch50: 60bfa904-AMD-IOMMU-wait-for-command-slot.patch Patch51: 60bfa906-AMD-IOMMU-drop-command-completion-timeout.patch Patch52: 60d49689-VT-d-undo-device-mappings-upon-error.patch Patch53: 60d496b9-VT-d-adjust-domid-map-updating-on-unmap.patch Patch54: 60d496d6-VT-d-clear_fault_bits-should-clear-all.patch Patch55: 60d496ee-VT-d-dont-lose-errors-on-multi-IOMMU-flush.patch Patch56: 60d5c6df-IOMMU-PCI-dont-let-domain-cleanup-continue.patch Patch57: 61122ac6-credit2-avoid-spuriously-picking-idle.patch Patch58: 611cba4e-VT-d-Tylersburg-errata-more-steppings.patch Patch59: 611f844b-AMD-IOMMU-dont-leave-pt-mapped.patch Patch60: 6126339d-AMD-IOMMU-global-ER-extending.patch Patch61: 6126344f-AMD-IOMMU-unity-map-handling.patch Patch62: 61263464-IOMMU-pass-access-to-p2m_get_iommu_flags.patch Patch63: 6126347d-IOMMU-generalize-VT-d-mapped-RMRR-tracking.patch Patch64: 6126349a-AMD-IOMMU-rearrange-reassignment.patch Patch65: 612634ae-AMD-IOMMU-rearrange-ER-UM-recording.patch Patch66: 612634c3-x86-p2m-introduce-p2m_is_special.patch Patch67: 612634dc-x86-p2m-guard-identity-mappings.patch Patch68: 612634f4-x86-mm-widen-locked-region-in-xatp1.patch Patch69: 6126350a-gnttab-release-mappings-preemption.patch Patch70: 6126351f-gnttab-replace-mapkind.patch Patch71: 6126353d-gnttab-get-status-frames-array-capacity.patch Patch72: 61263553-Arm-restrict-maxmem-for-dom0less.patch Patch73: 6128a856-gnttab-radix-tree-node-init.patch Patch74: 61375a11-x86-p2m_flags_to_access.patch Patch75: 6138ae99-gnttab-status-frame-mapping-race.patch Patch76: 6138b7a1-x86-spec-ctrl-split-diagnostics-line.patch Patch77: 6138b7a2-x86-AMD-enum-speculative-hints.patch Patch78: 6138b7a3-x86-AMD-use-newer-SSBD.patch Patch79: 6139f1b1-x86-spec-ctrl-print-AMD-features.patch Patch80: 6148453b-VT-d-hidden-devices-unmap.patch Patch81: 6148455f-VT-d-PCI-segment-numbers-16-bits.patch Patch82: 61532102-PCI-bridge-with-subord-bus-0xFF.patch Patch83: 615c9fd0-VT-d-fix-deassign-of-device-with-RMRR.patch Patch84: 61655b5a-AMD-IOMMU-hidden-devices-flush.patch Patch85: 619b7ac9-harden-assign_pages.patch Patch86: 619b8cb0-x86-PoD-misaligned-GFNs.patch Patch87: 619b8cb1-x86-PoD-intermediate-page-orders.patch Patch88: 619b8cb2-x86-P2M-set-partial-success.patch Patch89: 61bc429f-revert-hvmloader-PA-range-should-be-UC.patch Patch90: 61d5687a-x86-spec-ctrl-opt_srb_lock-default.patch Patch37601: xsa376.patch Patch37001: xsa370.patch Patch39301: xsa393.patch Patch39401: xsa394.patch Patch39501: xsa395.patch Patch39801: xsa398-1.patch Patch39802: xsa398-2.patch Patch39803: xsa398-3.patch Patch39804: xsa398-4.patch Patch39805: xsa398-5.patch Patch39806: xsa398-6.patch Patch39701: xsa397.patch Patch39901: xsa399.patch Patch40000: xsa400-00.patch Patch40001: xsa400-01.patch Patch40002: xsa400-02.patch Patch40003: xsa400-03.patch Patch40004: xsa400-04.patch Patch40005: xsa400-05.patch Patch40006: xsa400-06.patch Patch40007: xsa400-07.patch Patch40008: xsa400-08.patch Patch40009: xsa400-09.patch Patch40010: xsa400-10.patch Patch40011: xsa400-11.patch Patch40012: 624ebcef-VT-d-dont-needlessly-look-up-DID.patch Patch40013: 624ebd3b-VT-d-avoid-NULL-deref-on-dcmo-error-paths.patch Patch40014: 624ebd74-VT-d-avoid-infinite-recursion-on-dcmo-error-path.patch Patch40101: xsa401-1.patch Patch40102: xsa401-2.patch Patch40200: xsa402-0.patch Patch40201: xsa402-1.patch Patch40202: xsa402-2.patch Patch40203: xsa402-3.patch Patch40204: xsa402-4.patch Patch40205: xsa402-5.patch Patch40301: xsa403.patch Patch40401: xsa404-1.patch Patch40402: xsa404-2.patch Patch40403: xsa404-3.patch Patch40701: xsa407-0a.patch Patch40702: xsa407-0b.patch Patch40703: xsa407-0c.patch Patch40704: xsa407-0d.patch Patch40705: xsa407-0e.patch Patch40706: xsa407-0f.patch Patch40707: xsa407-0g.patch Patch40708: xsa407-0h.patch Patch40709: xsa407-0i.patch Patch40711: xsa407-1.patch Patch40712: xsa407-2.patch Patch40713: xsa407-3.patch Patch40714: xsa407-4.patch Patch40715: xsa407-5.patch Patch40716: xsa407-6.patch Patch40717: xsa407-7.patch Patch40718: xsa407-8.patch Patch40801: xsa408.patch Patch41003: xsa410-03.patch Patch41004: xsa410-04.patch Patch41005: xsa410-05.patch Patch41006: xsa410-06.patch Patch41007: xsa410-07.patch Patch41008: xsa410-08.patch Patch41009: xsa410-09.patch Patch41010: xsa410-10.patch Patch41101: xsa411.patch Patch91: 63569723-x86-shadow-replace-bogus-assertions.patch Patch42201: xsa422-01.patch Patch42202: xsa422-02.patch Patch42701: xsa427.patch Patch42801: xsa428-1.patch Patch42802: xsa428-2.patch Patch42901: xsa429.patch Patch43301: xsa433.patch Patch435001: xsa435-0-01.patch Patch435002: xsa435-0-02.patch Patch435003: xsa435-0-03.patch Patch435004: xsa435-0-04.patch Patch435005: xsa435-0-05.patch Patch435006: xsa435-0-06.patch Patch435007: xsa435-0-07.patch Patch435008: xsa435-0-08.patch Patch435009: xsa435-0-09.patch Patch435010: xsa435-0-10.patch Patch435011: xsa435-0-11.patch Patch435012: xsa435-0-12.patch Patch435013: xsa435-0-13.patch Patch435014: xsa435-0-14.patch Patch435015: xsa435-0-15.patch Patch435016: xsa435-0-16.patch Patch435017: xsa435-0-17.patch Patch435018: xsa435-0-18.patch Patch435019: xsa435-0-19.patch Patch435020: xsa435-0-20.patch Patch435021: xsa435-0-21.patch Patch435022: xsa435-0-22.patch Patch435023: xsa435-0-23.patch Patch435024: xsa435-0-24.patch Patch435025: xsa435-0-25.patch Patch435026: xsa435-0-26.patch Patch435027: xsa435-0-27.patch Patch435028: xsa435-0-28.patch Patch435029: xsa435-0-29.patch Patch435030: xsa435-0-30.patch Patch435031: xsa435-0-31.patch Patch435032: xsa435-0-32.patch Patch435033: xsa435-0-33.patch Patch435034: xsa435-0-34.patch Patch435035: xsa435-0-35.patch Patch435036: xsa435-0-36.patch Patch435037: xsa435-0-37.patch Patch435038: xsa435-0-38.patch Patch435039: xsa435-0-39.patch Patch435040: xsa435-0-40.patch Patch435041: xsa435-0-41.patch Patch435042: xsa435-0-42.patch Patch435043: xsa435-0-43.patch Patch435044: xsa435-0-44.patch Patch435045: xsa435-0-45.patch Patch435046: xsa435-0-46.patch Patch435047: xsa435-0-47.patch Patch435048: xsa435-0-48.patch Patch435049: xsa435-0-49.patch Patch435050: xsa435-0-50.patch Patch435051: xsa435-0-51.patch Patch435052: xsa435-0-52.patch Patch435053: xsa435-0-53.patch Patch435054: xsa435-0-54.patch Patch43401: xsa434-1.patch Patch43402: xsa434-2.patch Patch43403: xsa434-3.patch Patch43501: xsa435-1.patch Patch43502: xsa435-2.patch Patch43503: xsa435-3.patch Patch43601: 64e5b4ac-x86-AMD-extend-Zenbleed-check.patch Patch43801: xsa438.patch Patch43901: xsa439-1.patch Patch43902: xsa439-2.patch Patch43903: xsa439-3.patch Patch43904: xsa439-4.patch Patch43905: xsa439-5.patch Patch43906: xsa439-6.patch Patch43907: xsa439-7.patch Patch43908: xsa439-8.patch Patch43909: xsa439-9.patch Patch44201: xsa442.patch Patch44300: 5dd32212-libxl-Introduce-libxl__ev_child_kill_deregister.patch Patch44301: xsa443-01.patch Patch44302: xsa443-02.patch Patch44303: xsa443-03.patch Patch44304: xsa443-04.patch Patch44305: xsa443-05.patch Patch44306: xsa443-06.patch Patch44307: xsa443-07.patch Patch44308: xsa443-08.patch Patch44309: xsa443-09.patch Patch44310: xsa443-10.patch Patch44311: xsa443-11.patch Patch44401: xsa444-1.patch Patch44402: xsa444-2.patch Patch44501: xsa445.patch Patch44601: xsa446.patch Patch44901: xsa449.patch Patch92: credit2-vCPUs-pause_flags-must-be-accessed-atomically.patch Patch36801: xsa368.patch # Xenstored Patch11501: xsa115-1.patch Patch11502: xsa115-2.patch Patch11503: xsa115-3.patch Patch11504: xsa115-4.patch Patch11505: xsa115-5.patch Patch11506: xsa115-6.patch Patch11507: xsa115-7.patch Patch11508: xsa115-8.patch Patch11509: xsa115-9.patch Patch11510: xsa115-10.patch Patch32201: xsa322.patch Patch32401: xsa324.patch Patch32501: xsa325.patch Patch41401: xsa414.patch Patch41501: xsa415.patch Patch32601: xsa326-01.patch Patch32602: xsa326-02.patch Patch32603: xsa326-03.patch Patch32604: xsa326-04.patch Patch32605: xsa326-05.patch Patch32606: xsa326-06.patch Patch32607: xsa326-07.patch Patch32608: xsa326-08.patch Patch32609: xsa326-09.patch Patch32610: xsa326-10.patch Patch32611: xsa326-11.patch Patch32612: xsa326-12.patch Patch32613: xsa326-13.patch Patch32614: xsa326-14.patch Patch32615: xsa326-15.patch Patch32616: xsa326-16.patch Patch41601: xsa416.patch Patch41701: xsa417.patch Patch41801: xsa418-01.patch Patch41802: xsa418-02.patch Patch41803: xsa418-03.patch Patch41804: xsa418-04.patch Patch41805: xsa418-05.patch Patch41806: xsa418-06.patch Patch41901: xsa419-01.patch Patch41902: xsa419-02.patch Patch41903: xsa419-03.patch Patch42101: xsa421-01.patch Patch42102: xsa421-02.patch Patch41702: 64ba268b-xenstore-fix-XSA-417.patch Patch44001: xsa440.patch # AMD x2APIC Patch301: 5ca7660f-x86-entry-drop-unused-includes.patch Patch302: 5cf8da09-adjust-sysdom-creation-call-earlier-on-x86.patch Patch303: 5cab2a6b-x86-ACPI-also-parse-AMD-tables-early.patch Patch304: 5cab2ab7-x86-IOMMU-introduce-init-ops.patch Patch305: 5cab2ae8-x86-IOMMU-abstract-iommu_supports_eim.patch Patch306: 5cab2b4e-x86-IOMMU-abstract-iommu_enable_x2apic_IR.patch Patch307: 5cab2b95-x86-IOMMU-initialize-iommu_ops-in.patch Patch308: 5cac9a4b-x86-IOMMU-abstract-adjust_vtd_irq_affinities.patch Patch309: 5cdeac7f-AMD-IOMMU-adjust-IOMMU-list-head-init.patch Patch310: 5d0cf4e4-AMD-IOMMU-initialize-IRQ-tasklet-once.patch Patch311: 5d149bb0-AMD-IOMMU-dont-add-IOMMUs.patch Patch312: 5d1b3fab-AMD-IOMMU-restrict-feature-logging.patch Patch313: 5d358508-x86-IRQ-desc-affinity-represents-request.patch Patch314: 5d358534-x86-IRQ-consolidate-arch-cpu_mask-use.patch Patch315: 5d358a67-AMD-IOMMU-pass-IOMMU-to-iterate_ivrs_entries-cb.patch Patch316: 5d358a92-AMD-IOMMU-pass-IOMMU-to-amd_iommu_alloc_intremap_table.patch Patch317: 5d39811c-x86-IOMMU-dont-restrict-IRQ-affinities.patch Patch318: 5d417813-AMD-IOMMU-bitfield-extended-features.patch Patch319: 5d417838-AMD-IOMMU-bitfield-control-reg.patch Patch320: 5d41785b-AMD-IOMMU-bitfield-IRTE.patch Patch321: 5d41787e-AMD-IOMMU-pass-IOMMU-to-gfu-intremap-entry.patch Patch322: 5d4178ad-AMD-IOMMU-128bit-non-guest-APIC-IRTE.patch Patch323: 5d4178fc-AMD-IOMMU-split-amd_iommu_init_one.patch Patch324: 5d41793f-AMD-IOMMU-allow-enabling-without-IRQ.patch Patch325: 5d417a16-AMD-IOMMU-adjust-IRQ-setup-for-x2APIC.patch Patch326: 5d417ab6-AMD-IOMMU-enable-x2APIC-mode.patch Patch327: 5d417b38-AMD-IOMMU-correct-IRTE-updating.patch Patch328: 5d417b6a-AMD-IOMMU-dont-needlessly-log-headers.patch Patch329: 5d4a9d25-AMD-IOMMU-drop-not-found-message.patch Patch330: 5d80e7c0-AMD-IOMMU-free-shared-IRT-once.patch Patch331: 5d80e80d-AMD-IOMMU-valid-flag-for-IVRS-mappings.patch Patch332: 5d80e82e-AMD-IOMMU-alloc_intremap_table-callers-handle-errors.patch Patch333: 5d80e857-x86-PCI-read-MSI-X-table-entry-count-early.patch Patch334: 5d8b72e5-AMD-IOMMU-dont-blindly-alloc-intremap-tables.patch Patch335: 5d8b730e-AMD-IOMMU-phantom-funcs-share-intremap-tables.patch Patch336: 5d8b733b-x86-PCI-read-max-MSI-vector-count-early.patch Patch337: 5d8b736d-AMD-IOMMU-replace-INTREMAP_ENTRIES.patch Patch338: 5d8b7393-AMD-IOMMU-restrict-intremap-table-sizes.patch Patch339: 5d9ee2a8-AMD-IOMMU-alloc-1-devtab-per-PCI-seg.patch Patch340: 5d9ee2f0-AMD-IOMMU-allocate_buffer-avoid-memset.patch Patch341: 5d9ee312-AMD-IOMMU-prefill-all-DTEs.patch Patch342: 5f92909a-PCI-cleanup-MSI-before-removing-device.patch # Our platform specific patches Patch400: xen-destdir.patch Patch401: vif-bridge-no-iptables.patch Patch402: vif-bridge-tap-fix.patch Patch403: xl-conf-default-bridge.patch Patch404: xl-conf-disable-autoballoon.patch Patch405: xen-arch-kconfig-nr_cpus.patch Patch406: suse-xendomains-service.patch Patch407: replace-obsolete-network-configuration-commands-in-s.patch Patch408: disable-building-pv-shim.patch Patch409: xenstore-launch.patch Patch410: ignore-ip-command-script-errors.patch # Needs to go upstream Patch420: suspend_evtchn_lock.patch Patch422: stubdom-have-iovec.patch Patch423: vif-route.patch Patch424: gcc9-ignore-warnings.patch # Other bug fixes or features Patch451: xenconsole-no-multiple-connections.patch Patch452: hibernate.patch Patch453: stdvga-cache.patch Patch454: ipxe-enable-nics.patch Patch455: pygrub-netware-xnloader.patch Patch456: pygrub-boot-legacy-sles.patch Patch457: pygrub-handle-one-line-menu-entries.patch Patch458: aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch Patch460: CVE-2014-0222-blktap-qcow1-validate-l2-table-size.patch Patch461: blktap2-no-uninit.patch Patch462: libxc.sr.superpage.patch Patch463: libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch Patch464: libxl.pvscsi.patch Patch465: xen.libxl.dmmd.patch Patch466: libxl.set-migration-constraints-from-cmdline.patch Patch467: xenstore-run-in-studomain.patch Patch468: libxl.prepare-environment-for-domcreate_stream_done.patch Patch469: libxl.helper_done-crash.patch Patch470: libxl.LIBXL_HOTPLUG_TIMEOUT.patch Patch471: libxc.migrate_tracking.patch # python3 conversion patches Patch500: build-python3-conversion.patch Patch501: pygrub-python3-conversion.patch Patch502: migration-python3-conversion.patch Patch503: bin-python3-conversion.patch Patch504: fix-xenpvnetboot.patch # Hypervisor and PV driver Patches Patch600: xen.bug1026236.suse_vtsc_tolerance.patch Patch601: x86-ioapic-ack-default.patch Patch602: x86-cpufreq-report.patch Patch621: xen.build-compare.doc_html.patch Patch623: ipxe-no-error-logical-not-parentheses.patch Patch624: ipxe-use-rpm-opt-flags.patch # Build patches Patch99996: xen.stubdom.newlib.patch Patch99998: tmp_build.patch Patch99999: reproducible.patch Url: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/ BuildRoot: %{_tmppath}/%{name}-%{version}-build %define pyver %(python3 -c "import sys; print(sys.version[:3])") %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) [Hypervisor is a trademark of IBM] %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 %ifarch x86_64 %if 0%{?suse_version} >= 1315 Requires: grub2-x86_64-xen %endif Requires: qemu-x86 %endif %ifarch %arm aarch64 Requires: qemu-arm %endif Requires: %{name} = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Recommends: multipath-tools Requires: python3 Requires: python3-curses %ifarch %{ix86} x86_64 Requires: qemu-seabios %endif # Advertise support for the new 64bit memory APIs introduced by patch # 5db1be79-libxl-Offer-API-versions-0x040700-and-0x040800.patch Provides: xen-tools-functionality-64bit-mem-apis # 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> %endif %package tools-domU Summary: Xen Virtualization: Control tools for domain U Group: System/Kernel Conflicts: %{name}-tools Requires: %{name}-libs = %{version}-%{release} %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: %{name}-libs = %{version} Requires: libuuid-devel %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_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 5 -a 6 -a 57 # Upstream patches %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch35101 -p1 %patch35102 -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 %patch37601 -p1 %patch37001 -p1 %patch39301 -p1 %patch39401 -p1 %patch39501 -p1 %patch39801 -p1 %patch39802 -p1 %patch39803 -p1 %patch39804 -p1 %patch39805 -p1 %patch39806 -p1 %patch39701 -p1 %patch39901 -p1 %patch40000 -p1 %patch40001 -p1 %patch40002 -p1 %patch40003 -p1 %patch40004 -p1 %patch40005 -p1 %patch40006 -p1 %patch40007 -p1 %patch40008 -p1 %patch40009 -p1 %patch40010 -p1 %patch40011 -p1 %patch40012 -p1 %patch40013 -p1 %patch40014 -p1 %patch40101 -p1 %patch40102 -p1 %patch40200 -p1 %patch40201 -p1 %patch40202 -p1 %patch40203 -p1 %patch40204 -p1 %patch40205 -p1 %patch40301 -p1 %patch40401 -p1 %patch40402 -p1 %patch40403 -p1 %patch40701 -p1 %patch40702 -p1 %patch40703 -p1 %patch40704 -p1 %patch40705 -p1 %patch40706 -p1 %patch40707 -p1 %patch40708 -p1 %patch40709 -p1 %patch40711 -p1 %patch40712 -p1 %patch40713 -p1 %patch40714 -p1 %patch40715 -p1 %patch40716 -p1 %patch40717 -p1 %patch40718 -p1 %patch40801 -p1 %patch41003 -p1 %patch41004 -p1 %patch41005 -p1 %patch41006 -p1 %patch41007 -p1 %patch41008 -p1 %patch41009 -p1 %patch41010 -p1 %patch41101 -p1 %patch91 -p1 %patch42201 -p1 %patch42202 -p1 %patch42701 -p1 %patch42801 -p1 %patch42802 -p1 %patch42901 -p1 %patch43301 -p1 %patch435001 -p1 %patch435002 -p1 %patch435003 -p1 %patch435004 -p1 %patch435005 -p1 %patch435006 -p1 %patch435007 -p1 %patch435008 -p1 %patch435009 -p1 %patch435010 -p1 %patch435011 -p1 %patch435012 -p1 %patch435013 -p1 %patch435014 -p1 %patch435015 -p1 %patch435016 -p1 %patch435017 -p1 %patch435018 -p1 %patch435019 -p1 %patch435020 -p1 %patch435021 -p1 %patch435022 -p1 %patch435023 -p1 %patch435024 -p1 %patch435025 -p1 %patch435026 -p1 %patch435027 -p1 %patch435028 -p1 %patch435029 -p1 %patch435030 -p1 %patch435031 -p1 %patch435032 -p1 %patch435033 -p1 %patch435034 -p1 %patch435035 -p1 %patch435036 -p1 %patch435037 -p1 %patch435038 -p1 %patch435039 -p1 %patch435040 -p1 %patch435041 -p1 %patch435042 -p1 %patch435043 -p1 %patch435044 -p1 %patch435045 -p1 %patch435046 -p1 %patch435047 -p1 %patch435048 -p1 %patch435049 -p1 %patch435050 -p1 %patch435051 -p1 %patch435052 -p1 %patch435053 -p1 %patch435054 -p1 %patch43401 -p1 %patch43402 -p1 %patch43403 -p1 %patch43501 -p1 %patch43502 -p1 %patch43503 -p1 %patch43601 -p1 %patch43801 -p1 %patch43901 -p1 %patch43902 -p1 %patch43903 -p1 %patch43904 -p1 %patch43905 -p1 %patch43906 -p1 %patch43907 -p1 %patch43908 -p1 %patch43909 -p1 %patch44201 -p1 %patch44300 -p1 %patch44301 -p1 %patch44302 -p1 %patch44303 -p1 %patch44304 -p1 %patch44305 -p1 %patch44306 -p1 %patch44307 -p1 %patch44308 -p1 %patch44309 -p1 %patch44310 -p1 %patch44311 -p1 %patch44401 -p1 %patch44402 -p1 %patch44501 -p1 %patch44601 -p1 %patch44901 -p1 %patch92 -p1 %patch36801 -p1 # Xenstored %patch11501 -p1 %patch11502 -p1 %patch11503 -p1 %patch11504 -p1 %patch11505 -p1 %patch11506 -p1 %patch11507 -p1 %patch11508 -p1 %patch11509 -p1 %patch11510 -p1 %patch32201 -p1 %patch32401 -p1 %patch32501 -p1 %patch41401 -p1 %patch41501 -p1 %patch32601 -p1 %patch32602 -p1 %patch32603 -p1 %patch32604 -p1 %patch32605 -p1 %patch32606 -p1 %patch32607 -p1 %patch32608 -p1 %patch32609 -p1 %patch32610 -p1 %patch32611 -p1 %patch32612 -p1 %patch32613 -p1 %patch32614 -p1 %patch32615 -p1 %patch32616 -p1 %patch41601 -p1 %patch41701 -p1 %patch41801 -p1 %patch41802 -p1 %patch41803 -p1 %patch41804 -p1 %patch41805 -p1 %patch41806 -p1 %patch41901 -p1 %patch41902 -p1 %patch41903 -p1 %patch42101 -p1 %patch42102 -p1 %patch41702 -p1 %patch44001 -p1 # AMD x2APIC %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 %patch316 -p1 %patch317 -p1 %patch318 -p1 %patch319 -p1 %patch320 -p1 %patch321 -p1 %patch322 -p1 %patch323 -p1 %patch324 -p1 %patch325 -p1 %patch326 -p1 %patch327 -p1 %patch328 -p1 %patch329 -p1 %patch330 -p1 %patch331 -p1 %patch332 -p1 %patch333 -p1 %patch334 -p1 %patch335 -p1 %patch336 -p1 %patch337 -p1 %patch338 -p1 %patch339 -p1 %patch340 -p1 %patch341 -p1 %patch342 -p1 # Our platform specific patches %patch400 -p1 %patch401 -p1 %patch402 -p1 %patch403 -p1 %patch404 -p1 %patch405 -p1 %patch406 -p1 %patch407 -p1 %patch408 -p1 %patch409 -p1 %patch410 -p1 # Needs to go upstream %patch420 -p1 %patch422 -p1 %patch423 -p1 %patch424 -p1 # Other bug fixes or features %patch451 -p1 %patch452 -p1 %patch453 -p1 %patch454 -p1 %patch455 -p1 %patch456 -p1 %patch457 -p1 %patch458 -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 # python3 conversion patches %patch500 -p1 %patch501 -p1 %patch502 -p1 %patch503 -p1 %patch504 -p1 # Hypervisor and PV driver Patches %patch600 -p1 %patch601 -p1 %patch602 -p1 %patch621 -p1 %patch623 -p1 %patch624 -p1 # Build patches %patch99996 -p1 %patch99998 -p1 %patch99999 -p1 %build %define _lto_cflags %{nil} ./autogen.sh # we control the version info of this package # to gain control of filename of xen.gz XEN_VERSION=%{version} XEN_VERSION=${XEN_VERSION%%%%.*} XEN_SUBVERSION=%{version} XEN_SUBVERSION=${XEN_SUBVERSION#*.} XEN_SUBVERSION=${XEN_SUBVERSION%%%%.*} XEN_EXTRAVERSION="%version-%release" XEN_EXTRAVERSION="${XEN_EXTRAVERSION#*.}" XEN_EXTRAVERSION="${XEN_EXTRAVERSION#*.}" # remove trailing B_CNT to reduce build-compare noise XEN_EXTRAVERSION="${XEN_EXTRAVERSION%%.*}" XEN_FULLVERSION="$XEN_VERSION.$XEN_SUBVERSION.$XEN_EXTRAVERSION" XEN_BUILD_DATE="`date -u -d '1970-01-01'`" XEN_BUILD_TIME="`date -u -d '1970-01-01' +%%T`" SMBIOS_REL_DATE="`date -u -d '1970-01-01' +%%m/%%d/%%Y`" RELDATE="`date -u -d '1970-01-01' '+%%d %%b %%Y'`" if test -r %{S:9} then XEN_BUILD_DATE="` date -u -d \"$(sed -n '/@/{s/ - .*$//p;q}' %{S:9})\" `" XEN_BUILD_TIME="` date -u -d \"$(sed -n '/@/{s/ - .*$//p;q}' %{S:9})\" +%%T`" SMBIOS_REL_DATE="` date -u -d \"$(sed -n '/@/{s/ - .*$//p;q}' %{S:9})\" +%%m/%%d/%%Y`" RELDATE="` date -u -d \"$(sed -n '/@/{s/ - .*$//p;q}' %{S:9})\" '+%%d %%b %%Y'`" fi cat > .our_xenversion <<_EOV_ export WGET=$(type -P false) export FTP=$(type -P false) export GIT=$(type -P false) export EXTRA_CFLAGS_XEN_TOOLS="%{optflags}" export EXTRA_CFLAGS_QEMU_TRADITIONAL="%{optflags}" export SMBIOS_REL_DATE="$SMBIOS_REL_DATE" export RELDATE="$RELDATE" XEN_VERSION=$XEN_VERSION XEN_SUBVERSION=$XEN_SUBVERSION XEN_EXTRAVERSION=$XEN_EXTRAVERSION XEN_FULLVERSION=$XEN_FULLVERSION _EOV_ source ./.our_xenversion echo "%{changeset}" > xen/.scmversion sed -i~ " s/XEN_VERSION[[:blank:]]*=.*/XEN_VERSION = $XEN_VERSION/ s/XEN_SUBVERSION[[:blank:]]*=.*/XEN_SUBVERSION = $XEN_SUBVERSION/ s/XEN_EXTRAVERSION[[:blank:]]*?=.*/XEN_EXTRAVERSION = .$XEN_EXTRAVERSION/ s/XEN_FULLVERSION[[:blank:]]*=.*/XEN_FULLVERSION = $XEN_FULLVERSION/ s/XEN_BUILD_DATE[[:blank:]]*?=.*/XEN_BUILD_DATE = $XEN_BUILD_DATE/ s/XEN_BUILD_TIME[[:blank:]]*?=.*/XEN_BUILD_TIME = $XEN_BUILD_TIME/ s/XEN_BUILD_HOST[[:blank:]]*?=.*/XEN_BUILD_HOST = buildhost/ s/XEN_DOMAIN[[:blank:]]*?=.*/XEN_DOMAIN = suse.de/ " xen/Makefile if diff -u xen/Makefile~ xen/Makefile then : no changes? fi configure_flags= %if %{with xen_stubdom} configure_flags=--enable-stubdom %else # change the/our default to daemon due to lack of stubdom sed -i~ 's/ XENSTORETYPE=domain$/ XENSTORETYPE=daemon/' tools/hotplug/Linux/launch-xenstore.in configure_flags=--disable-stubdom %endif export PYTHON="/usr/bin/python3" configure_flags="${configure_flags} --disable-qemu-traditional" ./configure \ --disable-xen \ --enable-tools \ --enable-docs \ --prefix=/usr \ --exec_prefix=/usr \ --bindir=%{_bindir} \ --sbindir=%{_sbindir} \ --libdir=%{_libdir} \ --libexecdir=%{_libexecdir} \ --datadir=%{_datadir} \ --mandir=%{_mandir} \ --includedir=%{_includedir} \ --docdir=%{_defaultdocdir}/xen \ --with-initddir=%{_initddir} \ %if %{?with_dom0_support}0 %if %{with xen_oxenstored} --with-xenstored=oxenstored \ %endif %endif --enable-systemd \ --with-systemd=%{_unitdir} \ --with-systemd-modules-load=%{with_systemd_modules_load} \ --with-system-ovmf=%{_datadir}/qemu/ovmf-x86_64-ms.bin \ --with-system-seabios=%{_datadir}/qemu/bios-256k.bin \ --with-system-qemu=%{_bindir}/qemu-system-i386 \ ${configure_flags} make -C tools/include/xen-foreign %{?_smp_mflags} make %{?_smp_mflags} %if %{?with_dom0_support}0 make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes XEN_ROOT=$PWD %endif # %install source ./.our_xenversion # tools make \ DESTDIR=%{buildroot} \ SYSCONFIG_DIR=%{_fillupdir} \ PKG_INSTALLDIR=%{_libdir}/pkgconfig \ %{?_smp_mflags} \ install find %{buildroot} -ls for i in %{buildroot}/%{_fillupdir}/* do mv -v $i ${i%%/*}/sysconfig.${i##*/} done # udev_rulesdir=%{buildroot}/%{_udevrulesdir} tools_domU_dir=%{buildroot}/%{_libexecdir}/%{name}-tools-domU mkdir -p ${udev_rulesdir} mkdir -p ${tools_domU_dir} # tee ${udev_rulesdir}/80-%{name}-tools-domU.rules <<'_EOR_' # XenSource, Inc. Xen Platform Device SUBSYSTEM=="pci", ATTR{modalias}=="pci:v00005853d00000001sv00005853sd00000001bcFFsc80i00", TAG+="systemd", ENV{SYSTEMD_WANTS}+="%{name}-vcpu-watch.service" _EOR_ # tee %{buildroot}/%{_unitdir}/%{name}-vcpu-watch.service <<'_EOS_' [Unit] Description=Listen to CPU online/offline events from dom0 toolstack [Service] Type=simple ExecStart=%{_libexecdir}/%{name}-tools-domU/%{name}-vcpu-watch.sh Restart=always RestartSec=2 _EOS_ # tee %{buildroot}/%{_libexecdir}/%{name}-tools-domU/%{name}-vcpu-watch.sh <<'_EOS_' #!/bin/bash unset LANG unset ${!LC_*} echo "$0 starting" >&2 xenstore-watch cpu | while read do : xenstore event: ${REPLY} case "${REPLY}" in cpu) : just started ;; cpu/[0-9]/availability|cpu/[0-9][0-9]/availability) vcpu="${REPLY%%/*}" vcpu="${vcpu#*/}" sysfs="/sys/devices/system/cpu/cpu${vcpu}/online" if test -f "${sysfs}" then availability="`xenstore-read \"${REPLY}\"`" case "${availability}" in online|offline) if test "${availability}" = "online" then new_sysfs_state=1 else new_sysfs_state=0 fi read cur_sysfs_state rest < "${sysfs}" if test "${cur_sysfs_state}" = "${new_sysfs_state}" then : the vcpu "${vcpu}" already has state "${availability}" via "${sysfs}" else : setting vcpu "${vcpu}" to "${availability}" via "${sysfs}" echo "setting vcpu ${vcpu} to ${availability}" >&2 echo "${new_sysfs_state}" > "${sysfs}" fi ;; esac fi ;; *) : unhandled ;; esac done exit 1 _EOS_ chmod 755 %{buildroot}/%{_libexecdir}/%{name}-tools-domU/%{name}-vcpu-watch.sh # tee ${udev_rulesdir}/60-persistent-xvd.rules <<'_EOR_' ACTION=="remove", GOTO="xvd_aliases_end" SUBSYSTEM!="block", GOTO="xvd_aliases_end" KERNEL=="xvd*[!0-9]", IMPORT{program}=="%{name}-tools-domU.sh --devpath %%p --devtype $env{DEVTYPE}" KERNEL=="xvd*[0-9]", IMPORT{program}=="%{name}-tools-domU.sh --devpath %%p --devtype $env{DEVTYPE}" KERNEL=="xvd*[!0-9]", ENV{VBD_HD_SYMLINK}=="hd[a-d]", SYMLINK+="$env{VBD_HD_SYMLINK}" KERNEL=="xvd*[0-9]", ENV{VBD_HD_SYMLINK}=="hd[a-d]", SYMLINK+="$env{VBD_HD_SYMLINK}%%n" LABEL="xvd_aliases_end" _EOR_ # tee ${udev_rulesdir}/80-%{name}-channel-setup.rules <<'_EOF_' SUBSYSTEM=="xen", DEVPATH=="/devices/console-[0-9]", IMPORT{program}=="xen-channel-setup.sh $attr{nodename} %%n" SUBSYSTEM=="xen", DEVPATH=="/devices/console-[0-9]", ENV{XEN_CHANNEL_NAME}=="org.qemu.guest_agent.0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="qemu-ga@hvc%%n.service" _EOF_ # dracut_moduledir=%{buildroot}/usr/lib/dracut/modules.d/50%{name}-tools-domU mkdir -p ${dracut_moduledir} tee ${dracut_moduledir}/module-setup.sh <<'_EOS_' #!/bin/bash check() { require_binaries xenstore-read || return 1 return 0 } depends() { return 0 } install() { inst_multiple xenstore-read inst_multiple ${udevdir}/%{name}-tools-domU.sh inst_rules 60-persistent-xvd.rules } _EOS_ chmod 755 ${dracut_moduledir}/module-setup.sh # udev_programdir=%{buildroot}/usr/lib/udev mkdir -p ${udev_programdir} tee ${udev_programdir}/%{name}-tools-domU.sh <<'_EOS_' #!/bin/bash set -e devpath= devtype= dev= while test "$#" -gt 0 do : "$1" case "$1" in --devpath) devpath=$2 ; shift ;; --devtype) devtype=$2 ; shift ;; *) echo "$0: Unknown option $1" >&2 ; exit 1 ;; esac shift done test -n "${devpath}" || exit 1 test -n "${devtype}" || exit 1 cd "/sys/${devpath}" case "${devtype}" in partition) cd .. ;; esac cd -P device d="${PWD##*/}" d="${d/-/\/}" backend="`xenstore-read device/${d}/backend`" dev="`xenstore-read \"${backend}\"/dev`" test -n "${dev}" && echo "VBD_HD_SYMLINK=${dev}" _EOS_ # tee ${udev_programdir}/%{name}-channel-setup.sh <<'_EOF_' #!/bin/bash if test "$#" -ne 2; then exit 1 fi channel_path="$1" channel_num="$2" name="`xenstore-read \"$channel_path\"/name`" test -z "$name" && exit 1 if test $name != "org.qemu.guest_agent.0"; then exit 1 fi mkdir -p /dev/xenchannel devname=/dev/xenchannel/$name # Xen's console devices are used for channels. See xen-pv-channel(7) # for more details ln -sfn /dev/hvc$channel_num $devname echo "XEN_CHANNEL_NAME=$name" _EOF_ chmod 755 ${udev_programdir}/*.sh # EFI %if %{?with_dom0_support}0 arch=`uname -m` install_xen() { local ext="" find %{buildroot}/boot -ls if [ -n "$1" ]; then ext="-$1" mv %{buildroot}/boot/xen-syms-${XEN_FULLVERSION} \ %{buildroot}/boot/xen-syms${ext}-${XEN_FULLVERSION} mv %{buildroot}/boot/xen-${XEN_FULLVERSION}%{xen_install_suffix} \ %{buildroot}/boot/xen${ext}-${XEN_FULLVERSION}%{xen_install_suffix} if test -d %{buildroot}/%{_libdir}/efi; then mv %{buildroot}/%{_libdir}/efi/xen-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen${ext}-${XEN_FULLVERSION}.efi ln -sf xen${ext}-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen${ext}-$XEN_VERSION.$XEN_SUBVERSION.efi ln -sf xen${ext}-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen${ext}-$XEN_VERSION.efi ln -sf xen${ext}-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen${ext}.efi fi elif test -d %{buildroot}/%{_libdir}/efi; then # Move the efi files to /usr/share/efi/<arch> (fate#326960) mkdir -p %{buildroot}/%{_datadir}/efi/$arch mv %{buildroot}/%{_libdir}/efi/xen*.efi %{buildroot}/%{_datadir}/efi/$arch/ ln -s %{_datadir}/efi/$arch/xen-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen.efi fi rm %{buildroot}/boot/xen-$XEN_VERSION.$XEN_SUBVERSION%{xen_install_suffix} rm %{buildroot}/boot/xen-$XEN_VERSION%{xen_install_suffix} rm %{buildroot}/boot/xen%{xen_install_suffix} # Do not link to links; grub cannot follow. ln -s xen${ext}-${XEN_FULLVERSION}%{xen_install_suffix} %{buildroot}/boot/xen${ext}-$XEN_VERSION.$XEN_SUBVERSION%{xen_install_suffix} ln -s xen${ext}-${XEN_FULLVERSION}%{xen_install_suffix} %{buildroot}/boot/xen${ext}-$XEN_VERSION%{xen_install_suffix} ln -s xen${ext}-${XEN_FULLVERSION}%{xen_install_suffix} %{buildroot}/boot/xen${ext}%{xen_install_suffix} if test -f xen-syms${ext}-${XEN_FULLVERSION}; then ln -sf xen-syms${ext}-${XEN_FULLVERSION} %{buildroot}/boot/xen-syms${ext} fi find %{buildroot}/boot -ls } export BRP_PESIGN_FILES="*.efi /lib/firmware" CC=gcc %if %{?with_gcc47}0 CC=gcc-4.7 %endif %if %{?with_gcc48}0 CC=gcc-4.8 %endif rm -fv xen/.config %if %{with xen_debug} echo CONFIG_DEBUG=y > xen/.config echo "CONFIG_DOM0_MEM=\"1G+10%%,max:64G\"" >> xen/.config yes '' | make -C xen oldconfig make -C xen install DEBUG_DIR=/boot DESTDIR=%{buildroot} CC=$CC %{?_smp_mflags} install_xen dbg make -C xen clean %endif echo CONFIG_DEBUG=n > xen/.config echo "CONFIG_DOM0_MEM=\"1G+10%%,max:64G\"" >> xen/.config yes '' | make -C xen oldconfig make -C xen install DEBUG_DIR=/boot DESTDIR=%{buildroot} CC=$CC %{?_smp_mflags} install_xen make -C xen clean %endif # On x86_64, qemu-xen was installed as /usr/lib/xen/bin/qemu-system-i386 # and advertised as the <emulator> in libvirt capabilities. Tool such as # virt-install include <emulator> in domXML they produce, so we need to # preserve the path. For x86_64, create a simple wrapper that invokes # /usr/bin/qemu-system-i386 # Using qemu-system-x86_64 will result in an incompatible VM %ifarch x86_64 cat > %{buildroot}/usr/lib/xen/bin/qemu-system-i386 << 'EOF' #!/bin/sh exec %{_bindir}/qemu-system-i386 "$@" EOF chmod 0755 %{buildroot}/usr/lib/xen/bin/qemu-system-i386 %endif # Stubdom %if %{?with_dom0_support}0 # Docs mkdir -p %{buildroot}/%{_defaultdocdir}/xen/misc for name in COPYING %SOURCE10 %SOURCE11 %SOURCE12; do install -m 644 $name %{buildroot}/%{_defaultdocdir}/xen/ done for name in vtpm-platforms.txt crashdb.txt xenpaging.txt \ xen-command-line.pandoc xenstore-paths.pandoc; do install -m 644 docs/misc/$name %{buildroot}/%{_defaultdocdir}/xen/misc/ done mkdir -p %{buildroot}/etc/modprobe.d install -m644 %SOURCE26 %{buildroot}/etc/modprobe.d/xen_loop.conf # xen-utils make -C tools/xen-utils-0.1 install DESTDIR=%{buildroot} XEN_INTREE_BUILD=yes XEN_ROOT=$PWD install -m755 %SOURCE37 %{buildroot}/usr/sbin/xen2libvirt rm -f %{buildroot}/etc/xen/README* # Example config mkdir -p %{buildroot}/etc/xen/{vm,examples,scripts} mv %{buildroot}/etc/xen/xlexample* %{buildroot}/etc/xen/examples rm -f %{buildroot}/etc/xen/examples/*nbd install -m644 tools/xentrace/formats %{buildroot}/etc/xen/examples/xentrace_formats.txt # Scripts rm -f %{buildroot}/etc/xen/scripts/block-*nbd install -m755 %SOURCE21 %SOURCE22 %SOURCE23 %SOURCE29 %{buildroot}/etc/xen/scripts/ mkdir -p %{buildroot}/usr/lib/supportconfig/plugins install -m 755 %SOURCE13 %{buildroot}/usr/lib/supportconfig/plugins/xen # Xen API remote authentication files install -d %{buildroot}/etc/pam.d install -m644 %SOURCE30 %{buildroot}/etc/pam.d/xen-api install -m644 %SOURCE31 %{buildroot}/etc/xen/ # Logrotate install -m644 -D %SOURCE15 %{buildroot}/etc/logrotate.d/xen # Directories mkdir -p %{buildroot}/var/lib/xenstored mkdir -p %{buildroot}/var/lib/xen/images mkdir -p %{buildroot}/var/lib/xen/jobs mkdir -p %{buildroot}/var/lib/xen/save mkdir -p %{buildroot}/var/lib/xen/dump mkdir -p %{buildroot}/var/log/xen mkdir -p %{buildroot}/var/log/xen/console # Bootloader install -m644 %SOURCE36 %{buildroot}/%{_libdir}/python%{pyver}/site-packages # Systemd cp -bavL %{S:41} %{buildroot}/%{_unitdir} bn=`basename %{S:42}` cp -bavL %{S:42} %{buildroot}/%{_unitdir}/${bn} mods="` for conf in $(ls %{buildroot}/%{with_systemd_modules_load}/*.conf) do grep -v ^# $conf echo -n > $conf done `" for mod in $mods do echo "ExecStart=-/bin/sh -c 'modprobe $mod || :'" >> %{buildroot}/%{_unitdir}/${bn} done rm -rfv %{buildroot}/%{_initddir} install -m644 %SOURCE35 %{buildroot}/%{_fillupdir}/sysconfig.pciback # Clean up unpackaged files find %{buildroot} \( \ -name .deps -o \ -name README.blktap -o \ -name README.xenmon -o \ -name target-x86_64.conf -o \ -name xen-mfndump -o \ -name qcow-create -o \ -name img2qcow -o \ -name qcow2raw -o \ -name qemu-bridge-helper -o \ -name qemu-img-xen -o \ -name qemu-nbd-xen -o \ -name palcode-clipper -o \ -name "*.dtb" -o \ -name "openbios-*" -o \ -name "petalogix*" -o \ -name "ppc*" -o \ -name "*.pyc" -o \ -name "s390*" -o \ -name "slof*" -o \ -name "spapr*" -o \ -name "*.egg-info" \) \ -print -delete # Wipe empty directories if find %{buildroot}/usr -type d -print0 | xargs -0n1 rmdir -p 2>/dev/null then : fi # "xl devd" has to be called manually in a driver domain find %{buildroot} -name xendriverdomain.service -print -delete # Create hardlinks for 3 .txt files and 1 .py %fdupes %{buildroot}/%{_prefix} find %{buildroot} -type f -size 0 -delete -print %else # !with_dom0_support # 32 bit hypervisor no longer supported. Remove dom0 tools. rm -rf %{buildroot}/%{_datadir}/doc rm -rf %{buildroot}/%{_datadir}/man rm -rf %{buildroot}/%{_libdir}/xen rm -rf %{buildroot}/%{_libdir}/python* rm -rf %{buildroot}/%{_libdir}/ocaml* rm -rf %{buildroot}/%{_unitdir} rm -rf %{buildroot}/%{_fillupdir} rm -rf %{buildroot}/%{with_systemd_modules_load} rm -rf %{buildroot}/usr/sbin rm -rf %{buildroot}/etc/xen rm -rf %{buildroot}/var rm -f %{buildroot}/%{_sysconfdir}/bash_completion.d/xl.sh rm -f %{buildroot}/%{_sysconfdir}/init.d/xen* rm -f %{buildroot}/%{_bindir}/*trace* rm -f %{buildroot}/%{_bindir}/xenalyze* rm -f %{buildroot}/%{_bindir}/xenco* rm -f %{buildroot}/%{_bindir}/xen-cpuid rm -f %{buildroot}/%{_bindir}/xenstore* rm -f %{buildroot}/%{_bindir}/pygrub rm -f %{buildroot}/%{_bindir}/remus rm -f %{buildroot}/usr/etc/qemu/target-x86_64.conf rm -f %{buildroot}/usr/libexec/qemu-bridge-helper %endif %if %{?with_dom0_support}0 %files %defattr(-,root,root) /boot/* %{_libdir}/efi %{_datadir}/efi %endif %files libs %defattr(-,root,root) %{_libdir}/xenfsimage/ %{_libdir}/*.so.* %if %{?with_dom0_support}0 %files tools %defattr(-,root,root) /usr/bin/xenalyze /usr/bin/xencons /usr/bin/xenstore* /usr/bin/pygrub /usr/bin/xencov_split /usr/bin/xentrace_format %ifarch x86_64 /usr/bin/xen-cpuid %endif /usr/sbin/xenbaked /usr/sbin/xenconsoled /usr/sbin/xencov /usr/sbin/xenlockprof /usr/sbin/xenmon /usr/sbin/xenperf /usr/sbin/xenpm /usr/sbin/xenpmd /usr/sbin/xenstored /usr/sbin/xen-tmem-list-parse /usr/sbin/xentop /usr/sbin/xentrace /usr/sbin/xentrace_setsize /usr/sbin/xentrace_setmask /usr/sbin/xenwatchdogd /usr/sbin/flask-get-bool /usr/sbin/flask-getenforce /usr/sbin/flask-label-pci /usr/sbin/flask-loadpolicy /usr/sbin/flask-set-bool /usr/sbin/flask-setenforce %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/xen-kdd %endif /usr/sbin/xen-list /usr/sbin/xen-destroy /usr/sbin/xen-livepatch /usr/sbin/xen-diag %dir %attr(700,root,root) /etc/xen %dir /etc/xen/scripts /etc/xen/scripts/block* /etc/xen/scripts/external-device-migrate /etc/xen/scripts/hotplugpath.sh /etc/xen/scripts/launch-xenstore /etc/xen/scripts/locking.sh /etc/xen/scripts/logging.sh /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/colo-proxy-setup /etc/xen/scripts/remus-netbuf-setup %dir /usr/lib/supportconfig %dir /usr/lib/supportconfig/plugins /usr/lib/supportconfig/plugins/xen %{_libexecdir}/xen %exclude %{_libexecdir}/%{name}-tools-domU %{_fillupdir}/sysconfig.pciback %{_fillupdir}/sysconfig.xencommons %{_fillupdir}/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 %config /etc/xen/cpupool %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 %{_unitdir} %exclude %{_unitdir}/%{name}-vcpu-watch.service %config %{with_systemd_modules_load} %dir /etc/modprobe.d /etc/bash_completion.d/xl.sh %dir %{_libdir}/python%{pyver}/site-packages/grub %dir %{_libdir}/python%{pyver}/site-packages/xen %dir %{_libdir}/python%{pyver}/site-packages/xen/lowlevel %dir %{_libdir}/python%{pyver}/site-packages/xen/migration %{_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/xen/migration/* %{_libdir}/python%{pyver}/site-packages/*.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 %{_mandir}/man*/* %if %{with xen_oxenstored} /usr/sbin/oxenstored /etc/xen/oxenstored.conf %dir %{_libdir}/ocaml %dir %{_libdir}/ocaml/xenbus %dir %{_libdir}/ocaml/xenctrl %dir %{_libdir}/ocaml/xeneventchn %dir %{_libdir}/ocaml/xenlight %dir %{_libdir}/ocaml/xenmmap %dir %{_libdir}/ocaml/xenstore %dir %{_libdir}/ocaml/xentoollog %{_libdir}/ocaml/xenbus/META %{_libdir}/ocaml/xenbus/*.so %{_libdir}/ocaml/xenbus/*.cma %{_libdir}/ocaml/xenbus/*.cmi %{_libdir}/ocaml/xenbus/*.cmo %{_libdir}/ocaml/xenctrl/META %{_libdir}/ocaml/xenctrl/*.so %{_libdir}/ocaml/xenctrl/*.cma %{_libdir}/ocaml/xenctrl/*.cmi %{_libdir}/ocaml/xeneventchn/META %{_libdir}/ocaml/xeneventchn/*.so %{_libdir}/ocaml/xeneventchn/*.cma %{_libdir}/ocaml/xeneventchn/*.cmi %{_libdir}/ocaml/xenlight/META %{_libdir}/ocaml/xenlight/*.so %{_libdir}/ocaml/xenlight/*.cma %{_libdir}/ocaml/xenlight/*.cmi %{_libdir}/ocaml/xenmmap/META %{_libdir}/ocaml/xenmmap/*.so %{_libdir}/ocaml/xenmmap/*.cma %{_libdir}/ocaml/xenmmap/*.cmi %{_libdir}/ocaml/xenstore/META %{_libdir}/ocaml/xenstore/*.cma %{_libdir}/ocaml/xenstore/*.cmi %{_libdir}/ocaml/xenstore/*.cmo %{_libdir}/ocaml/xentoollog/META %{_libdir}/ocaml/xentoollog/*.so %{_libdir}/ocaml/xentoollog/*.cma %{_libdir}/ocaml/xentoollog/*.cmi %endif # with_dom0_support %endif %posttrans -n %{name}-tools-domU %{?regenerate_initrd_posttrans} %files tools-domU %defattr(-,root,root) %ifarch %ix86 x86_64 /usr/bin/xen-detect %endif /bin/domu-xenstore* /bin/xenstore-* %if %{?with_dom0_support}0 %config %{_unitdir}/%{name}-vcpu-watch.service %endif %{_libexecdir}/%{name}-tools-domU /usr/lib/udev /usr/lib/dracut %files devel %defattr(-,root,root) %{_libdir}/*.a %{_libdir}/*.so %if %{?with_dom0_support}0 %if %{with xen_oxenstored} %{_libdir}/ocaml/xenbus/*.a %{_libdir}/ocaml/xenbus/*.cmx* %{_libdir}/ocaml/xenctrl/*.a %{_libdir}/ocaml/xenctrl/*.cmx* %{_libdir}/ocaml/xeneventchn/*.a %{_libdir}/ocaml/xeneventchn/*.cmx* %{_libdir}/ocaml/xenlight/*.a %{_libdir}/ocaml/xenlight/*.cmx* %{_libdir}/ocaml/xenmmap/*.a %{_libdir}/ocaml/xenmmap/*.cmx* %{_libdir}/ocaml/xenstore/*.a %{_libdir}/ocaml/xenstore/*.cmx* %{_libdir}/ocaml/xentoollog/*.a %{_libdir}/ocaml/xentoollog/*.cmx* %endif %endif /usr/include/* %{_libdir}/pkgconfig/xenlight.pc %{_libdir}/pkgconfig/xlutil.pc %{_libdir}/pkgconfig/xencall.pc %{_libdir}/pkgconfig/xencontrol.pc %{_libdir}/pkgconfig/xendevicemodel.pc %{_libdir}/pkgconfig/xenevtchn.pc %{_libdir}/pkgconfig/xenforeignmemory.pc %{_libdir}/pkgconfig/xengnttab.pc %{_libdir}/pkgconfig/xenguest.pc %{_libdir}/pkgconfig/xenstat.pc %{_libdir}/pkgconfig/xenstore.pc %{_libdir}/pkgconfig/xentoolcore.pc %{_libdir}/pkgconfig/xentoollog.pc %{_libdir}/pkgconfig/xenvchan.pc %if %{?with_dom0_support}0 %files doc-html %defattr(-,root,root) %dir %{_defaultdocdir}/xen %{_defaultdocdir}/xen/misc %{_defaultdocdir}/xen/html %post if [ -x /sbin/update-bootloader ]; then /sbin/update-bootloader --refresh; exit 0 fi %pre tools %service_add_pre xencommons.service %service_add_pre xendomains.service %service_add_pre xen-watchdog.service %service_add_pre xenstored.service %service_add_pre xen-dom0-modules.service %service_add_pre xenconsoled.service %service_add_pre xen-init-dom0.service %service_add_pre xen-qemu-dom0-disk-backend.service %post tools xen_tools_first_arg=$1 %{fillup_only -n xencommons xencommons} %{fillup_only -n xendomains xendomains} %service_add_post xencommons.service %service_add_post xendomains.service %service_add_post xen-watchdog.service %service_add_post xenstored.service %service_add_post xen-dom0-modules.service %service_add_post xenconsoled.service %service_add_post xen-init-dom0.service %service_add_post xen-qemu-dom0-disk-backend.service if [ -f /usr/bin/qemu-img ]; then if [ -f /usr/bin/qemu-img-xen ]; then rm /usr/bin/qemu-img-xen fi rm -f %{_libexecdir}/xen/bin/qemu-img-xen ln -s /usr/bin/qemu-img %{_libexecdir}/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 %{_libexecdir}/xen/bin/qemu-nbd-xen ln -s /usr/bin/qemu-nbd %{_libexecdir}/xen/bin/qemu-nbd-xen fi if [ -f /usr/bin/qemu-io ]; then rm -f %{_libexecdir}/xen/bin/qemu-io-xen ln -s /usr/bin/qemu-io %{_libexecdir}/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 [ -f /usr/lib/grub2/x86_64-xen/grub.xen -a ! -f /usr/lib/xen/boot/pvgrub64.bin ]; then ln -s /usr/lib/grub2/x86_64-xen/grub.xen /usr/lib/xen/boot/pvgrub64.bin fi %preun tools %service_del_preun xencommons.service %service_del_preun xendomains.service %service_del_preun xen-watchdog.service %service_del_preun xenstored.service %service_del_preun xen-dom0-modules.service %service_del_preun xenconsoled.service %service_del_preun xen-init-dom0.service %service_del_preun xen-qemu-dom0-disk-backend.service %postun tools export DISABLE_RESTART_ON_UPDATE=yes %service_del_postun xencommons.service %service_del_postun xendomains.service %service_del_postun xen-watchdog.service %service_del_postun xenstored.service %service_del_postun xen-dom0-modules.service %service_del_postun xenconsoled.service %service_del_postun xen-init-dom0.service %service_del_postun xen-qemu-dom0-disk-backend.service %endif %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor