Diff virtualbox-7.0.10-r1 with a virtualbox-9999

/usr/portage/app-emulation/virtualbox/virtualbox-9999.ebuild 2023-10-09 14:52:28.740368331 +0300
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
Thank you!