app-emulation/xen-tools: add ebuild

Package-Manager: Portage-2.3.69, Repoman-2.3.16
This commit is contained in:
Anton Schubert 2019-10-18 00:36:29 +02:00
parent 52217b65e1
commit 1d8dbdb1a6
19 changed files with 1115 additions and 0 deletions

View file

@ -0,0 +1,24 @@
AUX gentoo-patches.conf 2303 BLAKE2B a3c16fcc06a861aba37cfc9ff6a186b52e292b6bd3dbfcc7493b2cc2aa2191a8c4d342a947cb8ed039d08b7f147aa356061f9d995e01e25ae9bb9cf1b9f360dc SHA512 eb01cdb6d013d64bc575e1f39b4e9319f8d7302d078ddbe0fbd27a343cabea4be012ccce5fc950ea7dfa524b26436d5b762d60ddf663e4b2769d7f1030f0bb2b
AUX stubs-32.h 537 BLAKE2B 456f57c4a4ba574c737f1b84b62a085d0290ebc8981a5f96fdebc16b6c86c801c5ca8dde135e803f46c5ec875fdd74770f6ed754880bc7af930b8ce1ce972fb7 SHA512 55308dbedaa91909a2213940f7a7b574cabe6b5a3104761a2a6f28d6aed00164544488c00cbf9d66a9a370a14c6b6d3a00434efd3ff0228cc8e4d81af19c0e68
AUX xen-consoles.logrotate 63 BLAKE2B 4ae650876035d2815dbcacc6ed618c58cc61d9cfd9cde1b6c2f792cbf51898c577ef979443ad827fc82ced4d21ae24836883160b20d697965ef5377d50c2973c SHA512 ab2105c75cfe01768aecd5bcbb56269d63666e8a44e42b6a83aee87df6c84ee2f9ab249171c21b2e09f8fec2cae8318f6e87d160989398a3e7dd68db8d52c426
AUX xen-watchdog.initd 178 BLAKE2B 6e3099b3c05bd290fb5cae75c94f90f787b807c6470705655dfd19fb58d0aa87f6b82312bdb70307e7eb263d2c4b36c1e3d0fe1579ff3df998cd2476823be855 SHA512 6cd4668d5c607ac6f5a8470d463b5edbd4a1bdd8925be5a8d970df1558beeb9e26c07a766b303adb4d61e86b9bc3a2c40c8a6868c71face8695261b9fdff0f26
AUX xencommons.confd 109 BLAKE2B 6a2023a95cd1e411abe57c321e1c5f13096b51299817ce547e8ff042cbdbf859a5c1f50135e946fe650e0ec9221db3389ff50bc23f6d88d0c0fd1805b64786be SHA512 f0bbc9647cecc6cf806e3059960fbe39b23304d9ca0955fb261e1d320b9b9ce59e5b28cc4b5a9922295b31221f0cd8f0cccb405520e097a7b12dc6ddb3294c17
AUX xencommons.initd 1448 BLAKE2B 2e66e0f5220af4c1aeae26e17f1a732556596504e0507da0df4102258fe4b890e9f6fd595249397477e110b212e83b8a3543f156c2e19377f8dd3ef6cb5004f8 SHA512 8f2a911e5161fb02c0121e26c15f51a60370db3b69dc34181329b4606f2dcf2c8f64a456a54c91aa6ca6afe3da8df8195a6b4512a6ef818fe16569ac58218746
AUX xenconsoled.confd 44 BLAKE2B 865edf537c1a935cb78b682be805a8284c05e6c53e4a779bdabb4f43fcb1cfd5224b03f8c1febf8e5d49181ee08099c33970e39ff01028478a038feb7a061522 SHA512 30df69cc38d0bed26bc4d6e08a2b62cbdc654d5f663009a05cb3b83b3e3dc5e206362d3fd59abbb753ceb8d6d79eaa6e15d079bb8f4f35dc74667103faf4e85d
AUX xenconsoled.initd 780 BLAKE2B e3f9970b5d265d77bbb342a45c17a03e91988ec853f0f334e734f94a9548b09627f4e350868af940764692bdf65ae07b7a256a573fb3ff467a9053d1938680fa SHA512 0a0c60632e08448d97ab63ffbacae50d59567d05f71eff612e4ebbcfc889561cfa3bad018b04349c6271330bab316a8432ae80c6860d6ef318b2e3a9ad59f39a
AUX xendomains-screen.confd 890 BLAKE2B 91eb128682e7d81436cc3c82e7ae873bac4fbcc5d5f70e70c0ed16eb5af3f4cb61799f39ab275bc30b3d5686f5cbfac8c09aba6937f827ab6afdfe7ed995f352 SHA512 fb7bfc1806608c6e30bb7db367afe9cf75d44e809556c3ba2794cb3ce0c9f35bcfd7f2bfc4a15a8d805f3d57ff082fe9a525cbac3306e64cbbd0ee5cef554505
AUX xendomains.confd 291 BLAKE2B 8784abad4db4b4b649c4e57a3a1f818cb431e5eaa2277da65e6272f36e421230bfe7feb52b9cade50050c73eac379acd1684d5307fb89ced073345a213b4c56e SHA512 8ad255d39fc0b390c854a64ed82333b6a3041e1247b7a3934cd8274710c168c0017ef2dddbe32c120268d7ea946f8c1b148d7d06a3a4bf415a77eeec36dce2da
AUX xendomains.initd-r2 2802 BLAKE2B 341848881ded3742a8fee58e9ec5c29260c85913918a9d32dcf00a48d384c0189a86688db438762ad8cf8ac09f101bdb521eac8bc6b25014e639bd909b3f3979 SHA512 6fa7f9eaa469e7c1eee03960b97c492d2d3bde553e58189a3466f46615778de469015b8d678872094abfdeb592ed90cc41ea050b84873de73f37696482586287
AUX xenqemudev.confd 156 BLAKE2B 566dbe6e3a3d3bbbfd1b3cded7b0677b8b94ee3382226f4e8bf30e9e60771bfdca68c5448c63abf94be41c28082f2cbab6f9ea21335b41d24ba7b7e0347769af SHA512 d3cdeaed625e65e60fb22128baf24dceb45143ddf494d7db26464497abc42dbba0c0c9878f1e3908e2910557f4c4d600939824e944938aa251609ec5a1a86ee4
AUX xenqemudev.initd 1825 BLAKE2B 8e3b60163cb883ec0e1542a2ec8ff9a2168687a8271eea018025910297612bec518a77b06a45592f038cb2b9135ad59036c4b8bd15b954efb2ef986e3dc93dd6 SHA512 4e79be8fa8e75856052789421a81f19fb9367b032d1a49ddc4e3291231ddb7b9fa7d8c346850977c9005c105c6b9163dc1cd0aeb32384a8e92ec27d34ba8b5ee
AUX xenstored.confd 42 BLAKE2B 61153f1bb17c78614e215f25f59642f35185f7f7a2e911e04285a7f589c6a69856f914096621eded787b0c23a3f8994076ee15d2dd3e2a36589a65cd585c7946 SHA512 0906cbcdc84935d07cf53bc4447a1f9a9dc4e4fb9fda9a7163f6982f1d8a3ada1f0650fcd254fb6f715a54f7971daf0a5e61c3de6db70dfd156156fd55b59fe4
AUX xenstored.initd 1055 BLAKE2B 77dcc9fbe78a24c9b830d050b7d2071fc250229ff6d3c5ae3bd903e7f4240e997a81e4fbf6ed3a6fa095898c8d93a76089ae555db1999bb6a5f7121c2f1f4237 SHA512 d01f0d612c1cf0da2b89c3e8736044887acc0a98f07a444ee16a5d59332cd62b6c75082536697a20707c8575b2780ed33869f6712a772723f33592778608c96f
AUX xenstored.initd-r1 913 BLAKE2B 281db804ea8f1d91776e9c15f1bf9a4885f9713921ba1289c4f87598de7f05a290e2f5f11e8558d1a14a69751f0f8988a88e04fd808541f822a8c54139108593 SHA512 9b00297f8c142ddfbaaf5451fc147830a683e5ba23b7d88a3a5d70f28908c032821e2348f955a7d5f8d9e96165fc2556af08bc6f9ab41d14561281b0234b4a2c
DIST edk2-ef529e6ab7c31290a33045bb1f1837447cc0eb56.tar.gz 38714813 BLAKE2B 1c0670c6447aa7d2610e59481324eafe3dbf54cc0480c855380372cf5b95469de4182b569d1c4429df71ceb9be014cb414e070a808609d185b488519955b8677 SHA512 8eb88006500d9d6982e5565bdb71bf47dfe2b9669e107f48b6b237d7efbbfb54b9fd81841421c347e5c0ca45ef9c08f0b95983c8b922c2e1072b0e42b8ede92c
DIST ipxe-git-d2063b7693e0e35db97b2264aa987eb6341ae779.tar.gz 3792227 BLAKE2B 720ac29ab3187d7abaec33823dda967caab7eea9631123a7619d2f83d3ad6c7bb47db01665a4c54548fe367866606936d36690a06ecf42323b9bd0ef00e41569 SHA512 2b4ae8e65cd678dbb376f24001294eb54aead8d66456e06fc270dec178d90b282c1eb19731234d8b458054e49c5b8b8c4a89345c63ed0a4dafaf205e642b00b7
DIST seabios-1.12.0.tar.gz 613542 BLAKE2B f145c2db716996bfa9e5c014086ccfaa8ae96ebc158f34303b122b7bf209408c567665d8691364df8d8e886f63e0e72a3f3cd319dfa86ef581023201b5d94e53 SHA512 e52c5363e5bb37b5286e55545aa06bd126218f9d0e3a06ac2e189de68fe3de3256c11ca1bb13357a9c384d7e3af6284083ff3aa587688b5de04ef11b97bdfa27
DIST xen-4.12.1-upstream-patches-0.tar.xz 2968 BLAKE2B 94053d4dea21d7f820ff02aa697dad54613dfc90e8f50b991b947688fdadb5cdc22262546bd73ef9a426cd5a04e88e8fa7755041ddc449b453b9a887fffae2d5 SHA512 1bef1341366ca55137bad006505b5277a28e7c68348148ade7c3dc72a19cf936c311d4b6dde2a629f86de30d1101fb4659b6b53ca7c9aefb2d86148ab2fec853
DIST xen-4.12.1.tar.gz 26970584 BLAKE2B ceab2af3d36b72d838d7b4f58f6855c97cf05282a4ea3c82eda29b8945ee20563845b7be02884bf0a061a633fb2b3016a2f7396ce34d9b3d93f90d6ee6d449ed SHA512 be15d3af6b109771aaf59b3621e4e1560b7d9a963d9b7f6a1f6f4a1c907fd97434b060c15f75849b44fbda33f26eb51b030d14d068c6ad5103ad240fe7a98f40
DIST xen-gentoo-patches-18.tar.xz 16840 BLAKE2B 7243b363c78250ae1928d75813cfd6035a87ca03f1605cbe02233e009a19105a0712711d622eef8606f3e7e1a5db5203342e56a1b00496d5ce37ddc4ffb9e4ea SHA512 328d7b1a57ab6bf9c7200b934aeb241f6d4fecccc600130d1c80460540212eb658cb74ae0502c008e040fdb2d95db20c2a3d71a8e73fd1361070d70adeab6e30
EBUILD xen-tools-4.12.1.ebuild 15249 BLAKE2B cf27cb5f2830345c20882a520b5c42f02188ac0f833f796571be9fa9343bb018ebcd94a0890aa9b7a92631b2841fbc4e3ad9903abc357b821d2c6c639fe243b2 SHA512 3a672254fa78dae6ad4b28afbaefcee9a66d08d4fb4c6fb91f9e1d4013d392c1e8ef2813a188b39a83eff6854e379f1ed1c2a84f37fe31748c3577808358fdce
MISC metadata.xml 1479 BLAKE2B 1b994f8dcaa5cf67f588af6ce9533467816f7c4726e412566640138e631427decaf890856fa255b516580502c97c2e29c21bb84b4888df7603a9491a012381a5 SHA512 d125649737e0b34407fb32b67b741feca60d100454fdbc84b07305849295f134e1b657f5e13b6e74a90d25d7b408880316d470ee94447b7a6f99abd75eb82a83

View file

@ -0,0 +1,96 @@
# Bug 496708
_gx045=" xen-tools-4.10.1-unbundle-ipxe.patch"
_gx054=" xen-tools-4.12.0-unbundle-ipxe.patch"
# Bug 379537
_gx017=" fix-gold-ld.patch"
# Bug 477676
_gx038=" xen-tools-4.8-ar-cc.patch"
# Prevent file collision with qemu package Bug 478064
_gx043=" xen-4.10-qemu-bridge.patch"
_gx051=" xen-4.12-qemu-bridge.patch"
#mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
# Fix po file collision with app-emulation/qemu, while USE=qemu is enabled, Bug 508302
_gx027=" xen-tools-4-qemu-fix-po-collision.patch"
# Fix build failure with ncurses[tinfo], bug 526526
_gx028=" xen-tools-4.4.1-tinfo.patch"
# Don't download ovmf, use pre-released
_gx029=" xen-tools-4-anti-ovmf-download.patch"
# increase stack to fix xenqemu err
# https://lists.gnu.org/archive/html/qemu-devel/2016-09/msg03961.html
_gx037=" xen-tools-4.6-increase-stack-size.patch"
#Fix missing makedev(), major(), minor()
_gx042=" xen-tools-4.8.2-makedev.patch"
# Disable failing shim
_gx046=" xen-tools-4.10.1-shim.patch"
_gx050=" xen-tools-4.12.0-shim.patch"
# Fix building with gcc 8, bug #657388
_gx047=" xen-tools-4.10.1-gcc8.patch"
_gx048=" xen-tools-4.11.1-gcc8.patch"
_gx052=" xen-tools-4.10.3-gcc8.patch"
_gx053=" xen-tools-4.12.0-gcc8.patch"
# Fix building with gcc 9, bug #689082
_gx055=" xen-tools-4.11.2-gcc9.patch"
# Fix pdf document generation, bug #650396
_gx049=" xen-tools-4.10.1-pdfdoc.patch"
# xen-tools-4.10.3 patches set
_gpv_xen_tools_4103_0="
${_gx038} ${_gx017} ${_gx043}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx045} ${_gx046} ${_gx047}
${_gx049}
"
# xen-tools-4.10.3 patches set r1
_gpv_xen_tools_4103_1="
${_gx038} ${_gx017} ${_gx043}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx045} ${_gx046} ${_gx052}
${_gx049}
"
# xen-tools-4.11.1 patches set
_gpv_xen_tools_4111_0="
${_gx038} ${_gx017} ${_gx043}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx045} ${_gx046} ${_gx048}
${_gx049}
"
# xen-tools-4.11.2 patches set
_gpv_xen_tools_4112_0="
${_gx038} ${_gx017} ${_gx043}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx045} ${_gx046} ${_gx048}
${_gx049} ${_gx055}
"
# xen-tools-4.12.0 patches set
_gpv_xen_tools_4120_0="
${_gx038}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx053} ${_gx050} ${_gx051}
${_gx054}
"

View file

@ -0,0 +1,20 @@
/* This file is automatically generated.
It defines a symbol `__stub_FUNCTION' for each function
in the C library which is a stub, meaning it will fail
every time called, usually setting errno to ENOSYS. */
#ifdef _LIBC
#error Applications may not define the macro _LIBC
#endif
#define __stub_chflags
#define __stub_fattach
#define __stub_fchflags
#define __stub_fdetach
#define __stub_gtty
#define __stub_lchmod
#define __stub_revoke
#define __stub_setlogin
#define __stub_sigreturn
#define __stub_sstk
#define __stub_stty

View file

@ -0,0 +1,5 @@
/var/log/xen-consoles/*.log {
rotate 7
missingok
compress
}

View file

@ -0,0 +1,6 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
command="/usr/sbin/xenwatchdogd"
command_args="30 15"

View file

@ -0,0 +1,4 @@
# /etc/conf.d/xencommons
# Load xen's kernel modules, and this will override defaults
XEN_KERNEL_MODULES=""

View file

@ -0,0 +1,79 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
before xenstored
}
is_privileged_domain() {
grep -qsE '^control_d$' /proc/xen/capabilities
return $?
}
handle_kernel_modules() {
local XEN_DEFAULT_KERNEL_MODULES="
xen-evtchn
xen-gntdev
xen-gntalloc
xen-blkback
xen-netback
xen-pciback
gntdev
netbk
blkbk
xen-scsibk
usbbk
pciback
xen-acpi-processor
blktap2
blktap
"
[ "$1" = "remove" ] && OPTS="-r"
XEN_KERNEL_MODULES="${XEN_KERNEL_MODULES:-${XEN_DEFAULT_KERNEL_MODULES}}"
for i in ${XEN_KERNEL_MODULES}; do
modprobe ${OPTS} $i 2>/dev/null
done
return 0
}
start() {
ebegin "Starting xencommons daemon"
# not running in Xen dom0 or domU
if [ ! -d /proc/xen ]; then
eend 1 "Not running in Xen mode"
return 1
fi
# mount xenfs in dom0 or domU with a pv_ops kernel
if ! test -f /proc/xen/capabilities && \
! grep '^xenfs ' /proc/mounts >/dev/null;
then
mount -t xenfs xenfs /proc/xen
fi
if ! is_privileged_domain; then
eend 1 "Not running on a privileged domain. xencommons not started"
return 1
fi
handle_kernel_modules
eend $? "Failed to start xencommons"
}
stop () {
ebegin "Stopping xencommons"
if ! is_privileged_domain; then
eend 1 "Not running on a privileged domain. xencommons not started"
return 1
fi
handle_kernel_modules remove
eend $? "Failed to stop xencommons"
}

View file

@ -0,0 +1,2 @@
# /etc/conf.d/xenstored
XENCONSOLED_OPTS=""

View file

@ -0,0 +1,33 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
need xenstored
after lvm
}
# bug #498720
shutdown_all_domU() {
# Note: shutdown all domU, including manually started ones
local V=$(xl info| awk "/xen_minor/ { print \$3 }")
# 4.2.2 do not support "-a" option
[ $V -gt 2 ] && xl shutdown -a -w >/dev/null
}
start() {
ebegin "Starting xenconsoled daemon"
start-stop-daemon --start --exec /usr/sbin/xenconsoled \
--pidfile /run/xenconsoled.pid \
-- --pid-file=/run/xenconsoled.pid \
${XENCONSOLED_OPTS}
eend $*
}
stop() {
ebegin "Stopping xenconsoled daemon"
shutdown_all_domU
start-stop-daemon --stop --exec /usr/sbin/xenconsoled \
--pidfile /run/xenconsoled.pid
eend $*
}

View file

@ -0,0 +1,25 @@
# /etc/conf.d/xendomains
# Directory of domains to boot. AUTODIR should contain one or more symlinks
# to domain config files in /etc/xen
# AUTODIR=/etc/xen/auto
# Send shutdown commands to all domains in parallel instead of waiting for
# each to shutdown individually
# PARALLEL_SHUTDOWN=yes
# When SCREEN="yes", domains in AUTODIR have their consoles connected to a
# screen session named SCREEN_NAME, with output logged to individual files
# named after each domain and written to /var/log/xen-consoles/ . These files
# are rotated (using app-admin/logrotate) every time xendomains is started.
SCREEN="yes"
SCREEN_NAME="xen"
# Number of seconds between writes to screen's logfiles.
#
# Lower values mean more disk activity and hence a possible performance
# impact, but higher values mean a greater chance of loosing some output
# in the event of a crash.
SCREEN_LOG_INTERVAL="1"

View file

@ -0,0 +1,9 @@
# /etc/conf.d/xendomains
# Directory of domains to boot. AUTODIR should contain one or more symlinks
# to domain config files in /etc/xen
AUTODIR=/etc/xen/auto
# Send shutdown commands to all domains in parallel instead of waiting for
# each to shutdown individually
PARALLEL_SHUTDOWN=yes

View file

@ -0,0 +1,117 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
extra_commands="status"
depend() {
need xenstored
after dhcp xend xenconsoled
}
get_domname() {
local name_from_file=$(sed -rn 's/^name\W*=\W*\"?([[:alnum:]_\.-]+)\"?\W*;?/\1/p' "${1}" | tail -n 1)
if [ -z ${name_from_file} ] ; then
basename "${1}"
else
echo ${name_from_file}
fi
}
is_running() {
/usr/sbin/xl list "${1}" >/dev/null 2>&1
}
using_screen() {
[ "${SCREEN}" = "yes" -o "${SCREEN}" = "YES" ]
}
set_screen_cmd() {
screen_cmd="screen -c ${SCREENRC:-/dev/null} -q -r ${SCREEN_NAME:=xen} -X"
}
start() {
set_screen_cmd
einfo "Starting Xen domains from ${AUTODIR:=/etc/xen/auto}"
if using_screen ; then
ebegin "Creating screen session to hold domain consoles"
( screen -c ${SCREENRC:-/dev/null} -d -m -S ${SCREEN_NAME} -t dom0 \
&& sleep 5 \
&& ${screen_cmd} zombie dr \
&& logrotate -f /etc/xen/xen-consoles.logrotate \
&& ${screen_cmd} logfile /var/log/xen-consoles/%t.log \
&& ${screen_cmd} logfile flush ${SCREEN_LOG_INTERVAL:-1} \
&& ${screen_cmd} log on \
&& ${screen_cmd} deflog on ) >/dev/null
if [ $? -ne 0 ] ; then
eend 1
return 1
else
eend
fi
fi
# Create all domains with config files in AUTODIR.
for dom in $(ls "${AUTODIR:=/etc/xen/auto}/"* 2>/dev/null | sort); do
name=$(get_domname ${dom})
if ! is_running ${name} ; then
ebegin " Starting domain ${name}"
if using_screen ; then
${screen_cmd} screen -t ${name} xl create ${dom} -c
else
xl create --quiet ${dom}
fi
eend $?
else
einfo " Not starting domain ${name} - already running"
fi
done
}
stop() {
set_screen_cmd
einfo "Shutting down Xen domains from ${AUTODIR:=/etc/xen/auto}"
# Stop all domains with config files in AUTODIR.
DOMAINS="$(ls "${AUTODIR:=/etc/xen/auto}/"* 2>/dev/null | sort -r)"
if [ "$PARALLEL_SHUTDOWN" = "yes" ] ; then
for dom in $DOMAINS ; do
name=$(get_domname ${dom})
if is_running ${name} ; then
ebegin " Asking domain ${name} to shutdown in the background..."
xl shutdown -w ${name} >/dev/null &
else
einfo " Not stopping domain ${name} - not running"
fi
done
einfo " Waiting for shutdown of domains that are still running"
wait
eend $?
else
for dom in $DOMAINS ; do
name=$(get_domname ${dom})
if is_running ${name} ; then
ebegin " Waiting for domain ${name} to shutdown"
xl shutdown -w ${name} >/dev/null
eend $?
else
einfo " Not stopping domain ${name} - not running"
fi
done
fi
if using_screen ; then
if ${screen_cmd} sleep 0 >/dev/null 2>&1 ; then
ebegin "Closing screen session ${SCREEN_NAME}"
${screen_cmd} quit
eend $?
else
eend 0
fi
fi
}
status() {
/usr/sbin/xl list
}

View file

@ -0,0 +1,7 @@
# /etc/conf.d/xenqemudev
# To enable QEMU file backend, set to 'yes'
XENQEMUDEV_FILE_BACKEND_ENABLE=""
# Common options for xenqemudev
XENQEMUDEV_OPTS=""

View file

@ -0,0 +1,84 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
need xencommons xenstored xenconsoled
}
is_privileged_domain() {
grep -qsE '^control_d$' /proc/xen/capabilities
return $?
}
xen_setvars() {
. /etc/xen/scripts/hotplugpath.sh
XENQEMUDEV_PIDFILE=/run/xenqemudev.pid
# xen-4.5 change the path
XEN_QEMU="${LIBEXEC}/qemu-system-i386"
[ -e ${XEN_QEMU} ] && return
XEN_QEMU="${LIBEXEC_BIN}/qemu-system-i386"
}
xen_qemu_start() {
if [ -z "${XENQEMUDEV_FILE_BACKEND_ENABLE}" ]; then
ewarn " QEMU disk backend not enabled"
ewarn " enable XENQEMUDEV_FILE_BACKEND_ENABLE in /etc/conf.d/xenqemudev"
return 1
fi
xen_setvars
if [ ! -c /dev/xen/gntdev ]; then
einfo " Xen gntdev driver not loaded"
return 1
fi
if [ -e "${XEN_QEMU}" ]; then
einfo " Starting QEMU as disk backend for dom0"
XENQEMUDEV_DEFAULT_OPTS="-xen-domid 0 -xen-attach -name dom0 \
-nographic -M xenpv -daemonize \
-monitor /dev/null -serial /dev/null -parallel /dev/null"
XENQEMUDEV_OPTS=${XENQEMUDEV_OPTS:-${XENQEMUDEV_DEFAULT_OPTS}}
start-stop-daemon --start --exec ${XEN_QEMU} \
--pidfile ${XENQEMUDEV_PIDFILE} \
-- -pidfile ${XENQEMUDEV_PIDFILE} \
${XENQEMUDEV_OPTS}
return $?
fi
}
start() {
ebegin "Starting xenqemudev daemon"
# not running in Xen dom0 or domU
if [ ! -d /proc/xen ]; then
eend 1 "Not running in Xen mode"
return 1
fi
if ! is_privileged_domain; then
eend 1 "Not running on a privileged domain. xenqemudev not started"
return 1
fi
xen_qemu_start
eend $? "Failed to start xenqemudev"
}
stop () {
ebegin "Stopping xenqemudev"
xen_setvars
start-stop-daemon --stop --exec ${XEN_QEMU} \
--pidfile ${XENQEMUDEV_PIDFILE}
eend $? "Stopping xenqemudev, as it cannot be restarted."
}

View file

@ -0,0 +1,2 @@
# /etc/conf.d/xenstored
XENSTORED_OPTS=""

View file

@ -0,0 +1,44 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
before xendomains xend sshd ntp-client ntpd nfs nfsmount rsyncd portmap dhcp
need xencommons
}
xenstored_dir_check() {
# create dir dynamically
local i
for i in /var/lock/subsys /run/xen /run/xend/boot /run/xenstored; do
[ -x $i ] || mkdir -p $i
done
}
start() {
ebegin "Starting xenstored daemon"
xenstored_dir_check
start-stop-daemon --start --exec /usr/sbin/xenstored \
--pidfile /run/xenstored.pid \
-- --pid-file=/run/xenstored.pid \
$XENSTORED_OPTS
until xenstore-exists / || $((15 < ++i))
do
echo -n .
sleep 1
done
einfo "Setting domain0 name record"
/usr/bin/xenstore-write "/local/domain/0/name" "Domain-0"
local V=$(xl info| awk "/xen_minor/ { print \$3 }")
[ $V -ge 4 ] && /usr/bin/xenstore-write "/local/domain/0/domid" 0
eend $*
}
stop() {
ebegin "Stopping xenstored daemon"
start-stop-daemon --stop --exec /usr/sbin/xenstored \
--pidfile /run/xenstored.pid
eend $?
}

View file

@ -0,0 +1,42 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
before xendomains xend sshd ntp-client ntpd nfs nfsmount rsyncd portmap dhcp
need xencommons
}
xenstored_dir_check() {
# create dir dynamically
local i
for i in /var/lock/subsys /run/xen /run/xend/boot /run/xenstored; do
[ -x $i ] || mkdir -p $i
done
}
start() {
ebegin "Starting xenstored daemon"
xenstored_dir_check
start-stop-daemon --start --exec /usr/sbin/xenstored \
--pidfile /run/xenstored.pid \
-- --pid-file=/run/xenstored.pid \
$XENSTORED_OPTS
until xenstore-exists / || $((15 < ++i))
do
printf "."
sleep 1
done
einfo "Setting domain0 name record"
/usr/libexec/xen/bin/xen-init-dom0
eend $*
}
stop() {
ebegin "Stopping xenstored daemon"
start-stop-daemon --stop --exec /usr/sbin/xenstored \
--pidfile /run/xenstored.pid
eend $?
}

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>xen@gentoo.org</email>
<name>Gentoo Xen Project</name>
</maintainer>
<use>
<flag name="api">Build the C libxenapi bindings</flag>
<flag name="flask">Enable the Flask XSM module from NSA</flag>
<flag name="hvm">Enable support for hardware based virtualization (VT-x,AMD-v)</flag>
<flag name="ipxe">Enable ipxe support</flag>
<flag name="ocaml">Enable support for the ocaml language</flag>
<flag name="ovmf">Enable support to boot UEFI guest vm, needed by hvm</flag>
<flag name="pam">Enable pam support</flag>
<flag name="pygrub">Install the pygrub boot loader</flag>
<flag name="qemu">Enable IOEMU support via the use of qemu-dm</flag>
<flag name="qemu-traditional">Build the old qemu traditional device model (useful only if you cannot change to the new device model e.g. Windows VMs)</flag>
<flag name="rombios">Enable rombios support, needed by ipxe</flag>
<flag name="screen">Enable support for running domain U console in an <pkg>app-misc/screen</pkg> session</flag>
<flag name="system-ipxe">Using <pkg>sys-firmware/ipxe</pkg> instead of the bundled one</flag>
<flag name="system-qemu">Using <pkg>app-emulation/qemu</pkg> instead of the bundled one</flag>
<flag name="system-seabios">Using <pkg>sys-firmware/seabios</pkg> instead of the bundled one</flag>
</use>
</pkgmetadata>

View file

@ -0,0 +1,491 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='ncurses,xml,threads'
inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs
MY_PV=${PV/_/-}
if [[ $PV == *9999 ]]; then
inherit git-r3
REPO="xen.git"
EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
S="${WORKDIR}/${REPO}"
else
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
UPSTREAM_VER=0
SECURITY_VER=
# xen-tools's gentoo patches tarball
GENTOO_VER=18
# xen-tools's gentoo patches version which apply to this specific ebuild
GENTOO_GPV=0
# xen-tools ovmf's patches
OVMF_VER=
SEABIOS_VER=1.12.0
EDK2_COMMIT=ef529e6ab7c31290a33045bb1f1837447cc0eb56
IPXE_COMMIT=d2063b7693e0e35db97b2264aa987eb6341ae779
[[ -n ${UPSTREAM_VER} ]] && \
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz
https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
[[ -n ${SECURITY_VER} ]] && \
SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz"
[[ -n ${GENTOO_VER} ]] && \
GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz
https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-gentoo-patches-${GENTOO_VER}.tar.xz"
[[ -n ${OVMF_VER} ]] && \
OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz"
SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz
https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
${OVMF_PATCHSET_URI} )
${UPSTREAM_PATCHSET_URI}
${SECURITY_PATCHSET_URI}
${GENTOO_PATCHSET_URI}"
S="${WORKDIR}/xen-${MY_PV}"
fi
DESCRIPTION="Xen tools including QEMU and xl"
HOMEPAGE="https://www.xenproject.org"
DOCS=( README )
LICENSE="GPL-2"
SLOT="0/$(ver_cut 1-2)"
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
# >=dev-lang/ocaml-4 stable
# Masked in profiles/eapi-5-files instead
IUSE="api custom-cflags debug doc flask +hvm ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
ipxe? ( rombios )
ovmf? ( hvm )
pygrub? ( python )
rombios? ( hvm )
system-ipxe? ( rombios )
?? ( ipxe system-ipxe )
?? ( qemu system-qemu )"
COMMON_DEPEND="
sys-apps/pciutils
dev-libs/lzo:2
dev-libs/glib:2
dev-libs/yajl
dev-libs/libaio
dev-libs/libgcrypt:0
sys-libs/zlib
${PYTHON_DEPS}
"
DEPEND="${COMMON_DEPEND}
>=sys-kernel/linux-headers-4.11
dev-python/lxml[${PYTHON_USEDEP}]
x86? ( sys-devel/dev86
system-ipxe? ( sys-firmware/ipxe[qemu] )
sys-power/iasl )
pam? ( dev-python/pypam[${PYTHON_USEDEP}] )
api? ( dev-libs/libxml2
net-misc/curl )
ovmf? (
!arm? ( !arm64? ( dev-lang/nasm ) )
$(python_gen_impl_dep sqlite)
)
!amd64? ( >=sys-apps/dtc-1.4.0 )
amd64? ( sys-power/iasl
system-seabios? ( sys-firmware/seabios )
system-ipxe? ( sys-firmware/ipxe[qemu] )
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
dev-lang/perl
app-misc/pax-utils
doc? (
app-text/ghostscript-gpl
app-text/pandoc
dev-python/markdown[${PYTHON_USEDEP}]
dev-texlive/texlive-latexextra
media-gfx/transfig
)
hvm? ( x11-base/xorg-proto )
qemu? (
app-arch/snappy:=
x11-libs/pixman
sdl? ( media-libs/libsdl[X] )
)
system-qemu? ( app-emulation/qemu[xen] )
ocaml? ( dev-ml/findlib
>=dev-lang/ocaml-4 )"
RDEPEND="${COMMON_DEPEND}
sys-apps/iproute2[-minimal]
net-misc/bridge-utils
screen? (
app-misc/screen
app-admin/logrotate
)"
# hvmloader is used to bootstrap a fully virtualized kernel
# Approved by QA team in bug #144032
QA_WX_LOAD="
usr/libexec/xen/boot/hvmloader
usr/share/qemu-xen/qemu/hppa-firmware.img
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/u-boot.e500
"
QA_PREBUILT="
usr/libexec/xen/bin/ivshmem-client
usr/libexec/xen/bin/ivshmem-server
usr/libexec/xen/bin/qemu-img
usr/libexec/xen/bin/qemu-io
usr/libexec/xen/bin/qemu-keymap
usr/libexec/xen/bin/qemu-nbd
usr/libexec/xen/bin/qemu-pr-helper
usr/libexec/xen/bin/qemu-system-i386
usr/libexec/xen/bin/virtfs-proxy-helper
usr/libexec/xen/libexec/xen-bridge-helper
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/s390-netboot.img
usr/share/qemu-xen/qemu/u-boot.e500
"
RESTRICT="test"
pkg_setup() {
python_setup
export "CONFIG_LOMOUNT=y"
#bug 522642, disable compile tools/tests
export "CONFIG_TESTS=n"
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
if use x86 && use amd64; then
die "Confusion! Both x86 and amd64 are set in your use flags!"
elif use x86; then
export XEN_TARGET_ARCH="x86_32"
elif use amd64 ; then
export XEN_TARGET_ARCH="x86_64"
elif use arm; then
export XEN_TARGET_ARCH="arm32"
elif use arm64; then
export XEN_TARGET_ARCH="arm64"
else
die "Unsupported architecture!"
fi
fi
}
src_prepare() {
local i
# Upstream's patchset
if [[ -n ${UPSTREAM_VER} ]]; then
einfo "Try to apply Xen Upstream patch set"
eapply "${WORKDIR}"/patches-upstream
fi
# Security patchset
if [[ -n ${SECURITY_VER} ]]; then
einfo "Try to apply Xen Security patch set"
# apply main xen patches
# Two parallel systems, both work side by side
# Over time they may concdense into one. This will suffice for now
EPATCH_SUFFIX="patch"
EPATCH_FORCE="yes"
source "${WORKDIR}"/patches-security/${PV}.conf || die
for i in ${XEN_SECURITY_MAIN}; do
eapply "${WORKDIR}"/patches-security/xen/$i
done
# apply qemu-xen/upstream patches
pushd "${S}"/tools/qemu-xen/ > /dev/null
for i in ${XEN_SECURITY_QEMUU}; do
eapply "${WORKDIR}"/patches-security/qemuu/$i
done
popd > /dev/null
# apply qemu-traditional patches
pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null
for i in ${XEN_SECURITY_QEMUT}; do
eapply "${WORKDIR}"/patches-security/qemut/$i
done
popd > /dev/null
fi
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
pushd tools/firmware/ > /dev/null
ln -s seabios-dir-remote seabios-dir || die
popd > /dev/null
# Gentoo's patchset
if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then
einfo "Try to apply Gentoo specific patch set"
source "${FILESDIR}"/gentoo-patches.conf || die
_gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV}
for i in ${!_gpv}; do
eapply "${WORKDIR}"/patches-gentoo/$i
done
fi
# Ovmf's patchset
if use ovmf; then
if [[ -n ${OVMF_VER} ]];then
einfo "Try to apply Ovmf patch set"
pushd "${WORKDIR}"/edk2-*/ > /dev/null
eapply "${WORKDIR}"/patches-ovmf
popd > /dev/null
fi
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
fi
# ipxe
if use ipxe; then
cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die
cp "${WORKDIR}/patches-gentoo/${PN}-4.12.0-ipxe-gcc9.patch" \
tools/firmware/etherboot/patches/ipxe-gcc9.patch || die
echo "ipxe-gcc9.patch" >> tools/firmware/etherboot/patches/series || die
fi
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
# Fix texi2html build error with new texi2html, qemu.doc.html
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die
sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \
-i tools/firmware/Makefile || die
# Drop .config, fixes to gcc-4.6
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
# if the user *really* wants to use their own custom-cflags, let them
if use custom-cflags; then
einfo "User wants their own CFLAGS - removing defaults"
# try and remove all the default cflags
find "${S}" \( -name Makefile -o -name Rules.mk -o -name Config.mk \) \
-exec sed \
-e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
-i {} + || die "failed to re-set custom-cflags"
else
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
unset CPPFLAGS
fi
if ! use pygrub; then
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
fi
if ! use python; then
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
fi
if ! use hvm; then
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
# Bug 351648
elif ! use x86 && ! has x86 $(get_all_abis); then
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
export CPATH="${WORKDIR}"/extra-headers
fi
if use qemu; then
if use sdl; then
sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
tools/Makefile || die
else
sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
tools/qemu-xen-traditional/xen-setup || die
sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
tools/Makefile || die
fi
else
# Don't bother with qemu, only needed for fully virtualised guests
sed -e "s:install-tools\: tools/qemu-xen-traditional-dir:install-tools\: :g" -i Makefile || die
fi
# Reset bash completion dir; Bug 472438
sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \
-i Config.mk || die
sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die
# xencommons, Bug #492332, sed lighter weight than patching
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
-i tools/hotplug/Linux/init.d/xencommons.in || die
# fix bashishm
sed -e '/Usage/s/\$//g' \
-i tools/hotplug/Linux/init.d/xendriverdomain.in || die
# respect multilib, usr/lib/libcacard.so.0.0.0
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
-i tools/qemu-xen/configure || die
#bug 518136, don't build 32bit exactuable for nomultilib profile
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
fi
# uncomment lines in xl.conf
sed -e 's:^#autoballoon=:autoballoon=:' \
-e 's:^#lockfile=:lockfile=:' \
-e 's:^#vif.default.script=:vif.default.script=:' \
-i tools/examples/xl.conf || die
# disable capstone (Bug #673474)
sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
-i tools/Makefile || die
# disable glusterfs
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
-i tools/Makefile || die
default
}
src_configure() {
local myconf="--prefix=${PREFIX}/usr \
--libdir=${PREFIX}/usr/$(get_libdir) \
--libexecdir=${PREFIX}/usr/libexec \
--localstatedir=${EPREFIX}/var \
--disable-werror \
--disable-xen \
--enable-tools \
--enable-docs \
$(use_enable api xenapi) \
$(use_enable ipxe) \
$(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \
$(use_enable ocaml ocamltools) \
$(use_enable ovmf) \
$(use_enable pam) \
$(use_enable rombios) \
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \
"
use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin"
use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64"
use amd64 && myconf+=" $(use_enable qemu-traditional)"
tc-ld-disable-gold # Bug 669570
econf ${myconf}
}
src_compile() {
local myopt
use debug && myopt="${myopt} debug=y"
if test-flag-CC -fno-strict-overflow; then
append-flags -fno-strict-overflow
fi
emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt}
if use doc; then
emake -C docs build
else
emake -C docs man-pages
fi
}
src_install() {
# Override auto-detection in the build system, bug #382573
export INITD_DIR=/tmp/init.d
export CONFIG_LEAF_DIR=../tmp/default
# Let the build system compile installed Python modules.
local PYTHONDONTWRITEBYTECODE
export PYTHONDONTWRITEBYTECODE
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
XEN_PYTHON_NATIVE_INSTALL=y install-tools
# Created at runtime
rm -rv "${ED}/var/run" || die
# Fix the remaining Python shebangs.
python_fix_shebang "${D}"
# Remove RedHat-specific stuff
rm -rf "${D}"/tmp || die
if use doc; then
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
dodoc -r docs/{pdf,txt}
else
emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
fi
dodoc ${DOCS[@]}
newconfd "${FILESDIR}"/xendomains.confd xendomains
newconfd "${FILESDIR}"/xenstored.confd xenstored
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
newinitd "${FILESDIR}"/xencommons.initd xencommons
newconfd "${FILESDIR}"/xencommons.confd xencommons
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
if use screen; then
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
keepdir /var/log/xen-consoles
fi
# For -static-libs wrt Bug 384355
if ! use static-libs; then
rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
fi
# for xendomains
keepdir /etc/xen/auto
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
keepdir /var/lib/xen/dump
keepdir /var/lib/xen/xenpaging
keepdir /var/lib/xenstored
keepdir /var/log/xen
}
pkg_postinst() {
elog "Official Xen Guide and the offical wiki page:"
elog "https://wiki.gentoo.org/wiki/Xen"
elog "https://wiki.xen.org/wiki/Main_Page"
elog ""
elog "Recommended to utilise the xencommons script to config system at boot"
elog "Add by use of rc-update on completion of the install"
if ! use hvm; then
echo
elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
elog "support enable the hvm use flag."
elog "An x86 or amd64 system is required to build HVM support."
fi
if use qemu; then
elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
fi
}