repo/gentoo:master commit in: media-video/obs-studio/

"Jimi Huotari" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1786818744.6db397e93172e8ddcd38463cf47cd86210701c4f.chiitoo@gentoo>
commit:     6db397e93172e8ddcd38463cf47cd86210701c4f
Author:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 15 18:18:45 2026 +0000
Commit:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
CommitDate: Sat Aug 15 18:32:24 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6db397e9

media-video/obs-studio: add 32.2.2

Closes: https://bugs.gentoo.org/980717
Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org>

 media-video/obs-studio/Manifest                 |   1 +
 media-video/obs-studio/obs-studio-32.2.2.ebuild | 280 ++++++++++++++++++++++++
 2 files changed, 281 insertions(+)

diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest
index 8fe311053b99..a640bf627a65 100644
--- a/media-video/obs-studio/Manifest
+++ b/media-video/obs-studio/Manifest
@@ -4,5 +4,6 @@ DIST obs-browser-3f0a2cdf378939ebe3c6f9ab36d4ea100c25aac2.tar.gz 118898 BLAKE2B
 DIST obs-browser-ea04212e4bbadd077f9e6038758c4e4779c24fa3.tar.gz 117820 BLAKE2B ef21fde3b0508e4753da4549ca48348c03b4a8509904ac0aa8a80e4e4f3c1547be610de5890e688f058bcb3d2bbeda9fac5eb0b4d71ed5f8cef3a56a7709b10c SHA512 2b8ffb22a78b3ac89d5742fac420d762fbf9a8631d97cfbe6001d9506206bc5ee0ba49c9dbf566c4d45955fcbb1ea9f90f7b9b6b228da9a05b62f04306684150
 DIST obs-studio-32.1.2.tar.gz 16150365 BLAKE2B eb611ab03b902c357b5cd1e80b14340d97c681ef027e794d9d0a79836b5d5997b0640b438203b65ae6ead680471e9fa7849edf38576ea714e8d999ebc48b4673 SHA512 5da9f659b433cc282d3fb10a52af01e9aa0e7eaaf5c61eb2f201d6f88c61fa14a46db5ba4b6c04347d75d3912e3d09d593b355f9d83e524d2df8c043acba6edc
 DIST obs-studio-32.2.0.tar.gz 16185428 BLAKE2B 4ee43b8c2362a40e68a2c69a211d5602eaca9f13fb4d3af57e4386754590158f03f65f54e1408ba03ca61524cce879f058e6b0b5422f5b46021c7ee24750ecf1 SHA512 d0db8139a451dcc6a1e64db71757b76d2c3c92a9e0b51b95bc1ff284d3dfee23bdbfa04193125743526ebd461b4ccaaad24464a4ea9d1ab813db6ebfafd67931
+DIST obs-studio-32.2.2.tar.gz 16184372 BLAKE2B 4946fd5d5580188be9e6994c612ee5ea7930b209fd7c021adec862ab9055dbde868598f389fae63ffce10a4d4217b8b9de81a1e66aa4d02c71e0140abeb56329 SHA512 3ea88c32f8c0564295cb15ab6d93376d878c26b4dc27d36872905d940f8855bb6ce36fcf71a3980382ab186c8325d31147b444f30761b92831ef9e50453cc6eb
 DIST obs-websocket-1ef34bf48110c2a18184e50e41cd0b1a855e2147.tar.gz 262640 BLAKE2B d995b51059dc47552220d9d821bb487743c929a877f5eb13218d8d08d3052f8d285c430e57987123a554a63b88903051f19587fd778ab8b0eac4e35cf68affa1 SHA512 572b07ecab15e923e72a85e2a5daf2cee90aa478e99e50171d6c865c667d701a36069d1700008fa8c65135ad36c5c16609bdb3286d95b77fc9056269b98f8a2c
 DIST obs-websocket-1fcb95b15aa88b1b7e9bda3f9c8650e314377169.tar.gz 261957 BLAKE2B 9ea46a8488557d3dac1d13a7cbcf132351d5c03997bf6fd215ebdd8d5d605c3698e1cd042e52bcd0d1ab88fc03ccfa39d4deb59e3cb1363705e145bd88cec1a9 SHA512 e7b8cd01a7df4324c172a7a83dc1e9b169b905be5776b35fb50c21b35242b9499312bd606355c5a36052bf4293af25de81b320487fa1ceae69570e0bcabe6811

diff --git a/media-video/obs-studio/obs-studio-32.2.2.ebuild b/media-video/obs-studio/obs-studio-32.2.2.ebuild
new file mode 100644
index 000000000000..ba00870fac18
--- /dev/null
+++ b/media-video/obs-studio/obs-studio-32.2.2.ebuild
@@ -0,0 +1,280 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_REMOVE_MODULES_LIST=( FindMbedTLS )
+LUA_COMPAT=( luajit )
+# For the time being upstream supports up to Python 3.12 only.
+# Any issues found with 3.13+ should be reported as a Gentoo bug.
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit cmake flag-o-matic lua-single optfeature python-single-r1 xdg
+
+CEF_AMD64="cef_binary_6533_linux_x86_64_v6"
+CEF_ARM64="cef_binary_6533_linux_aarch64_v6"
+OBS_BROWSER_COMMIT="3f0a2cdf378939ebe3c6f9ab36d4ea100c25aac2"
+OBS_WEBSOCKET_COMMIT="1ef34bf48110c2a18184e50e41cd0b1a855e2147"
+
+DESCRIPTION="Software for Recording and Streaming Live Video Content"
+HOMEPAGE="https://obsproject.com"
+
+if [[ ${PV} == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git"
+	EGIT_SUBMODULES=(
+		plugins/obs-browser
+		plugins/obs-websocket
+	)
+else
+	SRC_URI="
+		https://github.com/obsproject/${PN}/archive/${PV}.tar.gz
+			-> ${P}.tar.gz
+		https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz
+			-> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz
+		https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz
+			-> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz
+	"
+	KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+SRC_URI+="
+	browser? (
+		amd64? ( https://cdn-fastly.obsproject.com/downloads/${CEF_AMD64}.tar.xz )
+		arm64? ( https://cdn-fastly.obsproject.com/downloads/${CEF_ARM64}.tar.xz )
+	)
+"
+
+LICENSE="Boost-1.0 GPL-2+ MIT Unlicense"
+SLOT="0"
+IUSE="
+	+alsa browser decklink fdk jack lua mpegts nvenc pulseaudio python
+	qsv screencast sndio speex test-input truetype v4l vlc wayland websocket
+"
+REQUIRED_USE="
+	browser? ( || ( alsa pulseaudio ) )
+	lua? ( ${LUA_REQUIRED_USE} )
+	python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+BDEPEND="
+	kde-frameworks/extra-cmake-modules:0
+	lua? ( dev-lang/swig )
+	python? ( dev-lang/swig )
+"
+# media-video/ffmpeg[opus] required due to bug 909566
+DEPEND="
+	dev-cpp/nlohmann_json
+	dev-libs/glib:2
+	dev-libs/jansson:=
+	dev-libs/simde
+	dev-libs/uthash
+	dev-qt/qtbase:6=[dbus,network,widgets,X,xml(+)]
+	dev-qt/qtsvg:6
+	media-libs/libglvnd[X]
+	media-libs/libva
+	media-libs/rnnoise
+	media-libs/x264:=
+	>=media-video/ffmpeg-6.1:=[nvenc?,opus,x264]
+	net-misc/curl
+	net-libs/mbedtls:3=
+	sys-apps/dbus
+	sys-apps/pciutils
+	sys-apps/util-linux
+	virtual/zlib:=
+	x11-libs/libdrm
+	x11-libs/libX11
+	x11-libs/libxcb:=
+	x11-libs/libXcomposite
+	x11-libs/libXfixes
+	x11-libs/libxkbcommon
+	alsa? ( media-libs/alsa-lib )
+	browser? (
+		>=app-accessibility/at-spi2-core-2.46.0:2
+		dev-libs/expat
+		dev-libs/glib
+		dev-libs/nspr
+		dev-libs/nss
+		media-libs/alsa-lib
+		media-libs/fontconfig
+		media-libs/mesa[gbm(+)]
+		net-print/cups
+		x11-libs/cairo
+		x11-libs/libXcursor
+		x11-libs/libXdamage
+		x11-libs/libXext
+		x11-libs/libXi
+		x11-libs/libxkbcommon
+		x11-libs/libXrandr
+		x11-libs/libXrender
+		x11-libs/libXScrnSaver
+		x11-libs/libxshmfence
+		x11-libs/libXtst
+		x11-libs/pango
+	)
+	fdk? ( media-libs/fdk-aac:= )
+	jack? ( virtual/jack )
+	lua? ( ${LUA_DEPS} )
+	mpegts? (
+		net-libs/librist
+		net-libs/srt
+	)
+	nvenc? ( >=media-libs/nv-codec-headers-12 )
+	pulseaudio? ( media-libs/libpulse )
+	python? ( ${PYTHON_DEPS} )
+	qsv? ( media-libs/libvpl )
+	screencast? ( media-video/pipewire:= )
+	sndio? ( media-sound/sndio )
+	speex? ( media-libs/speexdsp )
+	truetype? (
+		media-libs/fontconfig
+		media-libs/freetype
+	)
+	v4l? (
+		media-libs/libv4l
+		virtual/udev
+	)
+	vlc? ( <media-video/vlc-4.0:= )
+	wayland? (
+		dev-libs/wayland
+		dev-qt/qtbase:6[wayland]
+		x11-libs/libxkbcommon
+	)
+	websocket? (
+		dev-cpp/asio
+		dev-cpp/websocketpp
+		dev-libs/qr-code-generator
+	)
+"
+RDEPEND="${DEPEND}"
+
+QA_PREBUILT="
+	usr/lib*/obs-plugins/chrome-sandbox
+	usr/lib*/obs-plugins/libcef.so
+	usr/lib*/obs-plugins/libEGL.so
+	usr/lib*/obs-plugins/libGLESv2.so
+	usr/lib*/obs-plugins/libvk_swiftshader.so
+	usr/lib*/obs-plugins/libvulkan.so.1
+	usr/lib*/obs-plugins/swiftshader/libEGL.so
+	usr/lib*/obs-plugins/swiftshader/libGLESv2.so
+"
+
+pkg_setup() {
+	use lua && lua-single_pkg_setup
+	use python && python-single-r1_pkg_setup
+}
+
+src_unpack() {
+	default
+
+	if [[ ${PV} == 9999 ]]; then
+		git-r3_src_unpack
+	else
+		rm -d ${P}/plugins/obs-browser || die
+		mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die
+
+		rm -d ${P}/plugins/obs-websocket || die
+		mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die
+	fi
+}
+
+src_prepare() {
+	default
+
+	sed -i 's/-Werror //' libobs/cmake/linux/libobs.pc.in || die
+
+	# -Werror=lto-type-mismatch
+	# https://bugs.gentoo.org/867250
+	# https://github.com/obsproject/obs-studio/issues/8988
+	use wayland && filter-lto
+
+	cmake_src_prepare
+}
+
+src_configure() {
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DCCACHE_PROGRAM=OFF
+		-DENABLE_ALSA=$(usex alsa)
+		-DENABLE_AJA=OFF
+		-DENABLE_BROWSER=$(usex browser)
+		-DENABLE_DECKLINK=$(usex decklink)
+		-DENABLE_FFMPEG_NVENC=$(usex nvenc)
+		-DENABLE_FREETYPE=$(usex truetype)
+		-DENABLE_JACK=$(usex jack)
+		-DENABLE_LIBFDK=$(usex fdk)
+		-DENABLE_NEW_MPEGTS_OUTPUT=$(usex mpegts)
+		-DENABLE_NVENC=$(usex nvenc)
+		-DENABLE_PIPEWIRE=$(usex screencast)
+		-DENABLE_PULSEAUDIO=$(usex pulseaudio)
+		-DENABLE_QSV11=$(usex qsv)
+		-DENABLE_RNNOISE=ON
+		-DENABLE_SNDIO=$(usex sndio)
+		-DENABLE_SPEEXDSP=$(usex speex)
+		-DENABLE_TEST_INPUT=$(usex test-input)
+		-DENABLE_V4L2=$(usex v4l)
+		-DENABLE_VLC=$(usex vlc)
+		-DENABLE_VST=ON
+		-DENABLE_WAYLAND=$(usex wayland)
+		-DENABLE_WEBRTC=OFF # Requires libdatachannel.
+		-DENABLE_WEBSOCKET=$(usex websocket)
+	)
+
+	if [[ ${PV} != 9999 ]]; then
+		mycmakeargs+=(
+			-DOBS_VERSION_OVERRIDE=${PV}
+		)
+	fi
+
+	if use lua || use python; then
+		mycmakeargs+=(
+			-DENABLE_SCRIPTING_LUA=$(usex lua)
+			-DENABLE_SCRIPTING_PYTHON=$(usex python)
+			-DENABLE_SCRIPTING=ON
+		)
+	else
+		mycmakeargs+=( -DENABLE_SCRIPTING=OFF )
+	fi
+
+	if use browser; then
+		use amd64 && mycmakeargs+=( -DCEF_ROOT_DIR=../cef_binary_6533_linux_x86_64 )
+		use arm64 && mycmakeargs+=( -DCEF_ROOT_DIR=../cef_binary_6533_linux_aarch64 )
+		mycmakeargs+=( -DENABLE_WHATSNEW=ON )
+	else
+		mycmakeargs+=( -DENABLE_WHATSNEW=OFF )
+	fi
+
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	# external plugins may need some things not installed by default, install them here
+	insinto /usr/include/obs/frontend/api
+	doins frontend/api/obs-frontend-api.h
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if ! use alsa && ! use pulseaudio; then
+		elog
+		elog "For the audio capture features to be available,"
+		elog "at least one of the 'alsa' or 'pulseaudio' USE-flags needs to"
+		elog "be enabled."
+		elog
+	fi
+
+	if use v4l && has_version media-video/v4l2loopback; then
+		elog
+		elog "Depending on system configuration, the v4l2loopback kernel module"
+		elog "may need to be loaded manually, and needs to be re-built after"
+		elog "kernel changes."
+		elog
+	fi
+
+	optfeature "PipeWire audio capture" media-plugins/obs-pipewire-audio-capture
+	optfeature "VA-API hardware encoding" media-video/ffmpeg[vaapi]
+	optfeature "virtual camera support" media-video/v4l2loopback
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.