diff options
Diffstat (limited to 'kernels/xen')
-rw-r--r-- | kernels/xen/ChangeLog | 21 | ||||
-rw-r--r-- | kernels/xen/PKGBUILD | 141 | ||||
-rw-r--r-- | kernels/xen/conf.d-xenconsoled | 14 | ||||
-rw-r--r-- | kernels/xen/conf.d-xenstored | 2 | ||||
-rw-r--r-- | kernels/xen/disable-bluez.patch | 21 | ||||
-rw-r--r-- | kernels/xen/efi-xen.cfg | 7 | ||||
-rw-r--r-- | kernels/xen/ovmf-gcc4.9-basetools.patch | 231 | ||||
-rw-r--r-- | kernels/xen/ovmf-gcc4.9-ovmfpkg.patch | 19 | ||||
-rw-r--r-- | kernels/xen/ovmf.patch | 13 | ||||
-rw-r--r-- | kernels/xen/proc-xen.mount | 9 | ||||
-rw-r--r-- | kernels/xen/var-lib-xenstored.mount | 10 | ||||
-rw-r--r-- | kernels/xen/xen.install | 45 | ||||
-rw-r--r-- | kernels/xen/xenconsoled.service | 18 | ||||
-rw-r--r-- | kernels/xen/xendomU@.service | 12 | ||||
-rw-r--r-- | kernels/xen/xendomains.service | 15 | ||||
-rw-r--r-- | kernels/xen/xenstored.service | 21 |
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 |