summaryrefslogtreecommitdiff
path: root/app-emulation/xen-pvgrub
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /app-emulation/xen-pvgrub
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'app-emulation/xen-pvgrub')
-rw-r--r--app-emulation/xen-pvgrub/Manifest14
-rw-r--r--app-emulation/xen-pvgrub/files/newlib-implicits.patch149
-rw-r--r--app-emulation/xen-pvgrub/files/xen-4.3-externals.patch75
-rw-r--r--app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch13
-rw-r--r--app-emulation/xen-pvgrub/metadata.xml8
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.9.1.ebuild161
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.9.2.ebuild161
7 files changed, 581 insertions, 0 deletions
diff --git a/app-emulation/xen-pvgrub/Manifest b/app-emulation/xen-pvgrub/Manifest
new file mode 100644
index 000000000000..baf17ddf2233
--- /dev/null
+++ b/app-emulation/xen-pvgrub/Manifest
@@ -0,0 +1,14 @@
+AUX newlib-implicits.patch 5307 BLAKE2B bf4b9bb51d863815df6e0e4097be224a49ef67d997bee8cf7d7d282f17cd43983058701739c5b3fabbc1f5ce16c8e3962421a1f3a541f6884ccd0fb6e0b53bba SHA512 582cfa36dbb44e8abc83120d44af78a7a7cd3f7a009c65858f3d68276bf5f772b18c4692b7e68202f9ec246e29c785fa111b19bcaefc2f04f429f1b69e77d48f
+AUX xen-4.3-externals.patch 2806 BLAKE2B 43eca80ffc7381dffcbaa9fd61657d7c6038d2a4ccb32e7dc49fc0bf57abb4e84ecf63701aa61ee5392296fc39f4eec64c5f87695ef702864252230e66c30186 SHA512 07e9270ef404dfb765be284887e6d24202ac1783d08e7d30a768d461d6565fac4a4e9625b245610353bf2b76baf54c736170bfc84ed507491f7876e0d7a11c7d
+AUX xen-pvgrub-4.8-jserver.patch 547 BLAKE2B 02539834c0c4d6c5b1d1b2304770bfca6372db20e1b213637f5e9874cb1288c2bb9bac72b5b4c1f97ee2dcc3f9646f4b9408daff2d1b975c2fdefc82f110da2f SHA512 38819b6041d679257a8ebf91f481bf3d9957d3c25ead64725fba9f83fee033235909a8599e986604546008c3077f37db332958fee70eafb4016d723c2e2bfc2a
+DIST grub-0.97.tar.gz 971783 BLAKE2B a7b6feb6dddb6eeb20e027071091b2d37930e5b40687f8c8ff860839db208f832713db61389014d21842e1e152cad0466dc9722a79cbb81bfa1566a30b6b82cc SHA512 c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a3628bd00ba4d14a54742bc04848110eb3ae8ca25dbfbaabadb
+DIST lwip-1.3.0.tar.gz 398933 BLAKE2B 3567a593eec3d247213daaaab57d9456c9cae50329498ca55cee7726a59461f8e9d77d96cfc8204d6b7b7962f00664f44d3bc7f16a5a53f5e068a02d405fb457 SHA512 1465b58279af1647f909450e394fe002ca165f0ff4a0254bfa9fe0e64316f50facdde2729d79a4e632565b4500cf4d6c74192ac0dd3bc9fe09129bbd67ba089d
+DIST newlib-1.16.0.tar.gz 12024353 BLAKE2B 26d3308148fb99baf8ad02eee4cc699cfac690100ea63aaa4be03b86d12dade238478342514bd083cbc3d27964ac42eb8dae3873fdac5ff2c593fc4fb39b2309 SHA512 40eb96bbc6736a16b6399e0cdb73e853d0d90b685c967e77899183446664d64570277a633fdafdefc351b46ce210a99115769a1d9f47ac749d7e82837d4d1ac3
+DIST pciutils-2.2.9.tar.bz2 212265 BLAKE2B 014b664e90c64e7255c9e21fc25a2cc60d57f47ce282fc0331a0481a460b237783bd3774dd0689e1596d4a0be0d2889faad904da01a6f02147464bce1d1b1bc0 SHA512 2b3d98d027e46d8c08037366dde6f0781ca03c610ef2b380984639e4ef39899ed8d8b8e4cd9c9dc54df101279b95879bd66bfd4d04ad07fef41e847ea7ae32b5
+DIST polarssl-1.1.4-gpl.tgz 611340 BLAKE2B 613da06dda9e4b86db5a4d616a0a0afee98c907c3c6b352eed3d9e500fc5739e62eb4f6fc32ff02579c6a6de9bd49fcd2c8bd8b2d158a5050cbaa82118d61ef0 SHA512 88da614e4d3f4409c4fd3bb3e44c7587ba051e3fed4e33d526069a67e8180212e1ea22da984656f50e290049f60ddca65383e5983c0f8884f648d71f698303ad
+DIST xen-4.9.1.tar.gz 23368303 BLAKE2B 4cfddb351c9a4aa08227138dc1afa921f3d1880048f897428226da38eff9470cd81ae9896f174583048dad0ba8d5c1426df58b029115ba1623366d1980630c0d SHA512 9d22f0aa5dcd01a1c105d17c14bce570cc597e884ddb9b4a46b80a72f647625b76ae5213cede423d0458c14e1906983595a9269bb6e6ff2e9e7e4dea840f4274
+DIST xen-4.9.2.tar.gz 23392753 BLAKE2B 5f96f0e5062eff8ac2971eef85ea2bae0e94e7542151237937a1cf7e74690bb0ce1c952e830d2fc13b3277f70b9ed1de511afe4f780ad7b3be0c58742ece39b2 SHA512 e06aec25439abcc548c174ba8e271c23031ea704bcc2480905140aa68490064fbb1c58d9c4174f6617b4f7bbcddfda284317df6f480a6e5b5b5a2c71fbe0ac93
+DIST zlib-1.2.3.tar.gz 496597 BLAKE2B 603020b70cd52b83e48bde420b86e2acfd29d69bf7476eecbeeb07d1b8bcab703d2cbd3eab77772990bddb8c268f13594592ce985798d49e2d6ba25104d49f22 SHA512 021b958fcd0d346c4ba761bcf0cc40f3522de6186cf5a0a6ea34a70504ce9622b1c2626fce40675bc8282cf5f5ade18473656abc38050f72f5d6480507a2106e
+EBUILD xen-pvgrub-4.9.1.ebuild 4867 BLAKE2B aa2e4f8620adc7c978d2ea86b5304df90d31062440d6b7039336f30882bb02eb4ead8c50ba79045b1477abac7a651c9d00bae0cf8a72c5576d85e00ca660d35e SHA512 dccfd9eaa96a8e12e9f60b2a864f96729568bd75626461df8792e47356d8a4829605f690bbbddf648077c1f27609b7aa622687298173f6a86c8afcd19f2dcd3e
+EBUILD xen-pvgrub-4.9.2.ebuild 4867 BLAKE2B aa2e4f8620adc7c978d2ea86b5304df90d31062440d6b7039336f30882bb02eb4ead8c50ba79045b1477abac7a651c9d00bae0cf8a72c5576d85e00ca660d35e SHA512 dccfd9eaa96a8e12e9f60b2a864f96729568bd75626461df8792e47356d8a4829605f690bbbddf648077c1f27609b7aa622687298173f6a86c8afcd19f2dcd3e
+MISC metadata.xml 245 BLAKE2B 2bf2c7848c8c513915aaad9305b6146cf46201bbcf3ffa040c943b7188d2d2a9fe27e2b5ecde84ed2099dceadd4b057856df01ac603a6aceca0f7b7f466174c7 SHA512 3f646ec3197e46d25dde4f698b571fb85b040198f4cba7508c8d38405b4d9d0fc31dbd5ae6242aea8c2acd613aabe0486cb347a1db4811fa807b861148661f8b
diff --git a/app-emulation/xen-pvgrub/files/newlib-implicits.patch b/app-emulation/xen-pvgrub/files/newlib-implicits.patch
new file mode 100644
index 000000000000..73c04931b31d
--- /dev/null
+++ b/app-emulation/xen-pvgrub/files/newlib-implicits.patch
@@ -0,0 +1,149 @@
+diff -ur newlib-1.16.0.orig/newlib/libc/stdlib/wcstoull.c newlib-1.16.0/newlib/libc/stdlib/wcstoull.c
+--- newlib/libc/stdlib/wcstoull.c 2007-07-07 04:03:28.000000000 +0800
++++ newlib/libc/stdlib/wcstoull.c 2012-12-02 14:19:40.905136553 +0800
+@@ -124,7 +124,7 @@
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <reent.h>
+-
++#include <wchar.h>
+ #ifndef _REENT_ONLY
+
+ unsigned long long
+diff -ur newlib-1.16.0.orig/newlib/doc/makedoc.c
+newlib-1.16.0/newlib/doc/makedoc.c
+--- newlib/doc/makedoc.c 2007-01-03 01:59:59.000000000 +0900
++++ newlib/doc/makedoc.c 2012-12-02 16:53:42.700289294 +0800
+@@ -39,7 +39,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <ctype.h>
+-
++#include <string.h>
+ #define DEF_SIZE 5000
+ #define STACK 50
+
+diff -ur newlib-1.16.0.orig/newlib/libc/reent/lseek64r.c newlib-1.16.0/newlib/libc/reent/lseek64r.c
+--- newlib/libc/reent/lseek64r.c 2003-06-04 03:48:07.000000000 +0800
++++ newlib/libc/reent/lseek64r.c 2012-12-02 18:29:45.435760985 +0800
+@@ -1,8 +1,8 @@
+ /* Reentrant versions of lseek system call. */
+
+-#include <reent.h>
++#include "../include/reent.h"
+ #include <unistd.h>
+-#include <_syslist.h>
++#include "../include/_syslist.h"
+
+ /* Some targets provides their own versions of this functions. Those
+ targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */
+diff -ur newlib-1.16.0.orig/newlib/libc/stdio64/fseeko64.c newlib-1.16.0/newlib/libc/stdio64/fseeko64.c
+--- newlib/libc/stdio64/fseeko64.c 2007-07-14 04:37:53.000000000 +0800
++++ newlib/libc/stdio64/fseeko64.c 2012-12-02 18:26:29.955778906 +0800
+@@ -119,7 +119,7 @@
+ ptr->_errno = EOVERFLOW;
+ return EOF;
+ }
+- return (_off64_t) _fseeko_r (ptr, fp, offset, whence);
++ return (_off64_t) _fseeko64_r (ptr, fp, offset, whence);
+ }
+
+ /* Make sure stdio is set up. */
+
+diff -ur newlib-1.16.0.orig/newlib/libc/reent/fstat64r.c newlib-1.16.0/newlib/libc/reent/fstat64r.c
+--- newlib/libc/reent/fstat64r.c 2012-12-03 13:17:26.569703981 +0800
++++ newlib/libc/reent/fstat64r.c 2003-06-04 03:48:07.000000000 +0800
+@@ -1,10 +1,10 @@
+ /* Reentrant versions of fstat system call. This implementation just
+ calls the fstat system call. */
+
+-#include <reent.h>
++#include "../include/reent.h">
+ #include <unistd.h>
+ #include <sys/stat.h>
+-#include <_syslist.h>
++#include "../include/_syslist.h"
+
+ #ifdef __LARGE64_FILES
+
+diff -ur newlib-1.16.0.orig/libgloss/i386/cygmon-gmon.c newlib-1.16.0/libgloss/i386/cygmon-gmon.c
+--- libgloss/i386/cygmon-gmon.c 2002-10-26 03:18:46.000000000 +0800
++++ libgloss/i386/cygmon-gmon.c 2012-12-03 14:38:41.454257066 +0800
+@@ -68,6 +68,9 @@
+
+ #include "cygmon-gmon.h"
+
++#include <unistd.h>
++#include <stdlib.h>
++#include <strings.h>
+ /*
+ * froms is actually a bunch of unsigned shorts indexing tos
+ */
+@@ -78,6 +78,8 @@
+ static char *s_lowpc = 0;
+ static char *s_highpc = 0;
+ static unsigned long s_textsize = 0;
++extern void profil_write(int, char*, int);
++extern int moncontrol (int);
+
+ static int ssiz;
+ static char *sbuf;
+diff -ur newlib-1.16.0.orig/newlib/libc/include/_syslist.h
+newlib-1.16.0/newlib/libc/include/_syslist.h
+--- newlib/libc/include/_syslist.h 2005-08-23 05:13:35.000000000 +0800
++++ newlib/libc/include/_syslist.h 2012-12-03 17:20:03.092369483 +0800
+@@ -2,6 +2,7 @@
+ and only provide C names, so that we end up in violation of ANSI */
+ #ifndef __SYSLIST_H
+ #define __SYSLIST_H
++#include <sys/types.h>
+
+ #ifdef MISSING_SYSCALL_NAMES
+ #define _close close
+
+#diff -ur newlib-1.16.0.orig/newlib/libc/Makefile.in newlib-1.16.0/newlib/libc/Makefile.in
+#--- newlib/libc/Makefile.in 2007-05-25 01:33:30.000000000 +0800
+#+++ newlib/libc/Makefile.in 2012-12-03 21:52:05.621873084 +0800
+diff -ur newlib-1.16.0.orig/newlib/libc/stdio64/ftello64.c newlib-1.16.0/newlib/libc/stdio64/ftello64.c
+--- newlib/libc/stdio64/ftello64.c 2007-07-14 04:37:53.000000000 +0800
++++ newlib/libc/stdio64/ftello64.c 2012-12-04 18:34:46.491509484 +0800
+@@ -93,7 +93,7 @@
+
+ /* Only do 64-bit tell on large file. */
+ if (!(fp->_flags & __SL64))
+- return (_off64_t) _ftello_r (ptr, fp);
++ return (_off64_t) _ftello64_r (ptr, fp);
+
+ /* Ensure stdio is set up. */
+
+diff -ur newlib-1.16.0.orig/newlib/libc/reent/open64r.c newlib-1.16.0/newlib/libc/reent/open64r.c
+--- newlib/libc/reent/open64r.c 2002-08-27 02:56:06.000000000 +0800
++++ newlib/libc/reent/open64r.c 2012-12-04 20:06:10.044006769 +0800
+@@ -1,8 +1,8 @@
+ /* Reentrant versions of open system call. */
+
+-#include <reent.h>
++#include "../include/reent.h">
+ #include <unistd.h>
+-#include <fcntl.h>
++#include <sys/_default_fcntl.h>
+ #include <_syslist.h>
+
+ #ifdef __LARGE64_FILES
+diff -ur newlib-1.16.0.orig/newlib/libc/reent/signalr.c newlib-1.16.0/newlib/libc/reent/signalr.c
+--- newlib/libc/reent/signalr.c 2012-12-05 07:33:25.623393126 +0800
++++ newlib/libc/reent/signalr.c 2012-12-05 07:34:03.943389613 +0800
+@@ -1,10 +1,10 @@
+ /* Reentrant versions of syscalls need to support signal/raise.
+ These implementations just call the usual system calls. */
+
+-#include <reent.h>
++#include "../include/reent.h"
+ #include <signal.h>
+ #include <unistd.h>
+-#include <_syslist.h>
++#include "../include/_syslist.h"
+
+ /* Some targets provides their own versions of these functions. Those
+ targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */
+
diff --git a/app-emulation/xen-pvgrub/files/xen-4.3-externals.patch b/app-emulation/xen-pvgrub/files/xen-4.3-externals.patch
new file mode 100644
index 000000000000..0d8956fac098
--- /dev/null
+++ b/app-emulation/xen-pvgrub/files/xen-4.3-externals.patch
@@ -0,0 +1,75 @@
+diff -ur xen-4.3.0.orig/stubdom/Makefile xen-4.3.0/stubdom/Makefile
+--- stubdom/Makefile 2013-07-09 18:46:56.000000000 +0800
++++ stubdom/Makefile 2013-07-21 16:07:08.094663570 +0800
+@@ -68,12 +68,12 @@
+ ##############
+
+ newlib-$(NEWLIB_VERSION).tar.gz:
+- $(FETCHER) $@ $(NEWLIB_URL)/$@
+
+ newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz
+ tar xzf $<
+ patch -d $@ -p0 < newlib.patch
+ patch -d $@ -p0 < newlib-chk.patch
++ patch -d $@ -p0 < newlib-implicits.patch
+ patch -d $@ -p1 < newlib-stdint-size_max-fix-from-1.17.0.patch
+ find $@ -type f | xargs perl -i.bak \
+ -pe 's/\b_(tzname|daylight|timezone)\b/$$1/g'
+@@ -85,7 +85,7 @@
+ $(NEWLIB_STAMPFILE): mk-headers-$(XEN_TARGET_ARCH) newlib-$(NEWLIB_VERSION)
+ mkdir -p newlib-$(XEN_TARGET_ARCH)
+ ( cd newlib-$(XEN_TARGET_ARCH) && \
+- CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \
++ CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) LDFLAGS= RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \
+ $(MAKE) DESTDIR= && \
+ $(MAKE) DESTDIR= install )
+
+@@ -94,7 +94,6 @@
+ ############
+
+ zlib-$(ZLIB_VERSION).tar.gz:
+- $(FETCHER) $@ $(ZLIB_URL)/$@
+
+ zlib-$(XEN_TARGET_ARCH): zlib-$(ZLIB_VERSION).tar.gz
+ tar xzf $<
+@@ -105,7 +104,7 @@
+ cross-zlib: $(ZLIB_STAMPFILE)
+ $(ZLIB_STAMPFILE): zlib-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE)
+ ( cd $< && \
+- CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC=$(CC) ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \
++ CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC="$(CC)" ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \
+ $(MAKE) DESTDIR= libz.a && \
+ $(MAKE) DESTDIR= install )
+
+@@ -114,7 +113,6 @@
+ ##############
+
+ pciutils-$(LIBPCI_VERSION).tar.bz2:
+- $(FETCHER) $@ $(LIBPCI_URL)/$@
+
+ pciutils-$(XEN_TARGET_ARCH): pciutils-$(LIBPCI_VERSION).tar.bz2
+ tar xjf $<
+@@ -142,7 +140,6 @@
+ ######
+
+ lwip-$(LWIP_VERSION).tar.gz:
+- $(FETCHER) $@ $(LWIP_URL)/$@
+
+ lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VERSION).tar.gz
+ tar xzf $<
+@@ -180,7 +177,6 @@
+ # cross-polarssl
+ #############
+ polarssl-$(POLARSSL_VERSION)-gpl.tgz:
+- $(FETCHER) $@ $(POLARSSL_URL)/$@
+
+ polarssl-$(XEN_TARGET_ARCH): polarssl-$(POLARSSL_VERSION)-gpl.tgz
+ tar xzf $<
+@@ -385,7 +382,6 @@
+ ######
+
+ grub-$(GRUB_VERSION).tar.gz:
+- $(FETCHER) $@ $(GRUB_URL)/$@
+
+ grub-upstream: grub-$(GRUB_VERSION).tar.gz
+ tar xzf $<
diff --git a/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch b/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch
new file mode 100644
index 000000000000..aebc1ee5926e
--- /dev/null
+++ b/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch
@@ -0,0 +1,13 @@
+diff --git a/tools/firmware/vgabios/Makefile b/tools/firmware/vgabios/Makefile
+index 3284812..ef242b3 100644
+--- a/tools/firmware/vgabios/Makefile
++++ b/tools/firmware/vgabios/Makefile
+@@ -30,7 +30,7 @@ distclean: clean
+
+ .PHONY: release
+ release:
+- VGABIOS_VERS=\"-DVGABIOS_VERS=\\\"$(RELVERS)\\\"\" make bios cirrus-bios
++ VGABIOS_VERS=\"-DVGABIOS_VERS=\\\"$(RELVERS)\\\"\" $(MAKE) bios cirrus-bios
+ /bin/rm -f *.o *.s *.ld86 \
+ temp.awk.* vgabios.*.orig _vgabios_.*.c core *.bak .#*
+ cp VGABIOS-lgpl-latest.bin ../$(RELEASE).bin
diff --git a/app-emulation/xen-pvgrub/metadata.xml b/app-emulation/xen-pvgrub/metadata.xml
new file mode 100644
index 000000000000..64e6e971243c
--- /dev/null
+++ b/app-emulation/xen-pvgrub/metadata.xml
@@ -0,0 +1,8 @@
+<?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>
+</pkgmetadata>
diff --git a/app-emulation/xen-pvgrub/xen-pvgrub-4.9.1.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.9.1.ebuild
new file mode 100644
index 000000000000..138f1da19fe5
--- /dev/null
+++ b/app-emulation/xen-pvgrub/xen-pvgrub-4.9.1.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='xml,threads'
+
+inherit eutils flag-o-matic multilib python-single-r1 toolchain-funcs
+
+XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles"
+LIBPCI_URL=ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci
+GRUB_URL=mirror://gnu-alpha/grub
+
+UPSTREAM_VER=
+[[ -n ${UPSTREAM_VER} ]] && \
+ UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
+
+SRC_URI="
+ https://downloads.xenproject.org/release/xen/${PV}/xen-${PV}.tar.gz
+ $GRUB_URL/grub-0.97.tar.gz
+ $XEN_EXTFILES_URL/zlib-1.2.3.tar.gz
+ $LIBPCI_URL/pciutils-2.2.9.tar.bz2
+ $XEN_EXTFILES_URL/lwip-1.3.0.tar.gz
+ $XEN_EXTFILES_URL/newlib/newlib-1.16.0.tar.gz
+ $XEN_EXTFILES_URL/polarssl-1.1.4-gpl.tgz
+ ${UPSTREAM_PATCHSET_URI}"
+
+S="${WORKDIR}/xen-${PV}"
+
+DESCRIPTION="allows to boot Xen domU kernels from a menu.lst laying inside guest filesystem"
+HOMEPAGE="https://www.xenproject.org"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE="custom-cflags"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="sys-devel/gettext
+ sys-devel/bin86
+ sys-apps/texinfo
+ x11-libs/pixman"
+
+RDEPEND="${PYTHON_DEPS}
+ >=app-emulation/xen-tools-${PV}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+retar-externals() {
+ # Purely to unclutter src_prepare
+ local set="grub-0.97.tar.gz lwip-1.3.0.tar.gz newlib-1.16.0.tar.gz polarssl-1.1.4-gpl.tgz zlib-1.2.3.tar.gz"
+
+ # epatch can't patch in $WORKDIR, requires a sed; Bug #455194. Patchable, but sed informative
+ sed -e s':AR=${AR-"ar rc"}:AR=${AR-"ar"}:' \
+ -i "${WORKDIR}"/zlib-1.2.3/configure
+ sed -e 's:^AR=ar rc:AR=ar:' \
+ -e s':$(AR) $@:$(AR) rc $@:' \
+ -i "${WORKDIR}"/zlib-1.2.3/{Makefile,Makefile.in}
+ einfo "zlib Makefile edited"
+
+ cd "${WORKDIR}"
+ tar czp zlib-1.2.3 -f zlib-1.2.3.tar.gz
+ tar czp grub-0.97 -f grub-0.97.tar.gz
+ tar czp lwip -f lwip-1.3.0.tar.gz
+ tar czp newlib-1.16.0 -f newlib-1.16.0.tar.gz
+ tar czp polarssl-1.1.4 -f polarssl-1.1.4-gpl.tgz
+ mv $set "${S}"/stubdom/
+ einfo "tarballs moved to source"
+}
+
+src_prepare() {
+ # Upstream's patchset
+ if [[ -n ${UPSTREAM_VER} ]]; then
+ einfo "Try to apply Xen Upstream patch set"
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ EPATCH_OPTS="-p1" \
+ epatch "${WORKDIR}"/patches-upstream
+ fi
+
+ # 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 custom-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 {} \;
+ fi
+
+ # Patch the unmergeable newlib, fix most of the leftover gcc QA issues
+ cp "${FILESDIR}"/newlib-implicits.patch stubdom || die
+
+ # Patch stubdom/Makefile to patch insource newlib & prevent internal downloading
+ epatch "${FILESDIR}"/${PN/-pvgrub/}-4.3-externals.patch
+
+ # fix jobserver in Makefile
+ epatch "${FILESDIR}"/${PN}-4.8-jserver.patch
+
+ #Substitute for internal downloading. pciutils copied only due to the only .bz2
+ cp "${DISTDIR}"/pciutils-2.2.9.tar.bz2 ./stubdom/ || die "pciutils not copied to stubdom"
+ retar-externals || die "re-tar procedure failed"
+
+ default
+}
+
+src_configure() {
+ local myconf="--prefix=${PREFIX}/usr \
+ --libdir=${PREFIX}/usr/$(get_libdir) \
+ --libexecdir=${PREFIX}/usr/libexec \
+ --disable-werror \
+ --disable-xen"
+
+ econf ${myconf}
+}
+
+src_compile() {
+ use custom-cflags || unset CFLAGS
+ if test-flag-CC -fno-strict-overflow; then
+ append-flags -fno-strict-overflow
+ fi
+
+ emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/include
+
+ if use x86; then
+ emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
+ XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
+ elif use amd64; then
+ emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
+ XEN_TARGET_ARCH="x86_64" -C stubdom pv-grub
+ if has_multilib_profile; then
+ multilib_toolchain_setup x86
+ emake CC="$(tc-getCC)" AR="$(tc-getAR)" \
+ XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
+ fi
+ fi
+}
+
+src_install() {
+ if use x86; then
+ emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
+ fi
+ if use amd64; then
+ emake XEN_TARGET_ARCH="x86_64" DESTDIR="${D}" -C stubdom install-grub
+ if has_multilib_profile; then
+ emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
+ fi
+ fi
+}
+
+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"
+}
diff --git a/app-emulation/xen-pvgrub/xen-pvgrub-4.9.2.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.9.2.ebuild
new file mode 100644
index 000000000000..138f1da19fe5
--- /dev/null
+++ b/app-emulation/xen-pvgrub/xen-pvgrub-4.9.2.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='xml,threads'
+
+inherit eutils flag-o-matic multilib python-single-r1 toolchain-funcs
+
+XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles"
+LIBPCI_URL=ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci
+GRUB_URL=mirror://gnu-alpha/grub
+
+UPSTREAM_VER=
+[[ -n ${UPSTREAM_VER} ]] && \
+ UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
+
+SRC_URI="
+ https://downloads.xenproject.org/release/xen/${PV}/xen-${PV}.tar.gz
+ $GRUB_URL/grub-0.97.tar.gz
+ $XEN_EXTFILES_URL/zlib-1.2.3.tar.gz
+ $LIBPCI_URL/pciutils-2.2.9.tar.bz2
+ $XEN_EXTFILES_URL/lwip-1.3.0.tar.gz
+ $XEN_EXTFILES_URL/newlib/newlib-1.16.0.tar.gz
+ $XEN_EXTFILES_URL/polarssl-1.1.4-gpl.tgz
+ ${UPSTREAM_PATCHSET_URI}"
+
+S="${WORKDIR}/xen-${PV}"
+
+DESCRIPTION="allows to boot Xen domU kernels from a menu.lst laying inside guest filesystem"
+HOMEPAGE="https://www.xenproject.org"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE="custom-cflags"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="sys-devel/gettext
+ sys-devel/bin86
+ sys-apps/texinfo
+ x11-libs/pixman"
+
+RDEPEND="${PYTHON_DEPS}
+ >=app-emulation/xen-tools-${PV}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+retar-externals() {
+ # Purely to unclutter src_prepare
+ local set="grub-0.97.tar.gz lwip-1.3.0.tar.gz newlib-1.16.0.tar.gz polarssl-1.1.4-gpl.tgz zlib-1.2.3.tar.gz"
+
+ # epatch can't patch in $WORKDIR, requires a sed; Bug #455194. Patchable, but sed informative
+ sed -e s':AR=${AR-"ar rc"}:AR=${AR-"ar"}:' \
+ -i "${WORKDIR}"/zlib-1.2.3/configure
+ sed -e 's:^AR=ar rc:AR=ar:' \
+ -e s':$(AR) $@:$(AR) rc $@:' \
+ -i "${WORKDIR}"/zlib-1.2.3/{Makefile,Makefile.in}
+ einfo "zlib Makefile edited"
+
+ cd "${WORKDIR}"
+ tar czp zlib-1.2.3 -f zlib-1.2.3.tar.gz
+ tar czp grub-0.97 -f grub-0.97.tar.gz
+ tar czp lwip -f lwip-1.3.0.tar.gz
+ tar czp newlib-1.16.0 -f newlib-1.16.0.tar.gz
+ tar czp polarssl-1.1.4 -f polarssl-1.1.4-gpl.tgz
+ mv $set "${S}"/stubdom/
+ einfo "tarballs moved to source"
+}
+
+src_prepare() {
+ # Upstream's patchset
+ if [[ -n ${UPSTREAM_VER} ]]; then
+ einfo "Try to apply Xen Upstream patch set"
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ EPATCH_OPTS="-p1" \
+ epatch "${WORKDIR}"/patches-upstream
+ fi
+
+ # 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 custom-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 {} \;
+ fi
+
+ # Patch the unmergeable newlib, fix most of the leftover gcc QA issues
+ cp "${FILESDIR}"/newlib-implicits.patch stubdom || die
+
+ # Patch stubdom/Makefile to patch insource newlib & prevent internal downloading
+ epatch "${FILESDIR}"/${PN/-pvgrub/}-4.3-externals.patch
+
+ # fix jobserver in Makefile
+ epatch "${FILESDIR}"/${PN}-4.8-jserver.patch
+
+ #Substitute for internal downloading. pciutils copied only due to the only .bz2
+ cp "${DISTDIR}"/pciutils-2.2.9.tar.bz2 ./stubdom/ || die "pciutils not copied to stubdom"
+ retar-externals || die "re-tar procedure failed"
+
+ default
+}
+
+src_configure() {
+ local myconf="--prefix=${PREFIX}/usr \
+ --libdir=${PREFIX}/usr/$(get_libdir) \
+ --libexecdir=${PREFIX}/usr/libexec \
+ --disable-werror \
+ --disable-xen"
+
+ econf ${myconf}
+}
+
+src_compile() {
+ use custom-cflags || unset CFLAGS
+ if test-flag-CC -fno-strict-overflow; then
+ append-flags -fno-strict-overflow
+ fi
+
+ emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/include
+
+ if use x86; then
+ emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
+ XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
+ elif use amd64; then
+ emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
+ XEN_TARGET_ARCH="x86_64" -C stubdom pv-grub
+ if has_multilib_profile; then
+ multilib_toolchain_setup x86
+ emake CC="$(tc-getCC)" AR="$(tc-getAR)" \
+ XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
+ fi
+ fi
+}
+
+src_install() {
+ if use x86; then
+ emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
+ fi
+ if use amd64; then
+ emake XEN_TARGET_ARCH="x86_64" DESTDIR="${D}" -C stubdom install-grub
+ if has_multilib_profile; then
+ emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
+ fi
+ fi
+}
+
+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"
+}