diff options
Diffstat (limited to 'app-emulation/xen-pvgrub')
-rw-r--r-- | app-emulation/xen-pvgrub/Manifest | 14 | ||||
-rw-r--r-- | app-emulation/xen-pvgrub/files/newlib-implicits.patch | 149 | ||||
-rw-r--r-- | app-emulation/xen-pvgrub/files/xen-4.3-externals.patch | 75 | ||||
-rw-r--r-- | app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch | 13 | ||||
-rw-r--r-- | app-emulation/xen-pvgrub/metadata.xml | 8 | ||||
-rw-r--r-- | app-emulation/xen-pvgrub/xen-pvgrub-4.9.1.ebuild | 161 | ||||
-rw-r--r-- | app-emulation/xen-pvgrub/xen-pvgrub-4.9.2.ebuild | 161 |
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" +} |