Changeset View
Changeset View
Standalone View
Standalone View
emulators/virtualbox-ose/Makefile
# Created by: Bernhard Froehlich <decke@bluelife.at> | # Created by: Bernhard Froehlich <decke@bluelife.at> | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
PORTNAME= virtualbox-ose | PORTNAME= virtualbox-ose | ||||
PORTVERSION= 5.2.44 | PORTVERSION= 6.1.18 | ||||
PORTREVISION= 4 | |||||
CATEGORIES= emulators | CATEGORIES= emulators | ||||
MASTER_SITES= https://download.oracle.com/virtualbox/${PORTVERSION}/ | MASTER_SITES= https://download.virtualbox.org/virtualbox/${PORTVERSION}/ | ||||
DISTFILES= VirtualBox-${PORTVERSION}${EXTRACT_SUFX} ${GUESTADDITIONS} | DISTFILES= VirtualBox-${PORTVERSION}${EXTRACT_SUFX} ${GUESTADDITIONS} | ||||
EXTRACT_ONLY= VirtualBox-${PORTVERSION}${EXTRACT_SUFX} | EXTRACT_ONLY= VirtualBox-${PORTVERSION}${EXTRACT_SUFX} | ||||
MAINTAINER= vbox@FreeBSD.org | MAINTAINER= vbox@FreeBSD.org | ||||
COMMENT= General-purpose full virtualizer for x86 hardware | COMMENT= General-purpose full virtualizer for x86 hardware | ||||
LICENSE= GPLv2 | LICENSE= GPLv2 | ||||
LICENSE_FILE= ${WRKSRC}/COPYING | LICENSE_FILE= ${WRKSRC}/COPYING | ||||
PATCH_DEPENDS+= ${LOCALBASE}/share/kBuild/tools/GXX3.kmk:devel/kBuild | |||||
BUILD_DEPENDS= yasm:devel/yasm \ | BUILD_DEPENDS= yasm:devel/yasm \ | ||||
xsltproc:textproc/libxslt \ | xsltproc:textproc/libxslt \ | ||||
kmk:devel/kBuild \ | kmk:devel/kBuild \ | ||||
gtar:archivers/gtar | gtar:archivers/gtar | ||||
LIB_DEPENDS= libpng.so:graphics/png \ | LIB_DEPENDS= libpng.so:graphics/png \ | ||||
libxslt.so:textproc/libxslt \ | libxslt.so:textproc/libxslt \ | ||||
libcurl.so:ftp/curl | libcurl.so:ftp/curl | ||||
RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod | RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod | ||||
CPE_VENDOR= oracle | CPE_VENDOR= oracle | ||||
CPE_PRODUCT= vm_virtualbox | CPE_PRODUCT= vm_virtualbox | ||||
WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION} | WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION} | ||||
ONLY_FOR_ARCHS= i386 amd64 | ONLY_FOR_ARCHS= amd64 | ||||
USES= compiler:c++14-lang cpe gnome iconv pkgconfig ssl tar:bzip2 | USES= compiler:c++14-lang cpe gnome iconv pkgconfig ssl tar:bzip2 | ||||
USE_GNOME= libidl libxml2 | USE_GNOME= libidl libxml2 | ||||
HAS_CONFIGURE= yes | HAS_CONFIGURE= yes | ||||
CONFIGURE_ARGS= --disable-java --passive-mesa | CONFIGURE_ARGS= --disable-java --passive-mesa | ||||
CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}" | CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}" | ||||
CONFLICTS_INSTALL= virtualbox-ose-additions-* \ | CONFLICTS_INSTALL= virtualbox-ose-additions-* \ | ||||
virtualbox-ose-devel-[0-9]* \ | virtualbox-ose-devel-[0-9]* \ | ||||
virtualbox-ose-legacy-[0-9]* \ | virtualbox-ose-legacy-[0-9]* \ | ||||
virtualbox-ose-lite-[0-9]* | virtualbox-ose-lite-[0-9]* | ||||
LDFLAGS= -lpthread | |||||
VBOXUSER?= vboxusers | VBOXUSER?= vboxusers | ||||
VBOXWSUSER?= vboxusers | VBOXWSUSER?= vboxusers | ||||
VBOXGROUP?= vboxusers | VBOXGROUP?= vboxusers | ||||
USERS= ${VBOXUSER} | USERS= ${VBOXUSER} | ||||
GROUPS= ${VBOXGROUP} | GROUPS= ${VBOXGROUP} | ||||
VBOX_DIR= ${PREFIX}/${VBOX_DIR_REL} | VBOX_DIR= ${PREFIX}/${VBOX_DIR_REL} | ||||
VBOX_DIR_REL= lib/virtualbox | VBOX_DIR_REL= lib/virtualbox | ||||
VBOX_LINKS= VBoxVRDP | VBOX_LINKS= VBoxVRDP | ||||
VBOX_PROGS= VBoxAutostart VBoxBalloonCtrl VBoxBugReport VBoxHeadless \ | VBOX_PROGS= VBoxAutostart VBoxBalloonCtrl VBoxBugReport VBoxHeadless \ | ||||
VBoxManage | VBoxManage | ||||
VBOX_UTILS= VBoxExtPackHelperApp VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT \ | VBOX_UTILS= VBoxExtPackHelperApp VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT \ | ||||
VBoxSVC VBoxXPCOMIPCD | VBoxSVC VBoxXPCOMIPCD | ||||
OPTIONS_DEFINE= ALSA DBUS DEBUG GUESTADDITIONS MANUAL NLS PULSEAUDIO \ | OPTIONS_DEFINE= ALSA DBUS DEBUG GUESTADDITIONS MANUAL NLS OPUS PULSEAUDIO \ | ||||
PYTHON QT5 R0LOGGING UDPTUNNEL VDE VNC WEBSERVICE VPX X11 | PYTHON QT5 R0LOGGING UDPTUNNEL VDE VNC WEBSERVICE VPX X11 | ||||
OPTIONS_DEFAULT= DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11 | OPTIONS_DEFAULT= DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11 | ||||
OPTIONS_SUB= yes | OPTIONS_SUB= yes | ||||
DEBUG_DESC= Debug symbols, additional logs and assertions | DEBUG_DESC= Debug symbols, additional logs and assertions | ||||
GUESTADDITIONS_DESC= Build with Guest Additions | GUESTADDITIONS_DESC= Build with Guest Additions | ||||
MANUAL_DESC= Build with user manual | MANUAL_DESC= Build with user manual | ||||
NLS_DESC= Native language support (requires QT5) | NLS_DESC= Native language support (requires QT5) | ||||
OPUS_DESC= Use libvpx for audio recording (requires VPX) | |||||
QT5_DESC= Build with QT5 frontend (requires X11) | QT5_DESC= Build with QT5 frontend (requires X11) | ||||
R0LOGGING_DESC= Enable R0 logging (requires DEBUG) | R0LOGGING_DESC= Enable R0 logging (requires DEBUG) | ||||
UDPTUNNEL_DESC= Build with UDP tunnel support | UDPTUNNEL_DESC= Build with UDP tunnel support | ||||
VDE_DESC= Build with VDE support | VDE_DESC= Build with VDE support | ||||
VNC_DESC= Build with VNC support | VNC_DESC= Build with VNC support | ||||
VPX_DESC= Use libvpx for video recording | VPX_DESC= Use libvpx for video recording | ||||
WEBSERVICE_DESC= Build Webservice | WEBSERVICE_DESC= Build Webservice | ||||
ALSA_CONFIGURE_OFF= --disable-alsa | ALSA_CONFIGURE_OFF= --disable-alsa | ||||
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib | ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib | ||||
DBUS_CONFIGURE_OFF= --disable-dbus | DBUS_CONFIGURE_OFF= --disable-dbus | ||||
DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus | DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus | ||||
DEBUG_CONFIGURE_ON= --build-debug | DEBUG_CONFIGURE_ON= --build-debug | ||||
MANUAL_BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.4/docbookx.dtd:textproc/docbook-xml | MANUAL_BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.4/docbookx.dtd:textproc/docbook-xml | ||||
MANUAL_CONFIGURE_OFF= --disable-docs | MANUAL_CONFIGURE_OFF= --disable-docs | ||||
NLS_IMPLIES= QT5 | NLS_IMPLIES= QT5 | ||||
OPUS_CONFIGURE_OFF= --disable-libopus | |||||
OPUS_LIB_DEPENDS= libopus.so:audio/opus | |||||
OPUS_IMPLIES= VPX | |||||
PULSEAUDIO_CONFIGURE_OFF= --disable-pulse | PULSEAUDIO_CONFIGURE_OFF= --disable-pulse | ||||
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio | PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio | ||||
PYTHON_CONFIGURE_OFF= --disable-python | PYTHON_CONFIGURE_OFF= --disable-python | ||||
QT5_IMPLIES= X11 | QT5_IMPLIES= X11 | ||||
R0LOGGING_IMPLIES= DEBUG | R0LOGGING_IMPLIES= DEBUG | ||||
UDPTUNNEL_CONFIGURE_OFF= --disable-udptunnel | UDPTUNNEL_CONFIGURE_OFF= --disable-udptunnel | ||||
VDE_CONFIGURE_ON= --enable-vde | VDE_CONFIGURE_ON= --enable-vde | ||||
VDE_RUN_DEPENDS= vde_switch:net/vde2 | VDE_RUN_DEPENDS= vde_switch:net/vde2 | ||||
▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | |||||
CONFIGURE_ARGS+= --enable-qt5 | CONFIGURE_ARGS+= --enable-qt5 | ||||
PLIST_SUB+= QT="" | PLIST_SUB+= QT="" | ||||
USES+= gl qmake:no_env qt:5 xorg | USES+= gl qmake:no_env qt:5 xorg | ||||
USE_GL= gl glu | USE_GL= gl glu | ||||
USE_QT= buildtools_build core dbus gui linguisttools_build opengl | USE_QT= buildtools_build core dbus gui linguisttools_build opengl | ||||
USE_QT+= printsupport widgets x11extras | USE_QT+= printsupport widgets x11extras | ||||
USE_XORG= xcb | USE_XORG= xcb | ||||
INSTALLS_ICONS= yes | INSTALLS_ICONS= yes | ||||
VBOX_PROGS+= VirtualBox | VBOX_PROGS+= VirtualBox VirtualBoxVM | ||||
VBOX_UTILS+= VBoxTestOGL | VBOX_UTILS+= VBoxTestOGL | ||||
VBOX_WITH_QT= 1 | VBOX_WITH_QT= 1 | ||||
.else | .else | ||||
CONFIGURE_ARGS+= --disable-qt | CONFIGURE_ARGS+= --disable-qt | ||||
PLIST_SUB+= QT="@comment " | PLIST_SUB+= QT="@comment " | ||||
.endif | .endif | ||||
.if ${PORT_OPTIONS:MWEBSERVICE} | .if ${PORT_OPTIONS:MWEBSERVICE} | ||||
BUILD_DEPENDS+= soapcpp2:devel/gsoap | BUILD_DEPENDS+= soapcpp2:devel/gsoap | ||||
USE_RC_SUBR+= vboxwebsrv | USE_RC_SUBR+= vboxwebsrv | ||||
VBOX_LINKS+= vboxwebsrv | VBOX_LINKS+= vboxwebsrv | ||||
VBOX_UTILS+= vboxwebsrv webtest | VBOX_UTILS+= vboxwebsrv webtest | ||||
.endif | .endif | ||||
.if ${PORT_OPTIONS:MX11} | .if ${PORT_OPTIONS:MX11} | ||||
USES+= sdl | USES+= sdl xorg | ||||
USE_SDL= sdl | USE_SDL= sdl | ||||
USE_XORG+= xorgproto x11 xcursor xext xinerama xmu xt | USE_XORG+= xorgproto x11 xcursor xext xinerama xmu xt | ||||
VBOX_PROGS+= VBoxSDL | VBOX_PROGS+= VBoxSDL | ||||
.endif | .endif | ||||
.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} | .if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} | ||||
PLIST_SUB+= SDK="" | PLIST_SUB+= SDK="" | ||||
.else | .else | ||||
Show All 11 Lines | |||||
PLIST_SUB+= ARCH="${KMK_ARCH}" | PLIST_SUB+= ARCH="${KMK_ARCH}" | ||||
KMK_BUILDDIR= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE} | KMK_BUILDDIR= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE} | ||||
KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys | KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys | ||||
KMK_FLAGS+= -j${MAKE_JOBS_NUMBER} | KMK_FLAGS+= -j${MAKE_JOBS_NUMBER} | ||||
.include <bsd.port.pre.mk> | .include <bsd.port.pre.mk> | ||||
.if ${CHOSEN_COMPILER_TYPE} == clang | |||||
# llvm10 in FreeBSD before r364284 miscompiles virtualbox 6.1 causing errors. | |||||
# force llvm11 from ports | |||||
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1300109 | |||||
BUILD_DEPENDS+= clang11:devel/llvm${VBOX_LLVM_VER} | |||||
CC= ${LOCALBASE}/bin/clang${VBOX_LLVM_VER} | |||||
CXX= ${LOCALBASE}/bin/clang++${VBOX_LLVM_VER} | |||||
VBOX_LLVM_VER?= 11 | |||||
.endif | |||||
PATCH_DEPENDS+= ${LOCALBASE}/share/kBuild/tools/GXX3.kmk:devel/kBuild | |||||
EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-src-VBox-Devices-PC-ipxe-Makefile.kmk | |||||
.endif | |||||
.if ${PYTHON_MAJOR_VER} >= 3 | .if ${PYTHON_MAJOR_VER} >= 3 | ||||
PLIST_SUB+= PYTHON_PYCDIR=/__pycache__/ \ | PLIST_SUB+= PYTHON_PYCDIR=/__pycache__/ \ | ||||
PYTHON_PYCEXT=.cpython-${PYTHON_SUFFIX}.pyc | PYTHON_PYCEXT=.cpython-${PYTHON_SUFFIX}.pyc | ||||
.else | .else | ||||
PLIST_SUB+= PYTHON_PYCDIR=/ \ | PLIST_SUB+= PYTHON_PYCDIR=/ \ | ||||
PYTHON_PYCEXT=.pyc | PYTHON_PYCEXT=.pyc | ||||
.endif | .endif | ||||
▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Lines | .if ${PORT_OPTIONS:MWEBSERVICE} | ||||
@${ECHO_CMD} 'VBOX_PATH_GSOAP = ${PREFIX}/lib/gsoap' >> \ | @${ECHO_CMD} 'VBOX_PATH_GSOAP = ${PREFIX}/lib/gsoap' >> \ | ||||
${WRKSRC}/LocalConfig.kmk | ${WRKSRC}/LocalConfig.kmk | ||||
@${ECHO_CMD} 'VBOX_PATH_GSOAP_BIN = ${PREFIX}/bin' >> \ | @${ECHO_CMD} 'VBOX_PATH_GSOAP_BIN = ${PREFIX}/bin' >> \ | ||||
${WRKSRC}/LocalConfig.kmk | ${WRKSRC}/LocalConfig.kmk | ||||
@${ECHO_CMD} 'VBOX_PATH_GSOAP_IMPORT = ${PREFIX}/share/gsoap/import' >> \ | @${ECHO_CMD} 'VBOX_PATH_GSOAP_IMPORT = ${PREFIX}/share/gsoap/import' >> \ | ||||
${WRKSRC}/LocalConfig.kmk | ${WRKSRC}/LocalConfig.kmk | ||||
@${ECHO_CMD} 'VBOX_GCC_PEDANTIC_CXX = -Wshadow $$(VBOX_GCC_WARN) -Wno-long-long' >> \ | @${ECHO_CMD} 'VBOX_GCC_PEDANTIC_CXX = -Wshadow $$(VBOX_GCC_WARN) -Wno-long-long' >> \ | ||||
${WRKSRC}/LocalConfig.kmk | ${WRKSRC}/LocalConfig.kmk | ||||
@${REINPLACE_CMD} -E -e '/soap_socket_errno\(/s/(soap_socket_errno)(\([^)]+\))/\1/' \ | |||||
${WRKSRC}/src/VBox/Main/webservice/vboxweb.cpp | |||||
.endif | .endif | ||||
.if empty(PORT_OPTIONS:MX11) | |||||
@${ECHO} 'VBOX_WITH_VMSVGA3D =' >> ${WRKSRC}/LocalConfig.kmk | |||||
.endif | |||||
.if ${CHOSEN_COMPILER_TYPE} == clang | |||||
@${REINPLACE_CMD} -e 's| -finline-limit=8000||' \ | @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \ | ||||
-e 's| -mpreferred-stack-boundary=2||' \ | -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk | ||||
-e 's|%%PYTHON_VERSION%%|${PYTHON_VERSION}|' \ | |||||
${WRKSRC}/Config.kmk | |||||
@${REINPLACE_CMD} -e 's| -fpermissive||' ${WRKSRC}/Config.kmk \ | @${REINPLACE_CMD} -e 's| -fpermissive||' ${WRKSRC}/Config.kmk \ | ||||
${WRKSRC}/src/VBox/Main/webservice/Makefile.kmk | ${WRKSRC}/src/VBox/Main/webservice/Makefile.kmk | ||||
@${ECHO_CMD} 'TOOL_VBoxGccFreeBSD_LD = ${CXX}' >> ${WRKSRC}/LocalConfig.kmk | @${ECHO_CMD} 'TOOL_VBoxGccFreeBSD_LD = ${CXX}' >> ${WRKSRC}/LocalConfig.kmk | ||||
@${SED} -e 's|GXX3|VBoxGccFreeBSD|g' \ | @${SED} -e 's|GXX3|VBoxGccFreeBSD|g' \ | ||||
${LOCALBASE}/share/kBuild/tools/GXX3.kmk > \ | ${LOCALBASE}/share/kBuild/tools/GXX3.kmk > \ | ||||
${WRKSRC}/tools/kBuildTools/VBoxGccFreeBSD.kmk | ${WRKSRC}/tools/kBuildTools/VBoxGccFreeBSD.kmk | ||||
.endif | |||||
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ | @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ | ||||
${WRKSRC}/Config.kmk ${WRKSRC}/configure \ | ${WRKSRC}/Config.kmk ${WRKSRC}/configure \ | ||||
${WRKSRC}/kBuild/header.kmk ${WRKSRC}/kBuild/units/qt4.kmk \ | ${WRKSRC}/kBuild/header.kmk ${WRKSRC}/kBuild/units/qt4.kmk \ | ||||
${WRKSRC}/kBuild/units/qt5.kmk ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \ | ${WRKSRC}/kBuild/units/qt5.kmk ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \ | ||||
${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py | ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py | ||||
@${REINPLACE_CMD} \ | @${REINPLACE_CMD} \ | ||||
-e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \ | -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \ | ||||
-e 's|SUPPYTHONLIBS=.*|SUPPYTHONLIBS="${PYTHON_VERSION}${PYTHON_ABIVER}"|' \ | -e 's|SUPPYTHONLIBS=.*|SUPPYTHONLIBS="${PYTHON_VERSION}${PYTHON_ABIVER}"|' \ | ||||
Show All 26 Lines | cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom && \ | ||||
${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR} | ${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR} | ||||
${MKDIR} ${STAGEDIR}${PREFIX}/include/virtualbox | ${MKDIR} ${STAGEDIR}${PREFIX}/include/virtualbox | ||||
cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/include && \ | cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/include && \ | ||||
${COPYTREE_SHARE} "*" ${STAGEDIR}${PREFIX}/include/virtualbox | ${COPYTREE_SHARE} "*" ${STAGEDIR}${PREFIX}/include/virtualbox | ||||
${MKDIR} ${STAGEDIR}${VBOX_DIR} | ${MKDIR} ${STAGEDIR}${VBOX_DIR} | ||||
cd ${KMK_BUILDDIR}/bin && ${COPYTREE_SHARE} \ | cd ${KMK_BUILDDIR}/bin && ${COPYTREE_SHARE} \ | ||||
"*.fd *.r0 *.rc *.so components" ${STAGEDIR}${VBOX_DIR} | "*.fd *.r0 *.so components" ${STAGEDIR}${VBOX_DIR} | ||||
.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} | .if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} | ||||
${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR} | ${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR} | ||||
.endif | .endif | ||||
${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh \ | ${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh \ | ||||
${STAGEDIR}${VBOX_DIR} | ${STAGEDIR}${VBOX_DIR} | ||||
.for f in ${VBOX_PROGS} ${VBOX_UTILS} | .for f in ${VBOX_PROGS} ${VBOX_UTILS} | ||||
${INSTALL_PROGRAM} ${KMK_BUILDDIR}/bin/${f} ${STAGEDIR}${VBOX_DIR} | ${INSTALL_PROGRAM} ${KMK_BUILDDIR}/bin/${f} ${STAGEDIR}${VBOX_DIR} | ||||
▲ Show 20 Lines • Show All 68 Lines • Show Last 20 Lines |