1 |
commit: 3193b29379dcfa2a889a9ad600059df73e749e0d |
2 |
Author: Jimi Huotari <chiitoo <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Nov 2 05:19:03 2022 +0000 |
4 |
Commit: Jimi Huotari <chiitoo <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Nov 8 16:16:54 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3193b293 |
7 |
|
8 |
media-video/obs-studio: add USE="qt6 websocket" and python 3.11 + more |
9 |
|
10 |
- Add support for qt6, websocket plugin, and python 3.11. |
11 |
- Update browser related hashes. |
12 |
- Adjust dependencies. |
13 |
- Remove dependency on 'qtx11extras' which was removed upstream a good |
14 |
while ago (thanks-to: マリウス <marius <AT> xn--gckvb8fzb.com>). |
15 |
|
16 |
Also add an 'optfeature' and an elog message regarding the |
17 |
virtual camera feature, and enable 'VST' by default since it's no |
18 |
longer a submodule, and doesn't seem to increase the size of things |
19 |
much at all. |
20 |
|
21 |
Lastly, adjust some of the existing elog message wording. |
22 |
|
23 |
Bug: https://bugs.gentoo.org/876971 |
24 |
Thanks-to: Ionen Wolkens <ionen <AT> gentoo.org> |
25 |
Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org> |
26 |
|
27 |
media-video/obs-studio/Manifest | 1 + |
28 |
media-video/obs-studio/metadata.xml | 1 + |
29 |
media-video/obs-studio/obs-studio-9999.ebuild | 111 +++++++++++++++++++------- |
30 |
3 files changed, 84 insertions(+), 29 deletions(-) |
31 |
|
32 |
diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest |
33 |
index 86c897e4d5f3..bb70ecac77a8 100644 |
34 |
--- a/media-video/obs-studio/Manifest |
35 |
+++ b/media-video/obs-studio/Manifest |
36 |
@@ -1,4 +1,5 @@ |
37 |
DIST cef_binary_4638_linux64.tar.bz2 104578246 BLAKE2B 13ee05d4a2fbf27290506297416b298c786954450c19183b493d13aa691db409c22b30870fbc55adf814ff30142a666eb8b172f16ccc48e6cf01135c72e5d6d6 SHA512 2eb01151e07adf332affce36a659c6e87da1fbc403c65db7e7c53472ff418df6cd04300a7c6ebc8789c094926429cc70d829e556e5de3127da230f8258fabe49 |
38 |
+DIST cef_binary_5060_linux64.tar.bz2 132839531 BLAKE2B f7d342cf12bf435aab3873b666a47c42c6583a88f140c28dabfd2dd860cd0d5c96cc51cc034703bffc6f1094a738bd77008c01839fa5ea53b848bc1c483a0ae4 SHA512 c99ce53858c57becd7822e39ff81d59b7296374fa61b29dfd4a572c2ed8f9ab155114ed179764ea05586e0edb2f1654f0b73c471f1cd9b233660e7f1c8b462c4 |
39 |
DIST obs-browser-915761778ec1eae99e740ad4bf63b40db3142ee2.tar.gz 100021 BLAKE2B d72df588aaeaf199c6ea5a7e419bb4792ef8b4c4237e700f75064d96caaec83ed2be2ea4ab34ba31e30a87ec6cbf1f267dd7b100c3a6cfec36e46b2eca8c4b2e SHA512 3ab6118a9509054ea4e8aed14dade7f374495ba25fcb5295a3ef7ed29e6e3305b0ae2f12ba2c0d27fcd6886822c98ab44a48fa9a4b66ae0507ab2bf1001157cb |
40 |
DIST obs-studio-27.2.3.tar.gz 16383685 BLAKE2B 76802ba67dcebccabd9b2a1f09f505a4aea83887b445093c51a2c7a49fbaa064549b6212bd1b2f3200674a78349b2de4bfa54d14871c76be248cd62139d98a56 SHA512 c34e850e1a83e55aed952611257446a39d7ba4456b94f74d91c85d09d77361af2f76848f7d3f3d8ba7ae76c926129adad555e2f54d632658832596d0f2696a3c |
41 |
DIST obs-studio-27.2.4.tar.gz 16385399 BLAKE2B 00c05ecd055d707b7132ca4b20e1c4946b682c0f79f1477167ae55aba3ec367c97b05aac190b07260f936e68f79f2d58e19dcc0602f70408f4c056eb733a6fdd SHA512 575341dd3d9240b21881517a16d01ca11f833e08b40ca7990f0360b4cd1076e8217a9bb8dddf174eca5429e6eadaadb6cfdbd61d24e0eb13ebeaa7f29cfad8bf |
42 |
|
43 |
diff --git a/media-video/obs-studio/metadata.xml b/media-video/obs-studio/metadata.xml |
44 |
index 0945dd8d23e2..187b2b842772 100644 |
45 |
--- a/media-video/obs-studio/metadata.xml |
46 |
+++ b/media-video/obs-studio/metadata.xml |
47 |
@@ -24,6 +24,7 @@ |
48 |
<flag name="speex">Build with Speex noise suppression filter support.</flag> |
49 |
<flag name="ssl">Build with TLS/SSL support for RTMPS connections.</flag> |
50 |
<flag name="vlc">Build with VLC media source support.</flag> |
51 |
+ <flag name="websocket">Build with WebSocket API support.</flag> |
52 |
</use> |
53 |
<upstream> |
54 |
<remote-id type="github">obsproject/obs-studio</remote-id> |
55 |
|
56 |
diff --git a/media-video/obs-studio/obs-studio-9999.ebuild b/media-video/obs-studio/obs-studio-9999.ebuild |
57 |
index ce91ef9b0728..dec59165b47e 100644 |
58 |
--- a/media-video/obs-studio/obs-studio-9999.ebuild |
59 |
+++ b/media-video/obs-studio/obs-studio-9999.ebuild |
60 |
@@ -5,20 +5,39 @@ EAPI=8 |
61 |
|
62 |
CMAKE_REMOVE_MODULES_LIST=( FindFreetype ) |
63 |
LUA_COMPAT=( luajit ) |
64 |
-PYTHON_COMPAT=( python3_{8..10} ) |
65 |
+PYTHON_COMPAT=( python3_{8..11} ) |
66 |
|
67 |
-inherit cmake lua-single python-single-r1 xdg |
68 |
+inherit cmake lua-single optfeature python-single-r1 xdg |
69 |
|
70 |
-OBS_BROWSER_COMMIT="b798763ae75b538e405c2d7e2ab3a1edfe59ed0c" |
71 |
-CEF_DIR="cef_binary_4638_linux64" |
72 |
+CEF_DIR="cef_binary_5060_linux64" |
73 |
+ASIO_COMMIT="b73dc1d2c0ecb9452a87c26544d7f71e24342df6" |
74 |
+JSON_COMMIT="a34e011e24beece3b69397a03fdc650546f052c3" |
75 |
+OBS_BROWSER_COMMIT="e2310b02df3e6c184fe6eb6608244a82e37f582e" |
76 |
+OBS_WEBSOCKET_COMMIT="5716577019b1ccda01a12db2cba35a023082b7ad" |
77 |
+QR_COMMIT="8518684c0f33d004fa93971be2c6a8eca3167d1e" |
78 |
+WEBSOCKETPP_COMMIT="56123c87598f8b1dd471be83ca841ceae07f95ba" |
79 |
|
80 |
if [[ ${PV} == 9999 ]]; then |
81 |
inherit git-r3 |
82 |
EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git" |
83 |
- EGIT_SUBMODULES=( plugins/obs-browser ) |
84 |
+ EGIT_SUBMODULES=( |
85 |
+ plugins/obs-browser |
86 |
+ plugins/obs-websocket |
87 |
+ plugins/obs-websocket/deps/asio |
88 |
+ plugins/obs-websocket/deps/json |
89 |
+ plugins/obs-websocket/deps/qr |
90 |
+ plugins/obs-websocket/deps/websocketpp |
91 |
+ ) |
92 |
else |
93 |
- SRC_URI="https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" |
94 |
- SRC_URI+=" browser? ( https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz )" |
95 |
+ SRC_URI=" |
96 |
+ https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz |
97 |
+ https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz |
98 |
+ https://github.com/chriskohlhoff/asio/archive/${ASIO_COMMIT}.tar.gz -> asio-${ASIO_COMMIT}.tar.gz |
99 |
+ https://github.com/nayuki/QR-Code-generator/archive/${QR_COMMIT}.tar.gz -> qr-${QR_COMMIT}.tar.gz |
100 |
+ https://github.com/nlohmann/json/archive/${JSON_COMMIT}.tar.gz -> json-${JSON_COMMIT}.tar.gz |
101 |
+ https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz |
102 |
+ https://github.com/zaphoyd/websocketpp/archive/${WEBSOCKETPP_COMMIT}.tar.gz -> websocketpp-${WEBSOCKETPP_COMMIT}.tar.gz |
103 |
+ " |
104 |
KEYWORDS="~amd64 ~ppc64 ~x86" |
105 |
fi |
106 |
SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}.tar.bz2 )" |
107 |
@@ -26,11 +45,11 @@ SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}.tar |
108 |
DESCRIPTION="Software for Recording and Streaming Live Video Content" |
109 |
HOMEPAGE="https://obsproject.com" |
110 |
|
111 |
-LICENSE="GPL-2" |
112 |
+LICENSE="Boost-1.0 GPL-2+ MIT Unlicense" |
113 |
SLOT="0" |
114 |
IUSE=" |
115 |
- +alsa browser decklink fdk jack lua nvenc pipewire |
116 |
- pulseaudio python speex +ssl truetype v4l vlc wayland |
117 |
+ +alsa browser decklink fdk jack lua nvenc pipewire pulseaudio |
118 |
+ python qt6 speex +ssl truetype v4l vlc wayland websocket |
119 |
" |
120 |
REQUIRED_USE=" |
121 |
browser? ( || ( alsa pulseaudio ) ) |
122 |
@@ -45,13 +64,6 @@ BDEPEND=" |
123 |
DEPEND=" |
124 |
dev-libs/glib:2 |
125 |
dev-libs/jansson:= |
126 |
- dev-qt/qtcore:5 |
127 |
- dev-qt/qtgui:5[wayland?] |
128 |
- dev-qt/qtnetwork:5 |
129 |
- dev-qt/qtquickcontrols:5 |
130 |
- dev-qt/qtsvg:5 |
131 |
- dev-qt/qtwidgets:5 |
132 |
- dev-qt/qtxml:5 |
133 |
media-libs/libglvnd |
134 |
media-libs/x264:= |
135 |
media-video/ffmpeg:=[nvenc?,x264] |
136 |
@@ -73,6 +85,7 @@ DEPEND=" |
137 |
dev-libs/glib |
138 |
dev-libs/nspr |
139 |
dev-libs/nss |
140 |
+ dev-libs/wayland |
141 |
media-libs/alsa-lib |
142 |
media-libs/fontconfig |
143 |
media-libs/mesa[gbm(+)] |
144 |
@@ -95,8 +108,22 @@ DEPEND=" |
145 |
jack? ( virtual/jack ) |
146 |
lua? ( ${LUA_DEPS} ) |
147 |
pipewire? ( media-video/pipewire:= ) |
148 |
- pulseaudio? ( media-sound/pulseaudio ) |
149 |
+ pulseaudio? ( media-libs/libpulse ) |
150 |
python? ( ${PYTHON_DEPS} ) |
151 |
+ qt6? ( |
152 |
+ dev-qt/qtbase:6[network,widgets,xml(+)] |
153 |
+ dev-qt/qtsvg:6 |
154 |
+ x11-libs/libxkbcommon |
155 |
+ ) |
156 |
+ !qt6? ( |
157 |
+ dev-qt/qtcore:5 |
158 |
+ dev-qt/qtgui:5[wayland?] |
159 |
+ dev-qt/qtnetwork:5 |
160 |
+ dev-qt/qtquickcontrols:5 |
161 |
+ dev-qt/qtsvg:5 |
162 |
+ dev-qt/qtwidgets:5 |
163 |
+ dev-qt/qtxml:5 |
164 |
+ ) |
165 |
speex? ( media-libs/speexdsp ) |
166 |
ssl? ( net-libs/mbedtls:= ) |
167 |
truetype? ( |
168 |
@@ -136,19 +163,25 @@ src_unpack() { |
169 |
|
170 |
if [[ ${PV} == 9999 ]]; then |
171 |
git-r3_src_unpack |
172 |
- elif use browser; then |
173 |
+ else |
174 |
rm -d ${P}/plugins/obs-browser || die |
175 |
mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die |
176 |
- fi |
177 |
-} |
178 |
|
179 |
-src_prepare() { |
180 |
- # We have not enabled VST before, but now it will be looked for unconditionally if |
181 |
- # any plugins are enabled, so make the VST part a warning instead of fatal for now. |
182 |
- sed -i 's/FATAL_ERROR "obs-vst submodule not available/WARNING "obs-vst submodule not available/' \ |
183 |
- plugins/CMakeLists.txt || die |
184 |
+ rm -d ${P}/plugins/obs-websocket || die |
185 |
+ mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die |
186 |
+ |
187 |
+ rm -d ${P}/plugins/obs-websocket/deps/asio || die |
188 |
+ mv asio-${ASIO_COMMIT} ${P}/plugins/obs-websocket/deps/asio || die |
189 |
+ |
190 |
+ rm -d ${P}/plugins/obs-websocket/deps/json || die |
191 |
+ mv json-${JSON_COMMIT} ${P}/plugins/obs-websocket/deps/json || die |
192 |
|
193 |
- cmake_src_prepare |
194 |
+ rm -d ${P}/plugins/obs-websocket/deps/qr || die |
195 |
+ mv QR-Code-generator-${QR_COMMIT} ${P}/plugins/obs-websocket/deps/qr || die |
196 |
+ |
197 |
+ rm -d ${P}/plugins/obs-websocket/deps/websocketpp || die |
198 |
+ mv websocketpp-${WEBSOCKETPP_COMMIT} ${P}/plugins/obs-websocket/deps/websocketpp || die |
199 |
+ fi |
200 |
} |
201 |
|
202 |
src_configure() { |
203 |
@@ -162,14 +195,18 @@ src_configure() { |
204 |
-DENABLE_FREETYPE=$(usex truetype) |
205 |
-DENABLE_JACK=$(usex jack) |
206 |
-DENABLE_LIBFDK=$(usex fdk) |
207 |
+ -DENABLE_NEW_MPEGTS_OUTPUT=OFF # Requires librist and libsrt. |
208 |
-DENABLE_PIPEWIRE=$(usex pipewire) |
209 |
-DENABLE_PULSEAUDIO=$(usex pulseaudio) |
210 |
- -DENABLE_RTMPS=$(usex ssl ON OFF) |
211 |
+ -DENABLE_RTMPS=$(usex ssl) |
212 |
-DENABLE_SPEEXDSP=$(usex speex) |
213 |
-DENABLE_V4L2=$(usex v4l) |
214 |
-DENABLE_VLC=$(usex vlc) |
215 |
+ -DENABLE_VST=ON |
216 |
-DENABLE_WAYLAND=$(usex wayland) |
217 |
+ -DENABLE_WEBSOCKET=$(usex websocket) |
218 |
-DOBS_MULTIARCH_SUFFIX=${libdir#lib} |
219 |
+ -DQT_VERSION=$(usex qt6 6 5) |
220 |
-DUNIX_STRUCTURE=1 |
221 |
) |
222 |
|
223 |
@@ -189,6 +226,12 @@ src_configure() { |
224 |
mycmakeargs+=( -DENABLE_SCRIPTING=OFF ) |
225 |
fi |
226 |
|
227 |
+ if use browser && use ssl; then |
228 |
+ mycmakeargs+=( -DENABLE_WHATSNEW=ON ) |
229 |
+ else |
230 |
+ mycmakeargs+=( -DENABLE_WHATSNEW=OFF ) |
231 |
+ fi |
232 |
+ |
233 |
cmake_src_configure |
234 |
} |
235 |
|
236 |
@@ -206,8 +249,18 @@ pkg_postinst() { |
237 |
if ! use alsa && ! use pulseaudio; then |
238 |
elog |
239 |
elog "For the audio capture features to be available," |
240 |
- elog "either the 'alsa' or the 'pulseaudio' USE-flag needs to" |
241 |
+ elog "at least one of the 'alsa' or 'pulseaudio' USE-flags needs to" |
242 |
elog "be enabled." |
243 |
elog |
244 |
fi |
245 |
+ |
246 |
+ if use v4l && has_version media-video/v4l2loopback; then |
247 |
+ elog |
248 |
+ elog "Depending on system configuration, the v4l2loopback kernel module" |
249 |
+ elog "may need to be loaded manually, and needs to be re-built after" |
250 |
+ elog "kernel changes." |
251 |
+ elog |
252 |
+ fi |
253 |
+ |
254 |
+ optfeature "virtual camera support" media-video/v4l2loopback |
255 |
} |