Compare commits
1 Commits
Author | SHA256 | Date | |
---|---|---|---|
13b8259b5d |
@@ -1,138 +0,0 @@
|
||||
Index: xen-4.19.0-testing/Config.mk
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/Config.mk
|
||||
+++ xen-4.19.0-testing/Config.mk
|
||||
@@ -77,7 +77,7 @@ EXTRA_INCLUDES += $(EXTRA_PREFIX)/includ
|
||||
EXTRA_LIB += $(EXTRA_PREFIX)/lib
|
||||
endif
|
||||
|
||||
-PYTHON ?= python
|
||||
+PYTHON ?= python3
|
||||
PYTHON_PREFIX_ARG ?= --prefix="$(prefix)"
|
||||
# The above requires that prefix contains *no spaces*. This variable is here
|
||||
# to permit the user to set PYTHON_PREFIX_ARG to '' to workaround this bug:
|
||||
Index: xen-4.19.0-testing/tools/configure
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/tools/configure
|
||||
+++ xen-4.19.0-testing/tools/configure
|
||||
@@ -8297,15 +8297,15 @@ if test x"${PYTHONPATH}" = x"no"
|
||||
then
|
||||
as_fn_error $? "Unable to find $PYTHON, please install $PYTHON" "$LINENO" 5
|
||||
fi
|
||||
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python version >= 2.7 " >&5
|
||||
-printf %s "checking for python version >= 2.7 ... " >&6; }
|
||||
-`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (2, 7)"))'`
|
||||
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python version >= 3.0 " >&5
|
||||
+printf %s "checking for python version >= 3.0 ... " >&6; }
|
||||
+`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (3, 0)"))'`
|
||||
if test "$?" != "0"
|
||||
then
|
||||
python_version=`$PYTHON -V 2>&1`
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
printf "%s\n" "no" >&6; }
|
||||
- as_fn_error $? "$python_version is too old, minimum required version is 2.7" "$LINENO" 5
|
||||
+ as_fn_error $? "$python_version is too old, minimum required version is 3.0" "$LINENO" 5
|
||||
else
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
printf "%s\n" "yes" >&6; }
|
||||
Index: xen-4.19.0-testing/tools/libs/light/idl.py
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/tools/libs/light/idl.py
|
||||
+++ xen-4.19.0-testing/tools/libs/light/idl.py
|
||||
@@ -271,7 +271,7 @@ class KeyedUnion(Aggregate):
|
||||
if not isinstance(keyvar_type, Enumeration):
|
||||
raise ValueError
|
||||
|
||||
- kv_kwargs = dict([(x.lstrip('keyvar_'),y) for (x,y) in kwargs.items() if x.startswith('keyvar_')])
|
||||
+ kv_kwargs = dict([(x.lstrip('keyvar_'),y) for (x,y) in list(kwargs.items()) if x.startswith('keyvar_')])
|
||||
|
||||
self.keyvar = Field(keyvar_type, keyvar_name, **kv_kwargs)
|
||||
|
||||
@@ -317,7 +317,7 @@ class Array(Type):
|
||||
kwargs.setdefault('json_parse_type', 'JSON_ARRAY')
|
||||
Type.__init__(self, namespace=elem_type.namespace, typename=elem_type.rawname + " *", **kwargs)
|
||||
|
||||
- lv_kwargs = dict([(x.lstrip('lenvar_'),y) for (x,y) in kwargs.items() if x.startswith('lenvar_')])
|
||||
+ lv_kwargs = dict([(x.lstrip('lenvar_'),y) for (x,y) in list(kwargs.items()) if x.startswith('lenvar_')])
|
||||
|
||||
self.lenvar = Field(integer, lenvar_name, **lv_kwargs)
|
||||
self.elem_type = elem_type
|
||||
@@ -353,7 +353,7 @@ def parse(f):
|
||||
globs = {}
|
||||
locs = OrderedDict()
|
||||
|
||||
- for n,t in globals().items():
|
||||
+ for n,t in list(globals().items()):
|
||||
if isinstance(t, Type):
|
||||
globs[n] = t
|
||||
elif isinstance(t,type(object)) and issubclass(t, Type):
|
||||
Index: xen-4.19.0-testing/tools/libs/light/gentest.py
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/tools/libs/light/gentest.py
|
||||
+++ xen-4.19.0-testing/tools/libs/light/gentest.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
Index: xen-4.19.0-testing/tools/libs/light/gentypes.py
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/tools/libs/light/gentypes.py
|
||||
+++ xen-4.19.0-testing/tools/libs/light/gentypes.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
Index: xen-4.19.0-testing/tools/include/xen-foreign/mkheader.py
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/tools/include/xen-foreign/mkheader.py
|
||||
+++ xen-4.19.0-testing/tools/include/xen-foreign/mkheader.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
Index: xen-4.19.0-testing/tools/include/xen-foreign/mkchecker.py
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/tools/include/xen-foreign/mkchecker.py
|
||||
+++ xen-4.19.0-testing/tools/include/xen-foreign/mkchecker.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
import sys;
|
||||
from structs import structs, compat_arches;
|
||||
Index: xen-4.19.0-testing/xen/tools/gen-cpuid.py
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/xen/tools/gen-cpuid.py
|
||||
+++ xen-4.19.0-testing/xen/tools/gen-cpuid.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys, os, re
|
||||
Index: xen-4.19.0-testing/xen/tools/compat-build-source.py
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/xen/tools/compat-build-source.py
|
||||
+++ xen-4.19.0-testing/xen/tools/compat-build-source.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
import re,sys
|
||||
|
||||
Index: xen-4.19.0-testing/xen/tools/compat-build-header.py
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/xen/tools/compat-build-header.py
|
||||
+++ xen-4.19.0-testing/xen/tools/compat-build-header.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
import re,sys
|
||||
|
11
disable-pv-support.patch
Normal file
11
disable-pv-support.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/xen/arch/x86/Kconfig
|
||||
+++ b/xen/arch/x86/Kconfig
|
||||
@@ -62,7 +62,7 @@ source "arch/x86/Kconfig.cpu"
|
||||
source "arch/Kconfig"
|
||||
|
||||
config PV
|
||||
- def_bool y
|
||||
+ def_bool n
|
||||
prompt "PV support"
|
||||
help
|
||||
Interfaces to support PV domains. These require guest kernel support
|
@@ -278,7 +278,7 @@ the execution time of each script.
|
||||
|
||||
#include <xenevtchn.h>
|
||||
#include <xenstore.h>
|
||||
@@ -1626,6 +1627,7 @@ struct libxl__xswait_state {
|
||||
@@ -1624,6 +1625,7 @@ struct libxl__xswait_state {
|
||||
const char *what; /* for error msgs: noun phrase, what we're waiting for */
|
||||
const char *path;
|
||||
int timeout_ms; /* as for poll(2) */
|
||||
@@ -286,7 +286,7 @@ the execution time of each script.
|
||||
libxl__xswait_callback *callback;
|
||||
/* remaining fields are private to xswait */
|
||||
libxl__ev_time time_ev;
|
||||
@@ -2703,6 +2705,7 @@ struct libxl__async_exec_state {
|
||||
@@ -2701,6 +2703,7 @@ struct libxl__async_exec_state {
|
||||
char **args; /* execution arguments */
|
||||
char **env; /* execution environment */
|
||||
|
||||
@@ -294,7 +294,7 @@ the execution time of each script.
|
||||
/* private */
|
||||
libxl__ev_time time;
|
||||
libxl__ev_child child;
|
||||
@@ -4899,6 +4902,9 @@ _hidden int userlookup_helper_getpwuid(l
|
||||
@@ -4893,6 +4896,9 @@ _hidden int userlookup_helper_getpwuid(l
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -1,63 +0,0 @@
|
||||
Index: xen-4.19.0-testing/tools/pygrub/src/pygrub
|
||||
===================================================================
|
||||
--- xen-4.19.0-testing.orig/tools/pygrub/src/pygrub
|
||||
+++ xen-4.19.0-testing/tools/pygrub/src/pygrub
|
||||
@@ -593,7 +593,7 @@ class Grub:
|
||||
self.cf.filename = f
|
||||
break
|
||||
if self.__dict__.get('cf', None) is None:
|
||||
- raise RuntimeError("couldn't find bootloader config file in the image provided.")
|
||||
+ return
|
||||
f = fs.open_file(self.cf.filename)
|
||||
# limit read size to avoid pathological cases
|
||||
buf = f.read(FS_READ_MAX)
|
||||
@@ -768,6 +768,20 @@ def run_grub(file, entry, fs, cfg_args):
|
||||
|
||||
g = Grub(file, fs)
|
||||
|
||||
+ # If missing config or grub has no menu entries to select, look for
|
||||
+ # vmlinuz-xen and initrd-xen in /boot
|
||||
+ if g.__dict__.get('cf', None) is None or len(g.cf.images) == 0 or re.search(r"xen(-pae)?\.gz",g.cf.images[0].kernel[1]):
|
||||
+ if not list_entries:
|
||||
+ chosencfg = { "kernel": None, "ramdisk": None, "args": "" }
|
||||
+ chosencfg = sniff_xen_kernel(fs, incfg)
|
||||
+ if chosencfg["kernel"] and chosencfg["ramdisk"]:
|
||||
+ chosencfg["args"] = cfg_args
|
||||
+ return chosencfg
|
||||
+ if g.__dict__.get('cf', None) is None:
|
||||
+ raise RuntimeError("couldn't find bootloader config file in the image provided.")
|
||||
+ else:
|
||||
+ return
|
||||
+
|
||||
if list_entries:
|
||||
for i in range(len(g.cf.images)):
|
||||
img = g.cf.images[i]
|
||||
@@ -854,6 +868,19 @@ def sniff_netware(fs, cfg):
|
||||
|
||||
return cfg
|
||||
|
||||
+def sniff_xen_kernel(fs, cfg):
|
||||
+ if not cfg["kernel"]:
|
||||
+ if fs.file_exists('/boot/vmlinuz-xen'):
|
||||
+ cfg["kernel"] = '/boot/vmlinuz-xen'
|
||||
+ elif fs.file_exists('/boot/vmlinuz-xenpae'):
|
||||
+ cfg["kernel"] = '/boot/vmlinuz-xenpae'
|
||||
+ if cfg["kernel"] and not cfg["ramdisk"]:
|
||||
+ if fs.file_exists('/boot/initrd-xen'):
|
||||
+ cfg["ramdisk"] = '/boot/initrd-xen'
|
||||
+ elif fs.file_exists('/boot/initrd-xenpae'):
|
||||
+ cfg["ramdisk"] = '/boot/initrd-xenpae'
|
||||
+ return cfg
|
||||
+
|
||||
def format_sxp(kernel, ramdisk, args):
|
||||
s = "linux (kernel %s)" % repr(kernel)
|
||||
if ramdisk:
|
||||
@@ -932,7 +959,7 @@ if __name__ == "__main__":
|
||||
debug = False
|
||||
not_really = False
|
||||
output_format = "sxp"
|
||||
- output_directory = "/var/run/xen/pygrub/"
|
||||
+ output_directory = "/var/run/xen"
|
||||
uid = None
|
||||
|
||||
# what was passed in
|
@@ -1,59 +0,0 @@
|
||||
References: bsc#978413
|
||||
|
||||
The parsing code can't handle a single line menu entry.
|
||||
For example: menuentry 'halt' { halt }
|
||||
Force it to fall through where it will handle the closing brace.
|
||||
Also change warning to debug to cut down on verbose output.
|
||||
|
||||
Index: xen-4.18.0-testing/tools/pygrub/src/GrubConf.py
|
||||
===================================================================
|
||||
--- xen-4.18.0-testing.orig/tools/pygrub/src/GrubConf.py
|
||||
+++ xen-4.18.0-testing/tools/pygrub/src/GrubConf.py
|
||||
@@ -150,7 +150,7 @@ class GrubImage(_GrubImage):
|
||||
else:
|
||||
logging.info("Ignored image directive %s" %(com,))
|
||||
else:
|
||||
- logging.warning("Unknown image directive %s" %(com,))
|
||||
+ logging.debug("Unknown image directive %s" %(com,))
|
||||
|
||||
# now put the line in the list of lines
|
||||
if replace is None:
|
||||
@@ -309,7 +309,7 @@ class GrubConfigFile(_GrubConfigFile):
|
||||
else:
|
||||
logging.info("Ignored directive %s" %(com,))
|
||||
else:
|
||||
- logging.warning("Unknown directive %s" %(com,))
|
||||
+ logging.debug("Unknown directive %s" %(com,))
|
||||
|
||||
if img:
|
||||
self.add_image(GrubImage(title, img))
|
||||
@@ -343,7 +343,7 @@ class Grub2Image(_GrubImage):
|
||||
elif com.startswith('set:'):
|
||||
pass
|
||||
else:
|
||||
- logging.warning("Unknown image directive %s" %(com,))
|
||||
+ logging.debug("Unknown image directive %s" %(com,))
|
||||
|
||||
# now put the line in the list of lines
|
||||
if replace is None:
|
||||
@@ -408,7 +408,10 @@ class Grub2ConfigFile(_GrubConfigFile):
|
||||
raise RuntimeError("syntax error: cannot nest menuentry (%d %s)" % (len(img),img))
|
||||
img = []
|
||||
title = title_match.group(1)
|
||||
- continue
|
||||
+ if not l.endswith('}'):
|
||||
+ continue
|
||||
+ # One line menuentry, Ex. menuentry 'halt' { halt }
|
||||
+ l = '}'
|
||||
|
||||
if l.startswith("submenu"):
|
||||
menu_level += 1
|
||||
@@ -447,7 +450,7 @@ class Grub2ConfigFile(_GrubConfigFile):
|
||||
elif com.startswith('set:'):
|
||||
pass
|
||||
else:
|
||||
- logging.warning("Unknown directive %s" %(com,))
|
||||
+ logging.debug("Unknown directive %s" %(com,))
|
||||
|
||||
if img is not None:
|
||||
raise RuntimeError("syntax error: end of file with open menuentry(%d %s)" % (len(img),img))
|
@@ -1,20 +0,0 @@
|
||||
xendomains: remove libvirtd conflict
|
||||
|
||||
Conflicting with libvirtd is fine for upstream, where xl/libxl is king.
|
||||
But down the SUSE stream, we promote libvirt and all the libvirt-based
|
||||
tools. If a user installs libvirt on their SUSE Xen host, then libvirt
|
||||
should be king and override xendomains.
|
||||
|
||||
bsc#1015348
|
||||
Index: xen-4.8.0-testing/tools/hotplug/Linux/systemd/xendomains.service.in
|
||||
===================================================================
|
||||
--- xen-4.8.0-testing.orig/tools/hotplug/Linux/systemd/xendomains.service.in
|
||||
+++ xen-4.8.0-testing/tools/hotplug/Linux/systemd/xendomains.service.in
|
||||
@@ -5,7 +5,6 @@ After=proc-xen.mount xenstored.service x
|
||||
After=network-online.target
|
||||
After=remote-fs.target
|
||||
ConditionPathExists=/proc/xen/capabilities
|
||||
-Conflicts=libvirtd.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
BIN
xen-4.20.0-testing-src.tar.bz2
(Stored with Git LFS)
BIN
xen-4.20.0-testing-src.tar.bz2
(Stored with Git LFS)
Binary file not shown.
BIN
xen-4.20.1-testing-src.tar.bz2
(Stored with Git LFS)
Normal file
BIN
xen-4.20.1-testing-src.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
128
xen.changes
128
xen.changes
@@ -1,3 +1,121 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 10 05:25:48 MDT 2025 - carnold@suse.com
|
||||
|
||||
- Update to Xen 4.20.1 bug fix release (jsc#PED-8907)
|
||||
* No upstream changelog found in sources or webpage
|
||||
- bsc#1246112 - VUL-0: xen: More AMD transient execution attacks
|
||||
(XSA-471)
|
||||
Patches contained in new tarball for 4.20.1
|
||||
- Drop patches contained in new tarball
|
||||
67c818d4-x86-log-unhandled-mem-accesses-for-PVH-dom0.patch
|
||||
67c818d5-x86-fixup-p2m-page-faults-for-PVH-dom0.patch
|
||||
67c818d6-x86-PVH-dom0-correct-iomem_caps-bound.patch
|
||||
67c818d7-x86-IOMMU-account-for-IOMEM-caps-when-populating.patch
|
||||
67c818d8-x86-Dom0-relax-Interrupt-Address-Range.patch
|
||||
67c86fc1-xl-fix-channel-configuration-setting.patch
|
||||
67cb03e0-x86-vlapic-ESR-write-handling.patch
|
||||
67d17edd-x86-expose-MSR_FAM10H_MMIO_CONF_BASE-on-AMD.patch
|
||||
67d17ede-VT-x-PI-usage-of-msi_desc-msg-field.patch
|
||||
67d2a3fe-libxl-avoid-infinite-loop-in-libxl__remove_directory.patch
|
||||
67dada68-x86-mm-IS_ALIGNED-in-IS_LnE_ALIGNED.patch
|
||||
67ea4268-x86-P2M-sync-fast-slow-p2m_get_page_from_gfn.patch
|
||||
67ea428e-percpu-dont-init-on-resume.patch
|
||||
67f8ecda-rangeset-incorrect-subtraction.patch
|
||||
6800b54f-x86-HVM-update-repeat-count-upon.patch
|
||||
68076044-x86emul-clip-rep-count-for-STOS.patch
|
||||
6808f549-x86-Intel-work-around-MONITOR-MWAIT-errata.patch
|
||||
68221f20-x86-alternative-when-feature-not-present.patch
|
||||
68221f21-x86-guest-remove-Xen-hypercall_page.patch
|
||||
68221f22-x86-misalign-__x86_indirect_thunk.patch
|
||||
68221f23-x86-misalign-RETs-in-clear_bhb_loops.patch
|
||||
68221f24-x86-stubs-introduce-place_ret.patch
|
||||
68221f25-x86-build-with-Return-Thunks.patch
|
||||
68221f26-x86-spec-ctrl-synthesise-ITS_NO.patch
|
||||
682dff83-x86-vPCI-BAR-overlaps-with-non-holes.patch
|
||||
6835a042-VMX-VMEntry-failure-on-ADL-SPR-with-shadow.patch
|
||||
6835a043-x86-PV-breakpoint-reporting.patch
|
||||
xsa470.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 16 15:58:00 CEST 2025 - jbeulich@suse.com
|
||||
|
||||
- bsc#1244644 - VUL-0: CVE-2025-27465: xen: x86: Incorrect stubs
|
||||
exception handling for flags recovery (XSA-470)
|
||||
xsa470.patch
|
||||
- Upstream bug fixes (bsc#1027519)
|
||||
682dff83-x86-vPCI-BAR-overlaps-with-non-holes.patch
|
||||
6835a042-VMX-VMEntry-failure-on-ADL-SPR-with-shadow.patch
|
||||
6835a043-x86-PV-breakpoint-reporting.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 13 13:48:00 CEST 2025 - jbeulich@suse.com
|
||||
|
||||
- bsc#1243117 - VUL-0: CVE-2024-28956: xen: Intel CPU: Indirect
|
||||
Target Selection (ITS) (XSA-469)
|
||||
68221f20-x86-alternative-when-feature-not-present.patch
|
||||
68221f21-x86-guest-remove-Xen-hypercall_page.patch
|
||||
68221f22-x86-misalign-__x86_indirect_thunk.patch
|
||||
68221f23-x86-misalign-RETs-in-clear_bhb_loops.patch
|
||||
68221f24-x86-stubs-introduce-place_ret.patch
|
||||
68221f25-x86-build-with-Return-Thunks.patch
|
||||
68221f26-x86-spec-ctrl-synthesise-ITS_NO.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 12 09:07:55 MDT 2025 - carnold@suse.com
|
||||
|
||||
- Default to running xenstored in pvh mode
|
||||
xenstore-run-in-pvh-mode.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 28 12:55:00 CEST 2025 - jbeulich@suse.com
|
||||
|
||||
- Upstream bug fixes (bsc#1027519)
|
||||
67dada68-x86-mm-IS_ALIGNED-in-IS_LnE_ALIGNED.patch
|
||||
67ea4268-x86-P2M-sync-fast-slow-p2m_get_page_from_gfn.patch
|
||||
67ea428e-percpu-dont-init-on-resume.patch
|
||||
67f8ecda-rangeset-incorrect-subtraction.patch
|
||||
6800b54f-x86-HVM-update-repeat-count-upon.patch
|
||||
68076044-x86emul-clip-rep-count-for-STOS.patch
|
||||
6808f549-x86-Intel-work-around-MONITOR-MWAIT-errata.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 14 10:38:51 MDT 2025 - carnold@suse.com
|
||||
|
||||
- Disable pv support for PVH only systems.
|
||||
disable-pv-support.patch
|
||||
- Updated the spec file by removing what isn't needed to support
|
||||
PVH only systems
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 31 14:37:13 MDT 2025 - carnold@suse.com
|
||||
|
||||
- Drop legacy patches supporting deprecated features
|
||||
suse-xendomains-service.patch
|
||||
build-python3-conversion.patch
|
||||
pygrub-boot-legacy-sles.patch
|
||||
pygrub-handle-one-line-menu-entries.patch
|
||||
xen2libvirt.py
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 13 12:50:00 CET 2025 - jbeulich@suse.com
|
||||
|
||||
- bsc#1219354 - xen channels and domU console
|
||||
67c86fc1-xl-fix-channel-configuration-setting.patch
|
||||
- bsc#1227301 - Kernel boot crashes on Thinkpad P14s Gen 3 AMD
|
||||
67c818d4-x86-log-unhandled-mem-accesses-for-PVH-dom0.patch
|
||||
67c818d5-x86-fixup-p2m-page-faults-for-PVH-dom0.patch
|
||||
67c818d6-x86-PVH-dom0-correct-iomem_caps-bound.patch
|
||||
67c818d7-x86-IOMMU-account-for-IOMEM-caps-when-populating.patch
|
||||
67c818d8-x86-Dom0-relax-Interrupt-Address-Range.patch
|
||||
- bsc#1237692 - When attempting to start guest vm's libxl fills disk with errors
|
||||
67d2a3fe-libxl-avoid-infinite-loop-in-libxl__remove_directory.patch
|
||||
- bsc#1241206 - xen fv domU failed to migrate from sle15SP6 host
|
||||
to sle15SP7 host
|
||||
67cb03e0-x86-vlapic-ESR-write-handling.patch
|
||||
- Upstream bug fixes (bsc#1027519)
|
||||
67d17edd-x86-expose-MSR_FAM10H_MMIO_CONF_BASE-on-AMD.patch
|
||||
67d17ede-VT-x-PI-usage-of-msi_desc-msg-field.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 5 06:18:13 MST 2025 - carnold@suse.com
|
||||
|
||||
@@ -6004,7 +6122,7 @@ Thu Nov 19 07:38:06 UTC 2015 - ohering@suse.de
|
||||
- Remove xenalyze.hg, its part of xen-4.6
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 10 16:16:24 MDT 2015 - carnold@suse.com
|
||||
Wed Nov 11 16:16:24 MST 2015 - carnold@suse.com
|
||||
|
||||
- Update to Xen Version 4.6.0
|
||||
xen-4.6.0-testing-src.tar.bz2
|
||||
@@ -7620,7 +7738,7 @@ Mon Nov 11 10:22:20 MST 2013 - carnold@suse.com
|
||||
5280aae0-x86-idle-reduce-contention-on-ACPI-register-accesses.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 4 09:42:36 MDT 2013 - carnold@suse.com
|
||||
Mon Nov 4 09:42:36 MST 2013 - carnold@suse.com
|
||||
|
||||
- bnc#848657 - VUL-0: xen: CVE-2013-4494: XSA-73: Lock order
|
||||
reversal between page allocation and grant table locks
|
||||
@@ -8491,7 +8609,7 @@ Fri Nov 9 10:29:51 MST 2012 - carnold@novell.com
|
||||
xen-max-free-mem.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 6 17:41:34 MDT 2012 - carnold@novell.com
|
||||
Tue Nov 6 17:41:34 MST 2012 - carnold@novell.com
|
||||
|
||||
- fate#311966: Fix XEN VNC implementation to correctly map keyboard
|
||||
layouts
|
||||
@@ -10151,7 +10269,7 @@ Wed Apr 20 17:50:04 CEST 2011 - ohering@suse.de
|
||||
- bnc#688519: correct indention in xend-domain-lock.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 19 06:43:19 MST 2011 - jfehlig@novell.com
|
||||
Tue Apr 19 06:43:19 MDT 2011 - jfehlig@novell.com
|
||||
|
||||
- bnc#687981 - L3: mistyping model type when defining VIF crashes
|
||||
VM
|
||||
@@ -10744,7 +10862,7 @@ Tue Nov 9 10:00:48 MST 2010 - jfehlig@novell.com
|
||||
modified block-iscsi script
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 8 13:11:02 MDT 2010 - jfehlig@novell.com
|
||||
Mon Nov 8 13:11:02 MST 2010 - jfehlig@novell.com
|
||||
|
||||
- bnc#649277 - Fix pci passthru in xend interface used by libvirt
|
||||
22369-xend-pci-passthru-fix.patch
|
||||
|
@@ -100,7 +100,7 @@ References: bsc#954872
|
||||
aio:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); }
|
||||
--- a/tools/libs/light/libxl_internal.h
|
||||
+++ b/tools/libs/light/libxl_internal.h
|
||||
@@ -2070,6 +2070,10 @@ _hidden char *libxl__object_to_json(libx
|
||||
@@ -2068,6 +2068,10 @@ _hidden char *libxl__object_to_json(libx
|
||||
_hidden int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool retore,
|
||||
libxl_domain_build_info *info);
|
||||
|
||||
|
222
xen.spec
222
xen.spec
@@ -29,58 +29,22 @@
|
||||
%{?!primary_python:%define primary_python python3}
|
||||
|
||||
Name: xen
|
||||
ExclusiveArch: %ix86 x86_64 aarch64
|
||||
%define xen_build_dir xen-4.20.0-testing
|
||||
ExclusiveArch: x86_64
|
||||
%define xen_build_dir xen-4.20.1-testing
|
||||
#
|
||||
%define with_gdbsx 0
|
||||
%define with_dom0_support 0
|
||||
%ifarch x86_64
|
||||
%bcond_without xen_debug
|
||||
%bcond_without xen_stubdom
|
||||
%else
|
||||
%bcond_with xen_debug
|
||||
%bcond_with xen_stubdom
|
||||
%endif
|
||||
#
|
||||
%define qemu_arch i386
|
||||
%ifarch x86_64
|
||||
%define with_gdbsx 1
|
||||
%define with_dom0_support 1
|
||||
%endif
|
||||
#
|
||||
%ifarch %arm aarch64
|
||||
%define with_dom0_support 1
|
||||
%define qemu_arch aarch64
|
||||
%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: pkgconfig(libsystemd)
|
||||
%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: bison
|
||||
BuildRequires: fdupes
|
||||
%if 0%{?suse_version} > 1315
|
||||
BuildRequires: figlet
|
||||
%endif
|
||||
BuildRequires: flex
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: libaio-devel
|
||||
@@ -91,12 +55,8 @@ 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: acpica
|
||||
BuildRequires: libzstd-devel
|
||||
BuildRequires: lzo-devel
|
||||
@@ -106,31 +66,21 @@ BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: xz-devel
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
%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
|
||||
BuildRequires: python-rpm-macros
|
||||
Provides: installhint(reboot-needed)
|
||||
|
||||
Version: 4.20.0_08
|
||||
Version: 4.20.1_02
|
||||
Release: 0
|
||||
Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel)
|
||||
License: GPL-2.0-only
|
||||
Group: System/Kernel
|
||||
Source0: xen-4.20.0-testing-src.tar.bz2
|
||||
Source0: xen-4.20.1-testing-src.tar.bz2
|
||||
Source1: stubdom.tar.bz2
|
||||
Source2: mini-os.tar.bz2
|
||||
Source9: xen.changes
|
||||
@@ -149,7 +99,6 @@ Source31: xenapiusers
|
||||
# Init script and sysconf file for pciback
|
||||
Source34: init.pciback
|
||||
Source35: sysconfig.pciback
|
||||
Source36: xen2libvirt.py
|
||||
# Systemd service files
|
||||
Source41: xencommons.service
|
||||
Source42: xen-dom0-modules.service
|
||||
@@ -168,9 +117,8 @@ 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: ignore-ip-command-script-errors.patch
|
||||
Patch406: replace-obsolete-network-configuration-commands-in-s.patch
|
||||
Patch407: ignore-ip-command-script-errors.patch
|
||||
# Needs to go upstream
|
||||
Patch420: suspend_evtchn_lock.patch
|
||||
# Other bug fixes or features
|
||||
@@ -178,21 +126,19 @@ Patch450: xen.sysconfig-fillup.patch
|
||||
Patch451: xenconsole-no-multiple-connections.patch
|
||||
Patch452: hibernate.patch
|
||||
Patch453: xl-save-pc.patch
|
||||
Patch454: pygrub-boot-legacy-sles.patch
|
||||
Patch455: pygrub-handle-one-line-menu-entries.patch
|
||||
Patch461: libxl.max_event_channels.patch
|
||||
Patch463: libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
|
||||
Patch464: xen.libxl.dmmd.patch
|
||||
Patch465: xenstore-run-in-studomain.patch
|
||||
Patch466: libxl.helper_done-crash.patch
|
||||
Patch467: libxl.LIBXL_HOTPLUG_TIMEOUT.patch
|
||||
# python3 conversion patches
|
||||
Patch500: build-python3-conversion.patch
|
||||
Patch466: xenstore-run-in-pvh-mode.patch
|
||||
Patch467: libxl.helper_done-crash.patch
|
||||
Patch468: libxl.LIBXL_HOTPLUG_TIMEOUT.patch
|
||||
# Hypervisor and PV driver Patches
|
||||
Patch600: xen.bug1026236.suse_vtsc_tolerance.patch
|
||||
Patch601: x86-ioapic-ack-default.patch
|
||||
Patch602: xenwatchdogd-restart.patch
|
||||
Patch621: xen.build-compare.doc_html.patch
|
||||
Patch622: disable-pv-support.patch
|
||||
# Build patches
|
||||
URL: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@@ -207,6 +153,7 @@ This package contains the Xen Hypervisor. (tm)
|
||||
|
||||
[Hypervisor is a trademark of IBM]
|
||||
|
||||
|
||||
%package libs
|
||||
Summary: Xen Virtualization: Libraries
|
||||
License: GPL-2.0-only
|
||||
@@ -229,8 +176,6 @@ Authors:
|
||||
Ian Pratt <ian.pratt@cl.cam.ac.uk>
|
||||
|
||||
|
||||
%if %{?with_dom0_support}0
|
||||
|
||||
%package tools
|
||||
Summary: Xen Virtualization: Control tools for domain 0
|
||||
License: GPL-2.0-only
|
||||
@@ -238,28 +183,11 @@ Group: System/Kernel
|
||||
%if 0%{?suse_version} > 1500
|
||||
BuildRequires: pam-devel
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%if 0%{?suse_version} >= 1315
|
||||
Requires: grub2-x86_64-xen
|
||||
%endif
|
||||
Recommends: qemu-ovmf-x86_64
|
||||
Requires: qemu-x86
|
||||
%endif
|
||||
%ifarch %arm aarch64
|
||||
Requires: qemu-arm
|
||||
%endif
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Recommends: multipath-tools
|
||||
Requires: %{primary_python}
|
||||
Requires: %{primary_python}-curses
|
||||
%ifarch %{ix86} x86_64
|
||||
Requires: qemu-seabios
|
||||
%endif
|
||||
# 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
|
||||
@@ -278,7 +206,6 @@ Authors:
|
||||
Ian Pratt <ian.pratt@cl.cam.ac.uk>
|
||||
|
||||
|
||||
%ifarch x86_64
|
||||
%package tools-xendomains-wait-disk
|
||||
Summary: Adds a new xendomains-wait-disks.service
|
||||
License: GPL-3.0-or-later
|
||||
@@ -301,9 +228,7 @@ xendomains.service, but it adds itself as a Wanted service for xendomains.
|
||||
If xendomains-wait-disks.service fails, xendomains.service is launched anyway.
|
||||
|
||||
https://github.com/luizluca/xen-tools-xendomains-wait-disk
|
||||
%endif
|
||||
|
||||
%endif
|
||||
|
||||
%package tools-domU
|
||||
Summary: Xen Virtualization: Control tools for domain U
|
||||
@@ -321,11 +246,11 @@ 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
|
||||
License: GPL-2.0-only
|
||||
@@ -342,12 +267,10 @@ 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
|
||||
@@ -363,11 +286,10 @@ xen-doc-html contains the online documentation in HTML format. Point
|
||||
your browser at file:/usr/share/doc/packages/xen/html/
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Ian Pratt <ian.pratt@cl.cam.ac.uk>
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n %xen_build_dir -a 1 -a 2
|
||||
@@ -404,12 +326,6 @@ cat > .our_xenversion <<_EOV_
|
||||
export WGET=$(type -P false)
|
||||
export FTP=$(type -P false)
|
||||
export GIT=$(type -P false)
|
||||
%ifarch aarch64
|
||||
# GCC10+ enables outline-atomics option by default and breaks the build, so disable it
|
||||
%if 0%{?suse_version} >= 1550
|
||||
export CFLAGS="%{optflags} -mno-outline-atomics"
|
||||
%endif
|
||||
%endif
|
||||
export EXTRA_CFLAGS_XEN_TOOLS="%{optflags}"
|
||||
export EXTRA_CFLAGS_QEMU_TRADITIONAL="%{optflags}"
|
||||
export SMBIOS_REL_DATE="$SMBIOS_REL_DATE"
|
||||
@@ -445,7 +361,7 @@ sed -i~ 's/ XENSTORETYPE=domain$/ XENSTORETYPE=daemon/' tools/hotplug/Linux/laun
|
||||
configure_flags="${configure_flags} --disable-stubdom"
|
||||
%endif
|
||||
export PYTHON=$(realpath /usr/bin/python3)
|
||||
configure_flags="${configure_flags} --disable-qemu-traditional"
|
||||
configure_flags="${configure_flags} --disable-qemu-traditional --disable-seabios --disable-pygrub"
|
||||
./configure \
|
||||
--disable-xen \
|
||||
--disable-pvshim \
|
||||
@@ -467,8 +383,6 @@ configure_flags="${configure_flags} --disable-qemu-traditional"
|
||||
--enable-systemd \
|
||||
--with-systemd=%{_unitdir} \
|
||||
--with-systemd-modules-load=%{with_systemd_modules_load} \
|
||||
--with-system-ovmf=%{_datadir}/qemu/ovmf-x86_64-xen-4m.bin \
|
||||
--with-system-seabios=%{_datadir}/qemu/bios-256k.bin \
|
||||
${configure_flags}
|
||||
make -C tools/include/xen-foreign %{?_smp_mflags}
|
||||
make %{?_smp_mflags}
|
||||
@@ -574,7 +488,6 @@ _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
|
||||
@@ -642,10 +555,6 @@ 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)
|
||||
@@ -657,7 +566,6 @@ _EOF_
|
||||
chmod 755 ${udev_programdir}/*.sh
|
||||
|
||||
# EFI
|
||||
%if %{?with_dom0_support}0
|
||||
arch=`uname -m`
|
||||
install_xen()
|
||||
{
|
||||
@@ -695,12 +603,6 @@ install_xen()
|
||||
}
|
||||
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
|
||||
echo CONFIG_REQUIRE_NX=y > xen/.config
|
||||
echo CONFIG_DIT_DEFAULT=y >> xen/.config
|
||||
@@ -718,23 +620,6 @@ yes '' | make -C xen oldconfig
|
||||
make -C xen install XEN_BUILD_DATE="$XEN_BUILD_DATE" XEN_BUILD_TIME="$XEN_BUILD_TIME" 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 aarch64
|
||||
hardcoded_path_in_existing_domU_xml='%{_libexecdir}/%{name}/bin'
|
||||
mkdir -vp %{buildroot}${hardcoded_path_in_existing_domU_xml}
|
||||
tee %{buildroot}${hardcoded_path_in_existing_domU_xml}/qemu-system-%{qemu_arch} << 'EOF'
|
||||
#!/bin/sh
|
||||
|
||||
exec %{_bindir}/qemu-system-%{qemu_arch} "$@"
|
||||
EOF
|
||||
chmod 0755 %{buildroot}${hardcoded_path_in_existing_domU_xml}/qemu-system-%{qemu_arch}
|
||||
|
||||
#
|
||||
unit='%{_libexecdir}/%{name}/bin/xendomains-wait-disks'
|
||||
@@ -749,7 +634,7 @@ Description=Xendomains - for those machines that will start, wait for their disk
|
||||
Requires=proc-xen.mount xenstored.service
|
||||
After=proc-xen.mount xenstored.service xenconsoled.service xen-init-dom0.service
|
||||
After=network-online.target
|
||||
After=remote-fs.target
|
||||
After=remote-fs.target
|
||||
Before=xendomains.service
|
||||
ConditionPathExists=/proc/xen/capabilities
|
||||
|
||||
@@ -762,10 +647,8 @@ TimeoutSec=5min
|
||||
WantedBy=xendomains.service
|
||||
_EOS_
|
||||
#
|
||||
%endif
|
||||
|
||||
# Stubdom
|
||||
%if %{?with_dom0_support}0
|
||||
# Docs
|
||||
mkdir -p %{buildroot}/%{_defaultdocdir}/xen/misc
|
||||
for name in COPYING %SOURCE10 %SOURCE11 %SOURCE12; do
|
||||
@@ -777,7 +660,6 @@ for name in vtpm-platforms.txt crashdb.txt xenpaging.txt \
|
||||
done
|
||||
|
||||
# Xen utilities
|
||||
install -m755 %SOURCE36 %{buildroot}/usr/sbin/xen2libvirt
|
||||
install -m755 %SOURCE10183 %{buildroot}/usr/sbin/xen_maskcalc
|
||||
%python3_fix_shebang
|
||||
|
||||
@@ -790,7 +672,6 @@ rm -f %{buildroot}/etc/xen/examples/*nbd
|
||||
# Scripts
|
||||
rm -f %{buildroot}/etc/xen/scripts/block-*nbd
|
||||
install -m755 %SOURCE21 %SOURCE22 %SOURCE23 %SOURCE24 %{buildroot}/etc/xen/scripts/
|
||||
install -m755 tools/pygrub/src/pygrub %{buildroot}/usr/bin/pygrub
|
||||
mkdir -p %{buildroot}/usr/lib/supportconfig/plugins
|
||||
install -m 755 %SOURCE13 %{buildroot}/usr/lib/supportconfig/plugins/xen
|
||||
|
||||
@@ -869,9 +750,6 @@ find %{buildroot} \( \
|
||||
-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 \
|
||||
@@ -899,34 +777,6 @@ find %{buildroot} -name xendriverdomain.service -print -delete
|
||||
%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}/%{_libexecdir}/%{name}
|
||||
rm -rf %{buildroot}/%{_libdir}/python*
|
||||
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}/%{_datadir}/bash-completion/completions/xl
|
||||
rm -f %{buildroot}/%{_sysconfdir}/init.d/xen*
|
||||
rm -f %{buildroot}/%{_bindir}/*trace*
|
||||
rm -f %{buildroot}/%{_bindir}/vchan-socket-proxy
|
||||
rm -f %{buildroot}/%{_bindir}/xenalyze*
|
||||
rm -f %{buildroot}/%{_bindir}/xenco*
|
||||
rm -f %{buildroot}/%{_bindir}/xen-cpuid
|
||||
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)
|
||||
@@ -934,25 +784,17 @@ rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
|
||||
%{_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/xenstore*
|
||||
/usr/bin/pygrub
|
||||
/usr/bin/vchan-socket-proxy
|
||||
/usr/bin/xencov_split
|
||||
%ifarch x86_64
|
||||
/usr/bin/xen-cpuid
|
||||
%endif
|
||||
/usr/sbin/xenbaked
|
||||
/usr/sbin/xenconsoled
|
||||
/usr/sbin/xencov
|
||||
@@ -973,14 +815,10 @@ rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
|
||||
/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
|
||||
/usr/sbin/xen-access
|
||||
/usr/sbin/xen_maskcalc
|
||||
%ifarch %ix86 x86_64
|
||||
/usr/sbin/xen-hptool
|
||||
/usr/sbin/xen-hvmcrash
|
||||
/usr/sbin/xen-hvmctx
|
||||
@@ -990,7 +828,6 @@ rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
|
||||
/usr/sbin/xen-ucode
|
||||
/usr/sbin/xen-mceinj
|
||||
/usr/sbin/xen-vmtrace
|
||||
%endif
|
||||
/usr/sbin/xenhypfs
|
||||
/usr/sbin/xen-livepatch
|
||||
/usr/sbin/xen-diag
|
||||
@@ -1015,10 +852,8 @@ rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
|
||||
%dir %{_libexecdir}/%{name}
|
||||
%{_libexecdir}/%{name}/bin
|
||||
%exclude %{_libexecdir}/%{name}-tools-domU
|
||||
%ifarch x86_64
|
||||
%{_libexecdir}/%{name}/boot
|
||||
%exclude %{_libexecdir}/%{name}/bin/xendomains-wait-disks
|
||||
%endif
|
||||
%{_fillupdir}/sysconfig.pciback
|
||||
%{_fillupdir}/sysconfig.xencommons
|
||||
%{_fillupdir}/sysconfig.xendomains
|
||||
@@ -1026,9 +861,7 @@ rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
|
||||
%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
|
||||
@@ -1050,15 +883,12 @@ rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
|
||||
%exclude %{_unitdir}/xendomains-wait-disks.service
|
||||
%config %{with_systemd_modules_load}
|
||||
%{_datadir}/bash-completion/completions/xl
|
||||
%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/util.py
|
||||
%{_libdir}/python%{pyver}/site-packages/xen/lowlevel/*
|
||||
%{_libdir}/python%{pyver}/site-packages/xen/migration/*
|
||||
%{_libdir}/python%{pyver}/site-packages/*.so
|
||||
%dir %{_defaultdocdir}/xen
|
||||
%{_defaultdocdir}/xen/COPYING
|
||||
%{_defaultdocdir}/xen/README.SUSE
|
||||
@@ -1066,29 +896,21 @@ rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
|
||||
%{_defaultdocdir}/xen/boot.xen
|
||||
%{_mandir}/man*/*
|
||||
|
||||
%ifarch x86_64
|
||||
%files tools-xendomains-wait-disk
|
||||
%license xendomains-wait-disk/LICENSE
|
||||
%doc xendomains-wait-disk/README.md
|
||||
%config %{_unitdir}/xendomains-wait-disks.service
|
||||
%config %attr(0755,root,root) %{_libexecdir}/%{name}/bin/xendomains-wait-disks
|
||||
%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
|
||||
%exclude /usr/bin/xenstore-control
|
||||
%endif
|
||||
/usr/bin/xenstore*
|
||||
%if %{?with_dom0_support}0
|
||||
%config %{_unitdir}/%{name}-vcpu-watch.service
|
||||
%endif
|
||||
%{_libexecdir}/%{name}-tools-domU
|
||||
/usr/lib/udev
|
||||
/usr/lib/dracut
|
||||
@@ -1114,8 +936,6 @@ rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
|
||||
%{_libdir}/pkgconfig/xentoollog.pc
|
||||
%{_libdir}/pkgconfig/xenvchan.pc
|
||||
|
||||
%if %{?with_dom0_support}0
|
||||
|
||||
%files doc-html
|
||||
%defattr(-,root,root)
|
||||
%dir %{_defaultdocdir}/xen
|
||||
@@ -1135,7 +955,6 @@ fi
|
||||
%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
|
||||
%if 0%{?suse_version} > 1500
|
||||
# Prepare for migration to /usr/etc; save any old .rpmsave
|
||||
for i in logrotate.d/xen pam.d/xen-api ; do
|
||||
@@ -1161,16 +980,12 @@ done
|
||||
%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 /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 %{_datadir}/grub2/i386-xen/grub.xen ] && [ ! -f %{_libexecdir}/%{name}/boot/pvgrub32.bin ]; then
|
||||
ln -sv %{_datadir}/grub2/i386-xen/grub.xen %{_libexecdir}/%{name}/boot/pvgrub32.bin
|
||||
echo 'GRUB_CMDLINE_XEN_DEFAULT="dom0=pvh"' >> /etc/default/grub
|
||||
fi
|
||||
if [ -f %{_datadir}/grub2/x86_64-xen/grub.xen ] && [ ! -f %{_libexecdir}/%{name}/boot/pvgrub64.bin ]; then
|
||||
ln -sv %{_datadir}/grub2/x86_64-xen/grub.xen %{_libexecdir}/%{name}/boot/pvgrub64.bin
|
||||
@@ -1184,7 +999,6 @@ fi
|
||||
%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
|
||||
%if %{defined service_del_postun_without_restart}
|
||||
@@ -1195,7 +1009,6 @@ fi
|
||||
%service_del_postun_without_restart xen-dom0-modules.service
|
||||
%service_del_postun_without_restart xenconsoled.service
|
||||
%service_del_postun_without_restart xen-init-dom0.service
|
||||
%service_del_postun_without_restart xen-qemu-dom0-disk-backend.service
|
||||
%else
|
||||
export DISABLE_RESTART_ON_UPDATE=yes
|
||||
%service_del_postun xencommons.service
|
||||
@@ -1205,9 +1018,6 @@ export DISABLE_RESTART_ON_UPDATE=yes
|
||||
%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
|
||||
|
||||
%endif
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
137
xen2libvirt.py
137
xen2libvirt.py
@@ -1,137 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (C) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library. If not, see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Authors:
|
||||
# Jim Fehlig <jfehlig@suse.com>
|
||||
#
|
||||
# Read native Xen configuration format, convert to libvirt domXML, and
|
||||
# import (virsh define <xml>) into libvirt.
|
||||
|
||||
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import re
|
||||
from xml.etree import ElementTree
|
||||
|
||||
try:
|
||||
import libvirt
|
||||
except ImportError:
|
||||
print('Unable to import the libvirt module. Is libvirt-python installed?')
|
||||
sys.exit(1)
|
||||
|
||||
parser = argparse.ArgumentParser(description='Import Xen domain configuration into libvirt')
|
||||
parser.add_argument('-c', '--convert-only', help='Convert Xen domain configuration into libvirt domXML, but do not import into libvirt', action='store_true', dest='convert_only')
|
||||
parser.add_argument('-r', '--recursive', help='Operate recursivelly on all Xen domain configuration rooted at path', action='store_true')
|
||||
parser.add_argument('-f', '--format', help='Format of Xen domain configuration. Supported formats are xm and sexpr', choices=['xm', 'sexpr'], default=None)
|
||||
parser.add_argument('-v', '--verbose', help='Print information about the import process', action='store_true')
|
||||
parser.add_argument('path', help='Path to Xen domain configuration')
|
||||
|
||||
|
||||
def print_verbose(msg):
|
||||
if args.verbose:
|
||||
print(msg)
|
||||
|
||||
|
||||
def check_config(path, config):
|
||||
isbinary = os.system('file -b ' + path + ' | grep text > /dev/null')
|
||||
|
||||
if isbinary:
|
||||
print('Skipping %s (not a valid Xen configuration file)' % path)
|
||||
return 'unknown'
|
||||
|
||||
for line in config.splitlines():
|
||||
if len(line) == 0 or line.startswith('#'):
|
||||
continue
|
||||
if line.startswith('<domain'):
|
||||
# XML is not a supported conversion format
|
||||
break
|
||||
if line.startswith('(domain'):
|
||||
print('Found sexpr formatted file %s' % path)
|
||||
return 'sexpr'
|
||||
if '=' in line:
|
||||
print('Found xm formatted file %s' % path)
|
||||
return 'xm'
|
||||
break
|
||||
|
||||
print('Skipping %s (not a valid Xen configuration file)' % path)
|
||||
return 'unknown'
|
||||
|
||||
|
||||
def import_domain(conn, path, format=None, convert_only=False):
|
||||
|
||||
f = open(path, 'r')
|
||||
config = f.read()
|
||||
print_verbose('Xen domain configuration read from %s:\n %s' % (path, config))
|
||||
if format is None:
|
||||
format = check_config(path, config)
|
||||
|
||||
if format == 'sexpr':
|
||||
print_verbose('scrubbing domid from configuration')
|
||||
config = re.sub("\(domid [0-9]*\)", "", config)
|
||||
print_verbose('scrubbed sexpr:\n %s' % config)
|
||||
xml = conn.domainXMLFromNative('xen-sxpr', config, 0)
|
||||
elif format == 'xm':
|
||||
xml = conn.domainXMLFromNative('xen-xm', config, 0)
|
||||
else:
|
||||
# Return to continue on to next file (if recursive)
|
||||
return
|
||||
|
||||
f.close()
|
||||
|
||||
# domUloader is no longer available in SLES12, replace with pygrub
|
||||
tree = ElementTree.fromstring(xml)
|
||||
bl = tree.find('.//bootloader')
|
||||
if bl is not None and bl.text is not None and 'domUloader' in bl.text:
|
||||
bl.text = 'pygrub'
|
||||
xml = ElementTree.tostring(tree)
|
||||
|
||||
print_verbose('Successfully converted Xen domain configuration to '
|
||||
'libvirt domXML:\n %s' % xml)
|
||||
if convert_only:
|
||||
print(xml)
|
||||
else:
|
||||
print_verbose('Importing converted libvirt domXML into libvirt...')
|
||||
dom = conn.defineXML(xml.decode("utf-8"))
|
||||
if dom is None:
|
||||
print('Failed to define domain from converted domXML')
|
||||
sys.exit(1)
|
||||
print_verbose('domXML successfully imported into libvirt')
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
path = args.path
|
||||
|
||||
# Connect to libvirt
|
||||
conn = libvirt.open(None)
|
||||
if conn is None:
|
||||
print('Failed to open connection to the hypervisor')
|
||||
sys.exit(1)
|
||||
|
||||
if args.recursive:
|
||||
try:
|
||||
for root, dirs, files in os.walk(path):
|
||||
for name in files:
|
||||
abs_name = os.path.join(root, name)
|
||||
print_verbose('Processing file %s' % abs_name)
|
||||
import_domain(conn, abs_name, args.format, args.convert_only)
|
||||
except IOError:
|
||||
print('Failed to open/read path %s' % path)
|
||||
sys.exit(1)
|
||||
else:
|
||||
import_domain(conn, args.path, args.format, args.convert_only)
|
26
xenstore-run-in-pvh-mode.patch
Normal file
26
xenstore-run-in-pvh-mode.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
Index: xen-4.20.0-testing/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
|
||||
===================================================================
|
||||
--- xen-4.20.0-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
|
||||
+++ xen-4.20.0-testing/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
|
||||
@@ -73,7 +73,7 @@ XENSTORED_TRACE=
|
||||
#XENSTORED_OOM_MEM_THRESHOLD=50
|
||||
|
||||
## Type: string
|
||||
-## Default: @LIBEXEC@/boot/xenstore-stubdom.gz
|
||||
+## Default: @LIBEXEC@/boot/xenstorepvh-stubdom.gz
|
||||
#
|
||||
# xenstore domain kernel.
|
||||
# Only evaluated if XENSTORETYPE is "domain".
|
||||
Index: xen-4.20.0-testing/tools/hotplug/Linux/launch-xenstore.in
|
||||
===================================================================
|
||||
--- xen-4.20.0-testing.orig/tools/hotplug/Linux/launch-xenstore.in
|
||||
+++ xen-4.20.0-testing/tools/hotplug/Linux/launch-xenstore.in
|
||||
@@ -93,7 +93,7 @@ test -f @CONFIG_DIR@/@CONFIG_LEAF_DIR@/x
|
||||
}
|
||||
|
||||
[ "$XENSTORETYPE" = "domain" ] && {
|
||||
- [ -z "$XENSTORE_DOMAIN_KERNEL" ] && XENSTORE_DOMAIN_KERNEL=@LIBEXEC@/boot/xenstore-stubdom.gz
|
||||
+ [ -z "$XENSTORE_DOMAIN_KERNEL" ] && XENSTORE_DOMAIN_KERNEL=@LIBEXEC@/boot/xenstorepvh-stubdom.gz
|
||||
XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS --kernel $XENSTORE_DOMAIN_KERNEL"
|
||||
[ -z "$XENSTORE_DOMAIN_SIZE" ] && XENSTORE_DOMAIN_SIZE=32
|
||||
XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS --memory $XENSTORE_DOMAIN_SIZE"
|
@@ -67,7 +67,7 @@ Keep going if the event type and shutdown reason remains the same.
|
||||
int fd;
|
||||
uint8_t *config_data;
|
||||
int config_len;
|
||||
@@ -144,12 +147,24 @@ static int save_domain(uint32_t domid, i
|
||||
@@ -143,12 +146,24 @@ static int save_domain(uint32_t domid, i
|
||||
fprintf(stderr, "Failed to open temp file %s for writing\n", filename);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
Reference in New Issue
Block a user