This commit is contained in:
Mario Fetka 2025-06-27 12:42:27 +02:00
parent ef4a06d6b1
commit 14f518e6c8
33 changed files with 5032 additions and 1579 deletions

View File

@ -0,0 +1,95 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit pax-utils rpm multilib xdg-utils
DESCRIPTION="Advanced cross-platform Google Drive client"
HOMEPAGE="https://www.insynchq.com/"
NAUTILUSPV="3.9.5.60024"
DOLPHINPV="3.9.5.60024"
THUNARPV="3.9.5.60024"
NEMOPV="3.9.5.60024"
CAJAPV="3.9.5.60024"
EMBLEMPV="3.4.2.40983"
SRC_URI="
x86? ( http://s.insynchq.com/builds/insync-1.4.9.37127-fc25.i686.rpm )
amd64? ( https://cdn.insynchq.com/builds/linux/${PV}/insync-${PV}-fc41.x86_64.rpm
https://cdn.insynchq.com/builds/linux/${NAUTILUSPV}/insync-nautilus-${NAUTILUSPV}-1.noarch.rpm
https://cdn.insynchq.com/builds/linux/${DOLPHINPV}/insync-dolphin-${DOLPHINPV}-1.noarch.rpm
https://cdn.insynchq.com/builds/linux/${THUNARPV}/insync-thunar-${THUNARPV}-1.x86_64.rpm
https://cdn.insynchq.com/builds/linux/${NEMOPV}/insync-nemo-${NEMOPV}-1.noarch.rpm
https://cdn.insynchq.com/builds/linux/${CAJAPV}/insync-caja-${CAJAPV}-1.noarch.rpm
http://yum.insync.io/fedora/35/noarch/${EMBLEMPV}/insync-emblem-icons-${EMBLEMPV}-1.noarch.rpm )"
LICENSE="no-source-code"
SLOT="0"
KEYWORDS="~amd64 ~x86"
S="${WORKDIR}"
#QA_PREBUILT=opt/skypeforlinux/skypeforlinux
#QA_TEXTRELS=opt/skypeforlinux/resources/app.asar.unpacked/node_modules/slimcore/bin/slimcore.node
#QA_EXECSTACK=opt/skypeforlinux/resources/app.asar.unpacked/node_modules/slimcore/bin/slimcore.node
RESTRICT="mirror bindist strip" #299368
RDEPEND="dev-qt/qtcore:5
dev-qt/qtdeclarative:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtpositioning:5
dev-qt/qtwebchannel:5
dev-qt/qtwebengine:5
dev-qt/qtvirtualkeyboard:5
dev-qt/qtcharts:5
dev-qt/qtlocation:5
dev-qt/qtsensors:5
dev-qt/qtbluetooth:5
sys-libs/zlib
|| ( sys-devel/base-gcc sys-devel/gcc )
media-libs/libglvnd
sys-libs/glibc
dev-libs/libffi-compat
>=dev-lang/python-3"
src_unpack() {
rpm_src_unpack
}
src_prepare() {
default
sed -e "s!/usr/lib/insync/insync!${EPREFIX}/opt/insync/insync!" \
-i usr/bin/insync || die
sed -e "s!^Exec=insync start!Exec=${EPREFIX}/opt/bin/insync start --ca-path=/etc/ssl/certs!" \
-i usr/share/applications/insync.desktop || die
sed -e "s!^Exec=insync!Exec=${EPREFIX}/opt/bin/insync!" \
-i usr/share/applications/insync-helper.desktop || die
sed -e "s!^Exec=insync!Exec=${EPREFIX}/opt/bin/insync!" \
-i usr/share/kservices5/fileitemactioninsyncplugin.desktop || die
}
src_install() {
dodir /opt
cp -a usr/lib/insync "${D}"/opt || die
rm "${D}"/opt/insync/libsndfile.so.1
dodir /usr
cp -a usr/share "${D}"/usr || die
cp -a usr/$(get_libdir) "${D}"/usr || die
into /opt
dobin usr/bin/insync
into /usr
dobin usr/bin/insync
}
pkg_postinst() {
xdg_desktop_database_update
xdg_mimeinfo_database_update
}
pkg_postrm() {
xdg_desktop_database_update
xdg_mimeinfo_database_update
}

View File

@ -1,5 +1,5 @@
AUX 001_opencbm-0.4.99.98-ncurses6-1.patch 698 BLAKE2B 3d126aca22c4c1aa7cf6df35c41f1d32c8117aebcbc0fd10c7bd007dbb5752155b703b6a4585ba0a1ac5c3744e95b4b5e412c0d7834c5fcf4aa74d758b3f198d SHA512 a4b017a8bcbd698c01c9e695758826a4768bd316634a585f746460ec35bcffe67a76cd3e8f2ebcabf2eddbbb5e5dc5db2533f8d4881b1030b314253fc22264dd
AUX Makefile 1003 BLAKE2B 9e6363f8fb20826f380bae087f461b0f87a2f118be223ca809c84dba7154c6493b8937d7a46437a1773afaf5ba58179d33f9599b0fc063ae53bd5f9984128fa5 SHA512 a15c0d5a962d183f6753844aad38ef111ba4c34a4a3c8f947142b7cb5f71868ed77e965317c5aed10b9e3b5a8cb978fdffd505dbc11a6868615e5f11b19b7bd1
AUX Makefile 1089 BLAKE2B b011c132af72138147a558303c787efe2f584adf3697f681a0ca594e9220ec3d384cceece1172550cfe96c8f267b34c4f1e32d9b3999590a82b02667c72e800c SHA512 f16d7cfc2fd8dcbef211cef44ed03c3c0edb0a047be82b1116f999d6cbee765e5ded884181077e39a2074d001113fc88a5bae2a819b4e314d33bd30719dd909a
DIST nibtools-20241120-source.tar.gz 119413 BLAKE2B c59a515147113865d3f75e1af2c54d9e08d93c95c389bbe9be71b0afb1079e3901cade612a6471af745826b5cd406694accc6d460e2e509b40d32f327f5f7b35 SHA512 5a8e34a379bf8ceeae80ba40a948b8c0577432122229ec3205e1829e8dfc041dfabead9e69919b15272a029ec82a91ef30025889ca0a6509ba28b1ec380a14c6
DIST opencbm-0.4.99.104-source.tar.gz 13417312 BLAKE2B 1ba6e88c8765a161d6cb7a1c313c2db6cc885c616ac110c0833f59c93e2b2081e67ce730a7ead123a59b83133ddc2edf448de694c72ca582c3a155a463175027 SHA512 1c5c09ed2fd37a6db152eb9739739edee8b2200a4e02b219e982337eeb935cdac1125f59f235b5c3d1203bcd0701c2e9e35da9de921797f1617014f723de0faa
EBUILD opencbm-0.4.99.104.ebuild 3360 BLAKE2B 48cfe65252d46ea862f88c9bf660d1da1ea4a97a729e164faed861a7e609f7f6f7cc33c57b2a3ad048047f142beac9dbf1545a469731cc474836815de615467a SHA512 b3b1e288737b9ab4e64d786b87cdba5d1db82a717a05794dbef398a80980a422d946ffcf57c0e3c4c4d6b0748e21f83db68ed9ac15f8e179a65aecf2652d4daa

View File

@ -15,7 +15,8 @@ $(MODULE_NAME)-objs = cbm_module.o
ifneq ($(KERNELRELEASE),)
obj-m := $(MODULE_NAME).o
EXTRA_CFLAGS += -I$(PWD)/../include -I$(PWD)/../../include -I$(PWD)/../../include/LINUX
#EXTRA_CFLAGS += -I$(PWD)/../include -I$(PWD)/../../include -I$(PWD)/../../include/LINUX
ccflags-y += -I$(src)/../include -I$(src)/../../include -I$(src)/../../include/LINUX
# Second pass, the actual build.
else

View File

@ -0,0 +1,214 @@
https://sourceforge.net/p/vice-emu/code/45435/
--- vice/src/Makefile.am
+++ vice/src/Makefile.am
@@ -594,6 +594,7 @@
resid_lib = $(top_builddir)/src/resid/libresid.a
resid_dtv_lib = $(top_builddir)/src/resid-dtv/libresiddtv.a
rs232drv_lib = $(top_builddir)/src/rs232drv/librs232drv.a
+rs232drvpet_lib = $(top_builddir)/src/rs232drv/librs232drvpet.a
raster_lib = $(top_builddir)/src/raster/libraster.a
rtc_lib = $(top_builddir)/src/core/rtc/librtc.a
samplerdrv_lib = $(top_builddir)/src/samplerdrv/libsamplerdrv.a
@@ -631,7 +632,7 @@
# external libraries required for all emulators
emu_extlibs = @UI_LIBS@ @SDL_EXTRA_LIBS@ @SOUND_LIBS@ @JOY_LIBS@ @GFXOUTPUT_LIBS@ @ZLIB_LIBS@ @DYNLIB_LIBS@ @ARCH_LIBS@ $(archdep_lib) $(linenoise_ng_lib)
-driver_libs = $(joyport_lib) $(samplerdrv_lib) $(sounddrv_lib) $(mididrv_lib) $(socketdrv_lib) $(hwsiddrv_lib) $(gfxoutputdrv_lib) $(printerdrv_lib) $(rs232drv_lib) $(diskimage_lib) $(fsdevice_lib) $(tape_lib) $(fileio_lib) $(serial_lib) $(core_lib)
+driver_libs = $(joyport_lib) $(samplerdrv_lib) $(sounddrv_lib) $(mididrv_lib) $(socketdrv_lib) $(hwsiddrv_lib) $(gfxoutputdrv_lib) $(printerdrv_lib) $(diskimage_lib) $(fsdevice_lib) $(tape_lib) $(fileio_lib) $(serial_lib) $(core_lib)
if SUPPORT_X64
x64_bin = x64
@@ -716,6 +717,7 @@
$(sid_lib) \
$(monitor_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(vicii_lib) \
$(raster_lib) \
$(userport_lib) \
@@ -773,6 +775,7 @@
$(sid_lib) \
$(monitor_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(viciisc_lib) \
$(raster_lib) \
$(userport_lib) \
@@ -895,6 +898,7 @@
$(sid_lib) \
$(monitor_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(viciisc_lib) \
$(raster_lib) \
$(userport_lib) \
@@ -954,6 +958,7 @@
$(sid_lib) \
$(monitor_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(vicii_lib) \
$(vdc_lib) \
$(raster_lib) \
@@ -1011,6 +1016,7 @@
$(monitor_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(raster_lib) \
$(userport_lib) \
$(diag_lib) \
@@ -1063,6 +1069,7 @@
$(monitor_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drvpet_lib) \
$(crtc_lib) \
$(raster_lib) \
$(video_lib) \
@@ -1122,6 +1129,7 @@
$(monitor_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(raster_lib) \
$(rtc_lib) \
$(video_lib) \
@@ -1180,6 +1188,7 @@
$(monitor_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drvpet_lib) \
$(crtc_lib) \
$(raster_lib) \
$(video_lib) \
@@ -1236,6 +1245,7 @@
$(xcbm5x0_lib) \
$(sid_lib) \
$(driver_libs) \
+ $(rs232drv_lib) \
$(vicii_lib) \
$(raster_lib) \
$(rtc_lib) \
@@ -1540,8 +1550,11 @@
@echo "making all in printerdrv"
@(cd printerdrv && $(MAKE))
$(rs232drv_lib):
- @echo "making all in rs232drv"
- @(cd rs232drv && $(MAKE))
+ @echo "making librs232drv.a in rs232drv"
+ @(cd rs232drv && $(MAKE) librs232drv.a)
+$(rs232drvpet_lib):
+ @echo "making librs232drvpet.a in rs232drv"
+ @(cd rs232drv && $(MAKE) librs232drvpet.a)
$(raster_lib):
@echo "making libraster.a in raster"
@(cd raster && $(MAKE) libraster.a)
--- vice/src/c64/Makefile.am
+++ vice/src/c64/Makefile.am
@@ -216,8 +216,6 @@
c64fastiec.h \
c64keyboard.c \
c64keyboard.h \
- c64parallel.c \
- c64parallel.h \
c64rom.c \
c64rom.h \
c64romset.c \
--- vice/src/c64dtv/c64dtv.c
+++ vice/src/c64dtv/c64dtv.c
@@ -89,7 +89,6 @@
#include "protopad.h"
#include "ps2mouse.h"
#include "resources.h"
-#include "rs232drv.h"
#include "rushware_keypad.h"
#include "sampler.h"
#include "sampler2bit.h"
@@ -422,10 +421,12 @@
init_resource_fail("sid");
return -1;
}
+#if 0
if (rs232drv_resources_init() < 0) {
init_resource_fail("rs232drv");
return -1;
}
+#endif
if (serial_resources_init() < 0) {
init_resource_fail("serial");
return -1;
@@ -528,7 +529,9 @@
flash_trap_resources_shutdown();
c64dtv_resources_shutdown();
c64dtvmem_resources_shutdown();
+#if 0
rs232drv_resources_shutdown();
+#endif
printer_resources_shutdown();
drive_resources_shutdown();
fsdevice_resources_shutdown();
@@ -562,10 +565,12 @@
init_cmdline_options_fail("sid");
return -1;
}
+#if 0
if (rs232drv_cmdline_options_init() < 0) {
init_cmdline_options_fail("rs232drv");
return -1;
}
+#endif
if (serial_cmdline_options_init() < 0) {
init_cmdline_options_fail("serial");
return -1;
@@ -712,8 +717,10 @@
return -1;
}
+#if 0
/* Initialize RS232 handler. */
rs232drv_init();
+#endif
/* Initialize print devices. */
printer_init();
@@ -798,8 +805,9 @@
ciacore_reset(machine_context.cia2);
sid_reset();
+#if 0
rs232drv_reset();
-
+#endif
printer_reset();
/* FIXME */
--- vice/src/rs232drv/Makefile.am
+++ vice/src/rs232drv/Makefile.am
@@ -14,7 +14,7 @@
AM_LDFLAGS = @VICE_LDFLAGS@
-noinst_LIBRARIES = librs232drv.a
+noinst_LIBRARIES = librs232drv.a librs232drvpet.a
librs232drv_a_SOURCES = \
rs232dev.h \
@@ -26,3 +26,16 @@
rs232net.h \
rsuser.c \
rsuser.h
+
+# Same as above, but without the userport bits, to avoid registering userport
+# resources and command line options with xpet and xcbm2 (these have stubs for
+# rsuser_resources_init() and rsuser_cmdline_init()
+librs232drvpet_a_SOURCES = \
+ rs232dev.h \
+ rs232.c \
+ rs232.h \
+ rs232drv.c \
+ rs232drv.h \
+ rs232net.c \
+ rs232net.h \
+ rsuser.h

View File

@ -0,0 +1,196 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools multibuild toolchain-funcs xdg
DESCRIPTION="Versatile Commodore Emulator"
HOMEPAGE="https://vice-emu.sourceforge.io/"
SRC_URI="https://downloads.sourceforge.net/vice-emu/releases/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 x86"
IUSE="
alsa curl debug doc ethernet +evdev flac gif +gtk headless lame
mpg123 ogg openmp oss parport pci png portaudio pulseaudio sdl
"
REQUIRED_USE="|| ( gtk headless sdl )"
RDEPEND="
sys-libs/zlib:=
app-emulation/opencbm
virtual/libintl
alsa? ( media-libs/alsa-lib )
curl? ( net-misc/curl )
ethernet? (
net-libs/libpcap
sys-libs/libcap
)
evdev? ( dev-libs/libevdev )
flac? ( media-libs/flac:= )
gif? ( media-libs/giflib:= )
gtk? (
>=app-accessibility/at-spi2-core-2.46:2
dev-libs/glib:2
media-libs/fontconfig:1.0
media-libs/glew:0=[-egl-only(-)]
media-libs/libglvnd[X]
x11-libs/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3[X]
x11-libs/libX11
x11-libs/pango
)
lame? ( media-sound/lame )
mpg123? ( media-sound/mpg123-base )
ogg? (
media-libs/libogg
media-libs/libvorbis
)
parport? ( sys-libs/libieee1284 )
pci? ( sys-apps/pciutils )
png? ( media-libs/libpng:= )
portaudio? ( media-libs/portaudio )
pulseaudio? ( media-libs/libpulse )
sdl? (
media-libs/libsdl2[video]
media-libs/sdl2-image
)
"
DEPEND="
${RDEPEND}
x11-base/xorg-proto
"
BDEPEND="
app-alternatives/awk
app-alternatives/yacc
app-arch/unzip
app-text/dos2unix
dev-embedded/xa
dev-lang/perl
sys-apps/texinfo
app-alternatives/lex
sys-devel/gettext
virtual/pkgconfig
doc? ( virtual/texi2dvi )
gtk? ( x11-misc/xdg-utils )
"
PATCHES=(
"${FILESDIR}"/${P}-dupe-symbols.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
src_prepare() {
default
eautoreconf
# Strip the predefined C(XX)FLAGS.
sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die
MULTIBUILD_VARIANTS=(
$(usev gtk)
$(usev headless)
$(usev sdl)
)
# Debug build currently broken without copy sources.
multibuild_copy_sources
}
src_configure() {
tc-export AR
multibuild_foreach_variant run_in_build_dir multibuild_src_configure
}
multibuild_src_configure() {
# Append ".variant" to x* programs if building multiple variants.
local xform
(( ${#MULTIBUILD_VARIANTS[@]} > 1 )) &&
xform="/^x/s/\$/.${MULTIBUILD_VARIANT}/"
vice-multi_enable() {
if [[ ${MULTIBUILD_VARIANT} == ${1} ]]; then
echo --enable-${2}
else
echo --disable-${2}
fi
}
local econfargs=(
--program-transform-name="${xform}"
$(vice-multi_enable gtk desktop-files)
$(vice-multi_enable gtk gtk3ui)
$(vice-multi_enable headless headlessui)
$(vice-multi_enable sdl sdl2ui)
$(usex debug $(vice-multi_enable gtk debug-gtk3ui) --disable-debug-gtk3ui)
$(use_enable debug)
$(use_enable doc pdf-docs)
$(use_enable ethernet)
$(use_enable openmp)
$(use_enable parport parsid)
$(use_with alsa)
$(use_with curl libcurl)
$(use_with evdev)
$(use_with flac)
$(use_with gif)
$(use_with lame)
$(use_with lame static-lame) # disables dlopen, uses shared still
$(use_with mpg123)
$(use_with ogg vorbis)
$(use_with oss)
$(use_with parport libieee1284)
$(use_with png)
$(use_with portaudio)
$(use_with pulseaudio pulse)
$(usex alsa --enable-midi $(use_enable oss midi))
$(usev !pci ac_cv_header_pci_pci_h=no)
--disable-arch
--disable-ffmpeg # deprecated in 3.8, also bug #834359
--disable-sdl1ui
--enable-realdevice
ac_cv_lib_ungif_EGifPutLine=no # ensure use giflib, not ungif
)
econf "${econfargs[@]}"
}
src_compile() {
# bug #924116 wrt SHELL
multibuild_foreach_variant run_in_build_dir emake SHELL="${BASH}"
}
src_install() {
# Get xdg-desktop-menu to play nicely while doing the install.
dodir /etc/xdg/menus /usr/share/{applications,desktop-directories}
XDG_UTILS_INSTALL_MODE=system \
XDG_DATA_DIRS="${ED}"/usr/share \
XDG_CONFIG_DIRS="${ED}"/etc/xdg \
multibuild_foreach_variant run_in_build_dir default
rm -f -- "${ED}"/usr/share/applications/*.cache || die
vice-install_extras() {
docinto html
dodoc doc/html/*.{html,css}
dodoc -r doc/html/images
insinto /usr/share/vim/vimfiles/ftdetect
doins doc/vim/ftdetect/*.vim
insinto /usr/share/vim/vimfiles/syntax
doins doc/vim/syntax/*.vim
}
multibuild_for_best_variant run_in_build_dir vice-install_extras
}

View File

@ -15,14 +15,8 @@ AUX virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch 843 BLAKE2B bd7fef7afc725
AUX virtualbox-7.1.0-disable-rebuild-iPxeBiosBin.patch 1007 BLAKE2B 8c3d806ed57170a9e6121df67e87c924ce77b71cdc1e2f3c812992456d3f2934875d82568e6dab8db4ab9bd531c28bded512db67b0f51cfb895ea7d1e204fc95 SHA512 32f3cbac5f4a6fb2f549ede7dcadf0f73b60d4cef77b84ded2ded82885a6226dadb4be829d86e0fee7866fd24f2a2219d49d344fc078715a5964115117e5b88e
AUX virtualbox-ose-6-wrapper 3578 BLAKE2B c150e578212435268de3c5fb0eea701bc843ec2241dc3839d3d1e33604fc01f6bdff6ed0425ba6917072f652b8c29d0df9a550a92900ca13306fcd36521afbee SHA512 315d981f3e92f2e0134946f6bbb8ad4ea4228afb8f73aaed7feead59b3f55cef01cec4285a7fdaf30ce0931d8b69bda4698baebd63d11f2cd9dfe9d0591a0f40
AUX virtualbox-vboxusb_tmpfilesd 35 BLAKE2B 56937e236a0e4d1a2aa085271e8ae0af9553fdf7c3b804af4d3fda3aa8dbc32d63762fee90bc949390cb9cd67f2f0111894c8af084731dab6920ae1675c69a64 SHA512 72e4602f5f214f8833486f5c787c263a10390e8bdf65b5615d67c35ec44048f02add12fe43b19f9c57a9d2f12d768c52e54fcfb9052c0611d06cc988a698c171
DIST VirtualBox-7.1.4.tar.bz2 206218796 BLAKE2B 62a4f44b4eac2e1cb2c0bace5dfabf86c41b738d81aede3de75d88159a8d76158748eaae38ee3eedbc0f79b639a875f1ef6805a8ca7c95021f475935f54d7ef9 SHA512 97654339d509447e2604db01e29f9e810f59498a378e645f412cffb67022c4e547f205e8ebdac6ae33aaa8f7bc0f289bdca2e5a04b1fa31b4a05c191d7600a9c
DIST VirtualBox-7.1.6a.tar.bz2 205777317 BLAKE2B 584a53df603311bb1d49c8564bb05015426c678d58578327a73e1bb5d8ed4f0563a4edfaea13f3d41acc6902567572e67225cc9ea797b15489fb3d786d35c3f9 SHA512 fbb9487d531db6bf176e73f307ef1b65cc5263c8e5f38755cdc6bed41fe2906ffbd64076d42b8b505183d0ae054d8f6bccc522e981edd5a815e440066327cd3b
DIST VirtualBox-7.1.8.tar.bz2 215541146 BLAKE2B dbe8e432162ed29716e14a390be1fa14d13f861943bb2392f8de0cd8ec3dbb991588a8aafe47b2bd0884ca12932af78799d7b21a2b115d818702ccbed564dc97 SHA512 9c801309aac8eeea94279c6872892046cdf933dda0dc7493be5442a9dabbb6e5e513e116bb17d8fd225a6d6d37285f21c26e42daeb37c4335f3636b810f84dfb
DIST virtualbox-help-7.1.4.tar.xz 1586108 BLAKE2B e8219ed67b1db9a5e4d0271e25980fbcbfb8c72316dc4bd3337080c81082bb8ecad9c9317b5b9be77db1eeac42c567512a64fe86ae9bb6371dea8632e7afc9ab SHA512 185249fe2bdf2138a034c53e23eedb88cf487e1fb26a8bd623f0d75ea0d2ff4dff3484564a5b317703fb3f302ec7037cb0a49c7c3845e229fe2ac9e2c8c96af6
DIST virtualbox-help-7.1.6a.tar.xz 984912 BLAKE2B fe30248627e61f75c6486b7ff73b68027cf9804bfc2df9d331dfbcb93571fb6816d95a35a05719a136d6540035f3bb628f6c61a8ca6ed704d10738b4017f9ad8 SHA512 528b74c170b1ab13b05df03c104f735a67f79cce4d2c03f7094a3cf481f0a832586d07137cab746eeeaae475f671c17996cd3c3acd9f72b77d24bef9a9a403e6
DIST virtualbox-help-7.1.8.tar.xz 8308340 BLAKE2B 74a553dcf72306ab5168c403862c872d7de917f090a559fc06fc9a6bb344601ab5a78196e5ae13a9daed9150fc3b29e700fe6dbb4e589f8b3636fec6e9bb9ed5 SHA512 00613dead921bff77b16369b0267d06d668be7b56a12885cff4d050a1120d51de8576472b2dc069e93bf7cefcf4837ebe13d2d8c147953ad4484669df93d3e1e
DIST virtualbox-patches-7.1.4-r1.tar.bz2 6140 BLAKE2B dc84a0522629d06b72ff98e330e2c104e55185914238fed53d696399e43400a1c32979724c156479c3a67d2c64f7f8389d58a83242de559cf8dd89fbda0804e6 SHA512 3541ace61bd64f6ecb2f7b3aaa2383c33ae51682676eead78b267ff82d46e769117f074a534301e734408efa0e622d63e778085f06741223b35ed8caaacc003d
EBUILD virtualbox-7.1.4.ebuild 21865 BLAKE2B c4ab6c32a2320a1f9a3bc4c82d1138deb6ceee83dd32533e51c03102ec0afdd43ce47f53a7f2133717216fa7fc0afc7ffc4c912896844ec40d479f9f91de8e5a SHA512 a4fc1eb8ad68f6d540f177b589ed776e14bf597d6791d0ac15c389821ca8cadb9ea19243f60ded1551981c0b751545fcfe4f91d9b94325d8f8e3efc5ce130d12
EBUILD virtualbox-7.1.6a.ebuild 21877 BLAKE2B 2928931ce4299231947cdef1c5661ae28114a3f6101aeee76840aa27c35058bec128c7f2fd9bc4496730b9fb8b25c269deffd5c7b44943f722e08e33536062bb SHA512 bc95f07403c6191c41a18ab5c2baa64d07d7d31a9d0d300fcfd002d06b72b68cd38f58794e650aa2cdedced062586e24827e1991497e4dde42cee5da9dcb5e6a
EBUILD virtualbox-7.1.8.ebuild 22019 BLAKE2B ebb4e32bd3c423ab11745eec869b05298492b458ae1db1202ee10bc4d23dc728eaa2542c5926a54f4e845230a9685ac46ea156a6681de92bd2a4b80396999e4c SHA512 6c707838bcaf991342a2c391ed922d4578f08be4f6935b753ab306151fec14643c608e05595347b88a6fc5a703bf2d4c1550a42350f0409fb57b9b6d2eb26b8a
MISC metadata.xml 948 BLAKE2B c074e494d9affda91addd2355f8e71616602102b4cc151d2b45efd04754f1f92621ecd313dbe3baa44c3301f57b61e9cff780d445c2ea3d19ce3d9c8ae05213a SHA512 5338812da9334aedf08dd7a31a4a07c7bfa8232e8f0de6af9de9ac0f5585397cea16e66cb73d56632efa4cf21386782108182d803de6ff45c08082a13dc5fed9
DIST VirtualBox-7.1.10.tar.bz2 233395034 BLAKE2B 8f451932a4b3cd5e4628f8dd45e9a2cfec6cfbc02fd4eeb7f4dedd473c9c022f57751e4ea78ab1edd6989c111a5c751da1c87662d24c971c3f673bedcf9d6f06 SHA512 841c539b30c964eec0e3a5eddc354bcec530aeed882507928c2f0a8675756c27a650cb3094a130d4f609e83a10f1273b40e9a765228586c3c8c90bb74d7872ad
DIST virtualbox-help-7.1.10.tar.xz 8307956 BLAKE2B 7da5e31400431b19df136a16dcbb8a9307674ae3d25da6b4e546165f6d2d69b090f3f07ba356c2ac7efb7a6bf26d27751b70ce1a05d0e9bd081490a28135359a SHA512 f3d75ec4e5379c1ad99a24b2aebf9ad167020f2f59f9fcbd32fb41edfb283b6d26fcad82550223433d4f71b0df26d09ac56de906727faea6f25da9ad8c067ff6
DIST virtualbox-patches-7.1.10.tar.bz2 5966 BLAKE2B cde325931ed2b41c74c9fa070980c5a6988a658608b2899473991e58ebf995f3cfd8efd295c98181d879104249ffc021643315ffe7801d30ded663a61e442488 SHA512 82de81a6e63bbaae8a1467fe0f4b84a6a71ee3f3d2190d53215f0b0913f6d2e53623709e5063ba629798a844c0c29fa0f48aca72efc96e775d7b18f75c1de79f
EBUILD virtualbox-7.1.10.ebuild 22049 BLAKE2B c3b8ba98c2f9c40c3b761744fc84c4aa2333112bf6bbb92903fbdd307c9a0e9404fa0e9c158777c9ed29c70a22a61d5cf3ec1a09434916f51e26bd3f19458b78 SHA512 ff5355fc3192e2f12f5b1d01c5a211513d703158182d2afd292d79b179066dff9b42472b54b715ff7cb82a5eaa84bea0f3b32bb517707abce63aac9609ef7325
MISC metadata.xml 890 BLAKE2B 1b37eab206d443d5c84581ce3582931c4dbb7ba0e811f7ae69a5685e382d355ded333ff28355abfb7675e0a0133dbdbf71bbb3476ac58e9ff92001ef9f871e64 SHA512 144b3dbcd5f3e45d1bc4e9db5bc7029f2bd66624c1cf476352b47221550653d322775fe5f3f61958a21b7583ff9348b4d65a197b628364b73d56c36f292583b7

View File

@ -7,13 +7,14 @@
</maintainer>
<use>
<flag name="dtrace">Install dtrace Extension Pack.</flag>
<flag name="headless">Build without any graphic frontend.</flag>
<flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag>
<flag name="pax-kernel">Apply patch needed for pax enabled kernels.</flag>
<flag name="sdk">Enable building of SDK.</flag>
<flag name="udev">Controls installation of special USB udev rules.</flag>
<flag name="vboxwebsrv">Build and install the VirtualBox webservice.</flag>
<flag name="vde">Support for VDE networking via <pkg>net-misc/vde</pkg>.</flag>
<flag name="vmmraw">Enable 32-bit support on a 64-bit kernel.</flag>
</use>
<upstream>
<remote-id type="github">VirtualBox/virtualbox</remote-id>
</upstream>
</pkgmetadata>

View File

@ -15,7 +15,7 @@ EAPI=8
# trunk branch but not release branch.
#
# See bug #785835, bug #856121.
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_COMPAT=( python3_{11..13} )
inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
python-single-r1 tmpfiles toolchain-funcs udev xdg
@ -25,10 +25,10 @@ MY_P=${MY_PN}-${PV}
HELP_PV=${PV}
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
HOMEPAGE="https://www.virtualbox.org/"
HOMEPAGE="https://www.virtualbox.org/ https://github.com/VirtualBox/virtualbox"
SRC_URI="
https://download.virtualbox.org/virtualbox/${PV%*a}/${MY_P}.tar.bz2
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.4-r1.tar.bz2
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.10.tar.bz2
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) )
"
S="${WORKDIR}/${MY_PN}-${PV%*a}"
@ -46,7 +46,7 @@ COMMON_DEPEND="
app-arch/xz-utils
~app-emulation/virtualbox-modules-${PV%*a}
dev-libs/libtpms
dev-libs/libxml2
dev-libs/libxml2:=
dev-libs/openssl:0=
media-libs/libpng:0=
media-libs/libvpx:0=
@ -127,7 +127,6 @@ RDEPEND="
BDEPEND="
>=app-arch/tar-1.34-r2
>=dev-lang/yasm-0.6.2
dev-libs/libIDL
dev-util/glslang
>=dev-build/kbuild-0.1.9998.3592
sys-apps/which
@ -199,8 +198,7 @@ REQUIRED_USE="
PATCHES=(
# Downloaded patchset
"${WORKDIR}"/virtualbox-patches-7.1.4-r1/patches
"${FILESDIR}"/VirtualBox-python3.13.patch
"${WORKDIR}"/virtualbox-patches-7.1.10/patches
)
pkg_pretend() {

View File

@ -1,776 +0,0 @@
# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# To add a new Python here:
# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
# Do NOT skip this part. It'll end up silently not-building the Python extension
# or otherwise misbehaving if you do.
#
# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
#
# May need to look at other distros (e.g. Arch Linux) to find patches for newer
# Python versions as upstream tends to lag. Upstream may have patches on their
# trunk branch but not release branch.
#
# See bug #785835, bug #856121.
PYTHON_COMPAT=( python3_{10..12} )
inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
python-single-r1 tmpfiles toolchain-funcs udev xdg
MY_PN="VirtualBox"
MY_P=${MY_PN}-${PV}
HELP_PV=${PV}
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="
https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.4-r1.tar.bz2
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) )
"
S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="amd64"
IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl test +udev vboxwebsrv vde +vmmraw vnc"
RESTRICT="!test? ( test )"
unset WATCOM #856769
COMMON_DEPEND="
acct-group/vboxusers
app-arch/xz-utils
~app-emulation/virtualbox-modules-${PV}
dev-libs/libtpms
dev-libs/libxml2
dev-libs/openssl:0=
media-libs/libpng:0=
media-libs/libvpx:0=
net-misc/curl
sys-libs/zlib
dbus? ( sys-apps/dbus )
gui? (
dev-qt/qtbase:6[widgets]
dev-qt/qtscxml:6
dev-qt/qttools:6[assistant]
x11-libs/libX11
x11-libs/libXt
)
lvm? ( sys-fs/lvm2 )
opengl? (
media-libs/libglvnd[X]
media-libs/vulkan-loader
x11-libs/libX11
x11-libs/libXt
)
pam? ( sys-libs/pam )
python? ( ${PYTHON_DEPS} )
sdl? (
media-libs/libsdl2[X,video]
x11-libs/libX11
x11-libs/libXt
)
vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
vde? ( net-misc/vde )
vnc? ( >=net-libs/libvncserver-0.9.9 )
"
# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
# based on *DEPEND doesn't work for BDEPEND at least right now.
#
# There's a comment in Config.kmk about it
# ("With Java 11 wsimport was removed, usually part of a separate install now.")
# but it needs more investigation.
#
# See bug #878299 to track this issue.
DEPEND="
${COMMON_DEPEND}
>=dev-libs/libxslt-1.1.19
virtual/libcrypt:=
x11-libs/libXt
alsa? ( >=media-libs/alsa-lib-1.0.13 )
gui? (
x11-base/xorg-proto
x11-libs/libxcb:=
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXinerama
x11-libs/libXmu
x11-libs/libXrandr
)
java? ( virtual/jdk:1.8 )
opengl? (
x11-base/xorg-proto
x11-libs/libXcursor
x11-libs/libXinerama
x11-libs/libXmu
x11-libs/libXrandr
virtual/glu
)
sdl? (
x11-libs/libXcursor
x11-libs/libXinerama
)
pulseaudio? ( media-libs/libpulse )
udev? ( >=virtual/udev-171 )
"
RDEPEND="
${COMMON_DEPEND}
gui? ( x11-libs/libxcb:= )
java? ( virtual/jre:1.8 )
"
BDEPEND="
>=app-arch/tar-1.34-r2
>=dev-lang/yasm-0.6.2
dev-libs/libIDL
dev-util/glslang
>=dev-build/kbuild-0.1.9998.3592
sys-apps/which
sys-devel/bin86
sys-libs/libcap
sys-power/iasl
virtual/pkgconfig
doc? (
app-doc/dita-ot-bin
app-text/docbook-sgml-dtd:4.4
app-text/docbook-xsl-ns-stylesheets
dev-texlive/texlive-basic
dev-texlive/texlive-latex
dev-texlive/texlive-latexrecommended
dev-texlive/texlive-latexextra
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-fontsextra
dev-qt/qttools:6[assistant]
sys-libs/nss_wrapper
)
gui? ( dev-qt/qttools:6[linguist] )
nls? ( dev-qt/qttools:6[linguist] )
java? ( virtual/jdk:1.8 )
python? (
${PYTHON_DEPS}
test? (
$(python_gen_cond_dep '
dev-python/pytest[${PYTHON_USEDEP}]
')
)
)
"
QA_FLAGS_IGNORED="
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
"
QA_TEXTRELS="
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
"
QA_EXECSTACK="
usr/lib64/virtualbox/iPxeBaseBin
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
"
QA_WX_LOAD="
usr/lib64/virtualbox/iPxeBaseBin
"
QA_PRESTRIPPED="
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
"
REQUIRED_USE="
java? ( sdk )
python? ( sdk ${PYTHON_REQUIRED_USE} )
vboxwebsrv? ( java )
"
PATCHES=(
# Downloaded patchset
"${WORKDIR}"/virtualbox-patches-7.1.4-r1/patches
)
pkg_pretend() {
if ! use gui; then
einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
fi
if ! use opengl; then
einfo "No USE=\"opengl\" selected, this build will lack"
einfo "the OpenGL feature."
fi
if ! use nls && use gui; then
einfo "USE=\"gui\" also selects USE=\"nls\". This build"
einfo "will have NLS support."
fi
# 749273
local d=${ROOT}
for i in usr "$(get_libdir)"; do
d="${d}/$i"
if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
die "${d} should be owned by root, VirtualBox will not start otherwise"
fi
done
}
pkg_setup() {
java-pkg-opt-2_pkg_setup
use python && python-single-r1_pkg_setup
}
src_prepare() {
default
if use python; then
mkdir test
cp "${FILESDIR}"/test_python.py test/
python_fix_shebang test/test_python.py
fi
# Only add nopie patch when we're on hardened
if gcc-specs-pie; then
eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
fi
# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
rm -r kBuild/bin || die
# Remove everything in tools except kBuildUnits
find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
# Disable things unused or split into separate ebuilds
sed -e "s@MY_LIBDIR@$(get_libdir)@" \
"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
if ! use pch; then
# bug #753323
printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
>> LocalConfig.kmk || die
fi
# bug #916002, #488176, #925347
tc-ld-is-mold || tc-ld-force-bfd
# Respect LDFLAGS
sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
# Do not use hard-coded ld (related to bug #488176)
sed -e '/QUIET)ld /s@ld @$(LD) @' \
-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
# Use PAM only when pam USE flag is enbaled (bug #376531)
if ! use pam; then
einfo "Disabling PAM removes the possibility to use the VRDP features."
sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
src/VBox/HostServices/Makefile.kmk || die
echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
fi
# add correct java path
if use java; then
sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-i "${S}"/Config.kmk || die
java-pkg-opt-2_src_prepare
fi
# bug #940482
filter-flags -fno-plt
# bug #908814
filter-lto
# bug #843437
cat >> LocalConfig.kmk <<-EOF || die
CXXFLAGS=${CXXFLAGS}
CFLAGS=${CFLAGS}
EOF
if use sdl; then
sed -i 's/sdl-config/sdl2-config/' configure || die
echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
fi
#443830
echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
if tc-is-clang; then
# clang does not support this extension
eapply "${FILESDIR}"/${PN}-7.1.0-disable-rebuild-iPxeBiosBin.patch
fi
# fix doc generation
echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
# replace xhtml names with numeric equivalents
find doc/manual -name \*.xml -exec sed -i \
-e 's/&nbsp;/\&#160;/g' \
-e 's/&ndash;/\&#8211;/g' \
-e 's/&larr;/\&#8592;/g' \
-e 's/&rarr;/\&#8594;/g' \
-e 's/&harr;/\&#8596;/g' {} \+ || die
# fix help path #891879
echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
# 489208
# Cannot patch the whole text, many translations. Use sed instead to replace the command
find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
src/VBox/Frontends/VirtualBox/src/main.cpp \
src/VBox/VMM/VMMR3/VM.cpp || die
# 890561
echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
if ! use nls && ! use gui; then
cat >> LocalConfig.kmk <<-EOF || die
VBOX_WITH_NLS :=
VBOX_WITH_MAIN_NLS :=
VBOX_WITH_PUEL_NLS :=
VBOX_WITH_VBOXMANAGE_NLS :=
EOF
fi
}
src_configure() {
tc-export AR CC CXX LD RANLIB
export HOST_CC="$(tc-getBUILD_CC)"
local myconf=(
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--disable-kmods
$(usev !alsa --disable-alsa)
$(usev !dbus --disable-dbus)
$(usev debug --build-debug)
$(usev !doc --disable-docs)
$(usev !java --disable-java)
$(usev !lvm --disable-devmapper)
$(usev !pulseaudio --disable-pulse)
$(usev !python --disable-python)
$(usev vboxwebsrv --enable-webservice)
$(usev vde --enable-vde)
$(usev !vmmraw --disable-vmmraw)
$(usev vnc --enable-vnc)
)
if use gui || use sdl || use opengl; then
myconf+=(
$(usev !opengl --disable-opengl)
$(usev !gui --disable-qt)
$(usev !sdl --disable-sdl)
)
else
myconf+=(
--build-headless
)
fi
if use amd64 && ! has_multilib_profile; then
myconf+=( --disable-vmmraw )
fi
# not an autoconf script
edo ./configure "${myconf[@]}"
# Force usage of chosen Python implementation
# bug #856121, bug #785835
sed -i \
-e '/VBOX_WITH_PYTHON.*=/d' \
-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-e '/VBOX_LIB_PYTHON.*=/d' \
AutoConfig.kmk || die
if use python; then
cat >> AutoConfig.kmk <<-EOF || die
VBOX_WITH_PYTHON=$(usev python 1)
VBOX_PATH_PYTHON_INC=$(python_get_includedir)
VBOX_LIB_PYTHON=$(python_get_library_path)
EOF
local mangled_python="${EPYTHON#python}"
mangled_python="${mangled_python/.}"
# Stub out the script which defines what the Makefile ends up
# building for. gen_python_deps.py gets called by the Makefile
# with some args and it spits out a bunch of paths for a hardcoded
# list of Pythons. We just override it with what we're actually using.
# This minimises the amount of patching we have to do for new Pythons.
cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
EOF
chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
else
cat >> AutoConfig.kmk <<-EOF || die
VBOX_WITH_PYTHON:=
EOF
fi
}
src_compile() {
source ./env.sh || die
# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
local myemakeargs=(
VBOX_BUILD_PUBLISHER=_Gentoo
VBOX_WITH_VBOXIMGMOUNT=1
KBUILD_VERBOSE=2
AS="$(tc-getCC)"
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
TOOL_GCC3_CC="$(tc-getCC)"
TOOL_GCC3_LD="$(tc-getCC)"
TOOL_GCC3_AS="$(tc-getCC)"
TOOL_GCC3_AR="$(tc-getAR)"
TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GXX3_CC="$(tc-getCC)"
TOOL_GXX3_CXX="$(tc-getCXX)"
TOOL_GXX3_LD="$(tc-getCXX)"
TOOL_GXX3_AS="$(tc-getCXX)"
TOOL_GXX3_AR="$(tc-getAR)"
TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GCC3_CFLAGS="${CFLAGS}"
TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
VBOX_GCC_OPT="${CXXFLAGS}"
VBOX_NM="$(tc-getNM)"
TOOL_YASM_AS=yasm
)
if use amd64 && has_multilib_profile; then
myemakeargs+=(
CC32="$(tc-getCC) -m32"
CXX32="$(tc-getCXX) -m32"
TOOL_GCC32_CC="$(tc-getCC) -m32"
TOOL_GCC32_CXX="$(tc-getCXX) -m32"
TOOL_GCC32_LD="$(tc-getCC) -m32"
TOOL_GCC32_AS="$(tc-getCC) -m32"
TOOL_GCC32_AR="$(tc-getAR)"
TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GXX32_CC="$(tc-getCC) -m32"
TOOL_GXX32_CXX="$(tc-getCXX) -m32"
TOOL_GXX32_LD="$(tc-getCXX) -m32"
TOOL_GXX32_AS="$(tc-getCXX) -m32"
TOOL_GXX32_AR="$(tc-getAR)"
TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
)
fi
if use doc; then
# dita needs to write to ~/.fop and ~/.java
# but it ignores ${HOME} and tries to write to the real home of user portage
# resulting in a sandbox violation
# -Duser.home= does not work
# force using the temporary homedir with nss_wrapper
echo "${LOGNAME}::$(id -u):$(id -g):${USER}:${HOME}:/bin/bash" >> ~/passwd
echo "${LOGNAME}::$(id -g):" >> ~/group
local -x LD_PRELOAD=libnss_wrapper.so
local -x NSS_WRAPPER_PASSWD="${HOME}"/passwd
local -x NSS_WRAPPER_GROUP="${HOME}"/group
fi
MAKE="kmk" emake "${myemakeargs[@]}" all
}
src_test() {
if use python; then
local -x VBOX_APP_HOME="${S}"/out/linux.${ARCH}/$(usex debug debug release)
local -x VBOX_INSTALL_PATH="${VBOX_APP_HOME}"
local -x VBOX_PROGRAM_PATH="${VBOX_APP_HOME}"/bin
local -x VBOX_SDK_PATH="${VBOX_PROGRAM_PATH}"/sdk
local -x PYTHONPATH="${VBOX_SDK_PATH}"/installer/python/vboxapi/src
einfo "VBOX_APP_HOME ${VBOX_APP_HOME}"
einfo "VBOX_PROGRAM_PATH ${VBOX_PROGRAM_PATH}"
einfo "VBOX_SDK_PATH ${VBOX_SDK_PATH}"
einfo "PYTHONPATH ${PYTHONPATH}"
LD_LIBRARY_PATH="${VBOX_PROGRAM_PATH}" epytest test/
fi
}
src_install() {
cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
vbox_inst() {
local binary="${1}"
local perms="${2:-0750}"
local path="${3:-${vbox_inst_path}}"
[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
insinto ${path}
doins ${binary}
fowners root:vboxusers ${path}/${binary}
fperms ${perms} ${path}/${binary}
}
# Create configuration files
insinto /etc/vbox
newins "${FILESDIR}/${PN}-4-config" vbox.cfg
# Set the correct libdir
sed \
-e "s@MY_LIBDIR@$(get_libdir)@" \
-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
# Install the wrapper script
exeinto ${vbox_inst_path}
newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
fowners root:vboxusers ${vbox_inst_path}/VBox
fperms 0750 ${vbox_inst_path}/VBox
# Install binaries and libraries
insinto ${vbox_inst_path}
doins -r components
for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \
vboximg-mount vbox-img *so *r0; do
vbox_inst ${each}
done
# These binaries need to be suid root.
for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
vbox_inst ${each} 4750
done
# Install EFI Firmware files (bug #320757)
for each in VBoxEFI{32,64}.fd ; do
vbox_inst ${each} 0644
done
# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
# VBoxXPCOMIPCD (bug #524202)
for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
pax-mark -m "${ED}"${vbox_inst_path}/${each}
done
# Symlink binaries to the shipped wrapper
for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
if use pam; then
# VRDPAuth only works with this (bug #351949)
dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
fi
# set an env-variable for 3rd party tools
echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
# environment variables used during SDK binding installation
echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
doenvd "${T}/90virtualbox"
if use sdl; then
vbox_inst VBoxSDL 4750
pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
for each in vboxsdl VBoxSDL ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
fi
if use gui; then
vbox_inst VirtualBox
vbox_inst VirtualBoxVM 4750
for each in VirtualBox{,VM} ; do
pax-mark -m "${ED}"${vbox_inst_path}/${each}
done
for each in virtualbox{,vm} VirtualBox{,VM} ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
insinto /usr/share/${PN}
doins -r nls
doins -r UnattendedTemplates
domenu ${PN}.desktop
pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
for size in 16 32 48 64 128 ; do
newicon -s ${size} ${PN}-${size}px.png ${PN}.png
done
newicon ${PN}-48px.png ${PN}.png
doicon -s scalable ${PN}.svg
popd &>/dev/null || die
pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
for size in 16 24 32 48 64 72 96 128 256 512 ; do
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
icofile="${PN}-${ico}-${size}px.png"
if [[ -f "${icofile}" ]]; then
newicon -s ${size} ${icofile} ${PN}-${ico}.png
fi
done
done
popd &>/dev/null || die
fi
if use lvm; then
vbox_inst VBoxVolInfo 4750
dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
fi
if use sdk; then
insinto ${vbox_inst_path}
doins -r sdk
if use java; then
java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
fi
fi
if use udev; then
local udevdir="$(get_udevdir)"
local udev_file="VBoxCreateUSBNode.sh"
local rules_file="10-virtualbox.rules"
insinto ${udevdir}
doins ${udev_file}
fowners root:vboxusers ${udevdir}/${udev_file}
fperms 0750 ${udevdir}/${udev_file}
insinto ${udevdir}/rules.d
sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
> "${T}"/${rules_file} || die
doins "${T}"/${rules_file}
fi
if use vboxwebsrv; then
vbox_inst vboxwebsrv
dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
fi
# Remove dead symlinks (bug #715338)
find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
# Fix version string in extensions or else they don't get accepted
# by the virtualbox host process (see bug #438930)
find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
local extensions_dir="${vbox_inst_path}/ExtensionPacks"
if use vnc; then
insinto ${extensions_dir}
doins -r ExtensionPacks/VNC
fi
if use dtrace; then
insinto ${extensions_dir}
doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
fi
if use doc; then
dodoc UserManual.pdf UserManual.q{ch,hc}
docompress -x /usr/share/doc/${PF}
elif use gui; then
dodoc "${WORKDIR}"/${PN}-help-${HELP_PV}/UserManual.q{ch,hc}
docompress -x /usr/share/doc/${PF}
fi
if use python; then
local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
if [[ ! -x "${python_path_ext}" ]]; then
eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
eerror "but none were installed. This may happen if support for a Python target"
eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
die "Incomplete installation of Python bindings! File a bug with Gentoo!"
fi
# 378871
local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src"
pushd "${installer_dir}" &> /dev/null || die
sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
-i vboxapi/__init__.py || die
# insert shebang, the files come without one
find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
python_domodule vboxapi
popd &> /dev/null || die
# upstream added a /bin/sh stub here
# use /usr/bin/python3, python_doscript will take care of it
sed -e '1 i #! /usr/bin/python3' -i vboxshell.py
python_doscript vboxshell.py
# do not install the installer
rm -r "${installer_dir%vboxapi*}" || die
fi
newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
}
pkg_postinst() {
xdg_pkg_postinst
if use udev; then
udev_reload
udevadm trigger --subsystem-match=usb
fi
tmpfiles_process virtualbox-vboxusb.conf
if use gui; then
elog "To launch VirtualBox just type: \"virtualbox\"."
fi
elog "You must be in the vboxusers group to use VirtualBox."
elog ""
elog "The latest user manual is available for download at:"
elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
elog ""
optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
optfeature "Guest additions ISO" app-emulation/virtualbox-additions
if ! use udev; then
ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
fi
}
pkg_postrm() {
xdg_pkg_postrm
use udev && udev_reload
}

View File

@ -1,776 +0,0 @@
# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# To add a new Python here:
# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
# Do NOT skip this part. It'll end up silently not-building the Python extension
# or otherwise misbehaving if you do.
#
# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
#
# May need to look at other distros (e.g. Arch Linux) to find patches for newer
# Python versions as upstream tends to lag. Upstream may have patches on their
# trunk branch but not release branch.
#
# See bug #785835, bug #856121.
PYTHON_COMPAT=( python3_{10..12} )
inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
python-single-r1 tmpfiles toolchain-funcs udev xdg
MY_PN="VirtualBox"
MY_P=${MY_PN}-${PV}
HELP_PV=${PV}
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="
https://download.virtualbox.org/virtualbox/${PV%*a}/${MY_P}.tar.bz2
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.4-r1.tar.bz2
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) )
"
S="${WORKDIR}/${MY_PN}-${PV%*a}"
LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64"
IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl test +udev vboxwebsrv vde +vmmraw vnc"
RESTRICT="!test? ( test )"
unset WATCOM #856769
COMMON_DEPEND="
acct-group/vboxusers
app-arch/xz-utils
~app-emulation/virtualbox-modules-${PV%*a}
dev-libs/libtpms
dev-libs/libxml2
dev-libs/openssl:0=
media-libs/libpng:0=
media-libs/libvpx:0=
net-misc/curl
sys-libs/zlib
dbus? ( sys-apps/dbus )
gui? (
dev-qt/qtbase:6[X,widgets]
dev-qt/qtscxml:6
dev-qt/qttools:6[assistant]
x11-libs/libX11
x11-libs/libXt
)
lvm? ( sys-fs/lvm2 )
opengl? (
media-libs/libglvnd[X]
media-libs/vulkan-loader
x11-libs/libX11
x11-libs/libXt
)
pam? ( sys-libs/pam )
python? ( ${PYTHON_DEPS} )
sdl? (
media-libs/libsdl2[X,video]
x11-libs/libX11
x11-libs/libXt
)
vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
vde? ( net-misc/vde )
vnc? ( >=net-libs/libvncserver-0.9.9 )
"
# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
# based on *DEPEND doesn't work for BDEPEND at least right now.
#
# There's a comment in Config.kmk about it
# ("With Java 11 wsimport was removed, usually part of a separate install now.")
# but it needs more investigation.
#
# See bug #878299 to track this issue.
DEPEND="
${COMMON_DEPEND}
>=dev-libs/libxslt-1.1.19
virtual/libcrypt:=
x11-libs/libXt
alsa? ( >=media-libs/alsa-lib-1.0.13 )
gui? (
x11-base/xorg-proto
x11-libs/libxcb:=
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXinerama
x11-libs/libXmu
x11-libs/libXrandr
)
java? ( virtual/jdk:1.8 )
opengl? (
x11-base/xorg-proto
x11-libs/libXcursor
x11-libs/libXinerama
x11-libs/libXmu
x11-libs/libXrandr
virtual/glu
)
sdl? (
x11-libs/libXcursor
x11-libs/libXinerama
)
pulseaudio? ( media-libs/libpulse )
udev? ( >=virtual/udev-171 )
"
RDEPEND="
${COMMON_DEPEND}
gui? ( x11-libs/libxcb:= )
java? ( virtual/jre:1.8 )
"
BDEPEND="
>=app-arch/tar-1.34-r2
>=dev-lang/yasm-0.6.2
dev-libs/libIDL
dev-util/glslang
>=dev-build/kbuild-0.1.9998.3592
sys-apps/which
sys-devel/bin86
sys-libs/libcap
sys-power/iasl
virtual/pkgconfig
doc? (
app-doc/dita-ot-bin
app-text/docbook-sgml-dtd:4.4
app-text/docbook-xsl-ns-stylesheets
dev-texlive/texlive-basic
dev-texlive/texlive-latex
dev-texlive/texlive-latexrecommended
dev-texlive/texlive-latexextra
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-fontsextra
dev-qt/qttools:6[assistant]
sys-libs/nss_wrapper
)
gui? ( dev-qt/qttools:6[linguist] )
nls? ( dev-qt/qttools:6[linguist] )
java? ( virtual/jdk:1.8 )
python? (
${PYTHON_DEPS}
test? (
$(python_gen_cond_dep '
dev-python/pytest[${PYTHON_USEDEP}]
')
)
)
"
QA_FLAGS_IGNORED="
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
"
QA_TEXTRELS="
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
"
QA_EXECSTACK="
usr/lib64/virtualbox/iPxeBaseBin
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
"
QA_WX_LOAD="
usr/lib64/virtualbox/iPxeBaseBin
"
QA_PRESTRIPPED="
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
"
REQUIRED_USE="
java? ( sdk )
python? ( sdk ${PYTHON_REQUIRED_USE} )
vboxwebsrv? ( java )
"
PATCHES=(
# Downloaded patchset
"${WORKDIR}"/virtualbox-patches-7.1.4-r1/patches
)
pkg_pretend() {
if ! use gui; then
einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
fi
if ! use opengl; then
einfo "No USE=\"opengl\" selected, this build will lack"
einfo "the OpenGL feature."
fi
if ! use nls && use gui; then
einfo "USE=\"gui\" also selects USE=\"nls\". This build"
einfo "will have NLS support."
fi
# 749273
local d=${ROOT}
for i in usr "$(get_libdir)"; do
d="${d}/$i"
if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
die "${d} should be owned by root, VirtualBox will not start otherwise"
fi
done
}
pkg_setup() {
java-pkg-opt-2_pkg_setup
use python && python-single-r1_pkg_setup
}
src_prepare() {
default
if use python; then
mkdir test
cp "${FILESDIR}"/test_python.py test/
python_fix_shebang test/test_python.py
fi
# Only add nopie patch when we're on hardened
if gcc-specs-pie; then
eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
fi
# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
rm -r kBuild/bin || die
# Remove everything in tools except kBuildUnits
find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
# Disable things unused or split into separate ebuilds
sed -e "s@MY_LIBDIR@$(get_libdir)@" \
"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
if ! use pch; then
# bug #753323
printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
>> LocalConfig.kmk || die
fi
# bug #916002, #488176, #925347
tc-ld-is-mold || tc-ld-force-bfd
# Respect LDFLAGS
sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
# Do not use hard-coded ld (related to bug #488176)
sed -e '/QUIET)ld /s@ld @$(LD) @' \
-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
# Use PAM only when pam USE flag is enbaled (bug #376531)
if ! use pam; then
einfo "Disabling PAM removes the possibility to use the VRDP features."
sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
src/VBox/HostServices/Makefile.kmk || die
echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
fi
# add correct java path
if use java; then
sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-i "${S}"/Config.kmk || die
java-pkg-opt-2_src_prepare
fi
# bug #940482
filter-flags -fno-plt
# bug #908814
filter-lto
# bug #843437
cat >> LocalConfig.kmk <<-EOF || die
CXXFLAGS=${CXXFLAGS}
CFLAGS=${CFLAGS}
EOF
if use sdl; then
sed -i 's/sdl-config/sdl2-config/' configure || die
echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
fi
#443830
echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
if tc-is-clang; then
# clang does not support this extension
eapply "${FILESDIR}"/${PN}-7.1.0-disable-rebuild-iPxeBiosBin.patch
fi
# fix doc generation
echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
# replace xhtml names with numeric equivalents
find doc/manual -name \*.xml -exec sed -i \
-e 's/&nbsp;/\&#160;/g' \
-e 's/&ndash;/\&#8211;/g' \
-e 's/&larr;/\&#8592;/g' \
-e 's/&rarr;/\&#8594;/g' \
-e 's/&harr;/\&#8596;/g' {} \+ || die
# fix help path #891879
echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
# 489208
# Cannot patch the whole text, many translations. Use sed instead to replace the command
find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
src/VBox/Frontends/VirtualBox/src/main.cpp \
src/VBox/VMM/VMMR3/VM.cpp || die
# 890561
echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
if ! use nls && ! use gui; then
cat >> LocalConfig.kmk <<-EOF || die
VBOX_WITH_NLS :=
VBOX_WITH_MAIN_NLS :=
VBOX_WITH_PUEL_NLS :=
VBOX_WITH_VBOXMANAGE_NLS :=
EOF
fi
}
src_configure() {
tc-export AR CC CXX LD RANLIB
export HOST_CC="$(tc-getBUILD_CC)"
local myconf=(
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--disable-kmods
$(usev !alsa --disable-alsa)
$(usev !dbus --disable-dbus)
$(usev debug --build-debug)
$(usev !doc --disable-docs)
$(usev !java --disable-java)
$(usev !lvm --disable-devmapper)
$(usev !pulseaudio --disable-pulse)
$(usev !python --disable-python)
$(usev vboxwebsrv --enable-webservice)
$(usev vde --enable-vde)
$(usev !vmmraw --disable-vmmraw)
$(usev vnc --enable-vnc)
)
if use gui || use sdl || use opengl; then
myconf+=(
$(usev !opengl --disable-opengl)
$(usev !gui --disable-qt)
$(usev !sdl --disable-sdl)
)
else
myconf+=(
--build-headless
)
fi
if use amd64 && ! has_multilib_profile; then
myconf+=( --disable-vmmraw )
fi
# not an autoconf script
edo ./configure "${myconf[@]}"
# Force usage of chosen Python implementation
# bug #856121, bug #785835
sed -i \
-e '/VBOX_WITH_PYTHON.*=/d' \
-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-e '/VBOX_LIB_PYTHON.*=/d' \
AutoConfig.kmk || die
if use python; then
cat >> AutoConfig.kmk <<-EOF || die
VBOX_WITH_PYTHON=$(usev python 1)
VBOX_PATH_PYTHON_INC=$(python_get_includedir)
VBOX_LIB_PYTHON=$(python_get_library_path)
EOF
local mangled_python="${EPYTHON#python}"
mangled_python="${mangled_python/.}"
# Stub out the script which defines what the Makefile ends up
# building for. gen_python_deps.py gets called by the Makefile
# with some args and it spits out a bunch of paths for a hardcoded
# list of Pythons. We just override it with what we're actually using.
# This minimises the amount of patching we have to do for new Pythons.
cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
EOF
chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
else
cat >> AutoConfig.kmk <<-EOF || die
VBOX_WITH_PYTHON:=
EOF
fi
}
src_compile() {
source ./env.sh || die
# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
local myemakeargs=(
VBOX_BUILD_PUBLISHER=_Gentoo
VBOX_WITH_VBOXIMGMOUNT=1
KBUILD_VERBOSE=2
AS="$(tc-getCC)"
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
TOOL_GCC3_CC="$(tc-getCC)"
TOOL_GCC3_LD="$(tc-getCC)"
TOOL_GCC3_AS="$(tc-getCC)"
TOOL_GCC3_AR="$(tc-getAR)"
TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GXX3_CC="$(tc-getCC)"
TOOL_GXX3_CXX="$(tc-getCXX)"
TOOL_GXX3_LD="$(tc-getCXX)"
TOOL_GXX3_AS="$(tc-getCXX)"
TOOL_GXX3_AR="$(tc-getAR)"
TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GCC3_CFLAGS="${CFLAGS}"
TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
VBOX_GCC_OPT="${CXXFLAGS}"
VBOX_NM="$(tc-getNM)"
TOOL_YASM_AS=yasm
)
if use amd64 && has_multilib_profile; then
myemakeargs+=(
CC32="$(tc-getCC) -m32"
CXX32="$(tc-getCXX) -m32"
TOOL_GCC32_CC="$(tc-getCC) -m32"
TOOL_GCC32_CXX="$(tc-getCXX) -m32"
TOOL_GCC32_LD="$(tc-getCC) -m32"
TOOL_GCC32_AS="$(tc-getCC) -m32"
TOOL_GCC32_AR="$(tc-getAR)"
TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GXX32_CC="$(tc-getCC) -m32"
TOOL_GXX32_CXX="$(tc-getCXX) -m32"
TOOL_GXX32_LD="$(tc-getCXX) -m32"
TOOL_GXX32_AS="$(tc-getCXX) -m32"
TOOL_GXX32_AR="$(tc-getAR)"
TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
)
fi
if use doc; then
# dita needs to write to ~/.fop and ~/.java
# but it ignores ${HOME} and tries to write to the real home of user portage
# resulting in a sandbox violation
# -Duser.home= does not work
# force using the temporary homedir with nss_wrapper
echo "${LOGNAME}::$(id -u):$(id -g):${USER}:${HOME}:/bin/bash" >> ~/passwd
echo "${LOGNAME}::$(id -g):" >> ~/group
local -x LD_PRELOAD=libnss_wrapper.so
local -x NSS_WRAPPER_PASSWD="${HOME}"/passwd
local -x NSS_WRAPPER_GROUP="${HOME}"/group
fi
MAKE="kmk" emake "${myemakeargs[@]}" all
}
src_test() {
if use python; then
local -x VBOX_APP_HOME="${S}"/out/linux.${ARCH}/$(usex debug debug release)
local -x VBOX_INSTALL_PATH="${VBOX_APP_HOME}"
local -x VBOX_PROGRAM_PATH="${VBOX_APP_HOME}"/bin
local -x VBOX_SDK_PATH="${VBOX_PROGRAM_PATH}"/sdk
local -x PYTHONPATH="${VBOX_SDK_PATH}"/installer/python/vboxapi/src
einfo "VBOX_APP_HOME ${VBOX_APP_HOME}"
einfo "VBOX_PROGRAM_PATH ${VBOX_PROGRAM_PATH}"
einfo "VBOX_SDK_PATH ${VBOX_SDK_PATH}"
einfo "PYTHONPATH ${PYTHONPATH}"
LD_LIBRARY_PATH="${VBOX_PROGRAM_PATH}" epytest test/
fi
}
src_install() {
cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
vbox_inst() {
local binary="${1}"
local perms="${2:-0750}"
local path="${3:-${vbox_inst_path}}"
[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
insinto ${path}
doins ${binary}
fowners root:vboxusers ${path}/${binary}
fperms ${perms} ${path}/${binary}
}
# Create configuration files
insinto /etc/vbox
newins "${FILESDIR}/${PN}-4-config" vbox.cfg
# Set the correct libdir
sed \
-e "s@MY_LIBDIR@$(get_libdir)@" \
-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
# Install the wrapper script
exeinto ${vbox_inst_path}
newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
fowners root:vboxusers ${vbox_inst_path}/VBox
fperms 0750 ${vbox_inst_path}/VBox
# Install binaries and libraries
insinto ${vbox_inst_path}
doins -r components
for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \
vboximg-mount vbox-img *so *r0; do
vbox_inst ${each}
done
# These binaries need to be suid root.
for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
vbox_inst ${each} 4750
done
# Install EFI Firmware files (bug #320757)
for each in VBoxEFI{32,64}.fd ; do
vbox_inst ${each} 0644
done
# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
# VBoxXPCOMIPCD (bug #524202)
for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
pax-mark -m "${ED}"${vbox_inst_path}/${each}
done
# Symlink binaries to the shipped wrapper
for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
if use pam; then
# VRDPAuth only works with this (bug #351949)
dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
fi
# set an env-variable for 3rd party tools
echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
# environment variables used during SDK binding installation
echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
doenvd "${T}/90virtualbox"
if use sdl; then
vbox_inst VBoxSDL 4750
pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
for each in vboxsdl VBoxSDL ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
fi
if use gui; then
vbox_inst VirtualBox
vbox_inst VirtualBoxVM 4750
for each in VirtualBox{,VM} ; do
pax-mark -m "${ED}"${vbox_inst_path}/${each}
done
for each in virtualbox{,vm} VirtualBox{,VM} ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
insinto /usr/share/${PN}
doins -r nls
doins -r UnattendedTemplates
domenu ${PN}.desktop
pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
for size in 16 32 48 64 128 ; do
newicon -s ${size} ${PN}-${size}px.png ${PN}.png
done
newicon ${PN}-48px.png ${PN}.png
doicon -s scalable ${PN}.svg
popd &>/dev/null || die
pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
for size in 16 24 32 48 64 72 96 128 256 512 ; do
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
icofile="${PN}-${ico}-${size}px.png"
if [[ -f "${icofile}" ]]; then
newicon -s ${size} ${icofile} ${PN}-${ico}.png
fi
done
done
popd &>/dev/null || die
fi
if use lvm; then
vbox_inst VBoxVolInfo 4750
dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
fi
if use sdk; then
insinto ${vbox_inst_path}
doins -r sdk
if use java; then
java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
fi
fi
if use udev; then
local udevdir="$(get_udevdir)"
local udev_file="VBoxCreateUSBNode.sh"
local rules_file="10-virtualbox.rules"
insinto ${udevdir}
doins ${udev_file}
fowners root:vboxusers ${udevdir}/${udev_file}
fperms 0750 ${udevdir}/${udev_file}
insinto ${udevdir}/rules.d
sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
> "${T}"/${rules_file} || die
doins "${T}"/${rules_file}
fi
if use vboxwebsrv; then
vbox_inst vboxwebsrv
dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
fi
# Remove dead symlinks (bug #715338)
find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
# Fix version string in extensions or else they don't get accepted
# by the virtualbox host process (see bug #438930)
find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
local extensions_dir="${vbox_inst_path}/ExtensionPacks"
if use vnc; then
insinto ${extensions_dir}
doins -r ExtensionPacks/VNC
fi
if use dtrace; then
insinto ${extensions_dir}
doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
fi
if use doc; then
dodoc UserManual.pdf UserManual.q{ch,hc}
docompress -x /usr/share/doc/${PF}
elif use gui; then
dodoc "${WORKDIR}"/${PN}-help-${HELP_PV}/UserManual.q{ch,hc}
docompress -x /usr/share/doc/${PF}
fi
if use python; then
local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
if [[ ! -x "${python_path_ext}" ]]; then
eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
eerror "but none were installed. This may happen if support for a Python target"
eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
die "Incomplete installation of Python bindings! File a bug with Gentoo!"
fi
# 378871
local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src"
pushd "${installer_dir}" &> /dev/null || die
sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
-i vboxapi/__init__.py || die
# insert shebang, the files come without one
find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
python_domodule vboxapi
popd &> /dev/null || die
# upstream added a /bin/sh stub here
# use /usr/bin/python3, python_doscript will take care of it
sed -e '1 i #! /usr/bin/python3' -i vboxshell.py
python_doscript vboxshell.py
# do not install the installer
rm -r "${installer_dir%vboxapi*}" || die
fi
newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
}
pkg_postinst() {
xdg_pkg_postinst
if use udev; then
udev_reload
udevadm trigger --subsystem-match=usb
fi
tmpfiles_process virtualbox-vboxusb.conf
if use gui; then
elog "To launch VirtualBox just type: \"virtualbox\"."
fi
elog "You must be in the vboxusers group to use VirtualBox."
elog ""
elog "The latest user manual is available for download at:"
elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
elog ""
optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
optfeature "Guest additions ISO" app-emulation/virtualbox-additions
if ! use udev; then
ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
fi
}
pkg_postrm() {
xdg_pkg_postrm
use udev && udev_reload
}

View File

@ -0,0 +1,102 @@
diff '--color=auto' -uNr syncterm-1.6.orig/src/build/Common.gmake syncterm-1.6/src/build/Common.gmake
--- syncterm-1.6.orig/src/build/Common.gmake 2025-06-07 17:22:14.756859064 +0200
+++ syncterm-1.6/src/build/Common.gmake 2025-06-07 17:24:48.011474332 +0200
@@ -533,6 +533,50 @@
endif
CFLAGS += -fno-delete-null-pointer-checks
+$(XPDEV_LIB): xpdev
+xpdev:
+ $(MAKE) -C $(XPDEV_SRC) lib
+
+$(XPDEV-MT_LIB): xpdev-mt
+xpdev-mt:
+ $(MAKE) -C $(XPDEV_SRC) mtlib
+
+$(ENCODE_LIB): encode
+encode:
+ $(MAKE) -C $(ENCODE_SRC) lib
+
+$(HASH_LIB): hash
+hash:
+ $(MAKE) -C $(HASH_SRC) lib
+
+$(SMBLIB): smblib
+smblib:
+ $(MAKE) -C $(SMBLIB_SRC) lib
+
+$(CIOLIB-MT): ciolib-mt
+ciolib-mt:
+ $(MAKE) -C $(CIOLIB_SRC) mtlib
+
+$(UIFCLIB): uifc
+uifc:
+ $(MAKE) -C $(UIFC_SRC) lib
+
+$(UIFCLIB-MT): uifc-mt
+uifc-mt:
+ $(MAKE) -C $(UIFC_SRC) mtlib
+
+$(JS_LIB): $(JS_DEPS)
+js:
+ $(MAKE) -C $(3RDPBUILDDIR) jslib
+
+$(CRYPT_LIB): $(CRYPT_DEPS)
+cl:
+ $(MAKE) -C $(3RDPBUILDDIR) cryptlib
+
+$(SFTPLIB-MT): sftp-mt
+sftp-mt:
+ $(MAKE) -C $(SFTP_SRC) mtlib
+
-include targets.mk
-include $(SRC_ROOT)/build/rules.mk
-include objects.mk # defines $(OBJS)
@@ -592,47 +636,3 @@
-include $(LIBODIR)/*.d
-include $(EXEODIR)/*.d
-include $(SRCODIR)/*.d
-
-$(XPDEV_LIB): xpdev
-xpdev:
- $(MAKE) -C $(XPDEV_SRC) lib
-
-$(XPDEV-MT_LIB): xpdev-mt
-xpdev-mt:
- $(MAKE) -C $(XPDEV_SRC) mtlib
-
-$(ENCODE_LIB): encode
-encode:
- $(MAKE) -C $(ENCODE_SRC) lib
-
-$(HASH_LIB): hash
-hash:
- $(MAKE) -C $(HASH_SRC) lib
-
-$(SMBLIB): smblib
-smblib:
- $(MAKE) -C $(SMBLIB_SRC) lib
-
-$(CIOLIB-MT): ciolib-mt
-ciolib-mt:
- $(MAKE) -C $(CIOLIB_SRC) mtlib
-
-$(UIFCLIB): uifc
-uifc:
- $(MAKE) -C $(UIFC_SRC) lib
-
-$(UIFCLIB-MT): uifc-mt
-uifc-mt:
- $(MAKE) -C $(UIFC_SRC) mtlib
-
-$(JS_LIB): $(JS_DEPS)
-js:
- $(MAKE) -C $(3RDPBUILDDIR) jslib
-
-$(CRYPT_LIB): $(CRYPT_DEPS)
-cl:
- $(MAKE) -C $(3RDPBUILDDIR) cryptlib
-
-$(SFTPLIB-MT): sftp-mt
-sftp-mt:
- $(MAKE) -C $(SFTP_SRC) mtlib

View File

@ -0,0 +1,12 @@
diff '--color=auto' -uNr syncterm-1.6.orig/src/syncterm/webget.c syncterm-1.6/src/syncterm/webget.c
--- syncterm-1.6.orig/src/syncterm/webget.c 2025-06-07 17:28:16.006999190 +0200
+++ syncterm-1.6/src/syncterm/webget.c 2025-06-07 17:31:11.641227829 +0200
@@ -3,7 +3,7 @@
#include <stdbool.h>
#ifndef WITHOUT_CRYPTLIB
-#include <cryptlib.h>
+#include "../../3rdp/src/cl/cryptlib.h"
#endif
#include "bbslist.h"

View File

@ -0,0 +1,43 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit toolchain-funcs
DESCRIPTION="A BBS terminal program, supporting ANSI music and IBM charset."
HOMEPAGE="http://syncterm.bbsdev.net"
SRC_URI="https://downloads.sourceforge.net/project/syncterm/syncterm/syncterm-${PV}/syncterm-${PV}-src.tgz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64"
RDEPEND="sys-libs/ncurses"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}"/make_order.patch
"${FILESDIR}"/webget.patch
)
#S=${WORKDIR}/syncterm-${PV}/src/syncterm
src_prepare() {
cp "${FILESDIR}"/cl-linux-yield.patch ${WORKDIR}/syncterm-${PV}/3rdp/build/cl-linux-yield.patch
default
}
src_compile() {
# CPPFLAGS="${CPPFLAGS}" \
# CFLAGS="${CFLAGS}" \
# LDFLAGS="${LDFLAGS}" \
emake -C src/syncterm CC="$(tc-getCC)" \
PREFIX="/usr" MANPREFIX="/usr/share" RELEASE=1
}
src_install() {
emake -C src/syncterm CC="$(tc-getCC)" \
PREFIX="${ED}/usr" MANPREFIX="${ED}/usr/share" RELEASE=1 install
}

View File

@ -0,0 +1,2 @@
DIST rpi-imager-1.9.4.tar.xz 9481200 BLAKE2B fdaa997560f258a698dd046cbad7c0c40a3f00118daf630cc9ae7a3e263934e8e24dd45e2ab8efc38b6f5403eac3bda7b83ebac3fecb84b161adf4d1159088cc SHA512 4596843729129284b4413e91a6cd127e30e35d1876261c24af60d196c2b9dc9f6128c9de4608a7a540418c1ba18daa16b45260698eb5767549254038ec1315ff
EBUILD rpi-imager-1.9.4.ebuild 436 BLAKE2B 8430b793a9acf2e5b7696bb6f39173bfc013917c23e02e0b2f5c39e4e76d5d4915ee969014aaefd90929c932cd6e94ad6cb6ef040d1aa9fa1b5d21933515d3d3 SHA512 aa4b79270de41cb1aee487647c7c2503e18450c89c896380a6fa90ecc69b4d1fc78df2725f3b83793528558497b0801f972d99cb4061f1eddf65b7c150164575

View File

@ -0,0 +1,22 @@
EAPI=8
inherit cmake
DESCRIPTION="Raspberry Pi Imaging Utility"
HOMEPAGE=https://www.raspberrypi.com/software/
SRC_URI="https://github.com/raspberrypi/${PN}/releases/download/v${PV}/${PN}_${PV}.tar.xz -> ${P}.tar.xz"
LICENSE=Apache-2.0
SLOT=0
KEYWORDS="amd64 aarch64"
S=$WORKDIR/$PN/src
RESTRICT=network-sandbox
DEPEND="
dev-qt/qtbase
dev-qt/qtdbus
sys-libs/zlib
app-arch/lzma
|| ( net-libs/gnutls dev-libs/openssl )
"

View File

@ -8,5 +8,5 @@ AUX qtwebengine-5.15.16_p20241115-py3.13-pipes.patch 848 BLAKE2B 7696eaf565511ad
AUX qtwebengine-5.15.17-py3.13-pipes.patch 848 BLAKE2B 7696eaf565511adcac5e74f7788633d1e83a88079548f1069c840da40e3ec5fef5fbfa0c019234a40dde14f6f43249792ad1bfc3d2ee8e5669d7fde7234a7ad2 SHA512 79588891105d8dce27e273d4113c31352c6b1035762ea6b1211be5f58299d9e2852b0b98bad34492d9af85e3ae1ca87407ffbf190159d64b0c6d7ba49e842bf8
AUX qtwebengine-5.15.2_p20210521-clang-libc++.patch 358 BLAKE2B a03de632ac4e01cf56c52af3a3bd5ff5bcfd525c67bf2e5d960904a9f3b53e1fa18f0e0df380c0cf84f17914fb313a028e26efaefe6ab5057f0d9a9cf2f6f0fd SHA512 6dc3864064d6084e70d4696fda744701c293ee62e9c9088e3247988ffb8085f30c632e94ac19aef715cbd211b21dfcb98691d5809e21cffd9f04bbb8b04cf0da
DIST qtwebengine-5.15.14_p20240510-patchset.tar.xz 20780 BLAKE2B 516d4c628c4b027ab3a7159da006a57173be91de3eb4b7f308029953d4fd19fb3e790ca38e79d17fef75d8d9b392676650acb9285d5913f9ebecaa4136575c47 SHA512 492979d118d6bd9165ee194724e38b627d19c89dbe1daa6b2f55e4a8fc7676748a1eacb9623ee05e09140c2c4a2ac82ddafaef5c45630a117ce0ed14b240a474
DIST qtwebengine-everywhere-opensource-src-5.15.17.tar.xz 319675412 BLAKE2B eca642f2fe3dc0a648f1645aa3ae7ca86dee8abd3cb8853a6ad7e200171f7c45d88dbdba05f820771de7607647b7626267f4e1af17d8e2bc4f0184899c2c09a6 SHA512 4ca5ac97e35f195350da6485a7e53e648723ef5a4e91acf58985eb6957b89acc7f9bac53035eee228fd6a4144a2ba7f93a1a96fd0a501e817b2460fe8faf6bd7
DIST qtwebengine-everywhere-opensource-src-5.15.17.tar.xz 319707540 BLAKE2B cab83868e938dea46ccb89dc75694c800723857a458e23e28032729dff6dc0701c06af2d983dee5675ce43a7e028421044dbfa0733984264a2195f4530024552 SHA512 f3f8a6e9b43e9a58a0b44777fd3333a621365f7cfe323207dfafdefe41f572a58b03ae9c00ab57cbd554d9d71c09d071b93841557099205d4b6dc474921bbfdf
EBUILD qtwebengine-5.15.17.ebuild 8143 BLAKE2B 869eb1f18cf28280d178a4723b133b876d67770ea13d1d49d4a0beb1bfe07f53f44ac95ddc8f9d4535300bb815618a02de90282c85c774697a7163e97b56633e SHA512 800b5b84a6601573119048a303bbfcb056675e6675d22d8b0bf46c8049fb8de8b6f0f95e027ac3870e875f5fc6833c31fee96f89c512ab9113dd9e5fd28394eb

View File

@ -0,0 +1,54 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop unpacker xdg
DESCRIPTION="Your entire server infrastructure at your fingertips"
HOMEPAGE="https://xpipe.io/"
#SRC_URI="https://github.com/${PN}-io/${PN}/releases/download/${PV}/${PN}-installer-linux-x86_64.deb -> ${PN}-installer-linux-${PV}-x86_64.deb"
SRC_URI="https://github.com/${PN}-io/${PN}/releases/download/${PV}/${PN}-portable-linux-x86_64.tar.gz -> ${PN}-portable-linux-${PV}-x86_64.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="-* ~amd64"
RESTRICT="bindist mirror splitdebug test"
#IUSE="swiftshader system-ffmpeg"
IUSE=""
QA_PREBUILT="*"
RDEPEND="
"
S="${WORKDIR}"
src_install() {
mv xpipe-${PV} xpipe
dodir /opt
cp -a xpipe "${ED}"/opt || die
dosym ../../opt/xpipe/cli/bin/xpipe usr/bin/xpipe
dosym ../../opt/xpipe/cli/xpipe_completion etc/bash_completion.d/xpipe
domenu ${FILESDIR}/${PN}.desktop
doicon ${FILESDIR}/${PN}.png
doman xpipe/cli/man/*
}
pkg_preinst() {
xdg_pkg_preinst
}
pkg_postinst() {
xdg_pkg_postinst
}
pkg_postrm() {
xdg_pkg_postrm
}

View File

@ -1 +1 @@
EBUILD ncpfs-modules-9999.ebuild 1427 BLAKE2B 42130c0fe71b0d479863d14034375bd7c09158bfdb94b007398f132983f99d39b2621de47f9a5d12e7ae86dfd77bcafef1bb4a7920af39dcdae28f1f4e107a18 SHA512 874dbf06f1029e8fb1f4a7010c6913a981242f165dd890c440462b416f9332e988b248c47709637daaa31aeb8f89e3f834f7ba971333e0c1c0efc679de897b91
EBUILD ncpfs-modules-9999.ebuild 1493 BLAKE2B a9ad1d939acf6705080c537c8164e1233e2a02218847bb2f021041045749077e4a07adbf9b1be2cb97dc7299b653a51fd7d40a34ff773031f2b3f596c8f2bfad SHA512 7cd5fa79f3d2d7976aaf6c2d5a64165cdb05b7f50a31687bb58840850493afeea525054f13d2c02299d04e5da612e4d2cbcb1d2327402eae582b478f3d481c81

View File

@ -8,7 +8,7 @@ inherit git-r3 linux-info linux-mod
DESCRIPTION="ncpfs kernel module for Linux 4.18+"
HOMEPAGE="https://github.com/EnzephaloN/ncpfs-module"
EGIT_REPO_URI="https://github.com/EnzephaloN/ncpfs-module.git"
EGIT_REPO_URI="https://github.com/hundertzwei/ncpfs-module.git"
#EGIT_REPO_URI="https://github.com/hundertzwei/ncpfs-module.git"
LICENSE="GPL-2"
SLOT="0"
@ -54,6 +54,9 @@ src_unpack() {
EGIT_BRANCH="kernel_6.8"
fi
if kernel_is gt 6 12 0; then
EGIT_BRANCH="kernel_6.12"
fi
if kernel_is gt 6 13 0; then
EGIT_BRANCH="master"
fi

View File

@ -21,4 +21,4 @@ AUX ncpfs-2.2.6-servername-array-fix.patch 523 BLAKE2B 6cf9c27ae7bda17722a74f550
AUX ncpfs-2.2.6-usr-merge.patch 514 BLAKE2B 44873b8731d062b2fe802f9ecc145509d12625be4e62b1025738a6076cb003d5577c2d5c21e338ff5fade6e0bea844a254509287a82aabc0bb92db20b0c7ec5d SHA512 cf05a0b2e41c45a8215bf1b150b79a16cdaa040c4e41ab6f361fffaa2a937fb792b464b1a9b49ecde18ae5df8e58e1887b1e965ff39adf1f05a2418f89efca11
AUX ncpfs-2.2.6-zend_function_entry.patch 296 BLAKE2B 3bb6db87517e0fb086e95462e9b567628ede7fbeef77b5d6e101dec8a316f2a5185cad8846bbaf37dada789acfedf6f6bbc75dafa92f3eb140cfde4eb038e1eb SHA512 c96723a840cb1b0cdddb91ebe74620b87a32350be084f21b741bda4e399a7648fd00522e9f2ec8404d5a98835d3f5a343dd588f4279848cc031de5bed01680e0
DIST ncpfs-2.2.6.tar.gz 2100545 BLAKE2B b95c8c0b097227c7b9e526e978efdca2234cdd0833468be99abaa68b0feba09794be26ebcb3a1c3371bc99f6c9d007eee164fa5f918aaee3eca44aeb1420211f SHA512 51f85eaae85deb66cea2ff434974699f6aa45ed1ed75217ef6176ac0b7d0f9f1c4fb186afc64c1b495474d5bad9ac7614033128c0bec39c05de723a9b29c8602
EBUILD ncpfs-2.2.6-r5.ebuild 2570 BLAKE2B 4b0e38187dbc11d4e36b83e5c5af94adcc13eff3f5cf226d09d484c750b38a4776773cde8b34c60f73dd01498397a1cf735415859c87780e1065fdb4faed61d2 SHA512 33acfe1c75df6b5d293234623405bee48264c97d285e31eb5b7ca3fdecb71d62103b3dfcd2e25ec97389554d43910ed2e24b20e7cd3a9d37e89ec029ff701665
EBUILD ncpfs-2.2.6-r5.ebuild 2671 BLAKE2B 9a73640d055ff00d469fc6eea0fc08d44f98a6791ea830cbe5fb01422ecd99c68f7ce1ce1df51b6020877696fb5954fac40e88957772fd2c02758112f9383c6f SHA512 aaab51e16b38f753b164e3f4deed8b6d475e6ac54c43a109b5e8d7979215d5e7370729fec889cce89f4cf7ec8d595d93c29aa1bec8b1eaa4167b657a2f1ade35

View File

@ -7,7 +7,8 @@ inherit pam
DESCRIPTION="Provides access to Netware services using the NCP protocol"
HOMEPAGE="ftp://platan.vc.cvut.cz/pub/linux/ncpfs/"
SRC_URI="ftp://platan.vc.cvut.cz/pub/linux/${PN}/${P}.tar.gz"
SRC_URI="ftp://platan.vc.cvut.cz/pub/linux/${PN}/${P}.tar.gz
https://old-releases.ubuntu.com/ubuntu/pool/universe/n/ncpfs/ncpfs_${PV}.orig.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"

View File

@ -0,0 +1,10 @@
AUX 2.44.1-non-unified-build-fixes.patch 11799 BLAKE2B 6928f61428c4bc6594a46f7427e644143b071c39cc7405b143d693f956631519860efd958dd928f55c1e6139334966fd6bb92e42594c7b7b9b11236d5b0154f2 SHA512 c3ee1b48bebe8c6e504b6d15277b67261cceffa9790a212972f2d0ffd32d68c60c96373a2fecc0af9c6400114ecc84130bb23d81d03e08473b60eaadc3df9802
AUX 2.44.4-fix-icu76.1.patch 1215 BLAKE2B 0d4aa869b52eb6579ff58421982e80f02077e064988b30887af9d7da5a1c31bb652fdc406fbfe4e0895cd4c4e0e67b2cc4e363e8d8c60aac5d5683808fd52080 SHA512 356051853ce56e040aed620a6cb68dba75c2387ed396cfea85c2fcd5e51998a31ea2e2eca5305d9aa99b66f6f8ea7e8983851c77ca654a97ec3b3ecce8bd651c
AUX 2.48.3-fix-ftbfs-riscv64.patch 1469 BLAKE2B c6e74307539730b31e3c67f8d80b54c5b8ae39fadfd6623d0bb964553510a3f6c0797183d89589ef0a29ab843adea341b3a00ced422f72352ca9aaa29dcda42b SHA512 2835d3b4093f1c0fe369494d401f75645df166eb60da97a983a2396407b71ef7485646d7e7f7c2d7cc2d15e7160e45fb62b6bcfcf0e08197c7c0ff93b52011f7
DIST webkitgtk-2.44.4.tar.xz 35858056 BLAKE2B 9e3d016bfb2b4e80d2ebeda95e75f8ec8b909b41b17a879d3e1119ed66e3bf4d590a22ed814bb1572dac8d8a8838bb37b5ab1372121b276e02ee8925f6c5b00c SHA512 037ef6a9faca68b68dc62927a475134450493129043ea6cc03595cd4a684d590f80a1e9c3ed40a9176874ba43fc9efbc5065a264dfe131ebd72e272756612db9
DIST webkitgtk-2.46.5.tar.xz 42898600 BLAKE2B 04f824f9864749c13810318c06e5da90265025062a706030bece73661cf89b8d972040c508ca5b4267d476f9dac8fcdaa82943409f6ae45ab84801d899a1ed7f SHA512 9a0eb018361d407f13b303f66babcdc9960075bf69b83cf2ee8f708e5396cfa9e0a720f77695aea216072392e0603c2dc8ad50e6d56f962d4a52e9cdadf38275
DIST webkitgtk-2.48.3.tar.xz 44171964 BLAKE2B d07afd02ca3159e2a8998167818614eb586754f6485ea5b998a10686df44a16c99c5890b6fc7ccb3c1aa4aef82f1626be39cd67a4e60dbbe9eda466fd17aa002 SHA512 0724e0d22403552409d0f621d9ed3a6404813ca63d445b9ac8f99682a544c95a3cf8108ac880cb3bcadc0ecd5a772db40e68f753c286700ffc7f2851bba12e84
EBUILD webkit-gtk-2.44.4-r1.ebuild 7887 BLAKE2B 0e91fad933488cb8897529be1460b428f5587c1e5ad917855440d65e616282bd11dd7db5155064636edb9df8e1c998ff79a7d32dc8178bd9c9a178eab0d15812 SHA512 b9e5a868b8062e9b21b1d16ad63476b241dc2e578d10467e1b1e98f7b0b2433f305b6ef5b8e3050d96d634d0a63f687e2becdbd721e4f88822e7cf535c027c41
EBUILD webkit-gtk-2.46.5-r1.ebuild 8037 BLAKE2B abea5ce78fd795ea34f9394a2e3d87860e9a32a2a44652be73112d82fcc3c0d27d4ab619c861baee5632d34207122f08011a1f5f7643c3ebc1b18b76998b88e3 SHA512 21e9d8e5f1c1313ce76b1da5b2b0375097ee375d6a4d8c9e383d9181751ee90b39d9e61bce94e71c7b3c5ce41e4c97fd8ea5616add14d09c6a68044b187f37e8
EBUILD webkit-gtk-2.48.3.ebuild 8175 BLAKE2B 51debd76cbf21da952517119e85b4e9d53f047f8d6c673f0d89201b76dec2db4e4b6a3e6b64334fc0ab1a830a5674b9c229b7dbbb09b39f5d13a69a79495eef2 SHA512 546bc6a2a119fd099867d5eacd6a7936e39035abbc0caa9c2c602795eccfb77bfaff4446a5441b4a7c4ff8a8a5657887e9f96c533179a0aef55cb7000581aaa6
MISC metadata.xml 790 BLAKE2B cc1db6c1cd6771cafe9b2690790b12a34a7ea49f3dd00c9439ad05a18099c96dd1c5a6575c884c55d09e34f6dc247ca05256a52facb35a54376e61640eececd0 SHA512 b9e123a69e0353a20661ce817ead87b61370d0a68ef175cdf1ced00afacf67204c67bb549aac2006326d8aab7d6e41a841b00d16fc4431626e7ad7782f6158db

View File

@ -0,0 +1,322 @@
From 211b73efb2a416f3b464d9d74da0aa8f93abe016 Mon Sep 17 00:00:00 2001
From: Don Olmstead <don.olmstead@sony.com>
Date: Fri, 8 Mar 2024 17:27:09 -0800
Subject: [PATCH] Non-unified build fixes, early March 2024 edition
https://bugs.webkit.org/show_bug.cgi?id=270719
Unreviewed non-unified build fix.
* Source/JavaScriptCore/jit/JITSizeStatistics.cpp:
* Source/WebCore/Modules/model-element/ModelPlayerClient.h:
* Source/WebCore/css/CSSCrossfadeValue.h:
* Source/WebCore/css/CSSImageSetOptionValue.cpp:
* Source/WebCore/css/CSSImageSetOptionValue.h:
* Source/WebCore/css/CSSReflectValue.cpp:
* Source/WebCore/css/CSSReflectValue.h:
* Source/WebCore/css/CSSShadowValue.h:
* Source/WebCore/css/CSSValuePair.cpp:
* Source/WebCore/css/CSSValuePair.h:
* Source/WebCore/dom/SlotAssignment.h:
* Source/WebCore/dom/TrustedType.cpp:
* Source/WebCore/rendering/svg/RenderSVGPath.cpp:
* Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp:
* Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp:
* Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp:
* Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp:
* Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.cpp:
* Source/WebKit/Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp:
* Source/WebKit/UIProcess/BrowsingContextGroup.cpp:
* Source/WebKit/UIProcess/FrameProcess.cpp:
* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
Canonical link: https://commits.webkit.org/275863@main
(cherry picked from commit 38c6ecad0ea32e80cb3e811c3ff759074006791f)
---
Source/JavaScriptCore/jit/JITSizeStatistics.cpp | 1 +
Source/WebCore/Modules/model-element/ModelPlayerClient.h | 1 +
Source/WebCore/css/CSSCrossfadeValue.h | 3 ++-
Source/WebCore/css/CSSImageSetOptionValue.cpp | 1 -
Source/WebCore/css/CSSImageSetOptionValue.h | 4 ++--
Source/WebCore/css/CSSReflectValue.cpp | 2 --
Source/WebCore/css/CSSReflectValue.h | 4 ++--
Source/WebCore/css/CSSShadowValue.h | 4 ++--
Source/WebCore/css/CSSValuePair.cpp | 1 +
Source/WebCore/css/CSSValuePair.h | 1 +
Source/WebCore/dom/SlotAssignment.h | 1 +
Source/WebCore/rendering/svg/RenderSVGPath.cpp | 2 ++
.../WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp | 2 ++
Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp | 2 ++
Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp | 2 ++
.../WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp | 2 ++
.../Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp | 1 +
Source/WebKit/UIProcess/ProvisionalPageProxy.cpp | 1 +
18 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/Source/JavaScriptCore/jit/JITSizeStatistics.cpp b/Source/JavaScriptCore/jit/JITSizeStatistics.cpp
index f1bc2780343a..b2ffd81ee34d 100644
--- a/Source/JavaScriptCore/jit/JITSizeStatistics.cpp
+++ b/Source/JavaScriptCore/jit/JITSizeStatistics.cpp
@@ -29,6 +29,7 @@
#if ENABLE(JIT)
#include "CCallHelpers.h"
+#include "JITPlan.h"
#include "LinkBuffer.h"
#include <wtf/BubbleSort.h>
#include <wtf/TZoneMallocInlines.h>
diff --git a/Source/WebCore/Modules/model-element/ModelPlayerClient.h b/Source/WebCore/Modules/model-element/ModelPlayerClient.h
index 9343d5102015..b9cf2857eee2 100644
--- a/Source/WebCore/Modules/model-element/ModelPlayerClient.h
+++ b/Source/WebCore/Modules/model-element/ModelPlayerClient.h
@@ -25,6 +25,7 @@
#pragma once
+#include "LayerHostingContextIdentifier.h"
#include "PlatformLayerIdentifier.h"
#include <wtf/Forward.h>
#include <wtf/WeakPtr.h>
diff --git a/Source/WebCore/css/CSSCrossfadeValue.h b/Source/WebCore/css/CSSCrossfadeValue.h
index eafa3bb5e828..86b87be608fe 100644
--- a/Source/WebCore/css/CSSCrossfadeValue.h
+++ b/Source/WebCore/css/CSSCrossfadeValue.h
@@ -25,11 +25,12 @@
#pragma once
+#include "CSSPrimitiveValue.h"
#include "CSSValue.h"
+#include <wtf/Function.h>
namespace WebCore {
-class CSSPrimitiveValue;
class StyleImage;
namespace Style {
diff --git a/Source/WebCore/css/CSSImageSetOptionValue.cpp b/Source/WebCore/css/CSSImageSetOptionValue.cpp
index 9becc5444e10..2b7812e419a2 100644
--- a/Source/WebCore/css/CSSImageSetOptionValue.cpp
+++ b/Source/WebCore/css/CSSImageSetOptionValue.cpp
@@ -27,7 +27,6 @@
#include "CSSImageSetOptionValue.h"
#include "CSSImageValue.h"
-#include "CSSPrimitiveValue.h"
namespace WebCore {
diff --git a/Source/WebCore/css/CSSImageSetOptionValue.h b/Source/WebCore/css/CSSImageSetOptionValue.h
index 60ef16534b24..c65ddccc04b5 100644
--- a/Source/WebCore/css/CSSImageSetOptionValue.h
+++ b/Source/WebCore/css/CSSImageSetOptionValue.h
@@ -25,13 +25,13 @@
#pragma once
+#include "CSSPrimitiveValue.h"
#include "CSSValue.h"
+#include <wtf/Function.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
-class CSSPrimitiveValue;
-
class CSSImageSetOptionValue final : public CSSValue {
public:
static Ref<CSSImageSetOptionValue> create(Ref<CSSValue>&&);
diff --git a/Source/WebCore/css/CSSReflectValue.cpp b/Source/WebCore/css/CSSReflectValue.cpp
index 371e6ed16087..6049d4af7d2d 100644
--- a/Source/WebCore/css/CSSReflectValue.cpp
+++ b/Source/WebCore/css/CSSReflectValue.cpp
@@ -26,8 +26,6 @@
#include "config.h"
#include "CSSReflectValue.h"
-#include "CSSPrimitiveValue.h"
-
namespace WebCore {
CSSReflectValue::CSSReflectValue(CSSValueID direction, Ref<CSSPrimitiveValue> offset, RefPtr<CSSValue> mask)
diff --git a/Source/WebCore/css/CSSReflectValue.h b/Source/WebCore/css/CSSReflectValue.h
index c67d2ad0dc4b..84f7b1d0e7e1 100644
--- a/Source/WebCore/css/CSSReflectValue.h
+++ b/Source/WebCore/css/CSSReflectValue.h
@@ -25,12 +25,12 @@
#pragma once
+#include "CSSPrimitiveValue.h"
#include "CSSValue.h"
+#include <wtf/Function.h>
namespace WebCore {
-class CSSPrimitiveValue;
-
class CSSReflectValue final : public CSSValue {
public:
static Ref<CSSReflectValue> create(CSSValueID direction, Ref<CSSPrimitiveValue> offset, RefPtr<CSSValue> mask);
diff --git a/Source/WebCore/css/CSSShadowValue.h b/Source/WebCore/css/CSSShadowValue.h
index 26857028cf36..7d6d25980f72 100644
--- a/Source/WebCore/css/CSSShadowValue.h
+++ b/Source/WebCore/css/CSSShadowValue.h
@@ -20,13 +20,13 @@
#pragma once
+#include "CSSPrimitiveValue.h"
#include "CSSValue.h"
+#include <wtf/Function.h>
#include <wtf/RefPtr.h>
namespace WebCore {
-class CSSPrimitiveValue;
-
// Used for text-shadow and box-shadow
class CSSShadowValue final : public CSSValue {
public:
diff --git a/Source/WebCore/css/CSSValuePair.cpp b/Source/WebCore/css/CSSValuePair.cpp
index 7c64d5a9e353..a3e169a697c7 100644
--- a/Source/WebCore/css/CSSValuePair.cpp
+++ b/Source/WebCore/css/CSSValuePair.cpp
@@ -25,6 +25,7 @@
#include "config.h"
#include "CSSValuePair.h"
+
#include <wtf/Hasher.h>
#include <wtf/text/WTFString.h>
diff --git a/Source/WebCore/css/CSSValuePair.h b/Source/WebCore/css/CSSValuePair.h
index 0fc85298ca62..44c4d97c01ab 100644
--- a/Source/WebCore/css/CSSValuePair.h
+++ b/Source/WebCore/css/CSSValuePair.h
@@ -26,6 +26,7 @@
#pragma once
#include "CSSValue.h"
+#include <wtf/Function.h>
namespace WebCore {
diff --git a/Source/WebCore/dom/SlotAssignment.h b/Source/WebCore/dom/SlotAssignment.h
index 9f9e1159e10a..478ca88bfca6 100644
--- a/Source/WebCore/dom/SlotAssignment.h
+++ b/Source/WebCore/dom/SlotAssignment.h
@@ -30,6 +30,7 @@
#include <wtf/HashSet.h>
#include <wtf/Vector.h>
#include <wtf/WeakHashMap.h>
+#include <wtf/WeakHashSet.h>
#include <wtf/WeakPtr.h>
#include <wtf/text/AtomString.h>
#include <wtf/text/AtomStringHash.h>
diff --git a/Source/WebCore/rendering/svg/RenderSVGPath.cpp b/Source/WebCore/rendering/svg/RenderSVGPath.cpp
index e9977db1c8b6..eba99e3a49d3 100644
--- a/Source/WebCore/rendering/svg/RenderSVGPath.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGPath.cpp
@@ -30,12 +30,14 @@
#include "RenderSVGPath.h"
#if ENABLE(LAYER_BASED_SVG_ENGINE)
+
#include "Gradient.h"
#include "ReferencedSVGResources.h"
#include "RenderLayer.h"
#include "RenderSVGResourceMarkerInlines.h"
#include "RenderSVGShapeInlines.h"
#include "RenderStyleInlines.h"
+#include "SVGElementTypeHelpers.h"
#include "SVGMarkerElement.h"
#include "SVGPathElement.h"
#include "SVGSubpathData.h"
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
index 85f79031ed4e..2b379fa4ebfe 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
@@ -23,8 +23,10 @@
#include "RenderSVGResourceLinearGradient.h"
#if ENABLE(LAYER_BASED_SVG_ENGINE)
+
#include "RenderSVGModelObjectInlines.h"
#include "RenderSVGResourceLinearGradientInlines.h"
+#include "SVGElementTypeHelpers.h"
#include <wtf/IsoMallocInlines.h>
namespace WebCore {
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
index d65a81f773eb..27abd9b6e0f7 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
@@ -24,6 +24,7 @@
#include "RenderSVGResourceMarker.h"
#if ENABLE(LAYER_BASED_SVG_ENGINE)
+
#include "Element.h"
#include "ElementIterator.h"
#include "FloatPoint.h"
@@ -34,6 +35,7 @@
#include "RenderLayerInlines.h"
#include "RenderSVGModelObjectInlines.h"
#include "RenderSVGResourceMarkerInlines.h"
+#include "SVGElementTypeHelpers.h"
#include "SVGGraphicsElement.h"
#include "SVGLengthContext.h"
#include "SVGRenderStyle.h"
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
index 81321523d0e4..86c59ca6fab6 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
@@ -22,6 +22,7 @@
#include "RenderSVGResourceMasker.h"
#if ENABLE(LAYER_BASED_SVG_ENGINE)
+
#include "Element.h"
#include "ElementIterator.h"
#include "FloatPoint.h"
@@ -33,6 +34,7 @@
#include "RenderSVGModelObjectInlines.h"
#include "RenderSVGResourceMaskerInlines.h"
#include "SVGContainerLayout.h"
+#include "SVGElementTypeHelpers.h"
#include "SVGGraphicsElement.h"
#include "SVGLengthContext.h"
#include "SVGRenderStyle.h"
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
index 7d70fd721d73..25a9b293468e 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
@@ -23,9 +23,11 @@
#include "RenderSVGResourceRadialGradient.h"
#if ENABLE(LAYER_BASED_SVG_ENGINE)
+
#include "RenderSVGModelObjectInlines.h"
#include "RenderSVGResourceRadialGradientInlines.h"
#include "RenderSVGShape.h"
+#include "SVGElementTypeHelpers.h"
#include <wtf/IsoMallocInlines.h>
namespace WebCore {
diff --git a/Source/WebKit/Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp b/Source/WebKit/Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp
index a0c521a767f1..3d4c130de7fa 100644
--- a/Source/WebKit/Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp
+++ b/Source/WebKit/Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp
@@ -31,6 +31,7 @@
#include "WebGPUConvertFromBackingContext.h"
#include "WebGPUConvertToBackingContext.h"
#include <WebCore/WebGPURenderPassDepthStencilAttachment.h>
+#include <WebCore/WebGPUTextureView.h>
namespace WebKit::WebGPU {
--
2.43.0

View File

@ -0,0 +1,31 @@
https://bugs.gentoo.org/943213
https://bugs.webkit.org/show_bug.cgi?id=282120
https://github.com/WebKit/WebKit/commit/63f7badbada070ebaadd318b2801818ecf7e7ea0
https://github.com/WebKit/WebKit/pull/35743
https://unicode-org.atlassian.net/jira/software/c/projects/ICU/issues/ICU-22954
From 63f7badbada070ebaadd318b2801818ecf7e7ea0 Mon Sep 17 00:00:00 2001
From: Don Olmstead <don.olmstead@sony.com>
Date: Sat, 26 Oct 2024 08:27:01 -0700
Subject: [PATCH] Support ICU 76.1 build
https://bugs.webkit.org/show_bug.cgi?id=282120
Reviewed by Yusuke Suzuki.
In ICU 76.1 an additional macro `U_SHOW_CPLUSPLUS_HEADER_API` was added to
control visibility of the C++ API within ICU. Set this value to `0` since WebKit
wants to only use the C API.
* Source/WTF/wtf/Platform.h:
Canonical link: https://commits.webkit.org/285727@main
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -115,6 +115,7 @@
/* ICU configuration. Some of these match ICU defaults on some platforms, but we would like them consistently set everywhere we build WebKit. */
#define U_HIDE_DEPRECATED_API 1
#define U_SHOW_CPLUSPLUS_API 0
+#define U_SHOW_CPLUSPLUS_HEADER_API 0
#ifdef __cplusplus
#define UCHAR_TYPE char16_t
#endif

View File

@ -0,0 +1,40 @@
From: Alberto Garcia <berto@igalia.com>
Description: Use WTF_CPU_UNKNOWN when building for riscv64
WebKitGTK doesn't build on riscv64 even with the JIT disabled.
Treating the CPU as unknown is perhaps a bit severe, but it allows us
to get the build done until someone steps up to maintain this
properly.
Bug: https://bugs.webkit.org/show_bug.cgi?id=271371
Forwarded: no
Index: webkitgtk/Source/WTF/wtf/PlatformCPU.h
===================================================================
--- webkitgtk.orig/Source/WTF/wtf/PlatformCPU.h
+++ webkitgtk/Source/WTF/wtf/PlatformCPU.h
@@ -285,14 +285,6 @@
#endif /* ARM */
-/* CPU(RISCV64) - RISC-V 64-bit */
-#if defined(__riscv) \
- && defined(__riscv_xlen) \
- && (__riscv_xlen == 64)
-#define WTF_CPU_RISCV64 1
-#define WTF_CPU_KNOWN 1
-#endif
-
#if !CPU(KNOWN)
#define WTF_CPU_UNKNOWN 1
#endif
Index: webkitgtk/Source/cmake/WebKitCommon.cmake
===================================================================
--- webkitgtk.orig/Source/cmake/WebKitCommon.cmake
+++ webkitgtk/Source/cmake/WebKitCommon.cmake
@@ -125,8 +125,6 @@ if (NOT HAS_RUN_WEBKIT_COMMON)
set(WTF_CPU_PPC64 1)
elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le")
set(WTF_CPU_PPC64LE 1)
- elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64")
- set(WTF_CPU_RISCV64 1)
elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^loongarch64")
set(WTF_CPU_LOONGARCH64 1)
else ()

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>gnome@gentoo.org</email>
<name>Gentoo GNOME Desktop</name>
</maintainer>
<use>
<flag name="examples">Install the MiniBrowser example application</flag>
<flag name="gamepad">Enable gamepad input support via <pkg>dev-libs/libmanette</pkg></flag>
<flag name="jumbo-build">Combine source files to speed up build process</flag>
</use>
<upstream>
<bugs-to>https://bugs.webkit.org</bugs-to>
<changelog>https://www.webkitgtk.org/news.html</changelog>
<doc>https://webkitgtk.org/reference/webkitgtk/stable/</doc>
<remote-id type="github">WebKit/WebKit</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,254 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_REQ_USE="xml(+)"
PYTHON_COMPAT=( python3_{10..12} )
USE_RUBY="ruby31 ruby32 ruby33"
inherit check-reqs flag-o-matic gnome2 optfeature python-any-r1 ruby-single toolchain-funcs cmake
MY_P="webkitgtk-${PV}"
DESCRIPTION="Open source web browser engine"
HOMEPAGE="https://www.webkitgtk.org"
SRC_URI="https://www.webkitgtk.org/releases/${MY_P}.tar.xz"
S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-2+ BSD"
SLOT="4/37" # soname version of libwebkit2gtk-4.0
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
IUSE="aqua avif examples gamepad keyring +gstreamer +introspection pdf jpegxl +jumbo-build lcms seccomp spell systemd wayland X"
REQUIRED_USE="|| ( aqua wayland X )"
# Tests do not run when built from tarballs
# https://bugs.webkit.org/show_bug.cgi?id=215986
RESTRICT="test"
# Dependencies found at Source/cmake/OptionsGTK.cmake
# Missing WebRTC support, but ENABLE_WEB_RTC is experimental upstream
# media-libs/mesa dep is for libgbm
# >=gst-plugins-opus-1.14.4-r1 for opusparse (required by MSE)
# TODO: gst-plugins-base[X] is only needed when build configuration ends up
# with GLX set, but that's a bit automagic too to fix
RDEPEND="
>=x11-libs/cairo-1.16.0[X?]
>=media-libs/fontconfig-2.13.0:1.0
>=media-libs/freetype-2.9.0:2
>=dev-libs/libgcrypt-1.7.0:0=
dev-libs/libtasn1:=
>=x11-libs/gtk+-3.22.0:3[aqua?,introspection?,wayland?,X?]
>=media-libs/harfbuzz-1.4.2:=[icu(+)]
>=dev-libs/icu-61.2:=
media-libs/libjpeg-turbo:0=
>=media-libs/libepoxy-1.5.4[egl(+)]
>=net-libs/libsoup-2.54:2.4[introspection?]
>=dev-libs/libxml2-2.8.0:2=
>=media-libs/libpng-1.4:0=
dev-db/sqlite:3
sys-libs/zlib:0
media-libs/libwebp:=
>=app-accessibility/at-spi2-core-2.46.0:2
>=dev-libs/glib-2.70.0:2
>=dev-libs/libxslt-1.1.7
media-libs/woff2
keyring? ( app-crypt/libsecret )
introspection? ( >=dev-libs/gobject-introspection-1.59.1:= )
x11-libs/libdrm
media-libs/mesa
spell? ( >=app-text/enchant-0.22:2 )
gstreamer? (
>=media-libs/gstreamer-1.20:1.0
>=media-libs/gst-plugins-base-1.20:1.0[egl,X?]
media-libs/gst-plugins-base:1.0[opengl]
>=media-plugins/gst-plugins-opus-1.20:1.0
>=media-libs/gst-plugins-bad-1.20:1.0
)
X? ( x11-libs/libX11 )
dev-libs/hyphen
jpegxl? ( >=media-libs/libjxl-0.7.0:= )
avif? ( >=media-libs/libavif-0.9.0:= )
lcms? ( media-libs/lcms:2 )
media-libs/libglvnd
wayland? (
>=dev-libs/wayland-1.20
>=dev-libs/wayland-protocols-1.24
)
seccomp? (
>=sys-apps/bubblewrap-0.3.1
sys-libs/libseccomp
sys-apps/xdg-dbus-proxy
)
systemd? ( sys-apps/systemd:= )
gamepad? ( >=dev-libs/libmanette-0.2.4 )
"
DEPEND="${RDEPEND}"
# Need real bison, not yacc
BDEPEND="
${PYTHON_DEPS}
${RUBY_DEPS}
>=app-accessibility/at-spi2-core-2.5.3
dev-util/gdbus-codegen
dev-util/glib-utils
>=dev-util/gperf-3.0.1
dev-util/unifdef
>=sys-devel/bison-2.4.3
|| ( >=sys-devel/gcc-7.3 >=llvm-core/clang-5 )
sys-devel/gettext
virtual/pkgconfig
>=dev-lang/perl-5.10
virtual/perl-Data-Dumper
virtual/perl-Carp
virtual/perl-JSON-PP
wayland? ( dev-util/wayland-scanner )
"
CHECKREQS_DISK_BUILD="18G" # and even this might not be enough, bug #417307
# We cannot use PATCHES because src_prepare() calls cmake_src_prepare and
# gnome2_src_prepare, and both apply ${PATCHES[@]}
PATCHES=()
pkg_pretend() {
if [[ ${MERGE_TYPE} != "binary" ]] ; then
if is-flagq "-g*" && ! is-flagq "-g*0" ; then
einfo "Checking for sufficient disk space to build ${PN} with debugging CFLAGS"
check-reqs_pkg_pretend
fi
if ! test-flag-CXX -std=c++17 ; then
die "You need at least GCC 7.3.x or Clang >= 5 for C++17-specific compiler flags"
fi
fi
}
pkg_setup() {
if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
check-reqs_pkg_setup
fi
python-any-r1_pkg_setup
}
src_prepare() {
cmake_src_prepare
gnome2_src_prepare
# Fix USE=-jumbo-build on all arches
eapply "${FILESDIR}"/2.44.1-non-unified-build-fixes.patch
# https://bugs.gentoo.org/943213
eapply "${FILESDIR}"/2.44.4-fix-icu76.1.patch
# We don't want -Werror for gobject-introspection (bug #947761)
sed -i -e "s:--warn-error::" Source/cmake/FindGI.cmake || die
}
src_configure() {
# Respect CC, otherwise fails on prefix #395875
tc-export CC
# ODR violations (bug #915230, https://bugs.webkit.org/show_bug.cgi?id=233007)
filter-lto
# It does not compile on alpha without this in LDFLAGS
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648761
use alpha && append-ldflags "-Wl,--no-relax"
# Sigbuses on SPARC with mcpu and co., bug #???
use sparc && filter-flags "-mvis"
# https://bugs.webkit.org/show_bug.cgi?id=42070 , #301634
use ppc64 && append-flags "-mminimal-toc"
# Try to use less memory, bug #469942 (see Fedora .spec for reference)
append-ldflags $(test-flags-CCLD "-Wl,--no-keep-memory")
# Ruby situation is a bit complicated. See bug 513888
local rubyimpl
local ruby_interpreter=""
local RUBY
for rubyimpl in ${USE_RUBY}; do
if has_version -b "virtual/rubygems[ruby_targets_${rubyimpl}(-)]"; then
RUBY="$(type -P ${rubyimpl})"
ruby_interpreter="-DRUBY_EXECUTABLE=${RUBY}"
fi
done
# This will rarely occur. Only a couple of corner cases could lead us to
# that failure. See bug 513888
[[ -z ${ruby_interpreter} ]] && die "No suitable ruby interpreter found"
# JavaScriptCore/Scripts/postprocess-asm invokes another Ruby script directly
# so it doesn't respect RUBY_EXECUTABLE, bug #771744.
sed -i -e "s:#!/usr/bin/env ruby:#!${RUBY}:" $(grep -rl "/usr/bin/env ruby" Source/JavaScriptCore || die) || die
# TODO: Check Web Audio support
# should somehow let user select between them?
local mycmakeargs=(
-DPython_EXECUTABLE="${PYTHON}"
${ruby_interpreter}
# If bubblewrap[suid] then portage makes it go-r and cmake find_program fails with that
-DBWRAP_EXECUTABLE:FILEPATH="${EPREFIX}"/usr/bin/bwrap
-DDBUS_PROXY_EXECUTABLE:FILEPATH="${EPREFIX}"/usr/bin/xdg-dbus-proxy
-DPORT=GTK
# Source/cmake/WebKitFeatures.cmake
-DENABLE_API_TESTS=OFF
-DENABLE_BUBBLEWRAP_SANDBOX=$(usex seccomp)
-DENABLE_GAMEPAD=$(usex gamepad)
-DENABLE_MINIBROWSER=$(usex examples)
-DENABLE_PDFJS=$(usex pdf)
-DENABLE_GEOLOCATION=ON # Runtime optional (talks over dbus service)
-DENABLE_SPELLCHECK=$(usex spell)
-DENABLE_UNIFIED_BUILDS=$(usex jumbo-build)
-DENABLE_VIDEO=$(usex gstreamer)
-DUSE_GSTREAMER_WEBRTC=$(usex gstreamer)
-DUSE_GSTREAMER_TRANSCODER=$(usex gstreamer)
-DENABLE_WEB_CODECS=$(usex gstreamer) # https://bugs.webkit.org/show_bug.cgi?id=269147
-DENABLE_WEBDRIVER=OFF # Disable WebDriver for webkit2gtk-4.1 and use the webkit2gtk-6.0 one
-DENABLE_WEBGL=ON
-DENABLE_WEB_AUDIO=$(usex gstreamer)
-DUSE_AVIF=$(usex avif)
# Source/cmake/OptionsGTK.cmake
-DENABLE_DOCUMENTATION=OFF
-DENABLE_INTROSPECTION=$(usex introspection)
-DENABLE_JOURNALD_LOG=$(usex systemd)
-DENABLE_QUARTZ_TARGET=$(usex aqua)
-DENABLE_WAYLAND_TARGET=$(usex wayland)
-DENABLE_X11_TARGET=$(usex X)
-DUSE_GBM=ON
-DUSE_GTK4=OFF
-DUSE_JPEGXL=$(usex jpegxl)
-DUSE_LCMS=$(usex lcms)
-DUSE_LIBBACKTRACE=OFF
-DUSE_LIBDRM=ON
-DUSE_LIBHYPHEN=ON
-DUSE_LIBSECRET=$(usex keyring)
-DUSE_SOUP2=ON
-DUSE_WOFF2=ON
)
# Temporary workaround for bug 938162 (upstream bug 271371).
use riscv && mycmakeargs+=( -DENABLE_JIT=OFF )
# https://bugs.gentoo.org/761238
append-cppflags -DNDEBUG
WK_USE_CCACHE=NO cmake_src_configure
}
pkg_postinst() {
optfeature "geolocation service (used at runtime if available)" "app-misc/geoclue"
optfeature "Common Multimedia codecs" "media-plugins/gst-plugins-meta"
optfeature "VAAPI encoding support" "media-libs/gst-plugins-bad[vaapi]"
optfeature "MPEG-DASH support" "media-plugins/gst-plugins-dash"
optfeature "HTTP live streaming (HLS) support" "media-plugins/gst-plugins-hls"
}

View File

@ -0,0 +1,256 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_REQ_USE="xml(+)"
PYTHON_COMPAT=( python3_{10..13} )
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
inherit check-reqs flag-o-matic gnome2 optfeature python-any-r1 ruby-single toolchain-funcs cmake
MY_P="webkitgtk-${PV}"
DESCRIPTION="Open source web browser engine"
HOMEPAGE="https://www.webkitgtk.org"
SRC_URI="https://www.webkitgtk.org/releases/${MY_P}.tar.xz"
S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-2+ BSD"
SLOT="4/37" # soname version of libwebkit2gtk-4.0
KEYWORDS="amd64 ~arm arm64 ppc ppc64 ~sparc ~x86"
IUSE="aqua avif examples gamepad keyring +gstreamer +introspection pdf jpegxl +jumbo-build lcms seccomp spell systemd wayland X"
REQUIRED_USE="|| ( aqua wayland X )"
# Tests do not run when built from tarballs
# https://bugs.webkit.org/show_bug.cgi?id=215986
RESTRICT="test"
# Dependencies can be found in Source/cmake/OptionsGTK.cmake.
#
# * Missing WebRTC support, but ENABLE_WEB_RTC is experimental upstream.
#
# * media-libs/mesa dep is for libgbm
#
# * >=gst-plugins-opus-1.14.4-r1 for opusparse (required by MSE)
#
# * TODO: gst-plugins-base[X] is only needed when build configuration ends up
# with GLX set, but that's a bit automagic too to fix
#
# * Cairo is only needed on big-endian systems, where Skia is not officially
# supported (the build system will choose a backend for you). We could probably
# hard-code a list of BE arches here, to avoid the extra dependency? But I am
# holding out hope that this might actually get fixed before we need to do that.
#
# * dev-util/sysprof-capture is disabled because it was a new dependency in 2.46
# and we don't need any more new problems.
#
RDEPEND="
app-accessibility/at-spi2-core:2
dev-db/sqlite:3
dev-libs/glib:2
dev-libs/hyphen
dev-libs/icu:=
dev-libs/libgcrypt:0=
dev-libs/libtasn1:=
dev-libs/libxml2:2=
dev-libs/libxslt
media-libs/fontconfig:1.0
media-libs/freetype:2
media-libs/harfbuzz:=[icu(+)]
media-libs/libjpeg-turbo:0=
media-libs/libepoxy[egl(+)]
media-libs/libglvnd
media-libs/libpng:0=
media-libs/libwebp:=
media-libs/mesa
media-libs/woff2
net-libs/libsoup:2.4[introspection?]
sys-libs/zlib:0
x11-libs/cairo[X?]
x11-libs/gtk+:3[aqua?,introspection?,wayland?,X?]
x11-libs/libdrm
avif? ( media-libs/libavif:= )
gamepad? ( dev-libs/libmanette )
gstreamer? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0[egl,opengl,X?]
media-plugins/gst-plugins-opus:1.0
media-libs/gst-plugins-bad:1.0
)
introspection? ( dev-libs/gobject-introspection:= )
jpegxl? ( media-libs/libjxl:= )
keyring? ( app-crypt/libsecret )
lcms? ( media-libs/lcms:2 )
seccomp? (
sys-apps/bubblewrap
sys-libs/libseccomp
sys-apps/xdg-dbus-proxy
)
spell? ( app-text/enchant:2 )
systemd? ( sys-apps/systemd:= )
X? ( x11-libs/libX11 )
wayland? (
dev-libs/wayland
dev-libs/wayland-protocols
)
"
DEPEND="${RDEPEND}"
# Need real bison, not yacc
BDEPEND="
${PYTHON_DEPS}
${RUBY_DEPS}
app-accessibility/at-spi2-core
dev-lang/perl
dev-util/gdbus-codegen
dev-util/glib-utils
dev-util/gperf
dev-util/unifdef
sys-devel/bison
sys-devel/gettext
virtual/perl-Data-Dumper
virtual/perl-Carp
virtual/perl-JSON-PP
virtual/pkgconfig
wayland? ( dev-util/wayland-scanner )
"
CHECKREQS_DISK_BUILD="18G" # and even this might not be enough, bug #417307
# We cannot use PATCHES because src_prepare() calls cmake_src_prepare and
# gnome2_src_prepare, and both apply ${PATCHES[@]}
PATCHES=()
pkg_pretend() {
if [[ ${MERGE_TYPE} != "binary" ]] ; then
if is-flagq "-g*" && ! is-flagq "-g*0" ; then
einfo "Checking for sufficient disk space to build ${PN} with debugging CFLAGS"
check-reqs_pkg_pretend
fi
if ! test-flag-CXX -std=c++17 ; then
die "You need at least GCC 7.3.x or Clang >= 5 for C++17-specific compiler flags"
fi
fi
}
pkg_setup() {
if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
check-reqs_pkg_setup
fi
python-any-r1_pkg_setup
}
src_prepare() {
cmake_src_prepare
gnome2_src_prepare
# https://bugs.gentoo.org/943213
eapply "${FILESDIR}"/2.44.4-fix-icu76.1.patch
# We don't want -Werror for gobject-introspection (bug #947761)
sed -i -e "s:--warn-error::" Source/cmake/FindGI.cmake || die
}
src_configure() {
# Respect CC, otherwise fails on prefix #395875
tc-export CC
# ODR violations (bug #915230, https://bugs.webkit.org/show_bug.cgi?id=233007)
filter-lto
# It does not compile on alpha without this in LDFLAGS
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648761
use alpha && append-ldflags "-Wl,--no-relax"
# Sigbuses on SPARC with mcpu and co., bug #???
use sparc && filter-flags "-mvis"
# https://bugs.webkit.org/show_bug.cgi?id=42070 , #301634
use ppc64 && append-flags "-mminimal-toc"
# Try to use less memory, bug #469942 (see Fedora .spec for reference)
append-ldflags $(test-flags-CCLD "-Wl,--no-keep-memory")
# Ruby situation is a bit complicated. See bug 513888
local rubyimpl
local ruby_interpreter=""
local RUBY
for rubyimpl in ${USE_RUBY}; do
if has_version -b "virtual/rubygems[ruby_targets_${rubyimpl}(-)]"; then
RUBY="$(type -P ${rubyimpl})"
ruby_interpreter="-DRUBY_EXECUTABLE=${RUBY}"
fi
done
# This will rarely occur. Only a couple of corner cases could lead us to
# that failure. See bug 513888
[[ -z ${ruby_interpreter} ]] && die "No suitable ruby interpreter found"
# JavaScriptCore/Scripts/postprocess-asm invokes another Ruby script directly
# so it doesn't respect RUBY_EXECUTABLE, bug #771744.
sed -i -e "s:#!/usr/bin/env ruby:#!${RUBY}:" $(grep -rl "/usr/bin/env ruby" Source/JavaScriptCore || die) || die
# TODO: Check Web Audio support
# should somehow let user select between them?
local mycmakeargs=(
-DPython_EXECUTABLE="${PYTHON}"
${ruby_interpreter}
# If bubblewrap[suid] then portage makes it go-r and cmake find_program fails with that
-DBWRAP_EXECUTABLE:FILEPATH="${EPREFIX}"/usr/bin/bwrap
-DDBUS_PROXY_EXECUTABLE:FILEPATH="${EPREFIX}"/usr/bin/xdg-dbus-proxy
-DPORT=GTK
# Source/cmake/WebKitFeatures.cmake
-DENABLE_API_TESTS=OFF
-DENABLE_BUBBLEWRAP_SANDBOX=$(usex seccomp)
-DENABLE_GAMEPAD=$(usex gamepad)
-DENABLE_GEOLOCATION=ON # Runtime optional (talks over dbus service)
-DENABLE_MINIBROWSER=$(usex examples)
-DENABLE_PDFJS=$(usex pdf)
-DENABLE_SPELLCHECK=$(usex spell)
-DENABLE_UNIFIED_BUILDS=$(usex jumbo-build)
-DENABLE_VIDEO=$(usex gstreamer)
-DENABLE_WEB_AUDIO=$(usex gstreamer)
-DENABLE_WEB_CODECS=$(usex gstreamer) # https://bugs.webkit.org/show_bug.cgi?id=269147
-DENABLE_WEBDRIVER=OFF
-DENABLE_WEBGL=ON
-DUSE_AVIF=$(usex avif)
-DUSE_GSTREAMER_WEBRTC=$(usex gstreamer)
-DUSE_GSTREAMER_TRANSCODER=$(usex gstreamer)
# Source/cmake/OptionsGTK.cmake
-DENABLE_DOCUMENTATION=OFF
-DENABLE_INTROSPECTION=$(usex introspection)
-DENABLE_JOURNALD_LOG=$(usex systemd)
-DENABLE_QUARTZ_TARGET=$(usex aqua)
-DENABLE_WAYLAND_TARGET=$(usex wayland)
-DENABLE_X11_TARGET=$(usex X)
-DUSE_GBM=ON
-DUSE_GTK4=OFF
-DUSE_JPEGXL=$(usex jpegxl)
-DUSE_LCMS=$(usex lcms)
-DUSE_LIBBACKTRACE=OFF
-DUSE_LIBDRM=ON
-DUSE_LIBHYPHEN=ON
-DUSE_LIBSECRET=$(usex keyring)
-DUSE_SOUP2=ON
-DUSE_SYSPROF_CAPTURE=OFF
-DUSE_WOFF2=ON
)
# Temporary workaround for bug 938162 (upstream bug 271371).
# The idea to disable WebAssembly and the FTL JIT instead
# of using ENABLE_JIT=OFF was stolen from OpenBSD.
use riscv && mycmakeargs+=( -DENABLE_WEBASSEMBLY=OFF -DENABLE_FTL_JIT=OFF )
# https://bugs.gentoo.org/761238
append-cppflags -DNDEBUG
WK_USE_CCACHE=NO cmake_src_configure
}
pkg_postinst() {
optfeature "geolocation service (used at runtime if available)" "app-misc/geoclue"
optfeature "Common Multimedia codecs" "media-plugins/gst-plugins-meta"
optfeature "VAAPI encoding support" "media-libs/gst-plugins-bad[vaapi]"
optfeature "MPEG-DASH support" "media-plugins/gst-plugins-dash"
optfeature "HTTP live streaming (HLS) support" "media-plugins/gst-plugins-hls"
}

View File

@ -0,0 +1,263 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_REQ_USE="xml(+)"
PYTHON_COMPAT=( python3_{10..13} )
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
inherit check-reqs flag-o-matic gnome2 optfeature python-any-r1 ruby-single toolchain-funcs cmake
MY_P="webkitgtk-${PV}"
DESCRIPTION="Open source web browser engine"
HOMEPAGE="https://www.webkitgtk.org"
SRC_URI="https://www.webkitgtk.org/releases/${MY_P}.tar.xz"
S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-2+ BSD"
SLOT="4/37" # soname version of libwebkit2gtk-4.0
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="aqua avif examples gamepad keyring +gstreamer +introspection pdf jpegxl +jumbo-build lcms seccomp spell systemd wayland X"
REQUIRED_USE="|| ( aqua wayland X )"
# Tests do not run when built from tarballs
# https://bugs.webkit.org/show_bug.cgi?id=215986
RESTRICT="test"
# Dependencies can be found in Source/cmake/OptionsGTK.cmake.
#
# * Missing WebRTC support, but ENABLE_WEB_RTC is experimental upstream.
#
# * media-libs/mesa dep is for libgbm
#
# * >=gst-plugins-opus-1.14.4-r1 for opusparse (required by MSE)
#
# * TODO: gst-plugins-base[X] is only needed when build configuration ends up
# with GLX set, but that's a bit automagic too to fix
#
# * Cairo is only needed on big-endian systems, where Skia is not officially
# supported (the build system will choose a backend for you). We could probably
# hard-code a list of BE arches here, to avoid the extra dependency? But I am
# holding out hope that this might actually get fixed before we need to do that.
#
# * dev-util/sysprof-capture is disabled because it was a new dependency in 2.46
# and we don't need any more new problems.
#
RDEPEND="
app-accessibility/at-spi2-core:2
dev-db/sqlite:3
dev-libs/glib:2
dev-libs/hyphen
dev-libs/icu:=
dev-libs/libgcrypt:0=
dev-libs/libtasn1:=
dev-libs/libxml2:2
dev-libs/libxslt
media-libs/fontconfig:1.0
media-libs/freetype:2
media-libs/harfbuzz:=[icu(+)]
media-libs/libjpeg-turbo:0=
media-libs/libepoxy[egl(+)]
media-libs/libglvnd
media-libs/libpng:0=
media-libs/libwebp:=
media-libs/mesa
media-libs/woff2
net-libs/libsoup:2.4[introspection?]
sys-libs/zlib:0
x11-libs/cairo[X?]
x11-libs/gtk+:3[aqua?,introspection?,wayland?,X?]
x11-libs/libdrm
avif? ( media-libs/libavif:= )
gamepad? ( dev-libs/libmanette )
gstreamer? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0[egl,opengl,X?]
media-plugins/gst-plugins-opus:1.0
media-libs/gst-plugins-bad:1.0
)
introspection? ( dev-libs/gobject-introspection:= )
jpegxl? ( media-libs/libjxl:= )
keyring? ( app-crypt/libsecret )
lcms? ( media-libs/lcms:2 )
seccomp? (
sys-apps/bubblewrap
sys-libs/libseccomp
sys-apps/xdg-dbus-proxy
)
spell? ( app-text/enchant:2 )
systemd? ( sys-apps/systemd:= )
X? ( x11-libs/libX11 )
wayland? (
dev-libs/wayland
dev-libs/wayland-protocols
)
"
DEPEND="${RDEPEND}"
# Need real bison, not yacc
BDEPEND="
${PYTHON_DEPS}
${RUBY_DEPS}
app-accessibility/at-spi2-core
dev-lang/perl
dev-util/gdbus-codegen
dev-util/glib-utils
dev-util/gperf
dev-util/unifdef
sys-devel/bison
sys-devel/gettext
virtual/perl-Data-Dumper
virtual/perl-Carp
virtual/perl-JSON-PP
virtual/pkgconfig
wayland? ( dev-util/wayland-scanner )
"
CHECKREQS_DISK_BUILD="18G" # and even this might not be enough, bug #417307
# We cannot use PATCHES because src_prepare() calls cmake_src_prepare and
# gnome2_src_prepare, and both apply ${PATCHES[@]}
PATCHES=()
pkg_pretend() {
if [[ ${MERGE_TYPE} != "binary" ]] ; then
if is-flagq "-g*" && ! is-flagq "-g*0" ; then
einfo "Checking for sufficient disk space to build ${PN} with debugging CFLAGS"
check-reqs_pkg_pretend
fi
if ! test-flag-CXX -std=c++17 ; then
die "You need at least GCC 7.3.x or Clang >= 5 for C++17-specific compiler flags"
fi
fi
}
pkg_setup() {
if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
check-reqs_pkg_setup
fi
python-any-r1_pkg_setup
}
src_prepare() {
cmake_src_prepare
gnome2_src_prepare
# https://bugs.gentoo.org/938162, see also mycmakeargs
eapply "${FILESDIR}"/2.48.3-fix-ftbfs-riscv64.patch
# We don't want -Werror for gobject-introspection (bug #947761)
sed -i -e "s:--warn-error::" Source/cmake/FindGI.cmake || die
}
src_configure() {
# Respect CC, otherwise fails on prefix #395875
tc-export CC
# ODR violations (bug #915230, https://bugs.webkit.org/show_bug.cgi?id=233007)
filter-lto
# It does not compile on alpha without this in LDFLAGS
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648761
use alpha && append-ldflags "-Wl,--no-relax"
# Sigbuses on SPARC with mcpu and co., bug #???
use sparc && filter-flags "-mvis"
# https://bugs.webkit.org/show_bug.cgi?id=42070 , #301634
use ppc64 && append-flags "-mminimal-toc"
# Try to use less memory, bug #469942 (see Fedora .spec for reference)
append-ldflags $(test-flags-CCLD "-Wl,--no-keep-memory")
# Ruby situation is a bit complicated. See bug 513888
local rubyimpl
local ruby_interpreter=""
local RUBY
for rubyimpl in ${USE_RUBY}; do
if has_version -b "virtual/rubygems[ruby_targets_${rubyimpl}(-)]"; then
RUBY="$(type -P ${rubyimpl})"
ruby_interpreter="-DRUBY_EXECUTABLE=${RUBY}"
fi
done
# This will rarely occur. Only a couple of corner cases could lead us to
# that failure. See bug 513888
[[ -z ${ruby_interpreter} ]] && die "No suitable ruby interpreter found"
# JavaScriptCore/Scripts/postprocess-asm invokes another Ruby script directly
# so it doesn't respect RUBY_EXECUTABLE, bug #771744.
sed -i -e "s:#!/usr/bin/env ruby:#!${RUBY}:" $(grep -rl "/usr/bin/env ruby" Source/JavaScriptCore || die) || die
# TODO: Check Web Audio support
# should somehow let user select between them?
local mycmakeargs=(
-DPython_EXECUTABLE="${PYTHON}"
${ruby_interpreter}
# If bubblewrap[suid] then portage makes it go-r and cmake find_program fails with that
-DBWRAP_EXECUTABLE:FILEPATH="${EPREFIX}"/usr/bin/bwrap
-DDBUS_PROXY_EXECUTABLE:FILEPATH="${EPREFIX}"/usr/bin/xdg-dbus-proxy
-DPORT=GTK
# Source/cmake/WebKitFeatures.cmake
-DENABLE_API_TESTS=OFF
-DENABLE_BUBBLEWRAP_SANDBOX=$(usex seccomp)
-DENABLE_DRAG_SUPPORT=OFF
-DENABLE_GAMEPAD=$(usex gamepad)
-DENABLE_GEOLOCATION=ON # Runtime optional (talks over dbus service)
-DENABLE_MINIBROWSER=$(usex examples)
-DENABLE_PDFJS=$(usex pdf)
-DENABLE_SPEECH_SYNTHESIS=OFF
-DENABLE_SPELLCHECK=$(usex spell)
-DENABLE_TOUCH_EVENTS=OFF
-DENABLE_UNIFIED_BUILDS=$(usex jumbo-build)
-DENABLE_VIDEO=$(usex gstreamer)
-DENABLE_WEB_AUDIO=$(usex gstreamer)
-DENABLE_WEB_CODECS=$(usex gstreamer) # https://bugs.webkit.org/show_bug.cgi?id=269147
-DENABLE_WEBDRIVER=OFF
-DENABLE_WEBGL=ON
-DUSE_AVIF=$(usex avif)
-DUSE_GSTREAMER_WEBRTC=$(usex gstreamer)
-DUSE_GSTREAMER_TRANSCODER=$(usex gstreamer)
# Source/cmake/OptionsGTK.cmake
-DENABLE_DOCUMENTATION=OFF
-DENABLE_INTROSPECTION=$(usex introspection)
-DENABLE_JOURNALD_LOG=$(usex systemd)
-DENABLE_QUARTZ_TARGET=$(usex aqua)
-DENABLE_WAYLAND_TARGET=$(usex wayland)
-DENABLE_X11_TARGET=$(usex X)
-DUSE_GBM=ON
-DUSE_GTK4=OFF
-DUSE_JPEGXL=$(usex jpegxl)
-DUSE_LCMS=$(usex lcms)
-DUSE_LIBBACKTRACE=OFF
-DUSE_LIBDRM=ON
-DUSE_LIBHYPHEN=ON
-DUSE_LIBSECRET=$(usex keyring)
-DUSE_SOUP2=ON
-DUSE_SYSPROF_CAPTURE=OFF
-DUSE_WOFF2=ON
)
# Temporary workaround for bug 938162 (upstream bug 271371)
# in concert with our Debian patch. The idea to enable C_LOOP
# is also stolen from Debian's build.
use riscv && mycmakeargs+=(
-DENABLE_WEBASSEMBLY=OFF
-DENABLE_JIT=OFF
-DENABLE_C_LOOP=ON
)
# https://bugs.gentoo.org/761238
append-cppflags -DNDEBUG
WK_USE_CCACHE=NO cmake_src_configure
}
pkg_postinst() {
optfeature "geolocation service (used at runtime if available)" "app-misc/geoclue"
optfeature "Common Multimedia codecs" "media-plugins/gst-plugins-meta"
optfeature "VAAPI encoding support" "media-libs/gst-plugins-bad[vaapi]"
optfeature "MPEG-DASH support" "media-plugins/gst-plugins-dash"
optfeature "HTTP live streaming (HLS) support" "media-plugins/gst-plugins-hls"
}

View File

@ -20,5 +20,8 @@ DIST VTKLargeData-9.3.1.tar.gz 247523669 BLAKE2B 88ec5046f502db14dd6a26ef81e386b
DIST VTKLargeDataFiles-9.3.1.tar.gz 247505524 BLAKE2B 5de069309c59a8a73365fb9faba9904189d723fb72976f372e40db3eb100342a19fecd582bd0aa42fc1012675b442a8e42611632004d6b6d6708468c27a4265e SHA512 bbbf0c193432cb5d8a5618c41e66609c7e6f3e4f24f588124c46b537ecec28b5670420b7f77185da534e4098f8b95d8ec4e392fc017df934a84bfc9dc833f634
DIST vtkDocHtml-9.3.1.tar.gz 165542400 BLAKE2B da8084137b2848f82bf091535950738bd718e65cac8f461fdfb8e9c63ef6db68acfa02655531c8fe22e35f89395d2d066aa5b051abac0e774883552c898de6d9 SHA512 de0d2153c97864b49a8b99e6fbfc8bab78c1522d25bf40ed1f271a8bb4f1f205b008d6bd39f835816972c8439d01f78b68f34d1f88f87755174f0d559841ba29
EBUILD vtk-9.3.1-r1.ebuild 34578 BLAKE2B 92e101faa90957b83c47d509695503de3b1721b8e3f45f70a89a9a0985f1b915a85517bfecfa6292f050a839f090a851adecc0474cb523614e69306da75b9ed0 SHA512 dc1645a214850d00be40ceba246e7a21f276e386685c17705a81dfe507a657e59e67a23b0f1b2bef42e72bed8de28cf513ffbe893e1bd2f06df3bb9151212062
EBUILD vtk-9.3.1-r2.ebuild 34579 BLAKE2B 06ec9258272cd0027dc31ef71e01327956fdec3debc4ad784e06f059daad956449b5922f4aadd6dc10ec53aa8af2ac08d47ebeefff5fec25328773c1300fbe79 SHA512 950ce9864c335df5244460db573b81fa5dd76e440ca7d5ae88171720becb871e0332ceb5a46993455bd4a1aa0ad5d18c4bc4ece40481e83102a39f2a58f9d6b9
EBUILD vtk-9.3.1-r3.ebuild 34555 BLAKE2B f93918cc16c213d5c80a6167b32bdf3bfc7d55d5d6f9cddaf208dc091a4f5f1d4a7bc78ecff1b1f03688562287b05eb2d8f69c4696f4236d7bcc3775eedffd9e SHA512 9839c80528ab59a75c2761129d4102b95fe60433a9a9dd5c1d2da140455b0a28fd103c372847c60e7702c3e6a4ef1a0862797e37354e53fda76a03d8619317be
EBUILD vtk-9.3.1-r4.ebuild 34581 BLAKE2B 2ad34343729a72dc13302745b56795dbfb0361513cff52cf2f1ff6d971dfbb96e595752b252da49cbe20157b6c68feb9cb83cd39d0af3b9dac67a5bbaca882e4 SHA512 76be3cb2bb6dd8b2fc72b388459abc86d0dc58f5d635651e2d556220dd111ea5767666023341cb4233a04b9357b809a24c4d52bf370b9515622b8307fbbddc90
EBUILD vtk-9.3.1.ebuild 34551 BLAKE2B de8ccdc6c7fe67148bf1df104bf6549669fba842ed3b483fb6bcd98b5f3c6d53c236ab363b68fc1240611230eecc6cd7faeb5e91dacf1f98831e1f36ac65aab5 SHA512 dc0896391c8c716dc6e6588aed121842cca755912d856c7251ba5dfe7e9443723c7ef23d43974ffd55c81f94401bf199927179fdc2c6aa6f4116512dbd392c42
MISC metadata.xml 1699 BLAKE2B befce4e1f61b6cb0d772a2826ed9349cf36832ebc0507edc2dff658441b44be351c1fe97c74ac9b21eed8310a254dd2a3b408bc93a15c4b2db8cd55a5e3f703a SHA512 d9921a30c66ef3a3d2a27da1add22a29352cd3fd71c49e834523931b8edf21ca0d785290cddabbe29b068ce00fa05a898c331a1ad80ffaa190e9f92b1a1ab64d

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff