# Contributor: Roger Pau Monne <roger.pau@entel.upc.edu>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xen
pkgver=4.20.1
pkgrel=0
pkgdesc="Xen hypervisor"
url="https://www.xenproject.org/"
arch="x86_64 armv7 aarch64"
license="GPL-2.0-only"
depends="bash iproute2 logrotate"
depends_dev="
	argp-standalone
	attr-dev
	bison
	curl-dev
	dev86
	e2fsprogs-dev
	flex
	gnutls-dev
	libaio-dev
	libcap-ng-dev
	libnl3-dev
	linux-headers
	lzo-dev
	ncurses-dev
	openssl-dev>3
	pciutils-dev
	perl
	perl-dev
	py3-setuptools
	python3-dev
	spice-dev
	texinfo
	util-linux-dev
	xz-dev
	yajl-dev
	zlib-dev
	zstd-dev
	"
makedepends="$depends_dev autoconf automake libtool dnsmasq samurai"
options="!strip"

# Follow security issues on: https://xenbits.xen.org/xsa/

# secfixes:
#   0:
#     - CVE-2020-29568 XSA-349
#     - CVE-2020-29569 XSA-350
#     - CVE-2022-21127
#     - CVE-2023-46840 XSA-450
#   4.7.0-r0:
#     - CVE-2016-6258 XSA-182
#     - CVE-2016-6259 XSA-183
#     - CVE-2016-5403 XSA-184
#   4.7.0-r1:
#     - CVE-2016-7092 XSA-185
#     - CVE-2016-7093 XSA-186
#     - CVE-2016-7094 XSA-187
#   4.7.0-r5:
#     - CVE-2016-7777 XSA-190
#   4.7.1-r1:
#     - CVE-2016-9386 XSA-191
#     - CVE-2016-9382 XSA-192
#     - CVE-2016-9385 XSA-193
#     - CVE-2016-9384 XSA-194
#     - CVE-2016-9383 XSA-195
#     - CVE-2016-9377 XSA-196
#     - CVE-2016-9378 XSA-196
#     - CVE-2016-9381 XSA-197
#     - CVE-2016-9379 XSA-198
#     - CVE-2016-9380 XSA-198
#   4.7.1-r3:
#     - CVE-2016-9932 XSA-200
#     - CVE-2016-9815 XSA-201
#     - CVE-2016-9816 XSA-201
#     - CVE-2016-9817 XSA-201
#     - CVE-2016-9818 XSA-201
#   4.7.1-r4:
#     - CVE-2016-10024 XSA-202
#     - CVE-2016-10025 XSA-203
#     - CVE-2016-10013 XSA-204
#   4.7.1-r5:
#     - XSA-207
#     - CVE-2017-2615 XSA-208
#     - CVE-2017-2620 XSA-209
#     - XSA-210
#   4.7.2-r0:
#     - CVE-2016-9603 XSA-211
#     - CVE-2017-7228 XSA-212
#   4.8.1-r2:
#     - CVE-2017-8903 XSA-213
#     - CVE-2017-8904 XSA-214
#   4.9.0-r0:
#     - CVE-2017-10911 XSA-216
#     - CVE-2017-10912 XSA-217
#     - CVE-2017-10913 XSA-218
#     - CVE-2017-10914 XSA-218
#     - CVE-2017-10915 XSA-219
#     - CVE-2017-10916 XSA-220
#     - CVE-2017-10917 XSA-221
#     - CVE-2017-10918 XSA-222
#     - CVE-2017-10919 XSA-223
#     - CVE-2017-10920 XSA-224
#     - CVE-2017-10921 XSA-224
#     - CVE-2017-10922 XSA-224
#     - CVE-2017-10923 XSA-225
#   4.9.0-r1:
#     - CVE-2017-12135 XSA-226
#     - CVE-2017-12137 XSA-227
#     - CVE-2017-12136 XSA-228
#     - CVE-2017-12855 XSA-230
#   4.9.0-r2:
#     - XSA-235
#   4.9.0-r4:
#     - CVE-2017-14316 XSA-231
#     - CVE-2017-14318 XSA-232
#     - CVE-2017-14317 XSA-233
#     - CVE-2017-14319 XSA-234
#   4.9.0-r5:
#     - XSA-245
#   4.9.0-r6:
#     - CVE-2017-15590 XSA-237
#     - XSA-238
#     - CVE-2017-15589 XSA-239
#     - CVE-2017-15595 XSA-240
#     - CVE-2017-15588 XSA-241
#     - CVE-2017-15593 XSA-242
#     - CVE-2017-15592 XSA-243
#     - CVE-2017-15594 XSA-244
#   4.9.0-r7:
#     - CVE-2017-15597 XSA-236
#   4.9.1-r1:
#     - XSA-246
#     - XSA-247
#   4.10.0-r1:
#     - XSA-248
#     - XSA-249
#     - XSA-250
#     - XSA-251
#     - CVE-2018-5244 XSA-253
#     - XSA-254
#   4.10.0-r2:
#     - CVE-2018-7540 XSA-252
#     - CVE-2018-7541 XSA-255
#     - CVE-2018-7542 XSA-256
#   4.10.1-r0:
#     - CVE-2018-10472 XSA-258
#     - CVE-2018-10471 XSA-259
#   4.10.1-r1:
#     - CVE-2018-8897 XSA-260
#     - CVE-2018-10982 XSA-261
#     - CVE-2018-10981 XSA-262
#   4.11.0-r0:
#     - CVE-2018-3639 XSA-263
#     - CVE-2018-12891 XSA-264
#     - CVE-2018-12893 XSA-265
#     - CVE-2018-12892 XSA-266
#     - CVE-2018-3665 XSA-267
#   4.11.1-r0:
#     - CVE-2018-15469 XSA-268
#     - CVE-2018-15468 XSA-269
#     - CVE-2018-15470 XSA-272
#     - CVE-2018-3620 XSA-273
#     - CVE-2018-3646 XSA-273
#     - CVE-2018-19961 XSA-275
#     - CVE-2018-19962 XSA-275
#     - CVE-2018-19963 XSA-276
#     - CVE-2018-19964 XSA-277
#     - CVE-2018-18883 XSA-278
#     - CVE-2018-19965 XSA-279
#     - CVE-2018-19966 XSA-280
#     - CVE-2018-19967 XSA-282
#   4.12.0-r2:
#     - CVE-2018-12126 XSA-297
#     - CVE-2018-12127 XSA-297
#     - CVE-2018-12130 XSA-297
#     - CVE-2019-11091 XSA-297
#   4.12.1-r0:
#     - CVE-2019-17349 CVE-2019-17350 XSA-295
#   4.13.0-r0:
#     - CVE-2019-18425 XSA-298
#     - CVE-2019-18421 XSA-299
#     - CVE-2019-18423 XSA-301
#     - CVE-2019-18424 XSA-302
#     - CVE-2019-18422 XSA-303
#     - CVE-2018-12207 XSA-304
#     - CVE-2019-11135 XSA-305
#     - CVE-2019-19579 XSA-306
#     - CVE-2019-19582 XSA-307
#     - CVE-2019-19583 XSA-308
#     - CVE-2019-19578 XSA-309
#     - CVE-2019-19580 XSA-310
#     - CVE-2019-19577 XSA-311
#   4.13.0-r3:
#     - CVE-2020-11740 CVE-2020-11741 XSA-313
#     - CVE-2020-11739 XSA-314
#     - CVE-2020-11743 XSA-316
#     - CVE-2020-11742 XSA-318
#   4.13.1-r0:
#     - XSA-312
#   4.13.1-r3:
#     - CVE-2020-0543 XSA-320
#   4.13.1-r4:
#     - CVE-2020-15566 XSA-317
#     - CVE-2020-15563 XSA-319
#     - CVE-2020-15565 XSA-321
#     - CVE-2020-15564 XSA-327
#     - CVE-2020-15567 XSA-328
#   4.13.1-r5:
#     - CVE-2020-14364 XSA-335
#   4.14.0-r1:
#     - CVE-2020-25602 XSA-333
#     - CVE-2020-25598 XSA-334
#     - CVE-2020-25604 XSA-336
#     - CVE-2020-25595 XSA-337
#     - CVE-2020-25597 XSA-338
#     - CVE-2020-25596 XSA-339
#     - CVE-2020-25603 XSA-340
#     - CVE-2020-25600 XSA-342
#     - CVE-2020-25599 XSA-343
#     - CVE-2020-25601 XSA-344
#   4.14.0-r2:
#     - CVE-2020-27674 XSA-286
#     - CVE-2020-27672 XSA-345
#     - CVE-2020-27671 XSA-346
#     - CVE-2020-27670 XSA-347
#     - CVE-2020-28368 XSA-351
#   4.14.0-r3:
#     - CVE-2020-29040 XSA-355
#   4.14.1-r0:
#     - CVE-2020-29480 XSA-115
#     - CVE-2020-29481 XSA-322
#     - CVE-2020-29482 XSA-323
#     - CVE-2020-29484 XSA-324
#     - CVE-2020-29483 XSA-325
#     - CVE-2020-29485 XSA-330
#     - CVE-2020-29566 XSA-348
#     - CVE-2020-29486 XSA-352
#     - CVE-2020-29479 XSA-353
#     - CVE-2020-29567 XSA-356
#     - CVE-2020-29570 XSA-358
#     - CVE-2020-29571 XSA-359
#   4.14.1-r2:
#     - CVE-2021-3308 XSA-360
#   4.14.1-r3:
#     - CVE-2021-26933 XSA-364
#   4.15.0-r0:
#     - CVE-2021-28687 XSA-368
#   4.15.0-r1:
#     - CVE-2021-28693 XSA-372
#     - CVE-2021-28692 XSA-373
#     - CVE-2021-0089 XSA-375
#     - CVE-2021-28690 XSA-377
#   4.15.0-r2:
#     - CVE-2021-28694 XSA-378
#     - CVE-2021-28695 XSA-378
#     - CVE-2021-28696 XSA-378
#     - CVE-2021-28697 XSA-379
#     - CVE-2021-28698 XSA-380
#     - CVE-2021-28699 XSA-382
#     - CVE-2021-28700 XSA-383
#   4.15.0-r3:
#     - CVE-2021-28701 XSA-384
#   4.15.1-r1:
#     - CVE-2021-28702 XSA-386
#     - CVE-2021-28703 XSA-387
#     - CVE-2021-28710 XSA-390
#   4.15.1-r2:
#     - CVE-2021-28704 XSA-388
#     - CVE-2021-28707 XSA-388
#     - CVE-2021-28708 XSA-388
#     - CVE-2021-28705 XSA-389
#     - CVE-2021-28709 XSA-389
#   4.16.1-r0:
#     - CVE-2022-23033 XSA-393
#     - CVE-2022-23034 XSA-394
#     - CVE-2022-23035 XSA-395
#     - CVE-2022-26356 XSA-397
#     - XSA-398
#     - CVE-2022-26357 XSA-399
#     - CVE-2022-26358 XSA-400
#     - CVE-2022-26359 XSA-400
#     - CVE-2022-26360 XSA-400
#     - CVE-2022-26361 XSA-400
#   4.16.1-r2:
#     - CVE-2022-26362 XSA-401
#     - CVE-2022-26363 XSA-402
#     - CVE-2022-26364 XSA-402
#   4.16.1-r3:
#     - CVE-2022-21123 XSA-404
#     - CVE-2022-21125 XSA-404
#     - CVE-2022-21166 XSA-404
#   4.16.1-r4:
#     - CVE-2022-26365 XSA-403
#     - CVE-2022-33740 XSA-403
#     - CVE-2022-33741 XSA-403
#     - CVE-2022-33742 XSA-403
#   4.16.1-r5:
#     - CVE-2022-23816 XSA-407
#     - CVE-2022-23825 XSA-407
#     - CVE-2022-29900 XSA-407
#   4.16.1-r6:
#     - CVE-2022-33745 XSA-408
#   4.16.2-r1:
#     - CVE-2022-42327 XSA-412
#     - CVE-2022-42309 XSA-414
#   4.16.2-r2:
#     - CVE-2022-23824 XSA-422
#   4.17.0-r0:
#     - CVE-2022-42311 XSA-326
#     - CVE-2022-42312 XSA-326
#     - CVE-2022-42313 XSA-326
#     - CVE-2022-42314 XSA-326
#     - CVE-2022-42315 XSA-326
#     - CVE-2022-42316 XSA-326
#     - CVE-2022-42317 XSA-326
#     - CVE-2022-42318 XSA-326
#     - CVE-2022-33747 XSA-409
#     - CVE-2022-33746 XSA-410
#     - CVE-2022-33748 XSA-411
#     - CVE-2022-33749 XSA-413
#     - CVE-2022-42310 XSA-415
#     - CVE-2022-42319 XSA-416
#     - CVE-2022-42320 XSA-417
#     - CVE-2022-42321 XSA-418
#     - CVE-2022-42322 XSA-419
#     - CVE-2022-42323 XSA-419
#     - CVE-2022-42324 XSA-420
#     - CVE-2022-42325 XSA-421
#     - CVE-2022-42326 XSA-421
#   4.17.0-r2:
#     - CVE-2022-42330 XSA-425
#     - CVE-2022-27672 XSA-426
#   4.17.0-r5:
#     - CVE-2022-42332 XSA-427
#     - CVE-2022-42333 CVE-2022-43334 XSA-428
#     - CVE-2022-42331 XSA-429
#     - CVE-2022-42335 XSA-430
#   4.17.1-r1:
#     - CVE-2022-42336 XSA-431
#   4.17.1-r3:
#     - CVE-2023-20593 XSA-433
#   4.17.1-r5:
#     - CVE-2023-34320 XSA-436
#   4.17.2-r0:
#     - CVE-2023-20569 XSA-434
#     - CVE-2022-40982 XSA-435
#   4.17.2-r1:
#     - CVE-2023-34321 XSA-437
#     - CVE-2023-34322 XSA-438
#   4.17.2-r2:
#     - CVE-2023-20588 XSA-439
#   4.17.2-r3:
#     - CVE-2023-34323 XSA-440
#     - CVE-2023-34326 XSA-442
#     - CVE-2023-34325 XSA-443
#     - CVE-2023-34327 XSA-444
#     - CVE-2023-34328 XSA-444
#   4.17.2-r4:
#     - CVE-2023-46835 XSA-445
#     - CVE-2023-46836 XSA-446
#   4.18.0-r2:
#     - CVE-2023-46837 XSA-447
#   4.18.0-r3:
#     - CVE-2023-46839 XSA-449
#   4.18.0-r4:
#     - CVE-2023-46841 XSA-451
#   4.18.0-r5:
#     - CVE-2023-28746 XSA-452
#     - CVE-2024-2193 XSA-453
#   4.18.2-r0:
#     - CVE-2023-46842 XSA-454
#     - CVE-2024-31142 XSA-455
#     - CVE-2024-2201 XSA-456
#   4.19.0-r0:
#     - CVE-2024-31143 XSA-458
#     - CVE-2024-31145 XSA-460
#     - CVE-2024-45817 XSA-462
#   4.19.0-r1:
#     - CVE-2024-45818 XSA-463
#     - CVE-2024-45819 XSA-464
#   4.19.1-r1:
#     - CVE-2025-1713 XSA-467
#   4.20.0-r1:
#     - CVE-2024-28956 XSA-469
#   4.20.1-r0:
#     - CVE-2025-27465 XSA-470
#     - CVE-2024-36350 XSA-471
#     - CVE-2024-36357 XSA-471

case "$CARCH" in
x86*)
	makedepends="$makedepends iasl seabios-bin"
	;;
arm*)
	makedepends="$makedepends dtc-dev"
	;;
aarch64)
	makedepends="$makedepends dtc-dev iasl"
	;;
esac

#if [ "$CARCH" != "armhf" ]; then
#	subpackages="$pkgname-dbg"
#fi
subpackages="$subpackages $pkgname-doc $pkgname-dev $pkgname-libs
	$pkgname-hypervisor $pkgname-pyc $pkgname-bridge
	$pkgname-bridge-openrc:bridge_openrc $pkgname-qemu
	$pkgname-qemu-openrc:qemu_openrc $pkgname-bash-completion"

# grep ^IPXE_GIT_TAG tools/firmware/etherboot/Makefile
_IPXE_GIT_TAG=1d1cf74a5e58811822bee4b3da3cff7282fcdfca

source="https://downloads.xenproject.org/release/xen/$pkgver/xen-$pkgver.tar.gz

	qemu-xen_paths.patch

	hotplug-vif-vtrill.patch

	hotplug-Linux-iscsi-block-handle-lun-1.patch

	xenstored.initd
	xenstored.confd
	xenconsoled.initd
	xenconsoled.confd
	xendomains.initd
	xendomains.confd
	xen-consoles.logrotate
	xenqemu.confd
	xenqemu.initd
	xendriverdomain.initd
	xen-pci.initd
	xen-pci.confd
	"

_seabios=/usr/share/seabios/bios-256k.bin

# Override wrong arch detection from xen-$pkgver/Config.mk.
case "$CARCH" in
armv7) export XEN_TARGET_ARCH="arm32";;
aarch64) export XEN_TARGET_ARCH="arm64";;
esac

prepare() {
	default_prepare
	local i

	for i in $source; do
		case $i in
		*-etherboot-*)
			p=${i%%::*}
			p=${p##*/}
			msg "adding to ipxe: $p"
			cp "$srcdir"/$p tools/firmware/etherboot/patches/
			echo "$p" >> tools/firmware/etherboot/patches/series
			;;
		*/ipxe-git-*)
			ln -s "$srcdir"/${i##*/} \
				tools/firmware/etherboot/ipxe.tar.gz
			;;
		esac
	done

	# remove all -Werror
	msg "Eradicating -Werror..."
	find . \( -name '*.mk' -o -name 'Make*' \) -exec sed -i -e 's/-Werror//g' {} +

	msg "Updating config.sub..."
	update_config_sub

	msg "Autoreconf..."
	autoreconf --install

	unset CFLAGS
	unset LDFLAGS
}

# Unset CFLAGS and LDFLAGS because the xen build system
# doesn't support them. Instead use .config in xen root
# folder if necessary.
munge_cflags() {
	msg "Munging CFLAGS..."

	unset CFLAGS
	unset LDFLAGS
	unset LANG
	unset LC_ALL
}

# These tasks are added as separate tasks to enable a packager
# to invoke specific tasks like building the hypervisor.  i.e.
#    $ abuild configure build_tools
configure() {
	msg "Running configure..."
	./configure --prefix=/usr \
		--build=$CBUILD \
		--host=$CHOST \
		--with-system-seabios=$_seabios \
		--enable-9pfs \
		--disable-golang
}

build_hypervisor() {
	munge_cflags

	msg "Building hypervisor..."
	make xen
}

build_tools() {
	munge_cflags

	msg "Building tools..."
	NO_WERROR=1 make tools
}

build_docs() {
	munge_cflags

	msg "Building documentation..."
	make docs
}

build() {
	configure
	build_hypervisor
	build_tools
	build_docs
}

package() {
	munge_cflags

	make DESTDIR="$pkgdir" EFI_DIR=/usr/lib/efi \
		BASH_COMPLETION_DIR=/usr/share/bash-completion/completions \
		install-xen install-tools install-docs

	# remove default xencommons
	rm -rf "$pkgdir"/etc/init.d/xencommons
	# remove default xendriverdomain
	rm -rf "$pkgdir"/etc/init.d/xendriverdomain

	for i in $source; do
		case $i in
		*.initd) install -Dm755 "$srcdir"/$i \
				"$pkgdir"/etc/init.d/${i%.*};;
		*.confd) install -Dm644 "$srcdir"/$i \
				"$pkgdir"/etc/conf.d/${i%.*};;
		esac
	done
	install -Dm644 "$srcdir"/xen-consoles.logrotate \
		"$pkgdir"/etc/xen/xen-consoles.logrotate

	# we need to exclude /usr/share when stripping
	msg "Stripping binaries"
	scanelf --recursive --nobanner --etype "ET_DYN,ET_EXEC" "$pkgdir"/usr/lib \
		"$pkgdir"/usr/bin \
		"$pkgdir"/usr/sbin \
		| sed -e 's:^ET_DYN ::' -e 's:^ET_EXEC ::' \
		| xargs strip
}

check() {
	make test
}

libs() {
	pkgdesc="Libraries for Xen tools"
	replaces="xen"
	depends=
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/*.so.* \
		"$pkgdir"/usr/lib/xenfsimage \
		"$subpkgdir"/usr/lib/
}

hypervisor() {
	pkgdesc="Xen hypervisor"
	depends=
	mkdir -p "$subpkgdir"
	mv "$pkgdir"/boot "$subpkgdir"/
	if [ -d "$pkgdir"/usr/lib/efi ]; then
		mkdir -p "$subpkgdir"/usr/lib
		mv "$pkgdir"/usr/lib/efi "$subpkgdir"/usr/lib/
	fi
}

bridge() {
	depends="dnsmasq"
	pkgdesc="Bridge interface for XEN with dhcp"

	mkdir -p "$subpkgdir"/etc/xen

	cat ->>"$subpkgdir"/etc/xen/dnsmasq.conf <<EOF
		#dhcp-host=somehost,10.0.4.3
		#dhcp-host=otherhost,10.0.4.4
EOF

}

bridge_openrc() {
	depends=
	pkgdesc="Bridge interface for XEN with dhcp (OpenRC init scripts)"
	install_if="openrc ${subpkgname%-openrc}=$pkgver-r$pkgrel"

	mkdir -p "$subpkgdir"/etc/conf.d \
		"$subpkgdir"/etc/init.d

	ln -s dnsmasq "$subpkgdir"/etc/init.d/dnsmasq.xenbr0
	cat ->>"$subpkgdir"/etc/conf.d/dnsmasq.xenbr0 <<EOF
		BRIDGE_ADDR="10.0.4.1"
		BRIDGE_NETMASK="255.255.255.0"
		BRIDGE_NETWORK="10.0.4.0/24"
		BRIDGE_DHCP_RANGE="10.0.4.2,10.0.4.254"
		BRIDGE_DHCP_MAX="253"
		BRIDGE_MAC="00:16:3f:00:00:00"
		DNSMASQ_CONFFILE="/etc/xen/dnsmasq.conf"
EOF
}

qemu() {
	pkgdesc="QEMU for XEN"
	case "$CARCH" in
	x86*)
		depends="$depends seabios-bin"
		;;
	esac
	mkdir -p "$subpkgdir"/usr/lib/xen/bin \
		"$subpkgdir"/usr/share/applications

	amove usr/lib/xen/bin/qemu*
	mv "$pkgdir"/usr/share/qemu-xen/applications/qemu.desktop \
		"$subpkgdir"/usr/share/applications/qemu-xen.desktop
	amove usr/share/qemu-xen

	case "$CARCH" in
	x86*)
		# these files are only in the x86* builds
		amove usr/lib/xen/libexec/qemu-bridge-helper
	esac

	# these files contain textrels in the QEMU release tracked by Xen 4.20
	rm "$subpkgdir"/usr/share/qemu-xen/qemu/s390-netboot.img
	rm "$subpkgdir"/usr/share/qemu-xen/qemu/s390-ccw.img
}

qemu_openrc() {
	depends=
	pkgdesc="QEMU for XEN (OpenRC init scripts)"
	install_if="openrc ${subpkgname%-openrc}=$pkgver-r$pkgrel"

	amove etc/conf.d/xenqemu
	amove etc/init.d/xenqemu
}

sha512sums="
e4502ddaeb66de4c30d59e90af198586683c28b56bf0eb03ca5508f663fef5e6582c009861ff5b66b7f0df6e5f6bc12337eff0ec775d72e7cb189fd2079dbd9d  xen-4.20.1.tar.gz
fe3c253d03e1962ca4dd6bccd2e51817075450f51aa66e8ab9673bdd5a530dc08f1ed7817a1271ada028b0c34162f37cd6b24d84334403767caacd8206284cbb  qemu-xen_paths.patch
1c9cb24bf67a2e84466572198315d5501627addf1ccd55d8d83df8d77d269a6696cd45e4a55601495168284e3bff58fb39853f56c46aaddd14f6191821678cf6  hotplug-vif-vtrill.patch
8c9cfc6afca325df1d8026e21ed03fa8cd2c7e1a21a56cc1968301c5ab634bfe849951899e75d328951d7a41273d1e49a2448edbadec0029ed410c43c0549812  hotplug-Linux-iscsi-block-handle-lun-1.patch
9430940692d6bfb58b1438e0f5f84cb703fbca9ce9cc157a1313ab1ceff63222a1ae31c991543b20c8fc84300df2b22f4614b27bbff32f82e17f27fcd953143c  xenstored.initd
093f7fbd43faf0a16a226486a0776bade5dc1681d281c5946a3191c32d74f9699c6bf5d0ab8de9d1195a2461165d1660788e92a3156c9b3c7054d7b2d52d7ff0  xenstored.confd
1dd04f4bf1890771aa7eef0b6e46f7139487da0907d28dcdbef9fbe335dcf731ca391cfcb175dd82924f637a308de00a69ae981f67348c34f04489ec5e5dc3b7  xenconsoled.initd
30df69cc38d0bed26bc4d6e08a2b62cbdc654d5f663009a05cb3b83b3e3dc5e206362d3fd59abbb753ceb8d6d79eaa6e15d079bb8f4f35dc74667103faf4e85d  xenconsoled.confd
71d464464130fbac0ffe6ce06337d8032b4a03a9da5fbb313b26538946d122f2531ef91e258faaff2636b29514cbb65ec0f62615a48437a8383f24f7e59df685  xendomains.initd
c7c0eecd5f454d903b57a710902da27dcb2c6b200f88d4eadfab33a447be6b41454109d482aab849a690446ea5c928e619dfc6cf95b7955f00a476f2317bb82b  xendomains.confd
ab2105c75cfe01768aecd5bcbb56269d63666e8a44e42b6a83aee87df6c84ee2f9ab249171c21b2e09f8fec2cae8318f6e87d160989398a3e7dd68db8d52c426  xen-consoles.logrotate
bdbe15c924071cdc2d0f23e53ba8e3f837d4b5369bfb218abd3405f9bef25d105269aaf0784baeb69c073a5786b8c82ffdfd414e86874da34293cfdc2c497928  xenqemu.confd
b833ed7334d912b519f317caefcf278274964838ca5588a0d58d9e91817e6c5519eab42521b78f7fc307ad24f25934e4f5d5d1097f783a847fc22d2cc38b27b5  xenqemu.initd
bc40f7c0548162ce2181b34ea39064c0e1c529af95e0a282c78879916036cf7ac3c2cb7c433f8702a9fffe6e9257707d25fdccb6f8d045aef78b5e251a476309  xendriverdomain.initd
a46337bebce24337f00adbe08095b9f5128c1f440e2033329e5ace9fd817a31fb772d75c0ecc7cc06f34b1522ebf8b21874ee4d0881a0f29851b1c1235f29cf3  xen-pci.initd
2db5fa6edeeb028236460029b976a849f22b3a15d3929acc3911dc41f365b471c2b815eb111639bc230a69528b1571f3c2e9e8e1e81a6679e55387e39355aa99  xen-pci.confd
"
