[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