[packages/obs-studio] - updated to 32.1.2
qboosh
qboosh at pld-linux.org
Wed Jun 24 22:04:12 CEST 2026
commit c222207e49bb2ada5db26b894a464b9cb3077ed2
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Wed Jun 24 22:04:39 2026 +0200
- updated to 32.1.2
disable-missing-plugins.patch | 12 +++---
format-string.patch | 36 +++-------------
obs-studio.spec | 98 ++++++++++++++++++++++++-------------------
x11-linkage.patch | 35 ++++++----------
x32.patch | 17 ++++----
5 files changed, 85 insertions(+), 113 deletions(-)
---
diff --git a/obs-studio.spec b/obs-studio.spec
index 89a8b4a..c1aa61f 100644
--- a/obs-studio.spec
+++ b/obs-studio.spec
@@ -1,4 +1,7 @@
-# TODO: AJA (BR: libajantv2)
+# TODO:
+# - AJA (BR: libajantv2)
+# - system librnnoise
+# - disabled modules: aja aja-output-ui obs-libfdk obs-webrtc
#
# Conditional build:
%bcond_with aja # AJA NTV2 support
@@ -13,13 +16,13 @@
Summary: OBS Studio - live streaming and screen recording software
Summary(pl.UTF-8): OBS Studio - oprogramowanie do przesyłania strumieni na żywo i nagrywania ekranu
Name: obs-studio
-Version: 31.0.3
+Version: 32.1.2
Release: 1
License: GPL v2+
Group: X11/Applications/Multimedia
#Source0Download: https://github.com/obsproject/obs-studio/releases
Source0: https://github.com/obsproject/obs-studio/archive/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 316390336557c44247230a65b4e45a2f
+# Source0-md5: 48714ec4e527e9044c6653e1996d8884
Patch0: disable-missing-plugins.patch
Patch1: size_t.patch
Patch2: x32.patch
@@ -29,26 +32,29 @@ Patch5: luajit-lua52.patch
Patch6: no-arch-abi-warning.patch
Patch7: format-string.patch
URL: https://obsproject.com/
+BuildRequires: EGL-devel
BuildRequires: ImageMagick-devel
+BuildRequires: OpenGL-devel
BuildRequires: OpenGL-GLX-devel
BuildRequires: alsa-lib-devel
BuildRequires: cmake >= 3.16
BuildRequires: curl-devel
BuildRequires: dbus-devel
# avcodec avfilter avdevice avutil swscale avformat swresample
-BuildRequires: ffmpeg-devel
+BuildRequires: ffmpeg-devel >= 6.1
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel >= 2
-BuildRequires: glib2-devel >= 2.0
+BuildRequires: glib2-devel >= 1:2.76
%{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
BuildRequires: jansson-devel >= 2.5
%{?with_aja:BuildRequires: libajantv2-devel}
BuildRequires: libdrm-devel
BuildRequires: librist-devel
BuildRequires: libstdc++-devel >= 6:4.7
+BuildRequires: libuuid-devel
BuildRequires: libv4l-devel
BuildRequires: libva-devel
-BuildRequires: libvpl-devel
+BuildRequires: libvpl-devel >= 2.9
BuildRequires: libx264-devel
BuildRequires: nlohmann-json-devel
# xcb xcb-composite xcb-randr xcb-shm xcb-xfixes xcb-xinerama
@@ -57,16 +63,17 @@ BuildRequires: libxcb-devel
BuildRequires: luajit-devel
%endif
BuildRequires: mbedtls-devel
-BuildRequires: nv-codec-headers
+BuildRequires: nv-codec-headers >= 12
BuildRequires: pciutils-devel
BuildRequires: pipewire-devel >= 0.3.33
BuildRequires: pkgconfig
BuildRequires: pulseaudio-devel
-BuildRequires: python3-devel >= 1:3.2
+BuildRequires: python3-devel >= 1:3.8
BuildRequires: rpmbuild(macros) >= 1.605
+BuildRequires: simde-devel
BuildRequires: speexdsp-devel
BuildRequires: srt-devel
-BuildRequires: swig-python >= 2
+BuildRequires: swig-python >= 4
BuildRequires: udev-devel
BuildRequires: uthash-devel
BuildRequires: vlc-devel
@@ -74,6 +81,7 @@ BuildRequires: vlc-devel
BuildRequires: wayland-devel
BuildRequires: wayland-egl-devel
BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xorg-lib-libxkbcommon-devel
BuildRequires: zlib-devel
%if %{with qt5}
BuildRequires: Qt5Core-devel >= 5
@@ -94,6 +102,7 @@ BuildRequires: Qt6Xml-devel >= 6
BuildRequires: qt6-build >= 6
BuildRequires: qt6-qmake >= 6
%endif
+Requires: glib2 >= 1:2.76
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _noautoprovfiles %{_libdir}/obs-plugins
@@ -165,7 +174,7 @@ builddir="$(pwd)"
cd $RPM_BUILD_ROOT
reldatadir="$(echo %{_datadir} | sed -e 's,^/,,')"
-for f in $reldatadir/obs/obs-studio/locale/??*-??*.ini $reldatadir/obs/obs-plugins/*/locale/??*-??*.ini ; do
+for f in $reldatadir/obs/obs-studio/locale/??*.ini $reldatadir/obs/obs-plugins/*/locale/??*.ini ; do
locale="$(basename "$f" .ini | tr - _)"
case "$locale" in
en_US)
@@ -198,49 +207,49 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/obs
%attr(755,root,root) %{_bindir}/obs-ffmpeg-mux
%attr(755,root,root) %{_bindir}/obs-nvenc-test
-%attr(755,root,root) %{_libdir}/libobs-frontend-api.so.30
-%attr(755,root,root) %ghost %{_libdir}/libobs-frontend-api.so.0
-%attr(755,root,root) %{_libdir}/libobs-opengl.so.30
-%attr(755,root,root) %{_libdir}/libobs.so.30
-%attr(755,root,root) %ghost %{_libdir}/libobs.so.0
-%attr(755,root,root) %{_libdir}/libobs-scripting.so.30
+%{_libdir}/libobs-frontend-api.so.30
+%ghost %{_libdir}/libobs-frontend-api.so.0
+%{_libdir}/libobs-opengl.so.30
+%{_libdir}/libobs.so.30
+%ghost %{_libdir}/libobs.so.0
+%{_libdir}/libobs-scripting.so.30
%dir %{_libdir}/obs-plugins
-%attr(755,root,root) %{_libdir}/obs-plugins/decklink-captions.so
-%attr(755,root,root) %{_libdir}/obs-plugins/decklink-output-ui.so
-%attr(755,root,root) %{_libdir}/obs-plugins/decklink.so
-%attr(755,root,root) %{_libdir}/obs-plugins/frontend-tools.so
-%attr(755,root,root) %{_libdir}/obs-plugins/image-source.so
-%attr(755,root,root) %{_libdir}/obs-plugins/linux-alsa.so
-%attr(755,root,root) %{_libdir}/obs-plugins/linux-capture.so
+%{_libdir}/obs-plugins/decklink-captions.so
+%{_libdir}/obs-plugins/decklink-output-ui.so
+%{_libdir}/obs-plugins/decklink.so
+%{_libdir}/obs-plugins/frontend-tools.so
+%{_libdir}/obs-plugins/image-source.so
+%{_libdir}/obs-plugins/linux-alsa.so
+%{_libdir}/obs-plugins/linux-capture.so
%if %{with jack}
-%attr(755,root,root) %{_libdir}/obs-plugins/linux-jack.so
+%{_libdir}/obs-plugins/linux-jack.so
%dir %{_datadir}/obs/obs-plugins/linux-jack
%dir %{_datadir}/obs/obs-plugins/linux-jack/locale
%endif
-%attr(755,root,root) %{_libdir}/obs-plugins/linux-pipewire.so
-%attr(755,root,root) %{_libdir}/obs-plugins/linux-pulseaudio.so
-%attr(755,root,root) %{_libdir}/obs-plugins/linux-v4l2.so
-%attr(755,root,root) %{_libdir}/obs-plugins/obs-ffmpeg.so
-%attr(755,root,root) %{_libdir}/obs-plugins/obs-filters.so
-%attr(755,root,root) %{_libdir}/obs-plugins/obs-nvenc.so
-%attr(755,root,root) %{_libdir}/obs-plugins/obs-outputs.so
+%{_libdir}/obs-plugins/linux-pipewire.so
+%{_libdir}/obs-plugins/linux-pulseaudio.so
+%{_libdir}/obs-plugins/linux-v4l2.so
+%{_libdir}/obs-plugins/obs-ffmpeg.so
+%{_libdir}/obs-plugins/obs-filters.so
+%{_libdir}/obs-plugins/obs-nvenc.so
+%{_libdir}/obs-plugins/obs-outputs.so
%ifarch %{x8664} x32
-%attr(755,root,root) %{_libdir}/obs-plugins/obs-qsv11.so
+%{_libdir}/obs-plugins/obs-qsv11.so
%dir %{_datadir}/obs/obs-plugins/obs-qsv11
%dir %{_datadir}/obs/obs-plugins/obs-qsv11/locale
%endif
-%attr(755,root,root) %{_libdir}/obs-plugins/obs-transitions.so
-%attr(755,root,root) %{_libdir}/obs-plugins/obs-vst.so
-%attr(755,root,root) %{_libdir}/obs-plugins/obs-x264.so
-%attr(755,root,root) %{_libdir}/obs-plugins/rtmp-services.so
-%attr(755,root,root) %{_libdir}/obs-plugins/text-freetype2.so
-%attr(755,root,root) %{_libdir}/obs-plugins/vlc-video.so
+%{_libdir}/obs-plugins/obs-transitions.so
+%{_libdir}/obs-plugins/obs-vst.so
+%{_libdir}/obs-plugins/obs-x264.so
+%{_libdir}/obs-plugins/rtmp-services.so
+%{_libdir}/obs-plugins/text-freetype2.so
+%{_libdir}/obs-plugins/vlc-video.so
%dir %{_libdir}/obs-scripting
%ifnarch x32
-%attr(755,root,root) %{_libdir}/obs-scripting/obslua.so
+%{_libdir}/obs-scripting/obslua.so
%endif
-%attr(755,root,root) %{_libdir}/obs-scripting/_obspython.so
+%{_libdir}/obs-scripting/_obspython.so
%attr(755,root,root) %{_libdir}/obs-scripting/obspython.py
%{_datadir}/metainfo/com.obsproject.Studio.metainfo.xml
@@ -259,6 +268,7 @@ rm -rf $RPM_BUILD_ROOT
%dir %{_datadir}/obs/obs-studio/locale
%{_datadir}/obs/obs-studio/themes
%{_datadir}/obs/obs-studio/locale.ini
+%{_datadir}/obs/obs-studio/striped_line.effect
%dir %{_datadir}/obs/obs-plugins/decklink
%dir %{_datadir}/obs/obs-plugins/decklink/locale
@@ -328,10 +338,10 @@ rm -rf $RPM_BUILD_ROOT
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libobs.so
-%attr(755,root,root) %{_libdir}/libobs-frontend-api.so
-%attr(755,root,root) %{_libdir}/libobs-opengl.so
-%attr(755,root,root) %{_libdir}/libobs-scripting.so
+%{_libdir}/libobs.so
+%{_libdir}/libobs-frontend-api.so
+%{_libdir}/libobs-opengl.so
+%{_libdir}/libobs-scripting.so
%{_includedir}/obs
%{_pkgconfigdir}/libobs.pc
%{_pkgconfigdir}/obs-frontend-api.pc
diff --git a/disable-missing-plugins.patch b/disable-missing-plugins.patch
index 4412b4f..3122ff1 100644
--- a/disable-missing-plugins.patch
+++ b/disable-missing-plugins.patch
@@ -1,11 +1,11 @@
---- obs-studio-31.0.0/plugins/CMakeLists.txt.orig 2024-12-07 00:21:55.000000000 +0100
-+++ obs-studio-31.0.0/plugins/CMakeLists.txt 2024-12-26 12:09:59.606665425 +0100
-@@ -9,27 +9,6 @@
+--- obs-studio-32.1.2/plugins/CMakeLists.txt.orig 2026-04-21 21:00:34.000000000 +0200
++++ obs-studio-32.1.2/plugins/CMakeLists.txt 2026-06-24 20:18:25.625263780 +0200
+@@ -9,27 +9,6 @@ endif()
set_property(GLOBAL APPEND PROPERTY OBS_FEATURES_ENABLED "Plugin Support")
-macro(check_obs_browser)
-- if((OS_WINDOWS AND CMAKE_VS_PLATFORM_NAME MATCHES "(Win32|x64)") OR OS_MACOS OR OS_LINUX)
+- if((OS_WINDOWS AND CMAKE_VS_PLATFORM_NAME MATCHES "(ARM64|x64)") OR OS_MACOS OR OS_LINUX)
- if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt")
- message(FATAL_ERROR "Required submodule 'obs-browser' not available.")
- else()
@@ -28,7 +28,7 @@
# Add plugins in alphabetical order to retain order in IDE projects
add_obs_plugin(
aja
-@@ -56,8 +35,6 @@
+@@ -56,8 +35,6 @@ add_obs_plugin(mac-videotoolbox PLATFORM
add_obs_plugin(mac-virtualcam PLATFORMS MACOS)
add_obs_plugin(nv-filters PLATFORMS WINDOWS)
@@ -37,7 +37,7 @@
add_obs_plugin(obs-ffmpeg)
add_obs_plugin(obs-filters)
add_obs_plugin(obs-libfdk)
-@@ -77,8 +54,6 @@
+@@ -77,8 +54,6 @@ add_obs_plugin(
)
add_obs_plugin(obs-webrtc)
diff --git a/format-string.patch b/format-string.patch
index 0279a34..96b2326 100644
--- a/format-string.patch
+++ b/format-string.patch
@@ -77,35 +77,9 @@
}
if (enc->props.opts.count)
dstr_catf(&log, "\tuser opts: %s\n", enc->props.opts_str);
---- obs-studio-31.0.0/UI/obs-app-theming.cpp.orig 2024-12-27 00:19:42.779999070 +0100
-+++ obs-studio-31.0.0/UI/obs-app-theming.cpp 2024-12-27 00:24:51.099999085 +0100
-@@ -555,7 +555,11 @@
-
- QStringList args = var.value.toStringList();
- if (args.length() != 3) {
-+#if defined(__ILP32__)
-+ blog(LOG_ERROR, "calc() had invalid number of arguments: %d (%s)", args.length(),
-+#else
- blog(LOG_ERROR, "calc() had invalid number of arguments: %lld (%s)", args.length(),
-+#endif
- QT_TO_UTF8(args.join(", ")));
- return "'Invalid expression'";
- }
---- obs-studio-31.0.0/shared/bpm/bpm.c.org 2024-12-27 00:27:44.626665761 +0100
-+++ obs-studio-31.0.0/shared/bpm/bpm.c 2024-12-27 00:13:58.196665720 +0100
-@@ -17,7 +21,11 @@
- const struct encoder_packet_time *ept, struct metrics_data *m_track)
- {
- if (!output || !pkt || !ept || !m_track) {
-+#if defined(__ILP32__)
-+ blog(LOG_DEBUG, "%s: Null arguments for track %u", __FUNCTION__, pkt->track_idx);
-+#else
- blog(LOG_DEBUG, "%s: Null arguments for track %lu", __FUNCTION__, pkt->track_idx);
-+#endif
- return false;
- }
-
-@@ -118,7 +126,11 @@
+--- obs-studio-32.1.2/shared/bpm/bpm.c.orig 2026-06-24 20:47:06.417087160 +0200
++++ obs-studio-32.1.2/shared/bpm/bpm.c 2026-06-24 20:47:06.436487394 +0200
+@@ -127,7 +127,11 @@ static bool update_metrics(obs_output_t
* with "--verbose" and "--unfiltered_log".
*/
blog(LOG_DEBUG,
@@ -117,7 +91,7 @@
" ms], [dts|pts]:[%" PRId64 "|%" PRId64 "], S[R:O:D:L],R[I:S:O]:%d:%d:%d:%d:%d:%d:%d",
obs_encoder_get_name(pkt->encoder), pkt->track_idx, ept->cts / 1000000, (ept->fer - ept->cts) / 1000000,
(ept->ferc - ept->fer) / 1000, (ept->pir - ept->cts) / 1000000, pkt->dts, pkt->pts,
-@@ -323,14 +335,22 @@
+@@ -332,14 +336,22 @@ static bool process_metrics(obs_output_t
bool av1 = false;
if (!m_track) {
@@ -140,7 +114,7 @@
return false;
}
-@@ -569,7 +589,11 @@
+@@ -578,7 +590,11 @@ void bpm_inject(obs_output_t *output, st
if (pkt->type == OBS_ENCODER_VIDEO && pkt->keyframe) {
/* Video packet must have pkt_timing supplied for BPM */
if (!pkt_time) {
diff --git a/x11-linkage.patch b/x11-linkage.patch
index 3121592..7997a00 100644
--- a/x11-linkage.patch
+++ b/x11-linkage.patch
@@ -1,31 +1,20 @@
---- obs-studio-31.0.0/libobs-opengl/CMakeLists.txt~ 2024-12-07 00:21:55.000000000 +0100
-+++ obs-studio-31.0.0/libobs-opengl/CMakeLists.txt 2024-12-26 12:44:37.833332079 +0100
-@@ -56,6 +56,7 @@
- "$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,IOSurface.framework>>"
- $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:xcb::xcb>
- $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::x11-xcb>
+--- obs-studio-32.1.2/libobs-opengl/CMakeLists.txt.orig 2026-04-21 21:00:34.000000000 +0200
++++ obs-studio-32.1.2/libobs-opengl/CMakeLists.txt 2026-06-24 21:32:11.294384433 +0200
+@@ -58,6 +58,7 @@ target_link_libraries(
+ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Libdrm::Libdrm>
+ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:XCB::XCB>
+ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::XCB>
+ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::X11>
$<$<AND:$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>,$<BOOL:${ENABLE_WAYLAND}>>:OpenGL::EGL>
- $<$<AND:$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>,$<BOOL:${ENABLE_WAYLAND}>>:Wayland::EGL>
+ $<$<AND:$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>,$<BOOL:${ENABLE_WAYLAND}>>:Wayland::Egl>
)
---- obs-studio-31.0.0/libobs/CMakeLists.txt~ 2024-12-07 00:21:55.000000000 +0100
-+++ obs-studio-31.0.0/libobs/CMakeLists.txt 2024-12-26 12:47:01.733332089 +0100
-@@ -7,6 +7,10 @@
- return()
- endif()
-
-+if(OS_LINUX OR OS_FREEBSD OR OS_OPENBSD)
-+ find_package(X11 REQUIRED)
-+endif()
-+
- find_package(Threads REQUIRED)
-
- find_package(FFmpeg 6.1 REQUIRED avformat avutil swscale swresample OPTIONAL_COMPONENTS avcodec)
-@@ -260,6 +264,7 @@
+--- obs-studio-32.1.2/libobs/CMakeLists.txt.orig 2026-04-21 21:00:34.000000000 +0200
++++ obs-studio-32.1.2/libobs/CMakeLists.txt 2026-06-24 21:34:35.738063612 +0200
+@@ -249,6 +249,7 @@ target_link_libraries(
jansson::jansson
Uthash::Uthash
ZLIB::ZLIB
-+ $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:X11::X11>
- PUBLIC Threads::Threads
++ glib-2.0
+ PUBLIC SIMDe::SIMDe Threads::Threads
)
diff --git a/x32.patch b/x32.patch
index e5d308c..6ac8951 100644
--- a/x32.patch
+++ b/x32.patch
@@ -1,17 +1,16 @@
---- obs-studio-29.1.3/plugins/linux-v4l2/v4l2-input.c~ 2023-06-19 00:05:22.000000000 +0200
-+++ obs-studio-29.1.3/plugins/linux-v4l2/v4l2-input.c 2023-11-05 00:32:37.108931868 +0100
-@@ -259,7 +259,11 @@
+--- obs-studio-32.1.2/plugins/linux-v4l2/v4l2-input.c.orig 2026-04-21 21:00:34.000000000 +0200
++++ obs-studio-32.1.2/plugins/linux-v4l2/v4l2-input.c 2026-06-24 20:23:54.697993327 +0200
+@@ -243,8 +243,8 @@ static void *v4l2_thread(void *vptr)
break;
}
-+#if defined(__x86_64__) && defined(__ILP32__)
+- blog(LOG_DEBUG, "%s: ts: %06ld buf id #%d, flags 0x%08X, seq #%d, len %d, used %d", data->device_id,
+- buf.timestamp.tv_usec, buf.index, buf.flags, buf.sequence, buf.length, buf.bytesused);
+ blog(LOG_DEBUG, "%s: ts: %06lld buf id #%d, flags 0x%08X, seq #%d, len %d, used %d", data->device_id,
-+#else
- blog(LOG_DEBUG, "%s: ts: %06ld buf id #%d, flags 0x%08X, seq #%d, len %d, used %d", data->device_id,
-+#endif
- buf.timestamp.tv_usec, buf.index, buf.flags, buf.sequence, buf.length, buf.bytesused);
++ (long long)buf.timestamp.tv_usec, buf.index, buf.flags, buf.sequence, buf.length, buf.bytesused);
- out.timestamp = timeval2ns(buf.timestamp);
+ if (buf.flags & V4L2_BUF_FLAG_ERROR) {
+ blog(LOG_DEBUG, "skipping decoding of buffer with recoverable error-flag set");
--- obs-studio-31.0.0/plugins/obs-qsv11/common_utils_linux.cpp.orig 2024-12-07 00:21:55.000000000 +0100
+++ obs-studio-31.0.0/plugins/obs-qsv11/common_utils_linux.cpp 2024-12-27 00:01:45.876665615 +0100
@@ -509,7 +509,11 @@
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/obs-studio.git/commitdiff/c222207e49bb2ada5db26b894a464b9cb3077ed2
More information about the pld-cvs-commit
mailing list