Gentoo Archives: gentoo-commits

From: Jimi Huotari <chiitoo@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/obs-studio/
Date: Tue, 08 Nov 2022 16:20:35
Message-Id: 1667924218.c3635cb175c7f3d301323630956c1a6ca27605d5.chiitoo@gentoo
1 commit: c3635cb175c7f3d301323630956c1a6ca27605d5
2 Author: Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
3 AuthorDate: Wed Nov 2 05:21:17 2022 +0000
4 Commit: Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
5 CommitDate: Tue Nov 8 16:16:58 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3635cb1
7
8 media-video/obs-studio: add version 28.1.2
9
10 Closes: https://bugs.gentoo.org/867775
11 Thanks-to: マリウス <marius <AT> xn--gckvb8fzb.com>
12 Thanks-to: Ionen Wolkens <ionen <AT> gentoo.org>
13 Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org>
14
15 media-video/obs-studio/Manifest | 7 +
16 media-video/obs-studio/obs-studio-28.1.2.ebuild | 266 ++++++++++++++++++++++++
17 2 files changed, 273 insertions(+)
18
19 diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest
20 index bb70ecac77a8..58346b4d341e 100644
21 --- a/media-video/obs-studio/Manifest
22 +++ b/media-video/obs-studio/Manifest
23 @@ -1,5 +1,12 @@
24 +DIST asio-b73dc1d2c0ecb9452a87c26544d7f71e24342df6.tar.gz 1211725 BLAKE2B 8ffe536e9398b23910deab9889136ac5cb2a39e26982826252400737ea68d201e11bf16f13f20bd4c777fc7ff718da5ef8d329747065c62e61306fc1448f3908 SHA512 91245741fe6e7ce8eec6897f222b05cfa9474f93487272d8ca84ec56679afd5cddff2cf07f30cdd6516149e0a138b8a7396b1a7c02a46044b38f4e60addcbf8a
25 DIST cef_binary_4638_linux64.tar.bz2 104578246 BLAKE2B 13ee05d4a2fbf27290506297416b298c786954450c19183b493d13aa691db409c22b30870fbc55adf814ff30142a666eb8b172f16ccc48e6cf01135c72e5d6d6 SHA512 2eb01151e07adf332affce36a659c6e87da1fbc403c65db7e7c53472ff418df6cd04300a7c6ebc8789c094926429cc70d829e556e5de3127da230f8258fabe49
26 DIST cef_binary_5060_linux64.tar.bz2 132839531 BLAKE2B f7d342cf12bf435aab3873b666a47c42c6583a88f140c28dabfd2dd860cd0d5c96cc51cc034703bffc6f1094a738bd77008c01839fa5ea53b848bc1c483a0ae4 SHA512 c99ce53858c57becd7822e39ff81d59b7296374fa61b29dfd4a572c2ed8f9ab155114ed179764ea05586e0edb2f1654f0b73c471f1cd9b233660e7f1c8b462c4
27 +DIST json-a34e011e24beece3b69397a03fdc650546f052c3.tar.gz 6860722 BLAKE2B 433b499f24859153171654f3fd0fa9afd4ceb8b21a159185a424084b940d8496f8952c0291a52d85009dde16c46e45d5a206f354d043f4d010a29a1f18965d87 SHA512 a7c64517377274479bc3060163a2a7ed0a8780c12dc193287c060f04dfd742ffe8832c930bec75eb0b36f8290044c31530260a614aabae90367f6ccfd4b711f3
28 DIST obs-browser-915761778ec1eae99e740ad4bf63b40db3142ee2.tar.gz 100021 BLAKE2B d72df588aaeaf199c6ea5a7e419bb4792ef8b4c4237e700f75064d96caaec83ed2be2ea4ab34ba31e30a87ec6cbf1f267dd7b100c3a6cfec36e46b2eca8c4b2e SHA512 3ab6118a9509054ea4e8aed14dade7f374495ba25fcb5295a3ef7ed29e6e3305b0ae2f12ba2c0d27fcd6886822c98ab44a48fa9a4b66ae0507ab2bf1001157cb
29 +DIST obs-browser-e2310b02df3e6c184fe6eb6608244a82e37f582e.tar.gz 109012 BLAKE2B a2f3d9e1a3dbc3aa4d00423e743633038d59ce501626941a21ef0cf78608f4190335b8b846bfef49b2f09976d4ef3bb8b19f955b2a328c375cc045b886cb367c SHA512 76494fc9415db68d2b67d832a7a5c8b035e4e379d9adb6eb8292579d12b88b92350692b24e999b1328e02f729fae4060304594d37c754ff359903193c1464aed
30 DIST obs-studio-27.2.3.tar.gz 16383685 BLAKE2B 76802ba67dcebccabd9b2a1f09f505a4aea83887b445093c51a2c7a49fbaa064549b6212bd1b2f3200674a78349b2de4bfa54d14871c76be248cd62139d98a56 SHA512 c34e850e1a83e55aed952611257446a39d7ba4456b94f74d91c85d09d77361af2f76848f7d3f3d8ba7ae76c926129adad555e2f54d632658832596d0f2696a3c
31 DIST obs-studio-27.2.4.tar.gz 16385399 BLAKE2B 00c05ecd055d707b7132ca4b20e1c4946b682c0f79f1477167ae55aba3ec367c97b05aac190b07260f936e68f79f2d58e19dcc0602f70408f4c056eb733a6fdd SHA512 575341dd3d9240b21881517a16d01ca11f833e08b40ca7990f0360b4cd1076e8217a9bb8dddf174eca5429e6eadaadb6cfdbd61d24e0eb13ebeaa7f29cfad8bf
32 +DIST obs-studio-28.1.2.tar.gz 18859931 BLAKE2B 08fcedb4094d6a03512139e9055116f47fbd6cf706029d2719524bc018d0dce2a774de83b603f9a7665a115e2414775b858020e0be0ccdcc6882478256392646 SHA512 9d5e7e1f2f6236b795c2c49a1a6ba43623c71f16c1c6106fae6ac99b792e15793c169fb62aea271c253b13a0fd9bc9b9ad7880315d9ee787682174a5700f85bd
33 +DIST obs-websocket-5716577019b1ccda01a12db2cba35a023082b7ad.tar.gz 235118 BLAKE2B 96202cf81389b82b26027680dcaa6e2bf902c9776a89895fbef859dae2986523bc5d34ad30233c29fac043611a942fb4d86e5d9d9cd4ef2a9503154a383002fe SHA512 9bb511c9693889f9837cd001fafe403762d44f2ecc80bad42e592d7555e3807a148ab19638724871b7807e71edf5f62a1e0ea62f362fd1b9a6e9bf49000b8a5c
34 +DIST qr-8518684c0f33d004fa93971be2c6a8eca3167d1e.tar.gz 135863 BLAKE2B fa6fb9c9e5250b56bdf38f31aa4acaf4ce860c153012984d1266928bd7a62dcf43b271ff53b4322931304670742566dcb016ef65ff2f681bf76224f86eca567c SHA512 ba298de89411fecc8db3dc10850485da01f5183d68b6d91ea91a9e28c1f104eb110adbf143a37e5d1856abbba5d309ab8329a6359ca7225bacb033d8044fa72c
35 +DIST websocketpp-56123c87598f8b1dd471be83ca841ceae07f95ba.tar.gz 701544 BLAKE2B 61680c31309d8f78b27b82e1bde2c7828eae2777df0629355c557dfd8b0daef6de7d202bbcff372351e135bb62366ffc8eec6c72a99df7c46a9197773c46550c SHA512 f185a66e5a7c783254352a6ef87e2e559f681032b7368765d08393ed12bcae76825abed7dcaea73de09df644320409dad46279701f5f469520542a2c9b6a6163
36
37 diff --git a/media-video/obs-studio/obs-studio-28.1.2.ebuild b/media-video/obs-studio/obs-studio-28.1.2.ebuild
38 new file mode 100644
39 index 000000000000..dec59165b47e
40 --- /dev/null
41 +++ b/media-video/obs-studio/obs-studio-28.1.2.ebuild
42 @@ -0,0 +1,266 @@
43 +# Copyright 1999-2022 Gentoo Authors
44 +# Distributed under the terms of the GNU General Public License v2
45 +
46 +EAPI=8
47 +
48 +CMAKE_REMOVE_MODULES_LIST=( FindFreetype )
49 +LUA_COMPAT=( luajit )
50 +PYTHON_COMPAT=( python3_{8..11} )
51 +
52 +inherit cmake lua-single optfeature python-single-r1 xdg
53 +
54 +CEF_DIR="cef_binary_5060_linux64"
55 +ASIO_COMMIT="b73dc1d2c0ecb9452a87c26544d7f71e24342df6"
56 +JSON_COMMIT="a34e011e24beece3b69397a03fdc650546f052c3"
57 +OBS_BROWSER_COMMIT="e2310b02df3e6c184fe6eb6608244a82e37f582e"
58 +OBS_WEBSOCKET_COMMIT="5716577019b1ccda01a12db2cba35a023082b7ad"
59 +QR_COMMIT="8518684c0f33d004fa93971be2c6a8eca3167d1e"
60 +WEBSOCKETPP_COMMIT="56123c87598f8b1dd471be83ca841ceae07f95ba"
61 +
62 +if [[ ${PV} == 9999 ]]; then
63 + inherit git-r3
64 + EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git"
65 + EGIT_SUBMODULES=(
66 + plugins/obs-browser
67 + plugins/obs-websocket
68 + plugins/obs-websocket/deps/asio
69 + plugins/obs-websocket/deps/json
70 + plugins/obs-websocket/deps/qr
71 + plugins/obs-websocket/deps/websocketpp
72 + )
73 +else
74 + SRC_URI="
75 + https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
76 + https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz
77 + https://github.com/chriskohlhoff/asio/archive/${ASIO_COMMIT}.tar.gz -> asio-${ASIO_COMMIT}.tar.gz
78 + https://github.com/nayuki/QR-Code-generator/archive/${QR_COMMIT}.tar.gz -> qr-${QR_COMMIT}.tar.gz
79 + https://github.com/nlohmann/json/archive/${JSON_COMMIT}.tar.gz -> json-${JSON_COMMIT}.tar.gz
80 + https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz
81 + https://github.com/zaphoyd/websocketpp/archive/${WEBSOCKETPP_COMMIT}.tar.gz -> websocketpp-${WEBSOCKETPP_COMMIT}.tar.gz
82 + "
83 + KEYWORDS="~amd64 ~ppc64 ~x86"
84 +fi
85 +SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}.tar.bz2 )"
86 +
87 +DESCRIPTION="Software for Recording and Streaming Live Video Content"
88 +HOMEPAGE="https://obsproject.com"
89 +
90 +LICENSE="Boost-1.0 GPL-2+ MIT Unlicense"
91 +SLOT="0"
92 +IUSE="
93 + +alsa browser decklink fdk jack lua nvenc pipewire pulseaudio
94 + python qt6 speex +ssl truetype v4l vlc wayland websocket
95 +"
96 +REQUIRED_USE="
97 + browser? ( || ( alsa pulseaudio ) )
98 + lua? ( ${LUA_REQUIRED_USE} )
99 + python? ( ${PYTHON_REQUIRED_USE} )
100 +"
101 +
102 +BDEPEND="
103 + lua? ( dev-lang/swig )
104 + python? ( dev-lang/swig )
105 +"
106 +DEPEND="
107 + dev-libs/glib:2
108 + dev-libs/jansson:=
109 + media-libs/libglvnd
110 + media-libs/x264:=
111 + media-video/ffmpeg:=[nvenc?,x264]
112 + net-misc/curl
113 + sys-apps/dbus
114 + sys-apps/pciutils
115 + sys-libs/zlib:=
116 + x11-libs/libX11
117 + x11-libs/libXcomposite
118 + x11-libs/libXfixes
119 + x11-libs/libxcb:=
120 + alsa? ( media-libs/alsa-lib )
121 + browser? (
122 + || (
123 + >=app-accessibility/at-spi2-core-2.46.0:2
124 + ( app-accessibility/at-spi2-atk dev-libs/atk )
125 + )
126 + dev-libs/expat
127 + dev-libs/glib
128 + dev-libs/nspr
129 + dev-libs/nss
130 + dev-libs/wayland
131 + media-libs/alsa-lib
132 + media-libs/fontconfig
133 + media-libs/mesa[gbm(+)]
134 + net-print/cups
135 + x11-libs/cairo
136 + x11-libs/libdrm
137 + x11-libs/libXcursor
138 + x11-libs/libXdamage
139 + x11-libs/libXext
140 + x11-libs/libXi
141 + x11-libs/libxkbcommon
142 + x11-libs/libXrandr
143 + x11-libs/libXrender
144 + x11-libs/libXScrnSaver
145 + x11-libs/libxshmfence
146 + x11-libs/libXtst
147 + x11-libs/pango
148 + )
149 + fdk? ( media-libs/fdk-aac:= )
150 + jack? ( virtual/jack )
151 + lua? ( ${LUA_DEPS} )
152 + pipewire? ( media-video/pipewire:= )
153 + pulseaudio? ( media-libs/libpulse )
154 + python? ( ${PYTHON_DEPS} )
155 + qt6? (
156 + dev-qt/qtbase:6[network,widgets,xml(+)]
157 + dev-qt/qtsvg:6
158 + x11-libs/libxkbcommon
159 + )
160 + !qt6? (
161 + dev-qt/qtcore:5
162 + dev-qt/qtgui:5[wayland?]
163 + dev-qt/qtnetwork:5
164 + dev-qt/qtquickcontrols:5
165 + dev-qt/qtsvg:5
166 + dev-qt/qtwidgets:5
167 + dev-qt/qtxml:5
168 + )
169 + speex? ( media-libs/speexdsp )
170 + ssl? ( net-libs/mbedtls:= )
171 + truetype? (
172 + media-libs/fontconfig
173 + media-libs/freetype
174 + )
175 + v4l? (
176 + media-libs/libv4l
177 + virtual/udev
178 + )
179 + vlc? ( media-video/vlc:= )
180 + wayland? (
181 + dev-libs/wayland
182 + x11-libs/libxkbcommon
183 + )
184 +"
185 +RDEPEND="${DEPEND}"
186 +
187 +QA_PREBUILT="
188 + usr/lib*/obs-plugins/chrome-sandbox
189 + usr/lib*/obs-plugins/libcef.so
190 + usr/lib*/obs-plugins/libEGL.so
191 + usr/lib*/obs-plugins/libGLESv2.so
192 + usr/lib*/obs-plugins/libvk_swiftshader.so
193 + usr/lib*/obs-plugins/libvulkan.so.1
194 + usr/lib*/obs-plugins/swiftshader/libEGL.so
195 + usr/lib*/obs-plugins/swiftshader/libGLESv2.so
196 +"
197 +
198 +pkg_setup() {
199 + use lua && lua-single_pkg_setup
200 + use python && python-single-r1_pkg_setup
201 +}
202 +
203 +src_unpack() {
204 + default
205 +
206 + if [[ ${PV} == 9999 ]]; then
207 + git-r3_src_unpack
208 + else
209 + rm -d ${P}/plugins/obs-browser || die
210 + mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die
211 +
212 + rm -d ${P}/plugins/obs-websocket || die
213 + mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die
214 +
215 + rm -d ${P}/plugins/obs-websocket/deps/asio || die
216 + mv asio-${ASIO_COMMIT} ${P}/plugins/obs-websocket/deps/asio || die
217 +
218 + rm -d ${P}/plugins/obs-websocket/deps/json || die
219 + mv json-${JSON_COMMIT} ${P}/plugins/obs-websocket/deps/json || die
220 +
221 + rm -d ${P}/plugins/obs-websocket/deps/qr || die
222 + mv QR-Code-generator-${QR_COMMIT} ${P}/plugins/obs-websocket/deps/qr || die
223 +
224 + rm -d ${P}/plugins/obs-websocket/deps/websocketpp || die
225 + mv websocketpp-${WEBSOCKETPP_COMMIT} ${P}/plugins/obs-websocket/deps/websocketpp || die
226 + fi
227 +}
228 +
229 +src_configure() {
230 + local libdir=$(get_libdir)
231 + local mycmakeargs=(
232 + $(usev browser -DCEF_ROOT_DIR=../${CEF_DIR})
233 + -DENABLE_ALSA=$(usex alsa)
234 + -DENABLE_AJA=OFF
235 + -DENABLE_BROWSER=$(usex browser)
236 + -DENABLE_DECKLINK=$(usex decklink)
237 + -DENABLE_FREETYPE=$(usex truetype)
238 + -DENABLE_JACK=$(usex jack)
239 + -DENABLE_LIBFDK=$(usex fdk)
240 + -DENABLE_NEW_MPEGTS_OUTPUT=OFF # Requires librist and libsrt.
241 + -DENABLE_PIPEWIRE=$(usex pipewire)
242 + -DENABLE_PULSEAUDIO=$(usex pulseaudio)
243 + -DENABLE_RTMPS=$(usex ssl)
244 + -DENABLE_SPEEXDSP=$(usex speex)
245 + -DENABLE_V4L2=$(usex v4l)
246 + -DENABLE_VLC=$(usex vlc)
247 + -DENABLE_VST=ON
248 + -DENABLE_WAYLAND=$(usex wayland)
249 + -DENABLE_WEBSOCKET=$(usex websocket)
250 + -DOBS_MULTIARCH_SUFFIX=${libdir#lib}
251 + -DQT_VERSION=$(usex qt6 6 5)
252 + -DUNIX_STRUCTURE=1
253 + )
254 +
255 + if [[ ${PV} != 9999 ]]; then
256 + mycmakeargs+=(
257 + -DOBS_VERSION_OVERRIDE=${PV}
258 + )
259 + fi
260 +
261 + if use lua || use python; then
262 + mycmakeargs+=(
263 + -DENABLE_SCRIPTING_LUA=$(usex lua)
264 + -DENABLE_SCRIPTING_PYTHON=$(usex python)
265 + -DENABLE_SCRIPTING=ON
266 + )
267 + else
268 + mycmakeargs+=( -DENABLE_SCRIPTING=OFF )
269 + fi
270 +
271 + if use browser && use ssl; then
272 + mycmakeargs+=( -DENABLE_WHATSNEW=ON )
273 + else
274 + mycmakeargs+=( -DENABLE_WHATSNEW=OFF )
275 + fi
276 +
277 + cmake_src_configure
278 +}
279 +
280 +src_install() {
281 + cmake_src_install
282 +
283 + # external plugins may need some things not installed by default, install them here
284 + insinto /usr/include/obs/UI/obs-frontend-api
285 + doins UI/obs-frontend-api/obs-frontend-api.h
286 +}
287 +
288 +pkg_postinst() {
289 + xdg_pkg_postinst
290 +
291 + if ! use alsa && ! use pulseaudio; then
292 + elog
293 + elog "For the audio capture features to be available,"
294 + elog "at least one of the 'alsa' or 'pulseaudio' USE-flags needs to"
295 + elog "be enabled."
296 + elog
297 + fi
298 +
299 + if use v4l && has_version media-video/v4l2loopback; then
300 + elog
301 + elog "Depending on system configuration, the v4l2loopback kernel module"
302 + elog "may need to be loaded manually, and needs to be re-built after"
303 + elog "kernel changes."
304 + elog
305 + fi
306 +
307 + optfeature "virtual camera support" media-video/v4l2loopback
308 +}