summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Delaney <della5@iinet.com.au>2013-03-08 18:00:54 +0800
committerIan Delaney <della5@iinet.com.au>2013-03-08 18:00:54 +0800
commitee8f3f1b2b536a667f691a8a6b475e37304b9262 (patch)
tree1d9ea523277be69e1eb54601c981716588c2a921
parentAdd xen-4.2.1-r1 and patches (diff)
downloadvirtualization-ee8f3f1b2b536a667f691a8a6b475e37304b9262.tar.gz
virtualization-ee8f3f1b2b536a667f691a8a6b475e37304b9262.tar.bz2
virtualization-ee8f3f1b2b536a667f691a8a6b475e37304b9262.zip
[xen] add xen-4.2.1-r2 from main ::gentoo
Package-Manager: portage-2.1.11.40
-rw-r--r--app-emulation/xen/files/xen-4.2-efi.patch33
-rw-r--r--app-emulation/xen/metadata.xml5
-rw-r--r--app-emulation/xen/xen-4.2.1-r2.ebuild133
3 files changed, 169 insertions, 2 deletions
diff --git a/app-emulation/xen/files/xen-4.2-efi.patch b/app-emulation/xen/files/xen-4.2-efi.patch
new file mode 100644
index 0000000..6e38aaa
--- /dev/null
+++ b/app-emulation/xen/files/xen-4.2-efi.patch
@@ -0,0 +1,33 @@
+diff -ur xen-4.2.0.orig/xen/arch/x86/Makefile xen-4.2.0/xen/arch/x86/Makefile
+--- xen/arch/x86/Makefile 2012-09-17 18:21:19.000000000 +0800
++++ xen/arch/x86/Makefile 2013-02-23 20:37:30.679918815 +0800
+@@ -112,7 +112,7 @@
+ $(@D)/.$(@F).1.o -o $@
+ rm -f $(@D)/.$(@F).[0-9]*
+
+-EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10
++EFI_LDFLAGS = -mi386pep $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10
+ EFI_LDFLAGS += --image-base=$(1) --stack=0,0 --heap=0,0 --strip-debug
+ EFI_LDFLAGS += --section-alignment=0x200000 --file-alignment=0x20
+ EFI_LDFLAGS += --major-image-version=$(XEN_VERSION)
+--- xen/Makefile 2013-03-07 14:34:01.819453278 +0000
++++ xen/Makefile 2013-03-07 15:56:44.753044655 +0000
+@@ -31,9 +31,15 @@
+ _install: $(TARGET).gz
+ [ -d $(DESTDIR)/boot ] || $(INSTALL_DIR) $(DESTDIR)/boot
+ $(INSTALL_DATA) $(TARGET).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_FULLVERSION).gz
+- ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).$(XEN_SUBVERSION).gz
+- ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).gz
+- ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET)).gz
++ if [ 'x$(EFI_VENDOR)' == 'x' ]; then \
++ ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).$(XEN_SUBVERSION).gz; \
++ ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).gz; \
++ ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET)).gz; \
++ else \
++ cp $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).$(XEN_SUBVERSION).gz; \
++ cp $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).gz; \
++ cp $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET)).gz; \
++ fi; \
+ $(INSTALL_DATA) $(TARGET)-syms $(DESTDIR)/boot/$(notdir $(TARGET))-syms-$(XEN_FULLVERSION)
+ if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
+ [ -d $(DESTDIR)$(EFI_DIR) ] || $(INSTALL_DIR) $(DESTDIR)$(EFI_DIR); \
diff --git a/app-emulation/xen/metadata.xml b/app-emulation/xen/metadata.xml
index 80411f0..78acefc 100644
--- a/app-emulation/xen/metadata.xml
+++ b/app-emulation/xen/metadata.xml
@@ -3,12 +3,13 @@
<pkgmetadata>
<herd>xen</herd>
<maintainer>
- <email>johneed@hotmail.com</email>
- <name>Ian Delaney aka idella4 proxy maintainer</name>
+ <email>idella4@gentoo.org</email>
+ <name>Ian Delaney</name>
</maintainer>
<use>
<flag name='flask'>Enable the Flask XSM module from NSA</flag>
<flag name='pae'>Enable support for PAE kernels (usually x86-32 with >4GB memory)</flag>
<flag name='xsm'>Enable the Xen Security Modules (XSM)</flag>
+ <flag name='efi'>Adds efi boot support, requires LDFLAG -melf_x86_64 for amd64</flag>
</use>
</pkgmetadata>
diff --git a/app-emulation/xen/xen-4.2.1-r2.ebuild b/app-emulation/xen/xen-4.2.1-r2.ebuild
new file mode 100644
index 0000000..d9daa23
--- /dev/null
+++ b/app-emulation/xen/xen-4.2.1-r2.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen/xen-4.2.1-r2.ebuild,v 1.3 2013/03/07 17:47:19 idella4 Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+if [[ $PV == *9999 ]]; then
+ KEYWORDS=""
+ REPO="xen-unstable.hg"
+ EHG_REPO_URI="http://xenbits.xensource.com/${REPO}"
+ S="${WORKDIR}/${REPO}"
+ live_eclass="mercurial"
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="http://bits.xensource.com/oss-xen/release/${PV}/xen-${PV}.tar.gz"
+fi
+
+inherit mount-boot flag-o-matic python-single-r1 toolchain-funcs ${live_eclass}
+
+DESCRIPTION="The Xen virtual machine monitor"
+HOMEPAGE="http://xen.org/"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="custom-cflags debug efi flask pae xsm"
+
+DEPEND="efi? ( >=sys-devel/binutils-2.22[multitarget] )
+ !efi? ( >=sys-devel/binutils-2.22[-multitarget] )"
+RDEPEND=""
+PDEPEND="~app-emulation/xen-tools-${PV}"
+
+RESTRICT="test"
+
+# Approved by QA team in bug #144032
+QA_WX_LOAD="boot/xen-syms-${PV}"
+
+REQUIRED_USE="
+ flask? ( xsm )
+ "
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+ if [[ -z ${XEN_TARGET_ARCH} ]]; then
+ if use x86 && use amd64; then
+ die "Confusion! Both x86 and amd64 are set in your use flags!"
+ elif use x86; then
+ export XEN_TARGET_ARCH="x86_32"
+ elif use amd64; then
+ export XEN_TARGET_ARCH="x86_64"
+ else
+ die "Unsupported architecture!"
+ fi
+ fi
+
+ if use flask ; then
+ export "XSM_ENABLE=y"
+ export "FLASK_ENABLE=y"
+ elif use xsm ; then
+ export "XSM_ENABLE=y"
+ fi
+}
+
+src_prepare() {
+ # Drop .config and fix gcc-4.6
+ epatch "${FILESDIR}"/${PN/-pvgrub/}-4-fix_dotconfig-gcc.patch
+
+ if use efi; then
+ epatch "${FILESDIR}"/${PN}-4.2-efi.patch
+ export EFI_VENDOR="gentoo"
+ export EFI_MOUNTPOINT="boot"
+ 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 {} \; || die "failed to re-set custom-cflags"
+ fi
+
+ # not strictly necessary to fix this
+ sed -i 's/, "-Werror"//' "${S}/tools/python/setup.py" || die "failed to re-set setup.py"
+
+ #Security patches
+ epatch "${FILESDIR}"/${PN}-4-CVE-2012-5634-XSA-33.patch \
+ "${FILESDIR}"/${PN}-4-CVE-2013-0151-XSA-34_35.patch \
+ "${FILESDIR}"/${PN}-4-CVE-2013-0154-XSA-37.patch
+}
+
+src_configure() {
+ use debug && myopt="${myopt} debug=y"
+ use pae && myopt="${myopt} pae=y"
+
+ if use custom-cflags; then
+ filter-flags -fPIE -fstack-protector
+ replace-flags -O3 -O2
+ else
+ unset CFLAGS
+ fi
+}
+
+src_compile() {
+ # Send raw LDFLAGS so that --as-needed works
+ emake CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
+}
+
+src_install() {
+ local myopt
+ use debug && myopt="${myopt} debug=y"
+ use pae && myopt="${myopt} pae=y"
+
+ # The 'make install' doesn't 'mkdir -p' the subdirs
+ if use efi; then
+ mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
+ fi
+
+ emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
+}
+
+pkg_postinst() {
+ elog "Official Xen Guide and the unoffical wiki page:"
+ elog " http://www.gentoo.org/doc/en/xen-guide.xml"
+ elog " http://en.gentoo-wiki.com/wiki/Xen/"
+
+ use pae && ewarn "This is a PAE build of Xen. It will *only* boot PAE kernels!"
+ use efi && einfo "The efi executable is installed in boot/efi/gentoo"
+}