File xen.spec of Package xen
# norootforbuild
%define python_basename_xen python2
%define python_basename_qemuu python2
%define _lto_cflags %{nil}
%if ! %{defined _fillupdir}
%define _fillupdir /var/adm/fillup-templates
%endif
Name: xen
Version: 0
Release: 0
ExclusiveArch: %ix86 x86_64 %arm aarch64
#
%define with_hypervisor 0
#
%define xen_install_suffix %{nil}
%ifarch x86_64
%define xen_install_suffix .gz
%endif
#
%ifarch x86_64
%define with_hypervisor 1
%else
%endif
#
%bcond_without fdupes
%bcond_without xen_docs
%bcond_without xen_qemu_trad
%bcond_without xen_ovmf
%bcond_without xen_stubdom
%bcond_without xen_systemd
Requires(pre): %fillup_prereq
%if %{without xen_systemd}
Requires(pre): %insserv_prereq
%else
%systemd_requires
%endif
#
BuildRequires: xen-buildreq-qemu-xen
BuildRequires: xen-buildreq-tools-4.13
%if %{with xen_docs}
BuildRequires: xen-buildreq-docs
%endif
%if %{with xen_ovmf}
BuildRequires: xen-buildreq-ovmf
%endif
%if %{with xen_stubdom}
BuildRequires: xen-buildreq-stubdom
%endif
%if %{with xen_qemu_trad}
BuildRequires: xen-buildreq-qemu-xen-trad
%endif
License: GPL-2.0+
Group: System/Kernel
Summary: Xen Hypervisor
Source1000: stubdom.tar.xz
##
Url: https://www.xenproject.org/
%define xen_revision_full 708e83f0e7d1e32295fee58c71c1e972d4e61f56
%define xen_revision_short 708e83f0e7
%define xen_date_unix 1671437408
%define xen_date_commit 2022-12-19 09:10:08 +0100
%define qemu_xen_trad_revision_full d0d8ad39ecb51cd7497cd524484fe09f50876798
%define qemu_xen_trad_revision_short d0d8ad39
%define qemu_xen_trad_date_unix 1540394291
%define qemu_xen_trad_date_commit 2018-10-24 16:18:11 +0100
%define qemu_xen_revision_full 7269466a5b0c0e89b36dc9a7db0554ae404aa230
%define qemu_xen_revision_short 7269466a5b
%define qemu_xen_date_unix 1604676723
%define qemu_xen_date_commit 2020-11-06 15:32:03 +0000
%define keycodemapdb_revision_full 6b3d716e2b6472eb7189d3220552280ef3d832ce
%define keycodemapdb_revision_short 6b3d716
%define keycodemapdb_date_unix 1515765463
%define keycodemapdb_date_commit 2018-01-12 13:57:43 +0000
%define btestfloat3_revision_full 5a59dcec19327396a011a17fd924aed4fec416b3
%define btestfloat3_revision_short 5a59dce
%define btestfloat3_date_unix 1547748698
%define btestfloat3_date_commit 2019-01-17 13:11:38 -0500
%define seabios_revision_full a5cab58e9a3fb6e168aba919c5669bea406573b4
%define seabios_revision_short a5cab58e
%define seabios_date_unix 1552565513
%define seabios_date_commit 2019-03-14 13:11:53 +0100
%define minios_revision_full 0b4b7897e08b967a09bed2028a79fabff82342dd
%define minios_revision_short 0b4b789
%define minios_date_unix 1508496635
%define minios_date_commit 2017-10-20 11:50:35 +0100
%define ovmf_revision_full 20d2e5a125e34fc8501026613a71549b2a1a3e54
%define ovmf_revision_short 20d2e5a125
%define ovmf_date_unix 1559796702
%define ovmf_date_commit 2019-06-06 12:51:42 +0800
%define ipxe_revision_full 390bce9516ce3a4adf599762b6c965813332595e
%define ipxe_revision_short 390bce95
%define ipxe_date_unix 1710861239
%define ipxe_date_commit 2024-03-19 15:13:59 +0000
Patch1576631723: xen.0e7c69bd3c0b35a677d73843b39522787ccf5a3f.patch
Patch1592374121: xen.f1d376a825f4878eab0ef9cabe50ec4299968629.patch
Patch1603197568: xen.bb9afb7a465d3b7b438f2e11105409d24400f8f4.patch
Patch1608623954: xen.ee41b5c450032ae7f2531e18cd0a73bf5fb48803.patch
Patch1610625803: xen.84a37d24a9e962e9c2fa8eb4671ea60c0958157d.patch
Patch1620136734: xen.74a8d446f7dc1f18174f48597d7ebb04a634a120.patch
Patch1620138688: xen.27f32dbdb1b11d171f0fa4dfd3263b44e9f7c71c.patch
Patch1655281172: xen.80ad8db8a4d9bb24952f0aea788ce6f47566fa76.patch
Patch1682506316: xen.860fb990bd208f590b78d938ba874e867e1c2986.patch
Patch1682506359: xen.dde20f7dc182fdfeeb6c55648979326bb982ca8c.patch
Patch1525725200: xen.pvgrub-disable.patch
Patch1525725468: xen.build-compare-doc_html.patch
Patch1619186222: xen.launch-xenstore.patch
%if %suse_version > 1110
BuildRequires: python(abi) > 3.0
%endif
%define qemu_xen_trad_version d0d8ad39ecb51cd7497cd524484fe09f50876798
Patch1607958578: qemu_xen.bbd2d5a8120771ec59b86a80a1f51884e0a26e53.patch
%define qemu_xen_version 7269466a5b0c0e89b36dc9a7db0554ae404aa230
Patch1519206414: keycodemapdb.16e5b0787687d8904dad2c026107409eb9bfcb95.patch
%define keycodemapdb_version 6b3d716e2b6472eb7189d3220552280ef3d832ce
%define btestfloat3_version 5a59dcec19327396a011a17fd924aed4fec416b3
%define bsoftfloat3_version b64af41c3276f97f0e181920400ee056b9c88037
Patch1595431900: seabios.699a4e5d6919cc8eae5342443025ceb6909dc276.patch
Patch1621549128: seabios.6eff8085980dba0938cea0193b8a0fd3c6b0c4ca.patch
%define seabios_version a5cab58e9a3fb6e168aba919c5669bea406573b4
%define minios_version 0b4b7897e08b967a09bed2028a79fabff82342dd
Patch1648123474: ovmf.7b005f344e533cd913c3ca05b266f9872df886d1.patch
Patch1648123475: ovmf.85021f8cf22d1bd4114803c6c610dea5ef0059f1.patch
Patch1617269159: ovmf.Disable-brotli.patch
%define ovmf_version 20d2e5a125e34fc8501026613a71549b2a1a3e54
%define openssl_version 50eaac9f3337667259de725451f201e784599687
Patch1484818598: ipxe.stable-build-id.patch
%define ipxe_version 390bce9516ce3a4adf599762b6c965813332595e
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%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)
%package libs
Summary: Xen Virtualization: Libraries
Group: System/Kernel
%if 0%{with_hypervisor}
Requires: %{name} = %{version}-%{release}
%endif
%description libs
%package tools
Summary: Xen Virtualization: Control tools for domain 0
Group: System/Kernel
Requires: %{name}-libs = %{version}-%{release}
Requires: iproute2
Requires: multipath-tools
Requires: python
Requires: python-curses
Provides: xen-doc-html = %{version}-%{release}
Obsoletes: xen-doc-html
%description tools
%ifarch %ix86 x86_64
%package tools-domU
Summary: Xen Virtualization: Control tools for domain U
Group: System/Kernel
Requires: %{name}-libs = %{version}-%{release}
Conflicts: %{name}-tools
%description tools-domU
%endif
%package devel
Summary: Xen Virtualization: Headers and libraries for development
Group: System/Kernel
Requires: %{name}-libs = %{version}-%{release}
Requires: pkgconfig(uuid)
%description devel
%prep
rm -rf %_builddir/%name-%version
mv %_sourcedir/%name-%version %_builddir/%name-%version
%setup -c -T -D
pushd '.'
%patch -P 1576631723 -p1
%patch -P 1592374121 -p1
%patch -P 1603197568 -p1
%patch -P 1608623954 -p1
%patch -P 1610625803 -p1
%patch -P 1620136734 -p1
%patch -P 1620138688 -p1
%patch -P 1655281172 -p1
%patch -P 1682506316 -p1
%patch -P 1682506359 -p1
%patch -P 1525725200 -p1
%patch -P 1525725468 -p1
%patch -P 1619186222 -p1
popd
rm -rf './tools/qemu-xen-traditional-dir-remote'
mkdir -vp './tools'
mv -v '%_sourcedir/qemu_xen_trad-%qemu_xen_trad_version' './tools/qemu-xen-traditional-dir-remote'
rm -rf './tools/qemu-xen-dir-remote'
mkdir -vp './tools'
mv -v '%_sourcedir/qemu_xen-%qemu_xen_version' './tools/qemu-xen-dir-remote'
pushd './tools/qemu-xen-dir-remote'
%patch -P 1607958578 -p1
popd
rm -rf './tools/qemu-xen-dir-remote/ui/keycodemapdb'
mkdir -vp './tools/qemu-xen-dir-remote/ui'
mv -v '%_sourcedir/keycodemapdb-%keycodemapdb_version' './tools/qemu-xen-dir-remote/ui/keycodemapdb'
pushd './tools/qemu-xen-dir-remote/ui/keycodemapdb'
%patch -P 1519206414 -p1
popd
rm -rf './tools/qemu-xen-dir-remote/tests/fp/berkeley-testfloat-3'
mkdir -vp './tools/qemu-xen-dir-remote/tests/fp'
mv -v '%_sourcedir/btestfloat3-%btestfloat3_version' './tools/qemu-xen-dir-remote/tests/fp/berkeley-testfloat-3'
rm -rf './tools/qemu-xen-dir-remote/tests/fp/berkeley-softfloat-3'
mkdir -vp './tools/qemu-xen-dir-remote/tests/fp'
mv -v '%_sourcedir/bsoftfloat3-%bsoftfloat3_version' './tools/qemu-xen-dir-remote/tests/fp/berkeley-softfloat-3'
rm -rf './tools/firmware/seabios-dir-remote'
mkdir -vp './tools/firmware'
mv -v '%_sourcedir/seabios-%seabios_version' './tools/firmware/seabios-dir-remote'
pushd './tools/firmware/seabios-dir-remote'
%patch -P 1595431900 -p1
%patch -P 1621549128 -p1
popd
rm -rf './extras/mini-os-remote'
mkdir -vp './extras'
mv -v '%_sourcedir/minios-%minios_version' './extras/mini-os-remote'
rm -rf './tools/firmware/ovmf-dir-remote'
mkdir -vp './tools/firmware'
mv -v '%_sourcedir/ovmf-%ovmf_version' './tools/firmware/ovmf-dir-remote'
pushd './tools/firmware/ovmf-dir-remote'
%patch -P 1648123474 -p1
%patch -P 1648123475 -p1
%patch -P 1617269159 -p1
popd
rm -rf './tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl'
mkdir -vp './tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib'
mv -v '%_sourcedir/openssl-%openssl_version' './tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl'
rm -rf './tools/firmware/etherboot/ipxe'
mkdir -vp './tools/firmware/etherboot'
mv -v '%_sourcedir/ipxe-%ipxe_version' './tools/firmware/etherboot/ipxe'
pushd './tools/firmware/etherboot/ipxe'
%patch -P 1484818598 -p1
popd
if pushd subprojects/packagefiles 2>/dev/null
then
for prj in *
do
if pushd "${prj}" > /dev/null
then
for f in *
do
test -f "${f}" || continue
ln -vt "../../${prj}/" *
break
done
popd > /dev/null
fi
done
popd > /dev/null
fi
%build
python_basename_xen='%{python_basename_xen}'
python_basename_qemuu='%{python_basename_qemuu}'
%include %{_datadir}/xen-buildreq/build.txt
%install
%include %{_datadir}/xen-buildreq/install.txt
%clean
: %buildroot preserved
%if 0%{with_hypervisor}
%files -f xen.files.txt
%defattr(-,root,root)
/boot/*
%endif
%files libs
%defattr(-,root,root)
%{_libdir}/xenfsimage/
%{_libdir}/*.so.*
%files tools -f xen-tools.python.files.txt
%defattr(-,root,root)
%if %{with xen_docs}
%{_defaultdocdir}/%{name}/html
%endif
/usr/bin/xen[!-]*
/usr/bin/p*
%ifarch %ix86 x86_64
/usr/bin/xen-cpuid
%endif
/usr/sbin/*
%{_libexecdir}/xen
%if %{with xen_docs}
%{_mandir}/man*/*.gz
%endif
%{_fillupdir}/*
%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 %attr(700,root,root) /etc/xen
%config /etc/xen/*
%dir /var/log/xen
%if %{with xen_systemd}
%config %{_unitdir}/*
%else
%if %{?with_rc_d}0
%config /etc/rc.d
%endif
%config %{_initddir}/*
%endif
%dir %{_defaultdocdir}/%{name}
%{_defaultdocdir}/%{name}/misc
%dir %{_libdir}/python*/site-packages/xen
%dir %{_libdir}/python*/site-packages/grub
%if %{with xen_qemu_trad}
%ifarch %ix86 x86_64
%{_datadir}/xen
%endif
%endif
%{_datadir}/bash-completion
%{_datadir}/qemu-xen
%{_libdir}/python*/site-packages/*.so
%ifarch %ix86 x86_64
%files tools-domU
%defattr(-,root,root)
/usr/bin/xen-detect
%endif
%files devel
%defattr(-,root,root)
%{_libdir}/*.a
%{_libdir}/*.so
/usr/include/*
%{_libdir}/pkgconfig/*
%include %{_datadir}/xen-buildreq/scriptlets.txt