From 2133ca0baf659da8abfe799894f8e33699f8637f Mon Sep 17 00:00:00 2001 From: Magnus Granberg Date: Tue, 21 Feb 2017 23:02:09 +0100 Subject: [PATCH] app-emulation/virtualbox-5.1.4: compile get kill by PaX Compile get kill by PaX enable kernels, see bug 591582 Reported-by: Sarah Salzstein Patch-by: Quentin Minster Package-Manager: Portage-2.3.3, Repoman-2.3.1 --- .../virtualbox-5.1.4-paxmark-bldprogs.patch | 59 +++++++++++++++++++ app-emulation/virtualbox/metadata.xml | 1 + .../virtualbox/virtualbox-5.1.14.ebuild | 8 ++- 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 app-emulation/virtualbox/files/virtualbox-5.1.4-paxmark-bldprogs.patch 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 + + #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 @@ Build without any graphic frontend Build VBoxVolInfo that needs devicemapper from sys-fs/lvm2. + Apply patch needed for pax enabled kernels. Enable building of SDK Controls installation of special USB udev rules. Build and install the VirtualBox webservice 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 -- 2.26.2