1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
|
PORTNAME= virtualbox-ose
PORTVERSION= 6.1.48
PORTREVISION?= 1
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${PORTVERSION}/
DISTFILES= VirtualBox-${PORTVERSION}${EXTRACT_SUFX} ${GUESTADDITIONS}
EXTRACT_ONLY= VirtualBox-${PORTVERSION}${EXTRACT_SUFX}
MAINTAINER= vbox@FreeBSD.org
COMMENT= General-purpose full virtualizer for x86 hardware
WWW= https://www.virtualbox.org/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
ONLY_FOR_ARCHS= amd64
BUILD_DEPENDS= gtar:archivers/gtar \
kmk:devel/kBuild \
libIDL-config-2:devel/libIDL \
yasm:devel/yasm \
xsltproc:textproc/libxslt
LIB_DEPENDS= libpng.so:graphics/png \
libcurl.so:ftp/curl
RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod
USES= compiler:c++14-lang cpe gnome iconv pkgconfig ssl tar:bzip2
USE_GNOME= libxml2
CPE_VENDOR= oracle
CPE_PRODUCT= vm_virtualbox
HAS_CONFIGURE= yes
CONFIGURE_ARGS= --disable-java --passive-mesa
CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}"
CONFLICTS_INSTALL= virtualbox-ose-additions-* \
virtualbox-ose-devel \
virtualbox-ose-legacy \
virtualbox-ose-lite
WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION}
VBOXUSER?= vboxusers
VBOXWSUSER?= vboxusers
VBOXGROUP?= vboxusers
USERS= ${VBOXUSER}
GROUPS= ${VBOXGROUP}
VBOX_DIR= ${PREFIX}/${VBOX_DIR_REL}
VBOX_DIR_REL= lib/virtualbox
VBOX_ETC= ${PREFIX}/etc/vbox
VBOX_LINKS= VBoxVRDP
VBOX_PROGS= VBoxAutostart VBoxBalloonCtrl VBoxBugReport VBoxHeadless \
VBoxManage
VBOX_UTILS= VBoxExtPackHelperApp VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT \
VBoxSVC VBoxXPCOMIPCD
SUB_FILES= pkg-message
OPTIONS_DEFINE= AIO ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS OPUS PULSEAUDIO \
PYTHON QT5 R0LOGGING UDPTUNNEL VBOXIMG VDE VNC WEBSERVICE VPX X11
OPTIONS_DEFAULT= AIO DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11
# Since version 6.1.24 pulseaudio is broken at runtime, preventing
# virtual machines from starting if configured to use it.
OPTIONS_EXCLUDE+= PULSEAUDIO
OPTIONS_SUB= yes
AIO_DESC= Enable Asyncronous IO support (check pkg-message)
DEBUG_DESC= Debug symbols, additional logs and assertions
GUESTADDITIONS_DESC= Build with Guest Additions
NLS_DESC= Native language support (requires QT5)
OPUS_DESC= Use libvpx for audio recording (requires VPX)
QT5_DESC= Build with QT5 frontend (requires X11)
R0LOGGING_DESC= Enable R0 logging (requires DEBUG)
UDPTUNNEL_DESC= Build with UDP tunnel support
VBOXIMG_DESC= Build vboximg-mount (requires fuse-libs)
VDE_DESC= Build with VDE support
VNC_DESC= Build with VNC support
VPX_DESC= Use libvpx for video recording
WEBSERVICE_DESC= Build Webservice
ALSA_CONFIGURE_OFF= --disable-alsa
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
DBUS_CONFIGURE_OFF= --disable-dbus
DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
DEBUG_CONFIGURE_ON= --build-debug
DOCS_USES= tex
DOCS_USE= TEX=dvipsk:build,formats:build
DOCS_BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.4/docbookx.dtd:textproc/docbook-xml
DOCS_CONFIGURE_OFF= --disable-docs
DOCS_VARS= dbkxmldir=${LOCALBASE}/share/xml/docbook/4.4 \
dbkxsldir=${LOCALBASE}/share/xsl/docbook
NLS_IMPLIES= QT5
OPUS_CONFIGURE_OFF= --disable-libopus
OPUS_LIB_DEPENDS= libopus.so:audio/opus
OPUS_IMPLIES= VPX
PULSEAUDIO_CONFIGURE_OFF= --disable-pulse
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PYTHON_USES= python
PYTHON_USES_OFF= python:build
PYTHON_USE= PYTHON=distutils,noegginfo,noflavors
PYTHON_CONFIGURE_OFF= --disable-python
PYTHON_VARS= pydistutils_pkgname=vboxapi pydistutils_pkgversion=1.0
QT5_USES= gl qmake:no_env qt:5 xorg
QT5_USE= QT=buildtools:build,core,dbus,gui,linguisttools:build,opengl \
QT=printsupport,widgets,x11extras XORG=xcb GL=gl
QT5_CONFIGURE_ON= --enable-qt5
QT5_CONFIGURE_OFF= --disable-qt
QT5_IMPLIES= X11
R0LOGGING_IMPLIES= DEBUG
UDPTUNNEL_CONFIGURE_OFF= --disable-udptunnel
VBOXIMG_LIB_DEPENDS= libfuse.so.2:sysutils/fusefs-libs
VDE_CONFIGURE_ON= --enable-vde
VDE_RUN_DEPENDS= vde_switch:net/vde2
VNC_CONFIGURE_ON= --enable-vnc
VNC_LIB_DEPENDS= libvncserver.so:net/libvncserver
VPX_CONFIGURE_OFF= --disable-libvpx
VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx
WEBSERVICE_BUILD_DEPENDS= soapcpp2:devel/gsoap
X11_USES= sdl xorg
X11_USE= SDL=sdl XORG=x11,xcursor,xext,xinerama,xmu,xorgproto,xt
X11_CONFIGURE_OFF= --build-headless
ENV=
.export ENV
PLIST_SUB= GUEST_VER=${PORTVERSION} \
PYTHON_VERU=${PYTHON_VER:S/./_/}${PYTHON_ABIVER} \
VBOXGROUP=${VBOXGROUP}
SUB_LIST= VBOXDIR=${VBOX_DIR} \
VBOX_ETC=${VBOX_ETC} \
VBOXGROUP=${VBOXGROUP} \
VBOXUSER=${VBOXUSER} \
VBOXWSUSER=${VBOXWSUSER}
USE_RC_SUBR= vboxheadless vboxwatchdog
.include <bsd.port.options.mk>
.if ${SLAVE_PORT} == no
CONFLICTS_INSTALL+= virtualbox-ose-nox11
OPTIONS_DEFAULT+= PYTHON
.else
CONFLICTS_INSTALL+= virtualbox-ose
.endif
.if ${PORT_OPTIONS:MDEBUG}
KMK_BUILDTYPE= debug
KMK_FLAGS+= BUILD_TYPE=debug
WITH_DEBUG= yes
.else
KMK_BUILDTYPE= release
.endif
.if ${PORT_OPTIONS:MGUESTADDITIONS}
GUESTADDITIONS= VBoxGuestAdditions_${PORTVERSION}.iso
LICENSE+= Additions
LICENSE_COMB= multi
LICENSE_NAME_Additions= Guest Additions
LICENSE_PERMS_Additions= auto-accept
LICENSE_DISTFILES_Additions= ${GUESTADDITIONS}
.endif
.if ${PORT_OPTIONS:MQT5}
PLIST_SUB+= QT=""
VBOX_PROGS+= VirtualBox VirtualBoxVM
VBOX_UTILS+= VBoxTestOGL
VBOX_WITH_QT= 1
.else
PLIST_SUB+= QT="@comment "
.endif
.if ${PORT_OPTIONS:MWEBSERVICE}
USE_RC_SUBR+= vboxwebsrv
VBOX_LINKS+= vboxwebsrv
VBOX_UTILS+= vboxwebsrv webtest
.endif
.if ${PORT_OPTIONS:MX11}
VBOX_PROGS+= VBoxSDL
.endif
.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
PLIST_SUB+= SDK=""
.else
PLIST_SUB+= SDK="@comment "
.endif
.if ${PORT_OPTIONS:MVBOXIMG}
EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-vboximg-Config.kmk
VBOX_UTILS+= vboximg-mount
PLIST_SUB+= VBOXIMG=""
.else
PLIST_SUB+= VBOXIMG="@comment "
.endif
KMK_ARCH= freebsd.${ARCH}
PLIST_SUB+= ARCH="${KMK_ARCH}"
KMK_BUILDDIR= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE}
KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys
KMK_FLAGS+= -j${MAKE_JOBS_NUMBER}
.include <bsd.port.pre.mk>
.if ${CHOSEN_COMPILER_TYPE} == clang
# 1) llvm10 in FreeBSD before r364284 miscompiles virtualbox 6.1 causing errors.
# 2) llvm15 in FreeBSD miscompiles virtualbox 6.1 causing errors: PR#270189.
# Force llvm from ports.
.if ${OPSYS} == FreeBSD && \
(${OSVERSION} >= 1302505 && ${OSVERSION} < 1400000 || ${OSVERSION} >= 1400079)
# USES must be before .include <bsd.port.pre.mk>, but CHOSEN_COMPILER_TYPE must be after.
# This is a workaround with possibility to define different llvm via VBOX_LLVM_VER in make.conf.
#USES+= llvm:min=11,max=14
#CC= clang${LLVM_VERSION}
#CXX= clang++${LLVM_VERSION}
BUILD_DEPENDS+= clang${VBOX_LLVM_VER}:devel/llvm${VBOX_LLVM_VER}
CC= clang${VBOX_LLVM_VER}
CXX= clang++${VBOX_LLVM_VER}
.if ${LLVM_DEFAULT} < 11 || ${LLVM_DEFAULT} > 14
VBOX_LLVM_VER?= 14
.else
VBOX_LLVM_VER?= ${LLVM_DEFAULT}
.endif
.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
PLIST_SUB+= PYTHON_PYCDIR=/__pycache__/ \
PYTHON_PYCEXT=.cpython-${PYTHON_SUFFIX}.pyc
.else
PLIST_SUB+= PYTHON_PYCDIR=/ \
PYTHON_PYCEXT=.pyc
.endif
.if ${SSL_DEFAULT} != base
CONFIGURE_ARGS+= --with-openssl-dir="${OPENSSLBASE}"
.endif
post-patch:
@${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE_ARCH = ${VBOX_DIR}' > \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_PATH_DOCBOOK = ${DBKXSLDIR}' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_PATH_DOCBOOK_DTD = ${DBKXMLDIR}' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_PATH_SHARED_LIBS = ${VBOX_DIR}' >> \
${WRKSRC}/LocalConfig.kmk
# Please keep this even if using Clang to avoid repeated regressions.
# PR 245048
@${ECHO_CMD} "VBOX_WITH_RUNPATH = ${_GCC_RUNTIME:D${_GCC_RUNTIME}\:}${VBOX_DIR}" >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk
.if ${SSL_DEFAULT} != base
@${ECHO_CMD} 'VBOX_WITH_ALT_HASH_CODE = 1' >> ${WRKSRC}/LocalConfig.kmk
.endif
@${ECHO_CMD} 'VBOX_WITH_EXTPACK_VBOXDTRACE =' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_WITH_VBOXDRV =' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_WITH_TESTCASES =' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'SDK_VBOX_LIBPNG_INCS = ${PREFIX}/include/libpng' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'SDK_VBOX_LIBPNG_LIBS = png' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_QT}' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_QT}' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_WITH_VALIDATIONKIT =' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk
.if ${PORT_OPTIONS:MR0LOGGING}
@${ECHO_CMD} 'VBOX_WITH_R0_LOGGING = 1' >> ${WRKSRC}/LocalConfig.kmk
.endif
.if ${PORT_OPTIONS:MWEBSERVICE}
@${ECHO_CMD} 'VBOX_WITH_WEBSERVICES = 1' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_GSOAP_INSTALLED = 1' >> ${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_PATH_GSOAP = ${PREFIX}/lib/gsoap' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_PATH_GSOAP_BIN = ${PREFIX}/bin' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_PATH_GSOAP_IMPORT = ${PREFIX}/share/gsoap/import' >> \
${WRKSRC}/LocalConfig.kmk
@${ECHO_CMD} 'VBOX_GCC_PEDANTIC_CXX = -Wshadow $$(VBOX_GCC_WARN) -Wno-long-long' >> \
${WRKSRC}/LocalConfig.kmk
.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||' \
-e 's| -mpreferred-stack-boundary=2||' ${WRKSRC}/Config.kmk
@${REINPLACE_CMD} -e 's| -fpermissive||' ${WRKSRC}/Config.kmk \
${WRKSRC}/src/VBox/Main/webservice/Makefile.kmk
@${ECHO_CMD} 'TOOL_VBoxGccFreeBSD_LD = ${CXX}' >> ${WRKSRC}/LocalConfig.kmk
@${SED} -e 's|GXX3|VBoxGccFreeBSD|g' \
${LOCALBASE}/share/kBuild/tools/GXX3.kmk > \
${WRKSRC}/tools/kBuildTools/VBoxGccFreeBSD.kmk
.endif
# Causes a "reinplace" QA warning with default LOCALBASE
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/Config.kmk ${WRKSRC}/configure \
${WRKSRC}/kBuild/header.kmk ${WRKSRC}/kBuild/units/qt4.kmk \
${WRKSRC}/kBuild/units/qt5.kmk ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \
${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
@${REINPLACE_CMD} \
-e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \
-e 's|SUPPYTHONLIBS=.*|SUPPYTHONLIBS="${PYTHON_VERSION}${PYTHON_ABIVER}"|' \
${WRKSRC}/configure
.if empty(ICONV_LIB)
@${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \
${WRKSRC}/src/VBox/Runtime/Makefile.kmk
@${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk
.endif
@${REINPLACE_CMD} -e 's|%%VBOX_DIR%%|${VBOX_DIR}|g' \
-e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \
-e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh
@${REINPLACE_CMD} -e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \
${WRKSRC}/src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
@${REINPLACE_CMD} \
-e 's|^versions =.*|versions = ["${PYTHON_VER}${PYTHON_ABIVER}"]|' \
${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
post-patch-AIO-off:
@${REINPLACE_CMD} 's|r3/freebsd/fileaio-freebsd.cpp|r3/posix/fileaio-posix.cpp|' \
${WRKSRC}/src/VBox/Runtime/Makefile.kmk
do-build:
cd ${WRKSRC} && ${SH} -c '. ${WRKSRC}/env.sh && \
${SETENV} ${MAKE_ENV} ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}'
.if ${PORT_OPTIONS:MPYTHON}
${PYTHON_CMD} -mcompileall \
${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom
.endif
do-install:
.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
${MKDIR} ${STAGEDIR}${DATADIR}/sdk
.endif
cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom && \
${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR}
${MKDIR} ${STAGEDIR}${PREFIX}/include/virtualbox
cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/include && \
${COPYTREE_SHARE} "*" ${STAGEDIR}${PREFIX}/include/virtualbox
${MKDIR} ${STAGEDIR}${VBOX_DIR}
cd ${KMK_BUILDDIR}/bin && ${COPYTREE_SHARE} \
"*.fd *.r0 *.so components" ${STAGEDIR}${VBOX_DIR}
.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE}
${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR}
.endif
${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh \
${STAGEDIR}${VBOX_DIR}
.for f in ${VBOX_PROGS} ${VBOX_UTILS}
${INSTALL_PROGRAM} ${KMK_BUILDDIR}/bin/${f} ${STAGEDIR}${VBOX_DIR}
.endfor
.for f in ${VBOX_PROGS} ${VBOX_LINKS}
${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f}
.endfor
.for f in ${VBOX_PROGS}
${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f:tl}
.endfor
.if ${PORT_OPTIONS:MGUESTADDITIONS}
${MKDIR} ${STAGEDIR}${VBOX_DIR}/additions
${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} \
${STAGEDIR}${VBOX_DIR}/additions/
${RLN} ${STAGEDIR}${VBOX_DIR}/additions/${GUESTADDITIONS} \
${STAGEDIR}${VBOX_DIR}/additions/VBoxGuestAdditions.iso
.endif
.if ${PORT_OPTIONS:MDOCS}
${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${KMK_BUILDDIR}/bin/UserManual*.pdf \
${STAGEDIR}${DOCSDIR}
.endif
.if ${PORT_OPTIONS:MNLS}
cd ${KMK_BUILDDIR}/obj/VirtualBox/qtnls && \
${COPYTREE_SHARE} "*.qm" ${STAGEDIR}${DATADIR}/nls
.endif
.if ${PORT_OPTIONS:MPYTHON}
cd ${KMK_BUILDDIR}/bin/sdk/installer && \
${SETENV} VBOX_INSTALL_PATH="${VBOX_DIR}" \
${PYTHON_CMD} vboxapisetup.py install --root=${STAGEDIR}
@${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom
cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom && \
${COPYTREE_SHARE} "*" ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom
@${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python
${RLN} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom \
${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python
.endif
.if ${PORT_OPTIONS:MQT5}
${INSTALL_DATA} \
${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png \
${STAGEDIR}${PREFIX}/share/pixmaps/VBox.png
${INSTALL_DATA} \
${WRKSRC}/src/VBox/Installer/freebsd/virtualbox.desktop \
${STAGEDIR}${PREFIX}/share/applications/virtualbox.desktop
.endif
.if ${PORT_OPTIONS:MVNC}
${MKDIR} ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH}
${INSTALL_DATA} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/ExtPack* \
${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/
${INSTALL_LIB} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/${KMK_ARCH}/* \
${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH}/
.endif
.if ${PORT_OPTIONS:MVBOXIMG}
${LN} -fs ../${VBOX_DIR_REL}/vboximg-mount ${STAGEDIR}${PREFIX}/bin/
.endif
.if ${PORT_OPTIONS:MWEBSERVICE}
${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/webservice
${INSTALL_DATA} ${KMK_BUILDDIR}/obj/webservice/vboxweb.wsdl \
${STAGEDIR}${DATADIR}/sdk/bindings/webservice/
.endif
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/virtualbox/*.so \
${STAGEDIR}${PREFIX}/lib/virtualbox/components/*.so
.include <bsd.port.post.mk>
|