summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-emulation/virtualbox/files/virtualbox-5.1.4-paxmark-bldprogs.patch59
-rw-r--r--app-emulation/virtualbox/metadata.xml1
-rw-r--r--app-emulation/virtualbox/virtualbox-5.1.14.ebuild8
3 files changed, 67 insertions, 1 deletions
diff --git a/app-emulation/virtualbox/files/virtualbox-5.1.4-paxmark-bldprogs.patch b/app-emulation/virtualbox/files/virtualbox-5.1.4-paxmark-bldprogs.patch
new file mode 100644
index 000000000000..50fa306d1766
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-5.1.4-paxmark-bldprogs.patch
@@ -0,0 +1,59 @@
+2017-02-20 Quentin Minster <quentin@minster.io>
+
+ #https://bugs.gentoo.org/show_bug.cgi?id=591582
+ * Config.kmk: add paxmark befor VBOX_VBOXTPG get run.
+ * src/VBox/VMM/Makefile.kmk: add paxmark befor VBOX_VBOXCPP get run.
+ * src/VBox/Main/Makefile.kmk: add paxmark befor USBIdDatabaseGenerator_1_TARGET get run.
+
+--- a/Config.kmk
++++ b/Config.kmk 2016-09-21 02:22:28
+@@ -3719,11 +3719,13 @@
+ $(if-expr $(intersects $(KBUILD_TARGET_ARCH),$(KBUILD_ARCHES_64)),-64,-32) \
+ -h --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
+ define TOOL_VBoxTpG_DTRACE_HDR_CMDS
++ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
+ $(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
+ endef
+ TOOL_VBoxTpG_DTRACE_OBJ_NOT_NEEDED :=
+ TOOL_VBoxTpG_DTRACE_OBJ_FLAGS := -G --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
+ define TOOL_VBoxTpG_DTRACE_OBJ_CMDS
++ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
+ $(QUIET)$(VBOX_VBOXTPG) \
+ $(if-expr $(intersects $(bld_trg_arch),$(KBUILD_ARCHES_64)),-64,-32) \
+ $(flags) \
+@@ -3738,6 +3740,7 @@
+ TOOL_VBoxTpG-Disabled_DTRACE_DEPORD = $(VBOX_VBOXTPG)
+ TOOL_VBoxTpG-Disabled_DTRACE_HDR_FLAGS := -h
+ define TOOL_VBoxTpG-Disabled_DTRACE_HDR_CMDS
++ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
+ $(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
+ endef
+ TOOL_VBoxTpG-Disabled_DTRACE_OBJ_NOT_NEEDED := $(KBUILD_OSES)
+@@ -3752,6 +3755,7 @@
+ TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS =
+ define TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS
+ $(TOOL_StandardDTrace_DTRACE_HDR_CMDS)
++ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
+ $(QUIET)$(VBOX_VBOXTPG) --generate-wrapper-header --host-$(VBOX_HC_ARCH_BITS)-bit --ring-3-context \
+ $(filter-out -C, $(filter-out -h,$(flags))) \
+ -o "$(out).tmp" -s "$(source)"
+--- a/src/VBox/VMM/Makefile.kmk
++++ b/src/VBox/VMM/Makefile.kmk 2016-09-21 02:26:11
+@@ -795,6 +795,7 @@
+ define def_vmm_lib_dtrace_preprocess
+ $$$$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@)
+ $$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$$<)
++ $$(QUIET)paxmark.sh -m "$(VBOX_VBOXCPP)"
+ $$(QUIET)$(VBOX_VBOXCPP) -d \
+ -D VBOX_FOR_DTRACE_LIB \
+ -D VBOX_FOR_DTRACE_LIB_$(toupper $(KBUILD_TARGET_ARCH)) \
+--- a/src/VBox/Main/Makefile.kmk
++++ b/src/VBox/Main/Makefile.kmk 2016-09-21 02:31:23
+@@ -522,6 +522,7 @@
+ $$(VBoxSVC_0_OUTDIR)/USBIdDatabase.cpp: $$(USBIdDatabaseGenerator_1_TARGET) \
+ $(PATH_SUB_CURRENT)/src-server/usb.ids $(PATH_SUB_CURRENT)/src-server/custom.ids | $$(dir $$@)
+ $(call MSG_GENERATE,USBIdDatabase,$@,$<)
++ $(QUIET)paxmark.sh -m "$(USBIdDatabaseGenerator_1_TARGET)"
+ $(QUIET)$(USBIdDatabaseGenerator_1_TARGET) -o "$@" $(filter %.ids,$^)
+
+ BLDPROGS += USBIdDatabaseGenerator
diff --git a/app-emulation/virtualbox/metadata.xml b/app-emulation/virtualbox/metadata.xml
index eaaefd5f245b..d6912d557594 100644
--- a/app-emulation/virtualbox/metadata.xml
+++ b/app-emulation/virtualbox/metadata.xml
@@ -15,6 +15,7 @@
<use>
<flag name="headless">Build without any graphic frontend</flag>
<flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag>
+ <flag name="pax_kernel">Apply patch needed for pax enabled kernels.</flag>
<flag name="sdk">Enable building of SDK</flag>
<flag name="udev">Controls installation of special USB udev rules.</flag>
<flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag>
diff --git a/app-emulation/virtualbox/virtualbox-5.1.14.ebuild b/app-emulation/virtualbox/virtualbox-5.1.14.ebuild
index e9f05dbdd1a2..96ab03d27ff8 100644
--- a/app-emulation/virtualbox/virtualbox-5.1.14.ebuild
+++ b/app-emulation/virtualbox/virtualbox-5.1.14.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="http://www.virtualbox.org/"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE="alsa debug doc headless java libressl lvm pam pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
+IUSE="alsa debug doc headless java libressl lvm pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
RDEPEND="!app-emulation/virtualbox-bin
~app-emulation/virtualbox-modules-${PV}
@@ -75,6 +75,7 @@ DEPEND="${RDEPEND}
!headless? ( x11-libs/libXinerama )
java? ( >=virtual/jre-1.6:= )
pam? ( sys-libs/pam )
+ pax_kernel? ( sys-apps/elfix )
pulseaudio? ( media-sound/pulseaudio )
qt5? ( dev-qt/linguist-tools:5 )
vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
@@ -183,6 +184,11 @@ src_prepare() {
rm "${WORKDIR}"/patches/050_${PN}-*-nopie.patch || die
fi
+ # Only add paxmark patch when we're on pax_kernel
+ if use pax_kernel ; then
+ epatch "${FILESDIR}"/virtualbox-5.1.4-paxmark-bldprogs.patch || die
+ fi
+
eapply "${WORKDIR}/patches"
eapply_user