3 |
3 |
|
4 |
4 |
EAPI=8
|
5 |
5 |
|
|
6 |
# Important!
|
|
7 |
# This compiles the latest svn version.
|
|
8 |
# It also compiles the kernel modules. Does not depend on virtualbox-modules.
|
|
9 |
# It is not meant to be used, might be very unstable.
|
|
10 |
# Upstream seem to have added support for python 3.12, but it crashes.
|
|
11 |
#
|
|
12 |
# USE=doc does not work for now.
|
|
13 |
#
|
|
14 |
#
|
6 |
15 |
# To add a new Python here:
|
7 |
16 |
# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
|
8 |
17 |
# Do NOT skip this part. It'll end up silently not-building the Python extension
|
... | ... | |
17 |
26 |
# See bug #785835, bug #856121.
|
18 |
27 |
PYTHON_COMPAT=( python3_{10..11} )
|
19 |
28 |
|
20 |
|
inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
|
21 |
|
python-single-r1 tmpfiles toolchain-funcs udev xdg
|
|
29 |
inherit desktop edo flag-o-matic java-pkg-opt-2 linux-mod-r1 multilib optfeature pax-utils \
|
|
30 |
python-single-r1 subversion tmpfiles toolchain-funcs udev xdg
|
22 |
31 |
|
23 |
32 |
MY_PN="VirtualBox"
|
|
33 |
BASE_PV=7.0.10
|
24 |
34 |
MY_P=${MY_PN}-${PV}
|
25 |
35 |
|
26 |
36 |
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
|
27 |
37 |
HOMEPAGE="https://www.virtualbox.org/"
|
|
38 |
ESVN_REPO_URI="https://www.virtualbox.org/svn/vbox/trunk"
|
28 |
39 |
SRC_URI="
|
29 |
|
https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
|
30 |
|
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.8.tar.bz2
|
31 |
|
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
|
|
40 |
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.10_pre20230615.tar.bz2
|
|
41 |
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${BASE_PV}.tar.xz ) )
|
32 |
42 |
"
|
33 |
|
S="${WORKDIR}/${MY_PN}-${PV}"
|
|
43 |
S="${WORKDIR}/trunk"
|
34 |
44 |
|
35 |
45 |
LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
|
36 |
46 |
SLOT="0/$(ver_cut 1-2)"
|
37 |
|
KEYWORDS="~amd64"
|
38 |
47 |
IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
|
39 |
48 |
|
40 |
49 |
unset WATCOM #856769
|
... | ... | |
42 |
51 |
COMMON_DEPEND="
|
43 |
52 |
${PYTHON_DEPS}
|
44 |
53 |
acct-group/vboxusers
|
45 |
|
~app-emulation/virtualbox-modules-${PV}
|
|
54 |
app-arch/xz-utils
|
46 |
55 |
dev-libs/libtpms
|
47 |
56 |
dev-libs/libxml2
|
48 |
57 |
dev-libs/openssl:0=
|
... | ... | |
52 |
61 |
sys-libs/zlib
|
53 |
62 |
dbus? ( sys-apps/dbus )
|
54 |
63 |
gui? (
|
55 |
|
dev-qt/qtcore:5
|
56 |
|
dev-qt/qtdbus:5
|
57 |
|
dev-qt/qtgui:5
|
58 |
|
dev-qt/qthelp:5
|
59 |
|
dev-qt/qtprintsupport:5
|
60 |
|
dev-qt/qtwidgets:5
|
61 |
|
dev-qt/qtx11extras:5
|
62 |
|
dev-qt/qtxml:5
|
|
64 |
dev-qt/qtbase:6[widgets]
|
|
65 |
dev-qt/qt5compat:6
|
|
66 |
dev-qt/qtscxml:6
|
|
67 |
dev-qt/qttools:6[assistant]
|
63 |
68 |
x11-libs/libX11
|
64 |
69 |
x11-libs/libXt
|
65 |
|
opengl? ( dev-qt/qtopengl:5 )
|
66 |
70 |
)
|
67 |
71 |
lvm? ( sys-fs/lvm2 )
|
68 |
72 |
opengl? (
|
... | ... | |
75 |
79 |
sdl? (
|
76 |
80 |
media-libs/libsdl2[X,video]
|
77 |
81 |
x11-libs/libX11
|
78 |
|
x11-libs/libXcursor
|
79 |
82 |
x11-libs/libXt
|
80 |
83 |
)
|
81 |
84 |
vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
|
... | ... | |
96 |
99 |
${COMMON_DEPEND}
|
97 |
100 |
>=dev-libs/libxslt-1.1.19
|
98 |
101 |
virtual/libcrypt:=
|
|
102 |
x11-libs/libXt
|
99 |
103 |
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
100 |
104 |
gui? (
|
101 |
105 |
x11-base/xorg-proto
|
... | ... | |
115 |
119 |
x11-libs/libXrandr
|
116 |
120 |
virtual/glu
|
117 |
121 |
)
|
118 |
|
sdl? ( x11-libs/libXinerama )
|
|
122 |
sdl? (
|
|
123 |
x11-libs/libXcursor
|
|
124 |
x11-libs/libXinerama
|
|
125 |
)
|
119 |
126 |
pulseaudio? ( media-libs/libpulse )
|
120 |
127 |
udev? ( >=virtual/udev-171 )
|
121 |
128 |
"
|
... | ... | |
147 |
154 |
dev-texlive/texlive-fontsextra
|
148 |
155 |
dev-qt/qthelp:5
|
149 |
156 |
)
|
150 |
|
gui? ( dev-qt/linguist-tools:5 )
|
151 |
|
nls? ( dev-qt/linguist-tools:5 )
|
|
157 |
gui? ( dev-qt/qttools:6[linguist] )
|
|
158 |
nls? ( dev-qt/qttools:6[linguist] )
|
152 |
159 |
java? ( virtual/jdk:1.8 )
|
153 |
160 |
"
|
154 |
161 |
|
... | ... | |
190 |
197 |
"
|
191 |
198 |
|
192 |
199 |
PATCHES=(
|
193 |
|
"${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
|
|
200 |
"${FILESDIR}"/${PN}-7.0.11-configure-include-qt6-path.patch # bug #805365
|
194 |
201 |
|
195 |
202 |
# This patch is needed to avoid automagic detection based on a hardcoded
|
196 |
203 |
# list of Pythons in configure. It's necessary but not sufficient
|
... | ... | |
202 |
209 |
"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
|
203 |
210 |
|
204 |
211 |
"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
|
205 |
|
"${FILESDIR}"/${PN}-7.0.10-python.patch
|
|
212 |
"${FILESDIR}"/${PN}-7.0.9-python.patch
|
206 |
213 |
"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
|
207 |
214 |
"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
|
208 |
|
"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
|
209 |
215 |
# 913109
|
210 |
216 |
"${FILESDIR}"/${PN}-7.0.10-fix-binutils-hardened.patch
|
211 |
217 |
|
212 |
218 |
# Downloaded patchset
|
213 |
|
"${WORKDIR}"/virtualbox-patches-7.0.8/patches
|
|
219 |
"${WORKDIR}"/virtualbox-patches-7.0.10_pre20230615/patches
|
214 |
220 |
)
|
215 |
221 |
|
|
222 |
DOCS=() # Don't install the default README file during einstalldocs
|
|
223 |
|
|
224 |
CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
|
|
225 |
|
216 |
226 |
pkg_pretend() {
|
217 |
227 |
if ! use gui; then
|
218 |
228 |
einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
|
... | ... | |
244 |
254 |
pkg_setup() {
|
245 |
255 |
java-pkg-opt-2_pkg_setup
|
246 |
256 |
python-single-r1_pkg_setup
|
|
257 |
linux-mod-r1_pkg_setup
|
|
258 |
}
|
|
259 |
|
|
260 |
src_unpack() {
|
|
261 |
subversion_src_unpack
|
|
262 |
default
|
247 |
263 |
}
|
248 |
264 |
|
249 |
265 |
src_prepare() {
|
... | ... | |
300 |
316 |
append-cxxflags $(test-flags-CXX -mno-$i)
|
301 |
317 |
done
|
302 |
318 |
|
|
319 |
# bug #908814
|
|
320 |
filter-lto
|
|
321 |
|
303 |
322 |
# bug #843437
|
304 |
323 |
cat >> LocalConfig.kmk <<-EOF || die
|
305 |
324 |
CXXFLAGS=${CXXFLAGS}
|
... | ... | |
495 |
514 |
fi
|
496 |
515 |
|
497 |
516 |
MAKE="kmk" emake "${myemakeargs[@]}" all
|
|
517 |
|
|
518 |
local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc:"out/linux.${ARCH}/release/bin/src" )
|
|
519 |
local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
|
|
520 |
linux-mod-r1_src_compile
|
498 |
521 |
}
|
499 |
522 |
|
500 |
523 |
src_install() {
|
|
524 |
linux-mod-r1_src_install
|
|
525 |
insinto /usr/lib/modules-load.d/
|
|
526 |
newins - virtualbox.conf <<-EOF
|
|
527 |
vboxdrv
|
|
528 |
vboxnetflt
|
|
529 |
vboxnetadp
|
|
530 |
EOF
|
|
531 |
|
501 |
532 |
cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
|
502 |
533 |
|
503 |
534 |
local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
|
... | ... | |
592 |
623 |
pax-mark -m "${ED}"${vbox_inst_path}/${each}
|
593 |
624 |
done
|
594 |
625 |
|
595 |
|
if use opengl; then
|
596 |
|
vbox_inst VBoxTestOGL
|
597 |
|
pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
|
598 |
|
fi
|
599 |
|
|
600 |
626 |
for each in virtualbox{,vm} VirtualBox{,VM} ; do
|
601 |
627 |
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
|
602 |
628 |
done
|
... | ... | |
687 |
713 |
dodoc UserManual.pdf UserManual.q{ch,hc}
|
688 |
714 |
docompress -x /usr/share/doc/${PF}
|
689 |
715 |
elif use gui; then
|
690 |
|
dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc}
|
|
716 |
dodoc "${WORKDIR}"/${PN}-help-${BASE_PV}/UserManual.q{ch,hc}
|
691 |
717 |
docompress -x /usr/share/doc/${PF}
|
692 |
718 |
fi
|
693 |
719 |
|
... | ... | |
720 |
746 |
}
|
721 |
747 |
|
722 |
748 |
pkg_postinst() {
|
|
749 |
linux-mod-r1_pkg_postinst
|
|
750 |
|
723 |
751 |
xdg_pkg_postinst
|
724 |
752 |
|
725 |
753 |
if use udev; then
|
... | ... | |
736 |
764 |
elog "You must be in the vboxusers group to use VirtualBox."
|
737 |
765 |
elog ""
|
738 |
766 |
elog "The latest user manual is available for download at:"
|
739 |
|
elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
|
|
767 |
elog "https://download.virtualbox.org/virtualbox/${BASE_PV}/UserManual.pdf"
|
740 |
768 |
elog ""
|
741 |
769 |
|
742 |
770 |
optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
|