--- /usr/portage/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-5.0.0.ebuild 2015-08-09 13:34:49.000000000 -0700 +++ virtualbox-guest-additions-5.0.0-r1.ebuild 2015-08-11 16:26:04.767048793 -0700 @@ -43,10 +43,16 @@ BUILD_TARGETS="all" BUILD_TARGET_ARCH="${ARCH}" -MODULE_NAMES="vboxguest(misc:${WORKDIR}/vboxguest:${WORKDIR}/vboxguest) - vboxsf(misc:${WORKDIR}/vboxsf:${WORKDIR}/vboxsf)" - S="${WORKDIR}/${MY_P}" +MODULE_NAMES="vboxguest(misc:${S}/out/linux.${ARCH}/release/bin/additions/src/vboxguest:${S}/out/linux.${ARCH}/release/bin/additions/src/vboxguest) + vboxsf(misc:${S}/out/linux.${ARCH}/release/bin/additions/src/vboxsf:${S}/out/linux.${ARCH}/release/bin/additions/src/vboxsf)" + +LOCAL_CONFIG_FILE="${S}/LocalConfig.kmk" + +# From the Virtualbox configure script +cnf_append() { + printf "%-30s := %s\n" "$1" "$2" >> "${LOCAL_CONFIG_FILE}" || die +} pkg_setup() { linux-mod_pkg_setup @@ -60,11 +66,6 @@ src_unpack() { unpack ${A} - # Create and unpack a tarball with the sources of the Linux guest - # kernel modules, to include all the needed files - "${S}"/src/VBox/Additions/linux/export_modules "${WORKDIR}/vbox-kmod.tar.gz" - unpack ./vbox-kmod.tar.gz - # Remove shipped binaries (kBuild,yasm), see bug #232775 cd "${S}" rm -rf kBuild/bin tools @@ -72,36 +73,30 @@ src_prepare() { # PaX fixes (see bug #298988) - pushd "${WORKDIR}" &>/dev/null || die - epatch "${FILESDIR}"/vboxguest-4.1.0-log-use-c99.patch - popd &>/dev/null || die + epatch "${FILESDIR}"/vboxguest-5.0.0-r1-log-use-c99.patch # Disable things unused or splitted into separate ebuilds - cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die - - # stupid new header references... - for vboxheader in {product,revision}-generated.h ; do - for mdir in vbox{guest,sf} ; do - ln -sf "${S}"/out/linux.${ARCH}/release/${vboxheader} \ - "${WORKDIR}/${mdir}/${vboxheader}" - done - done + cnf_append "VBOX_WITH_TESTCASES" "" + cnf_append "VBOX_WITH_VALIDATIONKIT" "" + cnf_append "VBOX_WITH_WARNINGS_AS_ERORS" "" + cnf_append "KBUILD_MESSAGE_STYLE" "brief" + if ! use X ; then + cnf_append "VBOX_WITH_X11_ADDITIONS" "" + fi } src_configure() { - # build the user-space tools, warnings are harmless + # build the user-space tools local cmd=( ./configure - --nofatal - --disable-xpcom - --disable-sdl-ttf - --disable-pulse - --disable-alsa + --only-additions + --enable-hardening + --disable-opengl # this should not be necessary with VBOX_WITH_X11_ADDITIONS disabled, but eh. + --nofatal # warnings are harmless --with-gcc="$(tc-getCC)" --with-g++="$(tc-getCXX)" --target-arch=${ARCH} --with-linux="${KV_OUT_DIR}" - --build-headless ) echo "${cmd[@]}" "${cmd[@]}" || die "configure failed" @@ -110,20 +105,10 @@ } src_compile() { - for each in /src/VBox/{Runtime,Additions/common} \ - /src/VBox/Additions/linux/sharedfolders ; do - cd "${S}"${each} || die - MAKE="kmk" \ - emake TOOL_YASM_AS=yasm \ - KBUILD_VERBOSE=2 - done - - if use X; then - cd "${S}"/src/VBox/Additions/x11/VBoxClient || die - MAKE="kmk" \ - emake TOOL_YASM_AS=yasm \ - KBUILD_PATH="${S}/kBuild" - fi + cd "${S}" || die + MAKE="kmk" \ + emake TOOL_YASM_AS=yasm \ + KBUILD_VERBOSE=2 # Now creating the kernel modules. We must do this _after_ # we compiled the user-space tools as we need two of the