1PORTNAME= virtualbox-ose 2PORTVERSION= 5.2.44 3PORTREVISION?= 1 4CATEGORIES= emulators 5MASTER_SITES= https://download.oracle.com/virtualbox/${PORTVERSION}/ 6PKGNAMESUFFIX?= -additions-legacy 7DISTNAME= VirtualBox-${PORTVERSION} 8 9MAINTAINER= ports@MidnightBSD.org 10COMMENT= VirtualBox additions for FreeBSD guests 11WWW= https://www.virtualbox.org/ 12 13LICENSE= gpl2 14LICENSE_FILE= ${WRKSRC}/COPYING 15 16ONLY_FOR_ARCHS= amd64 i386 17USES= compiler:c++11-lang cpe iconv kmod tar:bzip2 18USE_RC_SUBR= vboxguest vboxservice 19 20BUILD_DEPENDS= yasm:devel/yasm \ 21 kmk:devel/kBuild \ 22 xsltproc:textproc/libxslt 23 24CPE_VENDOR= oracle 25CPE_PRODUCT= vm_virtualbox 26 27PATCHDIR= ${.CURDIR}/../${PORTNAME}-legacy/files 28WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION} 29MAKE_JOBS_UNSAFE= yes 30 31HAS_CONFIGURE= yes 32CONFIGURE_ARGS+= --disable-alsa \ 33 --disable-docs \ 34 --disable-libvpx \ 35 --disable-opengl \ 36 --disable-pulse \ 37 --disable-python \ 38 --disable-sdl-ttf \ 39 --disable-xpcom 40CONFIGURE_ARGS+= --nofatal --with-gcc="${CC}" --with-g++="${CXX}" 41 42CONFLICTS_INSTALL= virtualbox-ose \ 43 virtualbox-ose-additions \ 44 virtualbox-ose-additions-devel \ 45 virtualbox-ose-devel \ 46 virtualbox-ose-lite \ 47 virtualbox-ose-nox11 48 49EXTRACT_AFTER_ARGS= --exclude tools/*.x86 --exclude tools/*.amd64 --exclude Firmware 50PORTSCOUT= limit:^5\. 51 52OPTIONS_DEFINE= DBUS DEBUG X11 53OPTIONS_DEFINE_i386= PAE 54OPTIONS_DEFAULT= DBUS X11 55OPTIONS_SUB= yes 56 57PAE_DESC= Build kernel modules for PAE-kernels 58DBUS_CONFIGURE_OFF= --disable-dbus 59DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus 60DEBUG_CONFIGURE_ON= --build-debug 61DEBUG_VARS= KMK_BUILDTYPE=debug 62DEBUG_VARS_OFF= KMK_BUILDTYPE=release 63X11_BUILD_DEPENDS= ${LOCALBASE}/include/xorg/compiler.h:x11-servers/xorg-server 64X11_RUN_DEPENDS= xrandr:x11/xrandr 65X11_USE= XORG=x11,xcursor,xext,xorgproto,xmu,xrandr,xt 66X11_USES= pkgconfig xorg 67X11_VARS= VBOX_WITH_X11=1 68 69.include <bsd.mport.options.mk> 70 71.if ${SLAVE_PORT} == no 72CONFLICTS_INSTALL+= virtualbox-ose-additions-nox11 73.else 74CONFLICTS_INSTALL+= virtualbox-ose-additions 75.endif 76 77VIDEODIR= ${PREFIX}/lib/xorg/modules/drivers 78INPUTDIR= ${PREFIX}/lib/xorg/modules/input 79 80VBOX_BIN= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}/bin/additions 81VBOX_SBINS= VBoxControl \ 82 VBoxService \ 83 mount_vboxvfs 84 85BUILD_WRKSRC= ${VBOX_BIN}/src 86 87KMK_ARCH= freebsd.${ARCH:S/i386/x86/} 88KMK_CONFIG+= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys 89 90.if ${PORT_OPTIONS:MX11} 91.else 92VBOX_WITH_X11= 93.endif 94 95.include <bsd.port.pre.mk> 96 97.if ${COMPILER_TYPE} == clang 98.if ${COMPILER_FEATURES:Mlibc++} 99EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-src-VBox-Additions-x11-VBoxClient-Makefile.kmk 100.endif 101.endif 102 103post-patch: 104 @${ECHO_CMD} 'VBOX_ONLY_ADDITIONS = 1' > ${WRKSRC}/LocalConfig.kmk 105 @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_X11}' >> \ 106 ${WRKSRC}/LocalConfig.kmk 107 @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_X11}' >> \ 108 ${WRKSRC}/LocalConfig.kmk 109 @${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS = ${VBOX_WITH_X11}' >> \ 110 ${WRKSRC}/LocalConfig.kmk 111 @${ECHO_CMD} 'VBOX_GCC_std = -std=c++11' >> ${WRKSRC}/LocalConfig.kmk 112.if ${COMPILER_TYPE} == clang 113 @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \ 114 -e 's| -fno-merge-constants||' \ 115 -e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk 116.endif 117 @${REINPLACE_CMD} -e 's|/usr/X11|${LOCALBASE}|g' \ 118 ${WRKSRC}/src/VBox/Additions/x11/VBoxClient/display.cpp 119 @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ 120 ${WRKSRC}/Config.kmk ${WRKSRC}/configure \ 121 ${WRKSRC}/kBuild/header.kmk ${WRKSRC}/kBuild/units/qt4.kmk \ 122 ${WRKSRC}/kBuild/units/qt5.kmk ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \ 123 ${WRKSRC}/src/VBox/Additions/common/crOpenGL/load.c \ 124 ${WRKSRC}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \ 125 ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \ 126 ${WRKSRC}/src/VBox/Additions/x11/vboxmouse/Makefile.kmk \ 127 ${WRKSRC}/src/VBox/Additions/x11/vboxvideo/Makefile.kmk 128 @${REINPLACE_CMD} \ 129 -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \ 130 ${WRKSRC}/configure 131.if empty(ICONV_LIB) 132 @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \ 133 ${WRKSRC}/src/VBox/Runtime/Makefile.kmk \ 134 ${WRKSRC}/src/VBox/Additions/x11/VBoxClient/Makefile.kmk 135 @${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk 136.endif 137.if ${PORT_OPTIONS:MPAE} 138 @${ECHO_CMD} 'VBOX_FREEBSD = -DPAE' >> ${WRKSRC}/LocalConfig.kmk 139.endif 140# ${REINPLACE_CMD} -e 's|freebsd|midnightbsd|g' ${WRKSRC}/Config.kmk 141 142post-patch-X11-on: 143 @${ECHO_CMD} 'VBOX_USE_SYSTEM_XORG_HEADERS = 1' >> \ 144 ${WRKSRC}/LocalConfig.kmk 145 146pre-build: 147 cd ${WRKSRC} && ${SH} -c \ 148 ". env.sh && ${KMK_CONFIG} ${LOCALBASE}/bin/kmk" 149 150do-install: 151 ${MKDIR} ${KMODDIR} 152 ${INSTALL_KLD} ${VBOX_BIN}/src/vboxguest/vboxguest.ko \ 153 ${KMODDIR} 154 ${INSTALL_KLD} ${VBOX_BIN}/vboxvfs.ko ${KMODDIR} 155 ${INSTALL_LIB} ${VBOX_BIN}/pam_vbox.so ${PREFIX}/lib 156 ${INSTALL_PROGRAM} ${VBOX_SBINS:S|^|${VBOX_BIN}/|} \ 157 ${PREFIX}/sbin/ 158 159do-install-X11-on: 160 ${INSTALL_PROGRAM} ${VBOX_BIN}/VBoxClient ${FAKE_DESTDIR}${PREFIX}/bin/ 161 ${INSTALL_SCRIPT} \ 162 ${WRKSRC}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \ 163 ${FAKE_DESTDIR}${PREFIX}/bin/VBoxClient-all 164 # X11 autostart 165 ${MKDIR} ${FAKE_DESTDIR}${PREFIX}/etc/xdg/autostart/ 166 ${INSTALL_DATA} \ 167 ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \ 168 ${FAKE_DESTDIR}${PREFIX}/etc/xdg/autostart/ 169 # KDE autostart 170 ${MKDIR} ${FAKE_DESTDIR}${PREFIX}/share/autostart/ 171 ${INSTALL_DATA} \ 172 ${WRKSRC}/src/VBox/Additions/x11/Installer/vboxclient.desktop \ 173 ${FAKE_DESTDIR}${PREFIX}/share/autostart/ 174 ${MKDIR} ${FAKE_DESTDIR}${VIDEODIR} 175 ${INSTALL_DATA} ${VBOX_BIN}/vboxvideo_drv_system.so \ 176 ${FAKE_DESTDIR}${VIDEODIR}/vboxvideo_drv.so 177 ${MKDIR} ${FAKE_DESTDIR}${INPUTDIR} 178 ${INSTALL_DATA} ${VBOX_BIN}/vboxmouse_drv_system.so \ 179 ${FAKE_DESTDIR}${INPUTDIR}/vboxmouse_drv.so 180 181.include <bsd.port.post.mk> 182