You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-video/obs-studio/obs-studio-9999.ebuild

215 lines
5.1 KiB

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CMAKE_REMOVE_MODULES_LIST=( FindFreetype )
LUA_COMPAT=( luajit )
PYTHON_COMPAT=( python3_{8..10} )
inherit cmake lua-single python-single-r1 xdg
OBS_BROWSER_COMMIT="2a338b7c76d5dd0a6b23f1d49affefd40213b0e9"
CEF_DIR="cef_binary_4280_linux64"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git"
EGIT_SUBMODULES=( plugins/obs-browser )
else
SRC_URI="https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
SRC_URI+=" browser? ( https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz )"
KEYWORDS="~amd64 ~ppc64 ~x86"
fi
SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}.tar.bz2 )"
DESCRIPTION="Software for Recording and Streaming Live Video Content"
HOMEPAGE="https://obsproject.com"
LICENSE="GPL-2"
SLOT="0"
IUSE="
+alsa browser decklink fdk jack lua nvenc pipewire
pulseaudio python speex +ssl truetype v4l vlc wayland
"
REQUIRED_USE="
browser? ( || ( alsa pulseaudio ) )
lua? ( ${LUA_REQUIRED_USE} )
python? ( ${PYTHON_REQUIRED_USE} )
"
BDEPEND="
lua? ( dev-lang/swig )
python? ( dev-lang/swig )
"
DEPEND="
dev-libs/glib:2
dev-libs/jansson:=
dev-qt/qtcore:5
dev-qt/qtdeclarative:5
dev-qt/qtgui:5[wayland?]
dev-qt/qtmultimedia:5
dev-qt/qtnetwork:5
dev-qt/qtquickcontrols:5
dev-qt/qtsql:5
dev-qt/qtsvg:5
dev-qt/qtwidgets:5
dev-qt/qtx11extras:5
dev-qt/qtxml:5
media-libs/libglvnd
media-libs/x264:=
media-video/ffmpeg:=[x264]
net-misc/curl
sys-apps/dbus
sys-libs/zlib:=
virtual/udev
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXfixes
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libxcb:=
alsa? ( media-libs/alsa-lib )
browser? (
app-accessibility/at-spi2-atk
app-accessibility/at-spi2-core:2
dev-libs/atk
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/libdrm
x11-libs/libXScrnSaver
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXi
x11-libs/libXrender
x11-libs/libXtst
)
fdk? ( media-libs/fdk-aac:= )
jack? ( virtual/jack )
lua? ( ${LUA_DEPS} )
nvenc? ( >=media-video/ffmpeg-4[video_cards_nvidia] )
pipewire? ( media-video/pipewire:= )
pulseaudio? ( media-sound/pulseaudio )
python? ( ${PYTHON_DEPS} )
speex? ( media-libs/speexdsp )
ssl? ( net-libs/mbedtls:= )
truetype? (
media-libs/fontconfig
media-libs/freetype
)
v4l? ( media-libs/libv4l )
vlc? ( media-video/vlc:= )
wayland? ( dev-libs/wayland )
"
RDEPEND="${DEPEND}"
QA_PREBUILT="
usr/lib*/obs-plugins/chrome-sandbox
usr/lib*/obs-plugins/libEGL.so
usr/lib*/obs-plugins/libGLESv2.so
usr/lib*/obs-plugins/libcef.so
usr/lib*/obs-plugins/swiftshader/libEGL.so
usr/lib*/obs-plugins/swiftshader/libGLESv2.so
"
PATCHES=(
"${FILESDIR}/${PN}-26.1.2-python-3.8.patch"
)
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
elif use browser; then
rm -d ${P}/plugins/obs-browser || die
mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die
fi
}
src_configure() {
local libdir=$(get_libdir)
local mycmakeargs=(
$(usev browser -DCEF_ROOT_DIR=../${CEF_DIR})
-DBUILD_BROWSER=$(usex browser)
-DBUILD_VST=no
-DENABLE_WAYLAND=$(usex wayland)
-DDISABLE_ALSA=$(usex !alsa)
-DDISABLE_DECKLINK=$(usex !decklink)
-DDISABLE_FREETYPE=$(usex !truetype)
-DDISABLE_JACK=$(usex !jack)
-DDISABLE_LIBFDK=$(usex !fdk)
-DENABLE_PIPEWIRE=$(usex pipewire)
-DDISABLE_PULSEAUDIO=$(usex !pulseaudio)
$(cmake_use_find_package pulseaudio PulseAudio)
-DDISABLE_SPEEXDSP=$(usex !speex)
-DDISABLE_V4L2=$(usex !v4l)
-DDISABLE_VLC=$(usex !vlc)
-DOBS_MULTIARCH_SUFFIX=${libdir#lib}
-DUNIX_STRUCTURE=1
-DWITH_RTMPS=$(usex ssl)
# deprecated and currently cause issues
# https://github.com/obsproject/obs-studio/pull/4560#issuecomment-826345608
-DLIBOBS_PREFER_IMAGEMAGICK=no
)
if [[ ${PV} != 9999 ]]; then
mycmakeargs+=(
-DOBS_VERSION_OVERRIDE=${PV}
)
fi
if use lua || use python; then
mycmakeargs+=(
-DDISABLE_LUA=$(usex !lua)
-DDISABLE_PYTHON=$(usex !python)
-DENABLE_SCRIPTING=yes
)
else
mycmakeargs+=( -DENABLE_SCRIPTING=no )
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/UI/obs-frontend-api
doins UI/obs-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 "either the 'alsa' or the 'pulseaudio' USE-flag needs to"
elog "be enabled."
elog
fi
if use python; then
ewarn "This ebuild applies a patch that is not yet accepted upstream,"
ewarn "and while it fixes Python support at least to some extent, it"
ewarn "may cause other issues."
ewarn ""
ewarn "Please report any such issues to the Gentoo maintainer."
fi
}