--- /dev/null
+Adjust types and sizes for 32-bit pointers
+--- xen-4.14.3/tools/golang/xenlight/gengotypes.py.orig 2021-09-10 14:30:40.000000000 +0200
++++ xen-4.14.3/tools/golang/xenlight/gengotypes.py 2021-11-07 17:39:55.516237472 +0100
+@@ -426,7 +426,7 @@
+ s += 'x.{0} = nil\n'.format(goname)
+ s += 'if n := int(xc.{0}); n > 0 {{\n'.format(clenvar)
+ s += '{0} := '.format(cslice)
+- s +='(*[1<<28]C.{0})(unsafe.Pointer(xc.{1}))[:n:n]\n'.format(ctypename, cname)
++ s +='(*[(1<<22)]C.{0})(unsafe.Pointer(xc.{1}))[:n:n]\n'.format(ctypename, cname)
+ s += 'x.{0} = make([]{1}, n)\n'.format(goname, gotypename)
+ s += 'for i, v := range {0} {{\n'.format(cslice)
+
+@@ -603,7 +603,7 @@
+ s += 'xc.{0} = (*C.{1})(C.malloc(C.size_t({2}*{3})))\n'.format(cname,ctypename,
+ golenvar,golenvar)
+ s += 'xc.{0} = C.int({1})\n'.format(clenvar,golenvar)
+- s += 'c{0} := (*[1<<28]C.{1})(unsafe.Pointer(xc.{2}))[:{3}:{4}]\n'.format(goname,
++ s += 'c{0} := (*[(1<<22)]C.{1})(unsafe.Pointer(xc.{2}))[:{3}:{4}]\n'.format(goname,
+ ctypename,cname,
+ golenvar,golenvar)
+ s += 'for i,v := range x.{0} {{\n'.format(goname)
+@@ -613,10 +613,10 @@
+ return s
+
+ s += 'if {0} := len(x.{1}); {2} > 0 {{\n'.format(golenvar,goname,golenvar)
+- s += 'xc.{0} = (*C.{1})(C.malloc(C.ulong({2})*C.sizeof_{3}))\n'.format(cname,ctypename,
++ s += 'xc.{0} = (*C.{1})(C.malloc(C.size_t({2})*C.sizeof_{3}))\n'.format(cname,ctypename,
+ golenvar,ctypename)
+ s += 'xc.{0} = C.int({1})\n'.format(clenvar,golenvar)
+- s += 'c{0} := (*[1<<28]C.{1})(unsafe.Pointer(xc.{2}))[:{3}:{4}]\n'.format(goname,
++ s += 'c{0} := (*[(1<<22)]C.{1})(unsafe.Pointer(xc.{2}))[:{3}:{4}]\n'.format(goname,
+ ctypename,cname,
+ golenvar,golenvar)
+ s += 'for i,v := range x.{0} {{\n'.format(goname)
+--- xen-4.14.3/tools/golang/xenlight/xenlight.go.orig 2021-09-10 14:30:40.000000000 +0200
++++ xen-4.14.3/tools/golang/xenlight/xenlight.go 2021-11-07 17:46:36.600731277 +0100
+@@ -478,7 +478,7 @@ type StringList []string
+
+ func (sl *StringList) fromC(csl *C.libxl_string_list) error {
+ size := int(C.libxl_string_list_length(csl))
+- list := (*[1 << 30]*C.char)(unsafe.Pointer(csl))[:size:size]
++ list := (*[1 << 28]*C.char)(unsafe.Pointer(csl))[:size:size]
+
+ *sl = make([]string, size)
+
+@@ -492,8 +492,8 @@ func (sl *StringList) fromC(csl *C.libxl
+ func (sl StringList) toC(csl *C.libxl_string_list) error {
+ var char *C.char
+ size := len(sl)
+- *csl = (C.libxl_string_list)(C.malloc(C.ulong(size) * C.ulong(unsafe.Sizeof(char))))
+- clist := (*[1 << 30]*C.char)(unsafe.Pointer(csl))[:size:size]
++ *csl = (C.libxl_string_list)(C.malloc(C.size_t(size) * C.size_t(unsafe.Sizeof(char))))
++ clist := (*[1 << 28]*C.char)(unsafe.Pointer(csl))[:size:size]
+
+ for i, v := range sl {
+ clist[i] = C.CString(v)
+@@ -537,8 +537,8 @@ func (bm *Bitmap) toC(cbm *C.libxl_bitma
+ size := len(bm.bitmap)
+ cbm.size = C.uint32_t(size)
+ if cbm.size > 0 {
+- cbm._map = (*C.uint8_t)(C.malloc(C.ulong(cbm.size) * C.sizeof_uint8_t))
+- cs := (*[1 << 31]C.uint8_t)(unsafe.Pointer(cbm._map))[:size:size]
++ cbm._map = (*C.uint8_t)(C.malloc(C.size_t(cbm.size) * C.sizeof_uint8_t))
++ cs := (*[1 << 30]C.uint8_t)(unsafe.Pointer(cbm._map))[:size:size]
+
+ copy(cs, bm.bitmap)
+ }
+@@ -605,7 +605,7 @@ func (Ctx *Context) ListCpupool() (list
+ }
+
+ // Magic
+- cpupoolListSlice := (*[1 << 30]C.libxl_cpupoolinfo)(unsafe.Pointer(c_cpupool_list))[:nbPool:nbPool]
++ cpupoolListSlice := (*[1 << 26]C.libxl_cpupoolinfo)(unsafe.Pointer(c_cpupool_list))[:nbPool:nbPool]
+ for i := range cpupoolListSlice {
+ var info Cpupoolinfo
+ _ = info.fromC(&cpupoolListSlice[i])
+@@ -1081,7 +1081,7 @@ func (Ctx *Context) ListDomain() (glist
+ return
+ }
+
+- gslice := (*[1 << 30]C.libxl_dominfo)(unsafe.Pointer(clist))[:nbDomain:nbDomain]
++ gslice := (*[1 << 24]C.libxl_dominfo)(unsafe.Pointer(clist))[:nbDomain:nbDomain]
+ for i := range gslice {
+ var info Dominfo
+ _ = info.fromC(&gslice[i])
+@@ -1105,7 +1105,7 @@ func (Ctx *Context) ListVcpu(id Domid) (
+ return
+ }
+
+- gslice := (*[1 << 30]C.libxl_vcpuinfo)(unsafe.Pointer(clist))[:nbVcpu:nbVcpu]
++ gslice := (*[1 << 25]C.libxl_vcpuinfo)(unsafe.Pointer(clist))[:nbVcpu:nbVcpu]
+ for i := range gslice {
+ var info Vcpuinfo
+ _ = info.fromC(&gslice[i])
%bcond_without sdl # SDL support in Xen qemu
%bcond_without bluetooth # bluetooth support in Xen qemu
%bcond_without brlapi # brlapi support in Xen qemu
+%bcond_with golang # Go library
%bcond_without ocaml # Ocaml libraries for Xen tools
%bcond_without efi # EFI hypervisor
%bcond_without hypervisor # Xen hypervisor build
Summary: Xen - a virtual machine monitor
Summary(pl.UTF-8): Xen - monitor maszyny wirtualnej
Name: xen
-Version: 4.13.4
+Version: 4.14.3
Release: 1
License: GPL v2, interface parts on BSD-like
Group: Applications/System
# for available versions see https://www.xenproject.org/developers/teams/hypervisor.html
Source0: https://downloads.xenproject.org/release/xen/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 2ea8d0237b48b05af915131d7280b890
+# Source0-md5: c6ec0bf5fb2969c1aab4c8c8a9b47950
# used by stubdoms
Source10: %{xen_extfiles_url}/lwip-1.3.0.tar.gz
# Source10-md5: 36cc57650cffda9a0269493be2a169bb
Patch14: gcc9.patch
Patch15: gcc10.patch
Patch16: ocaml-4.12.patch
+Patch17: %{name}-golang-32bit.patch
URL: http://www.xen.org/products/xenhyp.html
BuildRequires: autoconf >= 2.67
%ifarch %{ix86} %{x8664}
BuildRequires: cmake >= 2.4
BuildRequires: e2fsprogs-devel
BuildRequires: fig2dev
-BuildRequires: gcc >= 6:4.1
+BuildRequires: gcc >= 6:4.8
%ifarch %{x8664}
BuildRequires: gcc-multilib-32 >= 6:4.1
%endif
BuildRequires: gettext-tools
+%{?with_golang:BuildRequires: golang >= 1.11}
BuildRequires: libaio-devel
%ifarch %{arm} aarch64
BuildRequires: libfdt-devel >= 1.4.0
BuildRequires: perl-base
BuildRequires: perl-tools-pod
BuildRequires: pkgconfig
-BuildRequires: python-devel >= 1:2.6
+BuildRequires: python-devel >= 1:2.7
BuildRequires: python-markdown
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.647
%patch15 -p1
%endif
%patch16 -p1
+%ifarch %{ix86} %{arm}
+%patch17 -p1
+%endif
# stubdom sources
ln -s %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} stubdom
%configure \
CPPFLAGS="%{rpmcppflags} -I/usr/include/ncurses" \
+ PYTHON=%{__python} \
ac_cv_lib_gcrypt_gcry_md_hash_buffer=no \
ac_cv_lib_iconv_libiconv_open=no \
--disable-debug \
+ %{!?with_golang:--disable-golang} \
%{__enable_disable qemu_traditional qemu-traditional} \
--with-system-seabios=/usr/share/seabios/bios.bin \
%ifarch %{x8664}
# remove unneeded files
%if %{with hypervisor}
%{__mv} xen/xen-syms $RPM_BUILD_ROOT/boot/%{name}-syms-%{version}
-%{__rm} $RPM_BUILD_ROOT/boot/xen-4.13.gz
+%{__rm} $RPM_BUILD_ROOT/boot/xen-4.14.gz
%{__rm} $RPM_BUILD_ROOT/boot/xen-4.gz
%endif
%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/xen
%attr(755,root,root) %{_bindir}/qemu-img-xen
%attr(755,root,root) %{_bindir}/qemu-nbd-xen
%endif
+%attr(755,root,root) %{_bindir}/vchan-socket-proxy
%attr(755,root,root) %{_bindir}/xen-cpuid
%attr(755,root,root) %{_bindir}/xenalyze
%attr(755,root,root) %{_bindir}/xencons
%attr(755,root,root) %{_sbindir}/xenbaked
%attr(755,root,root) %{_sbindir}/xenconsoled
%attr(755,root,root) %{_sbindir}/xencov
+%attr(755,root,root) %{_sbindir}/xenhypfs
%attr(755,root,root) %{_sbindir}/xenlockprof
%attr(755,root,root) %{_sbindir}/xenmon
%attr(755,root,root) %{_sbindir}/xenperf
%{_libexecdir}/%{name}/boot/xen-shim
%endif
%attr(744,root,root) %{_libexecdir}/%{name}/boot/hvmloader
+%{_mandir}/man1/xenhypfs.1*
%{_mandir}/man1/xentop.1*
%{_mandir}/man1/xentrace_format.1*
%{_mandir}/man1/xl.1*
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libxenfsimage.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxenfsimage.so.4.13
+%attr(755,root,root) %ghost %{_libdir}/libxenfsimage.so.4.14
%attr(755,root,root) %{_libdir}/libxencall.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libxencall.so.1
%attr(755,root,root) %{_libdir}/libxenctrl.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxenctrl.so.4.13
+%attr(755,root,root) %ghost %{_libdir}/libxenctrl.so.4.14
%attr(755,root,root) %{_libdir}/libxendevicemodel.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libxendevicemodel.so.1
%attr(755,root,root) %{_libdir}/libxenevtchn.so.*.*
%attr(755,root,root) %{_libdir}/libxengnttab.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libxengnttab.so.1
%attr(755,root,root) %{_libdir}/libxenguest.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxenguest.so.4.13
+%attr(755,root,root) %ghost %{_libdir}/libxenguest.so.4.14
+%attr(755,root,root) %{_libdir}/libxenhypfs.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libxenhypfs.so.1
%attr(755,root,root) %{_libdir}/libxenlight.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxenlight.so.4.13
+%attr(755,root,root) %ghost %{_libdir}/libxenlight.so.4.14
%attr(755,root,root) %{_libdir}/libxenstat.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxenstat.so.4.13
+%attr(755,root,root) %ghost %{_libdir}/libxenstat.so.4.14
%attr(755,root,root) %{_libdir}/libxentoolcore.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libxentoolcore.so.1
%attr(755,root,root) %{_libdir}/libxentoollog.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libxentoollog.so.1
%attr(755,root,root) %{_libdir}/libxenvchan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxenvchan.so.4.13
+%attr(755,root,root) %ghost %{_libdir}/libxenvchan.so.4.14
%attr(755,root,root) %{_libdir}/libxlutil.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libxlutil.so.4.13
+%attr(755,root,root) %ghost %{_libdir}/libxlutil.so.4.14
%dir %{_libdir}/xenfsimage
%dir %{_libdir}/xenfsimage/ext2fs-lib
%dir %{_libdir}/xenfsimage/fat
%attr(755,root,root) %{_libdir}/libxenforeignmemory.so
%attr(755,root,root) %{_libdir}/libxengnttab.so
%attr(755,root,root) %{_libdir}/libxenguest.so
+%attr(755,root,root) %{_libdir}/libxenhypfs.so
%attr(755,root,root) %{_libdir}/libxenlight.so
%attr(755,root,root) %{_libdir}/libxenstat.so
%attr(755,root,root) %{_libdir}/libxenstore.so
%{_pkgconfigdir}/xenforeignmemory.pc
%{_pkgconfigdir}/xengnttab.pc
%{_pkgconfigdir}/xenguest.pc
+%{_pkgconfigdir}/xenhypfs.pc
%{_pkgconfigdir}/xenlight.pc
%{_pkgconfigdir}/xenstat.pc
%{_pkgconfigdir}/xenstore.pc
%{_libdir}/libxenforeignmemory.a
%{_libdir}/libxengnttab.a
%{_libdir}/libxenguest.a
+%{_libdir}/libxenhypfs.a
%{_libdir}/libxenlight.a
%{_libdir}/libxenvchan.a
%{_libdir}/libxenstat.a
%{_libdir}/libxentoollog.a
%{_libdir}/libxlutil.a
+# -n golang-xen
+# XXX: location?
+#%{_datadir}/gocode/src/golang.xenproject.org/xenlight
+
%if %{with ocaml}
%files -n ocaml-xen
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{py_sitedir}/xenfsimage.so
%dir %{py_sitedir}/xen
+%{py_sitedir}/xen/util.py[co]
%dir %{py_sitedir}/xen/lowlevel
%attr(755,root,root) %{py_sitedir}/xen/lowlevel/xc.so
%{py_sitedir}/xen/migration
%{py_sitedir}/grub
-%{py_sitedir}/pygrub-*.egg-info
-%{py_sitedir}/xen-*.egg-info
+%{py_sitedir}/pygrub-*-py*.egg-info
+%{py_sitedir}/xen-*-py*.egg-info
%files -n python-xen-guest
%defattr(644,root,root,755)