summaryrefslogtreecommitdiff
path: root/kernels/xen
diff options
context:
space:
mode:
Diffstat (limited to 'kernels/xen')
-rw-r--r--kernels/xen/ChangeLog21
-rw-r--r--kernels/xen/PKGBUILD141
-rw-r--r--kernels/xen/conf.d-xenconsoled14
-rw-r--r--kernels/xen/conf.d-xenstored2
-rw-r--r--kernels/xen/disable-bluez.patch21
-rw-r--r--kernels/xen/efi-xen.cfg7
-rw-r--r--kernels/xen/ovmf-gcc4.9-basetools.patch231
-rw-r--r--kernels/xen/ovmf-gcc4.9-ovmfpkg.patch19
-rw-r--r--kernels/xen/ovmf.patch13
-rw-r--r--kernels/xen/proc-xen.mount9
-rw-r--r--kernels/xen/var-lib-xenstored.mount10
-rw-r--r--kernels/xen/xen.install45
-rw-r--r--kernels/xen/xenconsoled.service18
-rw-r--r--kernels/xen/xendomU@.service12
-rw-r--r--kernels/xen/xendomains.service15
-rw-r--r--kernels/xen/xenstored.service21
16 files changed, 384 insertions, 215 deletions
diff --git a/kernels/xen/ChangeLog b/kernels/xen/ChangeLog
index 42c9ef681..96bfbfec5 100644
--- a/kernels/xen/ChangeLog
+++ b/kernels/xen/ChangeLog
@@ -1,3 +1,22 @@
+2015-03-01 David Sutton <kantras - gmail.com>
+ * 4.5.0-1
+ New major release from upstream
+ Cleaned up old XSA patches
+ Removed old systemd support patches and realigned with the new upstream methods
+
+2014-10-26 David Sutton <kantras - gmail.com>
+ * 4.4.1-3
+ Enabled OVMF support and added patches to fix compile
+ Enabled spice support and added patch to enable qemu support in qemu-xen
+ Added figlet as an make dependancy for the ascii art version number
+ Including an example xen.cfg package for people who will be using EFI
+ Additional cleanup (explictly disabling some unnecessary libraries)
+
+2014-10-12 David Sutton <kantras - gmail.com>
+ * 4.4.1-2:
+ Added XSA 104, 105, 106, 107 and 108 security patches
+ Added .config to resolve compile issues where /etc/sysconfig exists
+
2014-09-04 David Sutton <kantras - gmail.com>
* 4.4.1-1:
New Upstream release
@@ -83,7 +102,7 @@
* 4.3.0-3 :
added ChangeLog.
- Cleaned up PKGBUILD to match Package Standards
+ Cleaned up PKGBUILD to match Parabola Package Standards
Fixed some path references - /var/run to /run
Removed some unnecessary empty directories
Updated xenconsoled and xenstored so they use /run for pid file
diff --git a/kernels/xen/PKGBUILD b/kernels/xen/PKGBUILD
index 7761893c4..0518ce19c 100644
--- a/kernels/xen/PKGBUILD
+++ b/kernels/xen/PKGBUILD
@@ -6,15 +6,15 @@
# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=xen
-pkgver=4.4.1
+pkgver=4.5.0
pkgrel=1.parabola1
pkgdesc="Virtual Machine Hypervisor & Tools (Parabola rebranded)"
arch=(i686 x86_64)
url="http://www.xenproject.org/"
license=(GPL2)
-depends=(bin86 bridge-utils curl gnutls iproute2 libaio libcap-ng libiscsi libjpeg-turbo libpng libseccomp lzo2 nss pixman pciutils python python2 sdl wget vde2 yajl)
+depends=(bridge-utils curl gnutls iproute2 libaio libcap-ng libiscsi libjpeg-turbo libpng libseccomp lzo2 nss pixman pciutils python python2 sdl yajl spice usbredir)
[[ "$CARCH" == "x86_64" ]] && depends+=(lib32-glibc)
-makedepends=(cmake dev86 git iasl markdown ocaml-findlib)
+makedepends=(bin86 cmake dev86 git iasl markdown ocaml-findlib figlet wget spice-protocol)
optdepends=('xen-docs: Official Xen Documentation' 'openvswitch: Optional Networking support')
conflicts=(xen-4.2{,-testing-hg} xen-{gdbsx,hg-unstable,rc,git} xen-4.3{,-testing-hg})
backup=(etc/modules-load.d/$pkgname.conf etc/$pkgname/xl.conf etc/conf.d/xen{stored,consoled,domains,commons} etc/$pkgname/grub.conf)
@@ -31,19 +31,15 @@ source=(http://bits.xensource.com/oss-xen/release/$pkgver/$pkgname-$pkgver.tar.g
http://xenbits.xen.org/xen-extfiles/grub-0.97.tar.gz
http://xenbits.xen.org/xen-extfiles/tpm_emulator-0.7.4.tar.gz
http://xenbits.xen.org/xen-extfiles/gmp-4.3.2.tar.bz2
+ http://repo.parabola.nu/other/$pkgname/$pkgname-$pkgver.gz
xen.install
+ tmpfiles.d-$pkgname.conf
09_xen
ati-passthrough.patch
- disable-bluez.patch
- proc-xen.mount
- var-lib-xenstored.mount
- xenconsoled.service
- conf.d-xenconsoled
- xendomains.service
- xendomU@.service
- xenstored.service
- conf.d-xenstored
- tmpfiles.d-$pkgname.conf
+ ovmf.patch
+ ovmf-gcc4.9-basetools.patch
+ ovmf-gcc4.9-ovmfpkg.patch
+ efi-xen.cfg
grub.conf
$pkgname.conf)
noextract=(lwip-1.3.0.tar.gz
@@ -54,9 +50,10 @@ noextract=(lwip-1.3.0.tar.gz
grub-0.97.tar.gz
tpm_emulator-0.7.4.tar.gz
gmp-4.3.2.tar.bz2
- ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz)
+ ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz
+ $pkgname-$pkgver.gz)
-sha256sums=('55b49d3c4575d7791275125ff87c0f86f1d1e0f7f2718b6fd1c4f88a9bc7ea25'
+sha256sums=('5bdb40e2b28d2eeb541bd71a9777f40cbe2ae444b987521d33f099541a006f3b'
'632ce8c193ccacc3012bd354bdb733a4be126f7c098e111930aa41dad537405c'
'772e4d550e07826665ed0528c071dd5404ef7dbe1825a38c8adbc2a00bca948f'
'1795c7d067a43174113fdf03447532f373e1c6c57c08d61d9e4e9be5e244b05e'
@@ -66,19 +63,15 @@ sha256sums=('55b49d3c4575d7791275125ff87c0f86f1d1e0f7f2718b6fd1c4f88a9bc7ea25'
'4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47877d36575b904559260b'
'4e48ea0d83dd9441cc1af04ab18cd6c961b9fa54d5cbf2c2feee038988dea459'
'936162c0312886c21581002b79932829aa048cfaf9937c6265aeaa14f1cd1775'
- 'b29b6529c84348bfaf86ff52fac3b3b49c8259741820a0edf056809bd7e65532'
+ 'bf636b3cbe01a3a8f348656c64ca08bdcbe6be602b53826952de22b90747f5e3'
+ 'bfee0c85c88fe331ad76cdc07b93b18da24c6c1ff2ea3f6f28ee727f8e3ee121'
+ '40e0760810a49f925f2ae9f986940b40eba477dc6d3e83a78baaae096513b3cf'
'b0a3cfe2d524371ee04a26a29ad04cd9f3dae8c5d4a18b6b41576c6c7547f946'
'd93c2d5bcdf0c3e4c6e8efb357cb4b9d618209025361f5ccd9d03651a8acd7a3'
- '0ba03980b4d300fea3f8bbe47b188a491ddf871246e5bd214b1ed15e971324d2'
- '139eed988bfaf8edc8ccdfd0b668382bd63db48ce17be91776182a7e28e9d88c'
- 'c19146931c6ab8e53092bd9b2ebbfda5c76fd22ad3b1d42dcda3dd1b61f123ff'
- 'e4af7891e816b9549ebeff766a78036626c0e278734e5625b8e7d68729530ded'
- '48d76cc6f25caa79b3f527c96a0883b1decb9012f6616f61336c8d43791bf007'
- '0bd45d9de6456c4f9adf32e726f2db3a3cd0423c1d161b442e8a1666d2e68e3f'
- '012cc60ffdcb0e061d04d404eb9232734554aef4dc4b551f66adf82a655e6e41'
- '633d334c55395fac3f16dbe56dd7b7524d560b513d1895b53c89943033a45f39'
- '0e1ad0a6a72b0c22025a556c23235a8f663427f1e769c45fe39d1c525bf82eff'
- '40e0760810a49f925f2ae9f986940b40eba477dc6d3e83a78baaae096513b3cf'
+ '1c44b9dc848bb6c3ef2ab76e4807a0b3ed360aea6b13b5b86d2bf5301d14247b'
+ '45aae7a1d48357e5f981c12870b5bcac0dd0f630f84e398160d8c9adb42a6674'
+ '8e16638d0cc366d1eaae7ccbcf43215853b4444a625478ec8f6e0a2c655370d9'
+ '592f9ed540adbe94095071e4c327aefe85ee5ca057a086a9935847f36aca3be8'
'3f0af16958c3e057b9baa5afc47050d9adf7dd553274dd97ae4f35938fefb568'
'50a9b7fd19e8beb1dea09755f07318f36be0b7ec53d3c9e74f3266a63e682c0c')
@@ -90,15 +83,20 @@ prepare() {
# Security Patches
# Compile Patches
- patch -Np1 -i $srcdir/disable-bluez.patch
+
+ # OVMF Compile support (Pulls from GIT repo, so patching to patch after pull request)
+ echo "Patching OVMF..."
+ patch -Np1 -i $srcdir/ovmf.patch
+ cp $srcdir/ovmf-gcc4.9-basetools.patch tools/firmware/
+ cp $srcdir/ovmf-gcc4.9-ovmfpkg.patch tools/firmware/
# Uncomment line below if you want to enable ATI Passthrough support (some reported successes, untested with 4.4)
#patch -Np1 -i ../ati-passthrough.patch
# Fix Install Paths
- sed -i 's:/sbin:/bin:' config/StdGNU.mk
- sed -i 's:/var/lock:/run/lock:' config/StdGNU.mk
- sed -i 's:/var/run:/run:' config/StdGNU.mk
+ sed -i 's:\$localstatedir/run/xen:/run/xen:' m4/paths.m4
+ sed -i 's:/var/run:/run:' tools/ocaml/xenstored/define.ml
+ sed -i 's:/var/run:/run:' tools/ocaml/xenstored/systemd_stubs.c
# Copy supporting tarballs into place
cp $srcdir/lwip-1.3.0.tar.gz stubdom/
@@ -114,48 +112,44 @@ prepare() {
}
build() {
- export CFLAGS+='-Wall -Wstrict-prototypes -Wno-unused-local-typedefs -Wno-sizeof-pointer-memaccess'
cd $pkgname-$pkgver/
./autogen.sh
- ./configure PYTHON=/usr/bin/python2 --prefix=/usr --localstatedir=/run --enable-xend
- make LANG=C PYTHON=python2 dist-{xen,tools,kernels}
+ ./configure PYTHON=/usr/bin/python2 --prefix=/usr --sbindir=/usr/bin --with-sysconfig-leaf-dir=conf.d --with-initddir=/etc/init.d \
+ --enable-systemd --disable-docs --enable-stubdom --enable-qemu-traditional --enable-rombios \
+ --with-extra-qemuu-configure-args="--disable-bluez --disable-gtk --enable-spice --enable-usb-redir" # --enable-ovmf
unset CFLAGS
- make LANG=C PYTHON=python2 dist-stubdom
+ make LANG=C PYTHON=python2
}
package() {
cd $pkgname-$pkgver/
- make DESTDIR="$pkgdir" LANG=C PYTHON=python2 install-{xen,tools,kernels,stubdom}
-
- # Install files
- cd ../
- for f in ${source[@]}; do
- [[ $f =~ .mount || $f =~ .service ]] && install -Dm644 $f "$pkgdir"/usr/lib/systemd/system/$f
- done
- install -Dm644 tmpfiles.d-$pkgname.conf "$pkgdir"/usr/lib/tmpfiles.d/$pkgname.conf
- install -Dm644 $pkgname.conf "$pkgdir"/etc/modules-load.d/$pkgname.conf
- install -Dm644 conf.d-xenstored "$pkgdir"/etc/conf.d/xenstored
- install -Dm644 conf.d-xenconsoled "$pkgdir"/etc/conf.d/xenconsoled
- install -Dm644 grub.conf "$pkgdir"/etc/xen/grub.conf
- install -Dm755 09_xen "$pkgdir"/etc/grub.d/09_xen
+ make DESTDIR="$pkgdir" LANG=C PYTHON=python2 install
cd "$pkgdir"
+ # Install files from Parabola package
+ install -Dm644 $srcdir/tmpfiles.d-$pkgname.conf usr/lib/tmpfiles.d/$pkgname.conf
+ #install -Dm644 $srcdir/conf.d-xenstored etc/conf.d/xenstored
+ #install -Dm644 $srcdir/conf.d-xenconsoled etc/conf.d/xenconsoled
+ install -Dm644 $srcdir/grub.conf etc/xen/grub.conf
+ install -Dm755 $srcdir/09_xen etc/grub.d/09_xen
+ install -Dm644 $srcdir/efi-xen.cfg etc/xen/efi-xen.cfg
+
+ # Fix bug #678 -> https://labs.parabola.nu/issues/678
+ if [[ $CARCH == i686 ]]; then
+ mkdir boot
+ cp $srcdir/$pkgname-$pkgver.gz boot
+ fi
+
# Fix paths in scripts, move to right locations and create missing directories
- sed -i 's:/etc/sysconfig:/etc/conf.d:' etc/init.d/xendomains
- sed -i 's:/var/lock:/run/lock:' etc/init.d/xendomains
- sed -i 's:/var/lock:/run/lock:' etc/xen/scripts/hotplugpath.sh
sed -i 's:/var/run:/run:' etc/init.d/xencommons
- sed -i 's:/var/run:/run:' etc/xen/scripts/hotplugpath.sh
+ sed -i 's:/var/lock:/run/lock:' etc/xen/scripts/hotplugpath.sh
sed -i 's:/var/run:/run:' etc/xen/scripts/locking.sh
+ sed -i 's:/var/run:/run:' usr/lib/systemd/system/xenstored.service
+ sed -i 's:/var/run:/run:' usr/lib/systemd/system/xenstored.socket
+ sed -i 's:/var/run:/run:' usr/lib/systemd/system/xenstored_ro.socket
- mv etc/init.d/xencommons etc/xen/scripts/xencommons
- mv etc/init.d/xendomains etc/xen/scripts/xendomains
- mv etc/init.d/xen-watchdog etc/xen/scripts/xen-watchdog
- mv etc/default/xencommons etc/conf.d/xencommons
- mv etc/default/xendomains etc/conf.d/xendomains
- mv var/xen/dump var/lib/xen/
mkdir var/log/xen/console
# Sanitize library path (if lib64 exists)
@@ -166,41 +160,34 @@ package() {
cd ../
fi
+ # If EFI binaries build, move to /boot
+ if [[ -f usr/lib/efi/xen.efi ]]; then
+ mv usr/lib/efi/xen-$pkgver.efi boot/xen-$pkgver.efi
+ rm -rf usr/lib/efi
+ fi
+
# Compress syms file and move to a share location
if [[ $CARCH == x86_64 ]]; then
- gzip boot/$pkgname-syms-*
- mv boot/$pkgname-syms-*.gz usr/share/xen
+ gzip boot/$pkgname-syms-*
+ mv boot/$pkgname-syms-*.gz usr/share/xen
fi
##### Kill unwanted stuff #####
# hypervisor symlinks
- rm -f boot/xen{,-4,-4.4}.gz
+ if [[ $CARCH == x86_64 ]]; then
+ rm -f boot/xen{,-4,-4.5,-4.5-rc}.gz
+ fi
# Documentation cleanup ( see xen-docs package )
rm -rf usr/share/doc
rm -rf usr/share/man
- # Pointless helper cleanup
- rm -f usr/bin/xen-python-path
-
# Unnecessary qemu support files
- rm -rf usr/bin/qemu-*-xen
- rm -rf usr/etc
- rm -rf usr/libexec
+# rm -rf usr/bin/qemu-*-xen
rm usr/share/qemu-xen/qemu/{palcode,openbios}-*
rm usr/share/xen/qemu/openbios-*
- # Clean up udev rules naming
- mv etc/udev/rules.d/xen-backend.rules etc/udev/rules.d/40-xen-backend.rules
-
- # Cleanup additional leftover files
- rm -rf usr/include/cacard
- rm -f usr/lib/libcacard*
- rm -f usr/lib/pkgconfig/libcacard.pc
-
- # Clean up left over empty directories
- rm -rf var/run var/lock var/xen etc/default etc/init.d
-
# adhere to Static Library Packaging Guidelines
rm -rf usr/lib/*.a
+
}
diff --git a/kernels/xen/conf.d-xenconsoled b/kernels/xen/conf.d-xenconsoled
deleted file mode 100644
index 9dee0960a..000000000
--- a/kernels/xen/conf.d-xenconsoled
+++ /dev/null
@@ -1,14 +0,0 @@
-# No logging (default)
-#XENCONSOLED_LOG=none
-# Log guest console output only
-#XENCONSOLED_LOG=guest
-# Log hypervisor messages only
-#XENCONSOLED_LOG=hv
-# Log both guest console output and hypervisor messages
-XENCONSOLED_LOG=all
-
-# Location to store guest & hypervisor logs
-XENCONSOLED_LOG_DIR=/var/log/xen/console
-
-#XENCONSOLED_ARGS=
-
diff --git a/kernels/xen/conf.d-xenstored b/kernels/xen/conf.d-xenstored
deleted file mode 100644
index 366abf9ad..000000000
--- a/kernels/xen/conf.d-xenstored
+++ /dev/null
@@ -1,2 +0,0 @@
-#XENSTORED_ARGS=" -T /var/log/xen/xenstored-trace.log"
-XENDOM0_NAME="Domain-0"
diff --git a/kernels/xen/disable-bluez.patch b/kernels/xen/disable-bluez.patch
deleted file mode 100644
index d420f038c..000000000
--- a/kernels/xen/disable-bluez.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/tools/qemu-xen-traditional/xen-setup 2013-12-19 09:19:49.000000000 -0600
-+++ b/tools/qemu-xen-traditional/xen-setup 2014-06-18 19:07:28.018807657 -0500
-@@ -18,7 +18,7 @@
- XEN_SCRIPT_DIR="/etc/xen/scripts"
- fi
-
--${QEMU_ROOT:-.}/configure --disable-gfx-check --disable-curses --disable-slirp "$@" --prefix=${PREFIX}
-+${QEMU_ROOT:-.}/configure --disable-gfx-check --disable-curses --disable-slirp "$@" --prefix=${PREFIX} --disable-bluez
-
- if [ "x$XEN_ROOT" != x ]; then
- echo "XEN_ROOT=$XEN_ROOT" >>config-host.mak
---- a/tools/Makefile 2014-03-10 05:43:57.000000000 -0500
-+++ b/tools/Makefile.new 2014-06-18 20:07:56.707835949 -0500
-@@ -203,6 +203,7 @@
- --disable-kvm \
- --disable-docs \
- --disable-guest-agent \
-+ --disable-bluez \
- --python=$(PYTHON) \
- $(IOEMU_CONFIGURE_CROSS); \
- $(MAKE) all
diff --git a/kernels/xen/efi-xen.cfg b/kernels/xen/efi-xen.cfg
new file mode 100644
index 000000000..0d4048fda
--- /dev/null
+++ b/kernels/xen/efi-xen.cfg
@@ -0,0 +1,7 @@
+[global]
+default=xen
+
+[xen]
+options=console=vga dom0_mem=1024M,max=1024M dom0_max_vcpus=4 loglvl=all noreboot
+kernel=vmlinuz-linux root=<Root Device> rw
+ramdisk=initramfs-linux.img
diff --git a/kernels/xen/ovmf-gcc4.9-basetools.patch b/kernels/xen/ovmf-gcc4.9-basetools.patch
new file mode 100644
index 000000000..7af48e8ac
--- /dev/null
+++ b/kernels/xen/ovmf-gcc4.9-basetools.patch
@@ -0,0 +1,231 @@
+diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
+index f99ddf6..f9e1e6c 100644
+--- a/ovmf-dir/BaseTools/Conf/tools_def.template
++++ b/ovmf-dir/BaseTools/Conf/tools_def.template
+@@ -159,6 +159,12 @@
+ DEFINE GCC47_IA32_PREFIX = /usr/bin/
+ DEFINE GCC47_X64_PREFIX = /usr/bin/
+
++DEFINE GCC48_IA32_PREFIX = /usr/bin/
++DEFINE GCC48_X64_PREFIX = /usr/bin/
++
++DEFINE GCC49_IA32_PREFIX = /usr/bin/
++DEFINE GCC49_X64_PREFIX = /usr/bin/
++
+ DEFINE UNIX_IASL_BIN = /usr/bin/iasl
+ #DEFINE UNIX_IASL_BIN = $(HOME)/programs/iasl
+ DEFINE WIN_ASL_BIN_DIR = C:\ASL
+@@ -307,6 +310,12 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
+ # Required to build platforms or ACPI tables:
+ # Intel(r) ACPI Compiler v20101013 from
+ # http://www.acpica.org/downloads/previous_releases.php
++# GCC49 -Linux- Requires:
++# GCC 4.9
++# Optional:
++# Required to build platforms or ACPI tables:
++# Intel(r) ACPI Compiler v20101013 from
++# http://www.acpica.org/downloads/previous_releases.php
+ # ELFGCC -Linux- Requires:
+ # GCC(this tool chain uses whatever version of gcc and binutils that is installed in /usr/bin)
+ # Optional:
+@@ -3216,6 +3225,23 @@ DEFINE GCC48_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
+ DEFINE GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC47_ARM_ASLDLINK_FLAGS)
+ DEFINE GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
+
++DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
++DEFINE GCC49_IA32_CC_FLAGS = DEF(GCC47_IA32_CC_FLAGS)
++DEFINE GCC49_X64_CC_FLAGS = DEF(GCC47_X64_CC_FLAGS)
++DEFINE GCC49_IA32_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.9-ld-script
++DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable
++DEFINE GCC49_IA32_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
++DEFINE GCC49_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_FLAGS) -melf_x86_64 --oformat=elf64-x86-64
++DEFINE GCC49_ASM_FLAGS = DEF(GCC47_ASM_FLAGS)
++DEFINE GCC49_ARM_ASM_FLAGS = DEF(GCC47_ARM_ASM_FLAGS)
++DEFINE GCC49_AARCH64_ASM_FLAGS = DEF(GCC47_AARCH64_ASM_FLAGS)
++DEFINE GCC49_ARM_CC_FLAGS = DEF(GCC47_ARM_CC_FLAGS)
++DEFINE GCC49_AARCH64_CC_FLAGS = DEF(GCC47_AARCH64_CC_FLAGS)
++DEFINE GCC49_ARM_DLINK_FLAGS = DEF(GCC47_ARM_DLINK_FLAGS)
++DEFINE GCC49_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
++DEFINE GCC49_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) --oformat=elf32-littlearm
++DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
++
+ ####################################################################################
+ #
+ # Unix GCC And Intel Linux ACPI Compiler
+@@ -3769,6 +3794,126 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
+
+ ####################################################################################
+ #
++# GCC 4.9 - This configuration is used to compile under Linux to produce
++# PE/COFF binaries using GCC 4.9.
++#
++####################################################################################
++*_GCC49_*_*_FAMILY = GCC
++
++*_GCC49_*_MAKE_PATH = make
++*_GCC49_*_ASL_PATH = DEF(UNIX_IASL_BIN)
++
++*_GCC49_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
++*_GCC49_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
++*_GCC49_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
++*_GCC49_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
++*_GCC49_*_APP_FLAGS =
++*_GCC49_*_ASL_FLAGS = DEF(IASL_FLAGS)
++*_GCC49_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
++
++##################
++# GCC49 IA32 definitions
++##################
++*_GCC49_IA32_OBJCOPY_PATH = DEF(GCC49_IA32_PREFIX)objcopy
++*_GCC49_IA32_CC_PATH = DEF(GCC49_IA32_PREFIX)gcc
++*_GCC49_IA32_SLINK_PATH = DEF(GCC49_IA32_PREFIX)ar
++*_GCC49_IA32_DLINK_PATH = DEF(GCC49_IA32_PREFIX)ld
++*_GCC49_IA32_ASLDLINK_PATH = DEF(GCC49_IA32_PREFIX)ld
++*_GCC49_IA32_ASM_PATH = DEF(GCC49_IA32_PREFIX)gcc
++*_GCC49_IA32_PP_PATH = DEF(GCC49_IA32_PREFIX)gcc
++*_GCC49_IA32_VFRPP_PATH = DEF(GCC49_IA32_PREFIX)gcc
++*_GCC49_IA32_ASLCC_PATH = DEF(GCC49_IA32_PREFIX)gcc
++*_GCC49_IA32_ASLPP_PATH = DEF(GCC49_IA32_PREFIX)gcc
++*_GCC49_IA32_RC_PATH = DEF(GCC49_IA32_PREFIX)objcopy
++
++*_GCC49_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32
++*_GCC49_IA32_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -m elf_i386
++*_GCC49_IA32_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m32 -march=i386
++*_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os
++*_GCC49_IA32_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386
++*_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
++*_GCC49_IA32_OBJCOPY_FLAGS =
++
++##################
++# GCC49 X64 definitions
++##################
++*_GCC49_X64_OBJCOPY_PATH = DEF(GCC49_X64_PREFIX)objcopy
++*_GCC49_X64_CC_PATH = DEF(GCC49_X64_PREFIX)gcc
++*_GCC49_X64_SLINK_PATH = DEF(GCC49_X64_PREFIX)ar
++*_GCC49_X64_DLINK_PATH = DEF(GCC49_X64_PREFIX)ld
++*_GCC49_X64_ASLDLINK_PATH = DEF(GCC49_X64_PREFIX)ld
++*_GCC49_X64_ASM_PATH = DEF(GCC49_X64_PREFIX)gcc
++*_GCC49_X64_PP_PATH = DEF(GCC49_X64_PREFIX)gcc
++*_GCC49_X64_VFRPP_PATH = DEF(GCC49_X64_PREFIX)gcc
++*_GCC49_X64_ASLCC_PATH = DEF(GCC49_X64_PREFIX)gcc
++*_GCC49_X64_ASLPP_PATH = DEF(GCC49_X64_PREFIX)gcc
++*_GCC49_X64_RC_PATH = DEF(GCC49_X64_PREFIX)objcopy
++
++*_GCC49_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64
++*_GCC49_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64
++*_GCC49_X64_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m64
++*_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS)
++*_GCC49_X64_DLINK_FLAGS = DEF(GCC49_X64_DLINK_FLAGS)
++*_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
++*_GCC49_X64_OBJCOPY_FLAGS =
++
++##################
++# GCC49 ARM definitions
++##################
++*_GCC49_ARM_CC_PATH = ENV(GCC49_ARM_PREFIX)gcc
++*_GCC49_ARM_SLINK_PATH = ENV(GCC49_ARM_PREFIX)ar
++*_GCC49_ARM_DLINK_PATH = ENV(GCC49_ARM_PREFIX)ld
++*_GCC49_ARM_ASLDLINK_PATH = ENV(GCC49_ARM_PREFIX)ld
++*_GCC49_ARM_ASM_PATH = ENV(GCC49_ARM_PREFIX)gcc
++*_GCC49_ARM_PP_PATH = ENV(GCC49_ARM_PREFIX)gcc
++*_GCC49_ARM_VFRPP_PATH = ENV(GCC49_ARM_PREFIX)gcc
++*_GCC49_ARM_ASLCC_PATH = ENV(GCC49_ARM_PREFIX)gcc
++*_GCC49_ARM_ASLPP_PATH = ENV(GCC49_ARM_PREFIX)gcc
++*_GCC49_ARM_RC_PATH = ENV(GCC49_ARM_PREFIX)objcopy
++
++*_GCC49_ARM_ARCHCC_FLAGS = -mthumb
++*_GCC49_ARM_PLATFORM_FLAGS = -march=armv7-a
++
++*_GCC49_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
++*_GCC49_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS)
++*_GCC49_ARM_ASM_FLAGS = DEF(GCC49_ARM_ASM_FLAGS)
++*_GCC49_ARM_DLINK_FLAGS = DEF(GCC49_ARM_DLINK_FLAGS)
++*_GCC49_ARM_PLATFORM_FLAGS = -march=armv7-a
++*_GCC49_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
++*_GCC49_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS)
++*_GCC49_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
++
++ DEBUG_GCC49_ARM_CC_FLAGS = DEF(GCC49_ARM_CC_FLAGS) -O0
++RELEASE_GCC49_ARM_CC_FLAGS = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable
++
++##################
++# GCC49 AARCH64 definitions
++##################
++*_GCC49_AARCH64_CC_PATH = ENV(GCC49_AARCH64_PREFIX)gcc
++*_GCC49_AARCH64_SLINK_PATH = ENV(GCC49_AARCH64_PREFIX)ar
++*_GCC49_AARCH64_DLINK_PATH = ENV(GCC49_AARCH64_PREFIX)ld
++*_GCC49_AARCH64_ASLDLINK_PATH = ENV(GCC49_AARCH64_PREFIX)ld
++*_GCC49_AARCH64_ASM_PATH = ENV(GCC49_AARCH64_PREFIX)gcc
++*_GCC49_AARCH64_PP_PATH = ENV(GCC49_AARCH64_PREFIX)gcc
++*_GCC49_AARCH64_VFRPP_PATH = ENV(GCC49_AARCH64_PREFIX)gcc
++*_GCC49_AARCH64_ASLCC_PATH = ENV(GCC49_AARCH64_PREFIX)gcc
++*_GCC49_AARCH64_ASLPP_PATH = ENV(GCC49_AARCH64_PREFIX)gcc
++*_GCC49_AARCH64_RC_PATH = ENV(GCC49_AARCH64_PREFIX)objcopy
++
++*_GCC49_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
++*_GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)
++*_GCC49_AARCH64_ASM_FLAGS = DEF(GCC49_AARCH64_ASM_FLAGS)
++*_GCC49_AARCH64_DLINK_FLAGS = DEF(GCC49_AARCH64_DLINK_FLAGS)
++*_GCC49_AARCH64_PLATFORM_FLAGS =
++*_GCC49_AARCH64_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
++*_GCC49_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS)
++*_GCC49_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
++
++ DEBUG_GCC49_AARCH64_CC_FLAGS = DEF(GCC49_AARCH64_CC_FLAGS) -O0
++RELEASE_GCC49_AARCH64_CC_FLAGS = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
++
++####################################################################################
++#
+ # Cygwin GCC And Intel ACPI Compiler
+ #
+ ####################################################################################
+diff --git a/BaseTools/Scripts/gcc4.9-ld-script b/BaseTools/Scripts/gcc4.9-ld-script
+new file mode 100644
+index 0000000..b692328
+--- /dev/null
++++ b/ovmf-dir/BaseTools/Scripts/gcc4.9-ld-script
+@@ -0,0 +1,44 @@
++/* OUTPUT_FORMAT(efi-bsdrv-x86_64) */
++SECTIONS
++{
++ /* . = 0 + SIZEOF_HEADERS; */
++ . = 0x280;
++ .text ALIGN(0x20) :
++ {
++ *(.text .stub .text.* .gnu.linkonce.t.*)
++ . = ALIGN(0x20);
++ } =0x90909090
++ .data ALIGN(0x40) :
++ {
++ *(
++ .rodata .rodata.* .gnu.linkonce.r.*
++ .data .data.* .gnu.linkonce.d.*
++ .bss .bss.*
++ *COM*
++ )
++ . = ALIGN(0x20);
++ }
++ .eh_frame ALIGN(0x20) :
++ {
++ KEEP (*(.eh_frame))
++ }
++ .got ALIGN(0x20) :
++ {
++ *(.got .got.*)
++ . = ALIGN(0x20);
++ }
++ .rela ALIGN(0x20) :
++ {
++ *(.rela .rela.*)
++ }
++ /DISCARD/ : {
++ *(.note.GNU-stack) *(.gnu_debuglink)
++ *(.interp)
++ *(.dynsym)
++ *(.dynstr)
++ *(.dynamic)
++ *(.hash)
++ *(.comment)
++ }
++}
++
diff --git a/kernels/xen/ovmf-gcc4.9-ovmfpkg.patch b/kernels/xen/ovmf-gcc4.9-ovmfpkg.patch
new file mode 100644
index 000000000..b060d3e48
--- /dev/null
+++ b/kernels/xen/ovmf-gcc4.9-ovmfpkg.patch
@@ -0,0 +1,19 @@
+--- a/ovmf-dir/OvmfPkg/build.sh
++++ b/ovmf-dir/OvmfPkg/build.sh
+@@ -82,9 +82,15 @@
+ 4.6.*)
+ TARGET_TOOLS=GCC46
+ ;;
+- 4.[789].*)
++ 4.7.*)
+ TARGET_TOOLS=GCC47
+ ;;
++ 4.8.*)
++ TARGET_TOOLS=GCC48
++ ;;
++ 4.9.*|4.1[0-9].*)
++ TARGET_TOOLS=GCC49
++ ;;
+ *)
+ TARGET_TOOLS=GCC44
+ ;;
diff --git a/kernels/xen/ovmf.patch b/kernels/xen/ovmf.patch
new file mode 100644
index 000000000..a31b89608
--- /dev/null
+++ b/kernels/xen/ovmf.patch
@@ -0,0 +1,13 @@
+--- a/tools/firmware/Makefile 2014-10-26 23:26:08.002103548 -0500
++++ b/tools/firmware/Makefile 2014-10-26 23:25:50.112361448 -0500
+@@ -19,6 +19,10 @@
+
+ ovmf-dir:
+ GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(OVMF_UPSTREAM_URL) $(OVMF_UPSTREAM_REVISION) ovmf-dir
++ sed 's|python |python2 |g' -i "ovmf-dir/BaseTools/BinWrappers/PosixLike"/* || true
++ sed 's|python |python2 |g' -i "ovmf-dir/BaseTools/Tests/GNUmakefile"
++ patch -Np1 -i ovmf-gcc4.9-basetools.patch
++ patch -Np1 -i ovmf-gcc4.9-ovmfpkg.patch
+ cp ovmf-makefile ovmf-dir/Makefile;
+
+ seabios-dir:
diff --git a/kernels/xen/proc-xen.mount b/kernels/xen/proc-xen.mount
deleted file mode 100644
index 0eaa59c5f..000000000
--- a/kernels/xen/proc-xen.mount
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Mount /proc/xen files
-ConditionPathExists=/proc/xen
-RefuseManualStop=true
-
-[Mount]
-What=xenfs
-Where=/proc/xen
-Type=xenfs
diff --git a/kernels/xen/var-lib-xenstored.mount b/kernels/xen/var-lib-xenstored.mount
deleted file mode 100644
index 1c2015ca2..000000000
--- a/kernels/xen/var-lib-xenstored.mount
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=mount xenstore file system
-ConditionPathExists=/proc/xen
-RefuseManualStop=true
-
-[Mount]
-What=xenstore
-Where=/var/lib/xenstored
-Type=tmpfs
-Options=mode=755
diff --git a/kernels/xen/xen.install b/kernels/xen/xen.install
index d25d3a93d..173e6437f 100644
--- a/kernels/xen/xen.install
+++ b/kernels/xen/xen.install
@@ -4,17 +4,27 @@ install_msg() {
In order to complete the installation, and enable Xen,
at the very least you must:
-1. Edit your GRUB2 config files as specified at
- https://wiki.parabolagnulinux.org/index.php/Xen#Bootloader_Configuration
-2. Issue the following commands to allow you to create and start VMs:
- systemctl enable xenstored.service
+1. If using GRUB2, edit your GRUB2 config files as specified at
+ https://wiki.parabola.nu/index.php/Xen#Bootloader_Configuration
+
+ Support for the grub-mkconfig command was added, and will auto-discover
+ the deployed xen hypervisor and linux kernel
+2. If booting via efi, copy the example /etc/xen/efi-xen.cfg to /boot/xen.cfg
+ and edit the contents to match the settings you need.
+3. Issue the following commands to allow you to create and start VMs:
+
+ systemctl enable xen-qemu-dom0-disk-backend.service
+ systemctl enable xen-init-dom0.service
systemctl enable xenconsoled.service
-3. If you want some domains to automatically start up/shutdown, run the following:
+
+ Other optional services are:
+ systemctl enable xen-watchdog.service
+
+4. If you want some domains to automatically start up/shutdown, run the following:
systemctl enable xendomains.service
-4. xen 4.4 no longer includes the xend daemon or the xm binary
For more information refer to the Wiki:
- https://wiki.parabolagnulinux.org/index.php/Xen
+ https://wiki.parabola.nu/index.php/Xen
__EOF__
@@ -25,15 +35,16 @@ upgrade_msg() {
Note: If you are upgrading from one of the previous 4.2 xen builds, and are having issues
with graphics card passthrough, the default device model used has changed and the
- newer model can sometimes have issues. To resolve, add (or change ) the following
- line into your domain config file:
+ newer model can sometimes have issues. To work around these issue, support for the
+ old style qemu-xen-traditional device model has been enabled. To use, add (or change)
+ the following line into the configuration file for the domain you want to use
+ passthrough with:
device_model_version = "qemu-xen-traditional"
- Also remember to rebuild your grub configuration if upgrading from a non-xen 4.4.1
- install.
+ Also remember to rebuild your grub configuration if upgrading from a non-xen 4.5.0
+ install.
- xen 4.4 no longer includes the xend daemon or the xm toolset by default, however
- this build does enable it.
+ The xend daemon and the xm toolset have now been removed with the xen 4.5 release.
This install is now using a new version of the 09_xen file, used when generating
a new grub.cfg file. The new version inherits the default linux-libre kernel command
@@ -54,12 +65,16 @@ post_upgrade() {
pre_remove() {
systemctl stop xendomains.service
+ systemctl stop xen-watchdog.service
systemctl stop xenconsoled.service
- systemctl stop xenstored.service
+ systemctl stop xen-init-dom0.service
+ systemctl stop xen-qemu-dom0-disk-backend.service
systemctl disable xendomains.service
+ systemctl disable xen-watchdog.service
systemctl disable xenconsoled.service
- systemctl disable xenstored.service
+ systemctl disable xen-init-dom0.service
+ systemctl disable xen-qemu-dom0-disk-backend.service
}
post_remove() {
diff --git a/kernels/xen/xenconsoled.service b/kernels/xen/xenconsoled.service
deleted file mode 100644
index 1e06b4537..000000000
--- a/kernels/xen/xenconsoled.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=Xenconsoled - handles logging from guest consoles and hypervisor
-Requires=proc-xen.mount
-After=proc-xen.mount xenstored.service
-ConditionPathExists=/proc/xen
-
-[Service]
-Type=simple
-Environment=XENCONSOLED_ARGS=
-Environment=XENCONSOLED_LOG=none
-Environment=XENCONSOLED_LOG_DIR=/var/log/xen/console
-EnvironmentFile=-/etc/conf.d/xenconsoled
-PIDFile=/run/xenconsoled.pid
-ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
-ExecStart=/usr/bin/xenconsoled --pid-file /run/xenconsoled.pid --log=${XENCONSOLED_LOG} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS
-
-[Install]
-WantedBy=multi-user.target
diff --git a/kernels/xen/xendomU@.service b/kernels/xen/xendomU@.service
deleted file mode 100644
index b3dd6c7d7..000000000
--- a/kernels/xen/xendomU@.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=xen domU service for domain %i
-Requires=xenstored.service
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/usr/bin/xl create /etc/xen/conf/%i.cfg
-ExecStop=/usr/bin/xl shutdown %i
-
-[Install]
-WantedBy=multi-user.target
diff --git a/kernels/xen/xendomains.service b/kernels/xen/xendomains.service
deleted file mode 100644
index d49bd5593..000000000
--- a/kernels/xen/xendomains.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=Xendomains - start and stop guests on boot and shutdown
-Requires=proc-xen.mount xenstored.service
-After=proc-xen.mount xenstored.service xenconsoled.service
-ConditionPathExists=/proc/xen
-
-[Service]
-Type=oneshot
-RemainAfterExit=true
-ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
-ExecStart=/etc/xen/scripts/xendomains start
-ExecStop=/etc/xen/scripts/xendomains stop
-
-[Install]
-WantedBy=multi-user.target
diff --git a/kernels/xen/xenstored.service b/kernels/xen/xenstored.service
deleted file mode 100644
index b090ce860..000000000
--- a/kernels/xen/xenstored.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Xenstored - daemon managing xenstore file system
-Requires=proc-xen.mount var-lib-xenstored.mount systemd-tmpfiles-setup.service
-After=proc-xen.mount var-lib-xenstored.mount systemd-tmpfiles-setup.service
-Before=libvirtd.service libvirt-guests.service
-RefuseManualStop=true
-ConditionPathExists=/proc/xen
-
-[Service]
-Type=forking
-Environment=XENSTORED_ARGS=
-Environment=XENDOM0_NAME=Domain-0
-EnvironmentFile=-/etc/conf.d/xenstored
-PIDFile=/run/xenstored.pid
-ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
-ExecStart=/usr/bin/xenstored --pid-file /run/xenstored.pid $XENSTORED_ARGS
-ExecStartPost=/usr/bin/xenstore-write "/local/domain/0/name" "$XENDOM0_NAME"
-ExecStartPost=/usr/bin/xenstore-write "/local/domain/0/domid" 0
-
-[Install]
-WantedBy=multi-user.target