obs-studio 30.2.1-1 (x86_64;aarch64;znver1) 2024-17767
10002

Status published
Submitter angrypenguinpoland [@T] gmail.com
Platform rolling
Repository restricted
URL https://abf.openmandriva.org/build_lists/433056
Packages
lib64obs-30.2.1-1.x86_64.binary
lib64obs-debuginfo-30.2.1-1.x86_64.debuginfo
lib64obs-devel-30.2.1-1.x86_64.binary
lib64obs-frontend-api-30.2.1-1.x86_64.binary
lib64obs-frontend-api-debuginfo-30.2.1-1.x86_64.debuginfo
lib64obs-scripting-30.2.1-1.x86_64.binary
lib64obs-scripting-debuginfo-30.2.1-1.x86_64.debuginfo
obs-studio-30.2.1-1.x86_64.binary
obs-studio-30.2.1-1.x86_64.source
obs-studio-debuginfo-30.2.1-1.x86_64.debuginfo
obs-studio-debugsource-30.2.1-1.x86_64.binary
obs-studio-plugin-decklink-30.2.1-1.x86_64.binary
obs-studio-plugin-decklink-debuginfo-30.2.1-1.x86_64.debuginfo
obs-studio-plugin-vlc-30.2.1-1.x86_64.binary
obs-studio-plugin-vlc-debuginfo-30.2.1-1.x86_64.debuginfo
lib64obs-30.2.1-1.aarch64.binary
lib64obs-debuginfo-30.2.1-1.aarch64.debuginfo
lib64obs-devel-30.2.1-1.aarch64.binary
lib64obs-frontend-api-30.2.1-1.aarch64.binary
lib64obs-frontend-api-debuginfo-30.2.1-1.aarch64.debuginfo
lib64obs-scripting-30.2.1-1.aarch64.binary
lib64obs-scripting-debuginfo-30.2.1-1.aarch64.debuginfo
obs-studio-30.2.1-1.aarch64.binary
obs-studio-30.2.1-1.aarch64.source
obs-studio-debuginfo-30.2.1-1.aarch64.debuginfo
obs-studio-debugsource-30.2.1-1.aarch64.binary
obs-studio-plugin-decklink-30.2.1-1.aarch64.binary
obs-studio-plugin-decklink-debuginfo-30.2.1-1.aarch64.debuginfo
obs-studio-plugin-vlc-30.2.1-1.aarch64.binary
obs-studio-plugin-vlc-debuginfo-30.2.1-1.aarch64.debuginfo
lib64obs-30.2.1-1.znver1.binary
lib64obs-debuginfo-30.2.1-1.znver1.debuginfo
lib64obs-devel-30.2.1-1.znver1.binary
lib64obs-frontend-api-30.2.1-1.znver1.binary
lib64obs-frontend-api-debuginfo-30.2.1-1.znver1.debuginfo
lib64obs-scripting-30.2.1-1.znver1.binary
lib64obs-scripting-debuginfo-30.2.1-1.znver1.debuginfo
obs-studio-30.2.1-1.znver1.source
obs-studio-30.2.1-1.znver1.binary
obs-studio-debuginfo-30.2.1-1.znver1.debuginfo
obs-studio-debugsource-30.2.1-1.znver1.binary
obs-studio-plugin-decklink-30.2.1-1.znver1.binary
obs-studio-plugin-decklink-debuginfo-30.2.1-1.znver1.debuginfo
obs-studio-plugin-vlc-30.2.1-1.znver1.binary
obs-studio-plugin-vlc-debuginfo-30.2.1-1.znver1.debuginfo
Build Date 2024-07-23 15:48:04 +0000 UTC
Last Updated 2024-07-30 00:44:19.87222039 +0000 UTC
$ git diff --patch-with-stat --summary 09243c3454676e90d1ca8ffb344ea11ac62debe1..166a077850285c1e3aec7d18dba1bcd77d5ad7e0

 .abf.yml                               |   6 +-
 hevc-vaapi.diff                        |   0
 obs-studio-29.1.0-clang16.patch        |  86 ++++++++++++++++++
 obs-studio-cef-122.patch               |  22 +++++
 obs-studio-ffmpeg-7.0.patch            |  12 +++
 obs-studio.spec                        | 161 ++++++++++++++++++++++++---------
 openmandriva-relax-ffnvcodec-ver.patch |  24 +++++
 7 files changed, 264 insertions(+), 47 deletions(-)
 delete mode 100644 hevc-vaapi.diff
 create mode 100644 obs-studio-29.1.0-clang16.patch
 create mode 100644 obs-studio-cef-122.patch
 create mode 100644 obs-studio-ffmpeg-7.0.patch
 create mode 100644 openmandriva-relax-ffnvcodec-ver.patch

diff --git a/.abf.yml b/.abf.yml
index b204f97..fa6fdbf 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,4 +1,4 @@
 sources:
-  5716577019b1ccda01a12db2cba35a023082b7ad.tar.gz: 3bd03afa9b262eb0e7ff4df593658034d9a3a2f5
-  b6e0888084ab623f0a73e8cb7ee5dc341e56fda1.tar.gz: 4a6e2a94ab8b0ca13908a0e678eda7ee3a653dbf
-  obs-studio-29.0.0.tar.gz: 3fc1cd8fc97dfd8be5401d13e953b510a586695c
+  obs-browser-2a2879b5a69f4a99cd7459d8595af46cdb23115c.tar.gz: da48a676c5adc580b9eefbbbeb0601b3eb669e8b
+  obs-websocket-0548c7798a323fe5296c150e13b898a5ee62fc1e.tar.gz: 53e6c4758d95360db60ab0f34f4d61e6ec0f1002
+  obs-studio-30.2.1.tar.gz: f4f8b9835f790979ad1c33e47926953a751a1be9
diff --git a/hevc-vaapi.diff b/hevc-vaapi.diff
deleted file mode 100644
index e69de29..0000000
diff --git a/obs-studio-29.1.0-clang16.patch b/obs-studio-29.1.0-clang16.patch
new file mode 100644
index 0000000..86ff4fc
--- /dev/null
+++ b/obs-studio-29.1.0-clang16.patch
@@ -0,0 +1,86 @@
+diff -up obs-studio-29.1.0/deps/file-updater/file-updater/file-updater.c.omv~ obs-studio-29.1.0/deps/file-updater/file-updater/file-updater.c
+--- obs-studio-29.1.0/deps/file-updater/file-updater/file-updater.c.omv~	2023-05-03 20:08:05.674575020 +0200
++++ obs-studio-29.1.0/deps/file-updater/file-updater/file-updater.c	2023-05-03 20:15:09.536857184 +0200
+@@ -108,6 +108,10 @@ static bool do_http_request(struct updat
+ 	CURLcode code;
+ 	uint8_t null_terminator = 0;
+ 
++// pragmas are a workaround for what seems to be a false positive w/ warnings
++// "file-updater.c:115:2: error: call to '_curl_easy_setopt_err_write_callback' declared with 'warning' attribute: curl_easy_setopt expects a curl_write_callback argument for this option"
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wattribute-warning"
+ 	da_resize(info->file_data, 0);
+ 	curl_easy_setopt(info->curl, CURLOPT_URL, url);
+ 	curl_easy_setopt(info->curl, CURLOPT_HTTPHEADER, info->header);
+@@ -125,6 +129,7 @@ static bool do_http_request(struct updat
+ 				 http_header);
+ 		curl_easy_setopt(info->curl, CURLOPT_HEADERDATA, info);
+ 	}
++#pragma GCC diagnostic pop
+ 
+ 	code = curl_easy_perform(info->curl);
+ 	if (code != CURLE_OK) {
+diff -up obs-studio-29.1.0/deps/json11/json11.cpp.omv~ obs-studio-29.1.0/deps/json11/json11.cpp
+--- obs-studio-29.1.0/deps/json11/json11.cpp.omv~	2023-05-03 20:15:37.856361073 +0200
++++ obs-studio-29.1.0/deps/json11/json11.cpp	2023-05-03 20:16:26.028231637 +0200
+@@ -151,7 +151,7 @@ protected:
+ 
+     // Constructors
+     explicit Value(const T &value) : m_value(value) {}
+-    explicit Value(T &&value)      : m_value(move(value)) {}
++    explicit Value(T &&value)      : m_value(std::move(value)) {}
+ 
+     // Get type tag
+     Json::Type type() const override {
+@@ -198,7 +198,7 @@ class JsonString final : public Value<Js
+     const string &string_value() const override { return m_value; }
+ public:
+     explicit JsonString(const string &value) : Value(value) {}
+-    explicit JsonString(string &&value)      : Value(move(value)) {}
++    explicit JsonString(string &&value)      : Value(std::move(value)) {}
+ };
+ 
+ class JsonArray final : public Value<Json::ARRAY, Json::array> {
+@@ -206,7 +206,7 @@ class JsonArray final : public Value<Jso
+     const Json & operator[](size_t i) const override;
+ public:
+     explicit JsonArray(const Json::array &value) : Value(value) {}
+-    explicit JsonArray(Json::array &&value)      : Value(move(value)) {}
++    explicit JsonArray(Json::array &&value)      : Value(std::move(value)) {}
+ };
+ 
+ class JsonObject final : public Value<Json::OBJECT, Json::object> {
+@@ -214,7 +214,7 @@ class JsonObject final : public Value<Js
+     const Json & operator[](const string &key) const override;
+ public:
+     explicit JsonObject(const Json::object &value) : Value(value) {}
+-    explicit JsonObject(Json::object &&value)      : Value(move(value)) {}
++    explicit JsonObject(Json::object &&value)      : Value(std::move(value)) {}
+ };
+ 
+ class JsonNull final : public Value<Json::NUL, NullStruct> {
+@@ -256,12 +256,12 @@ Json::Json(double value)               :
+ Json::Json(int value)                  : m_ptr(make_shared<JsonInt>(value)) {}
+ Json::Json(bool value)                 : m_ptr(value ? statics().t : statics().f) {}
+ Json::Json(const string &value)        : m_ptr(make_shared<JsonString>(value)) {}
+-Json::Json(string &&value)             : m_ptr(make_shared<JsonString>(move(value))) {}
++Json::Json(string &&value)             : m_ptr(make_shared<JsonString>(std::move(value))) {}
+ Json::Json(const char * value)         : m_ptr(make_shared<JsonString>(value)) {}
+ Json::Json(const Json::array &values)  : m_ptr(make_shared<JsonArray>(values)) {}
+-Json::Json(Json::array &&values)       : m_ptr(make_shared<JsonArray>(move(values))) {}
++Json::Json(Json::array &&values)       : m_ptr(make_shared<JsonArray>(std::move(values))) {}
+ Json::Json(const Json::object &values) : m_ptr(make_shared<JsonObject>(values)) {}
+-Json::Json(Json::object &&values)      : m_ptr(make_shared<JsonObject>(move(values))) {}
++Json::Json(Json::object &&values)      : m_ptr(make_shared<JsonObject>(std::move(values))) {}
+ 
+ /* * * * * * * * * * * * * * * * * * * *
+  * Accessors
+@@ -359,7 +359,7 @@ struct JsonParser final {
+      * Mark this parse as failed.
+      */
+     Json fail(string &&msg) {
+-        return fail(move(msg), Json());
++        return fail(std::move(msg), Json());
+     }
+ 
+     template <typename T>
diff --git a/obs-studio-cef-122.patch b/obs-studio-cef-122.patch
new file mode 100644
index 0000000..73af17d
--- /dev/null
+++ b/obs-studio-cef-122.patch
@@ -0,0 +1,22 @@
+diff -up obs-studio-30.1.0/plugins/obs-browser/CMakeLists.txt.omv~ obs-studio-30.1.0/plugins/obs-browser/CMakeLists.txt
+diff -up obs-studio-30.1.0/plugins/obs-browser/browser-app.cpp.omv~ obs-studio-30.1.0/plugins/obs-browser/browser-app.cpp
+--- obs-studio-30.1.0/plugins/obs-browser/browser-app.cpp.omv~	2024-03-13 14:05:43.435619075 +0100
++++ obs-studio-30.1.0/plugins/obs-browser/browser-app.cpp	2024-03-13 14:05:59.963852266 +0100
+@@ -147,7 +147,7 @@ void BrowserApp::ExecuteJSFunction(CefRe
+ 	std::vector<CefString> names;
+ 	browser->GetFrameNames(names);
+ 	for (auto &name : names) {
+-		CefRefPtr<CefFrame> frame = browser->GetFrame(name);
++		CefRefPtr<CefFrame> frame = browser->GetFrameByName(name);
+ 		CefRefPtr<CefV8Context> context = frame->GetV8Context();
+ 
+ 		context->Enter();
+@@ -346,7 +346,7 @@ bool BrowserApp::OnProcessMessageReceive
+ 		std::vector<CefString> names;
+ 		browser->GetFrameNames(names);
+ 		for (auto &name : names) {
+-			CefRefPtr<CefFrame> frame = browser->GetFrame(name);
++			CefRefPtr<CefFrame> frame = browser->GetFrameByName(name);
+ 			CefRefPtr<CefV8Context> context = frame->GetV8Context();
+ 
+ 			context->Enter();
diff --git a/obs-studio-ffmpeg-7.0.patch b/obs-studio-ffmpeg-7.0.patch
new file mode 100644
index 0000000..7ade64f
--- /dev/null
+++ b/obs-studio-ffmpeg-7.0.patch
@@ -0,0 +1,12 @@
+diff -up obs-studio-30.1.1/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c.omv~ obs-studio-30.1.1/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c
+--- obs-studio-30.1.1/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c.omv~	2024-04-08 15:22:36.871991837 +0200
++++ obs-studio-30.1.1/plugins/obs-ffmpeg/ffmpeg-mux/ffmpeg-mux.c	2024-04-08 15:22:46.904082834 +0200
+@@ -886,7 +886,7 @@ static int64_t ffmpeg_mux_seek_av_buffer
+ 	return 0;
+ }
+ 
+-static int ffmpeg_mux_write_av_buffer(void *opaque, uint8_t *buf, int buf_size)
++static int ffmpeg_mux_write_av_buffer(void *opaque, const uint8_t *buf, int buf_size)
+ {
+ 	struct ffmpeg_mux *ffm = opaque;
+ 
diff --git a/obs-studio.spec b/obs-studio.spec
index cfd3d12..45c75d0 100644
--- a/obs-studio.spec
+++ b/obs-studio.spec
@@ -1,44 +1,54 @@
 %define _disable_ld_no_undefined 1
 %define _disable_lto 1
 
+# Current status of CEF plugin: It compiles, but crashes when trying
+# to use the browser
+%bcond_with cef
+
 %define	libobs %mklibname obs
-%define	libobsglad %mklibname obsglad
-%define	libobsopengl %mklibname obs-opengl
 %define	libobsfrontendapi  %mklibname obs-frontend-api
 %define	libobsscripting  %mklibname obs-scripting
 %define	devobs %mklibname obs -d
 
 %define	oname	obs
 
+# ffmpeg 6.1 deprecates a slew of things still used by obs
+%global optflags %{optflags} -Wno-error=deprecated-declarations
+
 # This package requires x264 codec so we provide it in Restricted repository
 %define	distsuffix plf
 
+#define beta beta4
+
 Summary:	Free and open source software for video recording and live streaming
 Name:		obs-studio
-Version:	29.0.0
-Release:	1
+Version:	30.2.1
+Release:	%{?beta:0.%{beta}.}1
 License:	GPLv2+
 Group:		Video
 Url:		https://obsproject.com
-Source0:	https://github.com/obsproject/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
+Source0:	https://github.com/obsproject/%{name}/archive/%{version}/%{name}-%{version}%{?beta:-%{beta}}.tar.gz
 # git submodules that have gone missing in 28.0 tarballs
-Source1:	https://github.com/obsproject/obs-browser/archive/b6e0888084ab623f0a73e8cb7ee5dc341e56fda1.tar.gz
-Source2:	https://github.com/obsproject/obs-websocket/archive/5716577019b1ccda01a12db2cba35a023082b7ad.tar.gz
+Source1:	https://github.com/obsproject/obs-browser/archive/obs-browser-2a2879b5a69f4a99cd7459d8595af46cdb23115c.tar.gz
+Source2:	https://github.com/obsproject/obs-websocket/archive/obs-websocket-0548c7798a323fe5296c150e13b898a5ee62fc1e.tar.gz
 #Source3:	https://github.com/obsproject/obs-amd-encoder/archive/5a1dafeddb4b37ca2ba2415cf88b40bff8aee428.tar.gz
 
 #Patch0:		%{name}-27.1.0-linkage.patch
-Patch1:		hevc-vaapi.diff
+Patch1:		obs-studio-29.1.0-clang16.patch
 # The cmake dependency generator isn't smart enough
 # to see that the w32-pthreads dependency is only
 # in a condition that can never be true on a real OS
 Patch2:		no-w32-pthreads-dep.patch
+# Port the browser plugin to CEF 122.x
+Patch3:		obs-studio-cef-122.patch
+
 BuildRequires:	cmake ninja
-BuildRequires:	qmake5
 BuildRequires:	freetype-devel
 BuildRequires:	pkgconfig(alsa)
 BuildRequires:	pkgconfig(cryptopp)
 BuildRequires:	pkgconfig(dbus-1)
 BuildRequires:	pkgconfig(fontconfig)
+BuildRequires:  pkgconfig(ffnvcodec)
 BuildRequires:	pkgconfig(gl)
 BuildRequires:	pkgconfig(jack)
 BuildRequires:	pkgconfig(jansson)
@@ -62,7 +72,10 @@ BuildRequires:	pkgconfig(xkbcommon)
 BuildRequires:	pkgconfig(libpci)
 BuildRequires:	pkgconfig(libssh2)
 BuildRequires:	pkgconfig(libidn2)
+BuildRequires:	pkgconfig(libvlc)
+BuildRequires:	pkgconfig(nlohmann_json)
 BuildRequires:	qt6-cmake
+BuildRequires:	qmake-qt6
 BuildRequires:	cmake(Qt6)
 BuildRequires:	cmake(Qt6Core)
 BuildRequires:	cmake(Qt6DBus)
@@ -73,6 +86,9 @@ BuildRequires:	cmake(Qt6Network)
 BuildRequires:	cmake(Qt6Widgets)
 BuildRequires:  cmake(Qt6Xml)
 BuildRequires:	cmake(vulkanheaders)
+%ifarch %{x86_64}
+BuildRequires:	pkgconfig(vpl)
+%endif
 BuildRequires:	pkgconfig(speexdsp)
 BuildRequires:	pkgconfig(udev)
 BuildRequires:	pkgconfig(wayland-egl)
@@ -89,6 +105,10 @@ BuildRequires:	pkgconfig(luajit)
 BuildRequires:	swig
 BuildRequires:	mbedtls-devel
 BuildRequires:	sndio-devel
+BuildRequires:  uthash-devel
+%if %{with cef}
+BuildRequires:	cef-devel
+%endif
 
 # Build dependencies from restricted repo. If needed OSB-Studio can be moved to main repo and below deps disabled
 # Build with this deps only for OBS-Studio from restricted repo.
@@ -103,68 +123,107 @@ Requires:	lib64va2
 %ifarch %{ix86}
 Requires:	libva2
 %endif
+Requires: x264
+Requires: x265
+Requires: %{_lib}Qt6WlShellIntegration
 
 # Used via dlopen() so require them, otherwise they don't get installed
-Requires:	%{libobsopengl} = %{EVRD}
 Requires:	%{libobs} = %{EVRD}
 
+# Libraries that existed in previous versions
+%define	libobsglad %mklibname obsglad
+%define	libobsopengl %mklibname obs-opengl
+Obsoletes:	%{libobsglad} < %{EVRD}
+Obsoletes:	%{libobsopengl} < %{EVRD}
+
 %description
 Free and open source software for video recording and live streaming.
 This package is in the Restricted repository because it requires x264 codec.
 
 %files
-%doc COPYING README.rst
 %{_bindir}/%{oname}
 %{_bindir}/%{oname}-ffmpeg-mux
 %{_datadir}/applications/com.obsproject.Studio.desktop
-%{_datadir}/metainfo/com.obsproject.Studio.appdata.xml
+%{_datadir}/metainfo/com.obsproject.Studio.metainfo.xml
 %dir %{_datadir}/%{oname}/
 %{_datadir}/%{oname}/*
 %{_iconsdir}/hicolor/*/apps/*
 %dir %{_libdir}/%{oname}-plugins/
-%{_libdir}/%{oname}-plugins/*.so
-%{_libdir}/libobs-scripting.so
+%{_libdir}/%{oname}-plugins/frontend-tools.so
+%{_libdir}/%{oname}-plugins/image-source.so
+%{_libdir}/%{oname}-plugins/linux-*.so
+%{_libdir}/%{oname}-plugins/obs-*.so
+%exclude %{_libdir}/%{oname}-plugins/obs-browser.so
+%{_libdir}/%{oname}-plugins/rtmp-services.so
+%{_libdir}/%{oname}-plugins/text-freetype2.so
 %{_libdir}/obs-scripting
+%{_libdir}/libobs-opengl.so*
 
 #----------------------------------------------------------------------------
 
-%package -n %{libobs}
-Summary:	Shared library for %{name}
-Group:		System/Libraries
+%package plugin-vlc
+Summary:	VLC player support plugin for OBS Studio
+Group:		Video
+Requires:	%{name} = %{EVRD}
 
-%description -n %{libobs}
-Shared library for %{name}.
+%description plugin-vlc
+VLC player support plugin for OBS Studio
 
-%files -n %{libobs}
-%doc COPYING README.rst
-%{_libdir}/libobs.so.*
+%files plugin-vlc
+%{_libdir}/%{oname}-plugins/vlc-video.so
 
 #----------------------------------------------------------------------------
 
-%package -n %{libobsglad}
-Summary:	Shared library for %{name}
-Group:		System/Libraries
+%package plugin-decklink
+Summary:	DeckLink hardware support plugin for OBS Studio
+Group:		Video
+Requires:	%{name} = %{EVRD}
 
-%description -n %{libobsglad}
-Shared library for %{name}.
+%description plugin-decklink
+DeckLink hardware support plugin for OBS Studio
 
-%files -n %{libobsglad}
-%doc COPYING README.rst
-%{_libdir}/libobsglad.so.*
+%files plugin-decklink
+%{_libdir}/%{oname}-plugins/decklink*.so
 
+#----------------------------------------------------------------------------
+%if %{with cef}
+%package plugin-browser
+Summary:	Web browser plugin for OBS Studio
+Group:		Video
+Requires:	%{name} = %{EVRD}
+
+%description plugin-browser
+Web browser plugin for OBS Studio
+
+%files plugin-browser -f browser.lang
+%{_libdir}/obs-plugins/obs-browser.so
+%{_libdir}/obs-plugins/chrome-sandbox
+%{_libdir}/obs-plugins/chrome*.pak
+%{_libdir}/obs-plugins/chrome_sandbox
+%{_libdir}/obs-plugins/icudtl.dat
+%{_libdir}/obs-plugins/libEGL.so
+%{_libdir}/obs-plugins/libGLESv2.so
+%{_libdir}/obs-plugins/libcef.so
+%{_libdir}/obs-plugins/libqt6_shim.so
+%{_libdir}/obs-plugins/libvk_swiftshader.so
+%{_libdir}/obs-plugins/libvulkan.so.1
+%{_libdir}/obs-plugins/obs-browser-page
+%{_libdir}/obs-plugins/resources.pak
+%{_libdir}/obs-plugins/snapshot_blob.bin
+%{_libdir}/obs-plugins/v8_context_snapshot.bin
+%{_libdir}/obs-plugins/vk_swiftshader_icd.json
+%endif
 #----------------------------------------------------------------------------
 
-%package -n %{libobsopengl}
+%package -n %{libobs}
 Summary:	Shared library for %{name}
 Group:		System/Libraries
-Requires:	%{libobsfrontendapi} = %{EVRD}
 
-%description -n %{libobsopengl}
+%description -n %{libobs}
 Shared library for %{name}.
 
-%files -n %{libobsopengl}
-%doc COPYING README.rst
-%{_libdir}/libobs-opengl.so.*
+%files -n %{libobs}
+%{_libdir}/libobs.so.*
 
 #----------------------------------------------------------------------------
 
@@ -172,8 +231,6 @@ Shared library for %{name}.
 Summary:	Development files for %{name}
 Group:		Development/C
 Requires:	%{libobs} = %{EVRD}
-Requires:	%{libobsglad} = %{EVRD}
-Requires:	%{libobsopengl} = %{EVRD}
 Requires:	%{libobsfrontendapi} = %{EVRD}
 Provides:	%{name}-devel = %{EVRD}
 Provides:	%{oname}-devel = %{EVRD}
@@ -182,15 +239,13 @@ Provides:	%{oname}-devel = %{EVRD}
 Development files for %{name}
 
 %files -n %{devobs}
-%doc COPYING README.rst
 %dir %{_includedir}/%{oname}
 %{_includedir}/%{oname}/*
 %{_libdir}/libobs.so
-%{_libdir}/libobsglad.so
-%{_libdir}/libobs-opengl.so
 %{_libdir}/libobs-frontend-api.so
 %{_libdir}/cmake/libobs
 %{_libdir}/cmake/obs-frontend-api
+%{_libdir}/cmake/obs-websocket-api/
 %{_libdir}/pkgconfig/libobs.pc
 
 #----------------------------------------------------------------------------
@@ -203,7 +258,6 @@ Group:		System/Libraries
 Frontend-api library for %{name}.
 
 %files -n %{libobsfrontendapi}
-%doc COPYING README.rst
 %{_libdir}/libobs-frontend-api.so.*
 
 #----------------------------------------------------------------------------
@@ -217,30 +271,43 @@ Scripting library for %{name}.
 
 %files -n %{libobsscripting}
 %{_libdir}/libobs-scripting.so.*
+%{_libdir}/libobs-scripting.so
 
 #----------------------------------------------------------------------------
 
 %prep
-%autosetup -n %{name}-%{version} -p1
+%setup -q -n %{name}-%{version}%{?beta:-%{beta}}
 
 cd plugins
-rmdir obs-browser obs-websocket enc-amf
+rmdir obs-browser obs-websocket
 tar xf %{S:1}
 tar xf %{S:2}
 mv obs-browser-* obs-browser
 mv obs-websocket-* obs-websocket
 cd ..
 
+%autopatch -p1
+
 %cmake	-DUNIX_STRUCTURE=1 \
 	-DOBS_MULTIARCH_SUFFIX=$(echo %{_lib} |sed -e 's,^lib,,') \
 	-DOBS_VERSION_OVERRIDE="%{version}" \
 	-DENABLE_LIBFDK=ON \
   	-DENABLE_JACK=ON \
+%if %{with cef}
+	-DENABLE_BROWSER=ON \
+	-DCEF_ROOT_DIR=%{_libdir}/cef \
+%else
 	-DBUILD_BROWSER=OFF \
+%endif
 	-DENABLE_WEBSOCKET=OFF \
 	-DBUILD_VST=OFF \
 	-DENABLE_NEW_MPEGTS_OUTPUT=OFF \
 	-DENABLE_AJA=OFF \
+ 	-DENABLE_WEBRTC=OFF \
+  	-DENABLE_NATIVE_NVENC:BOOL=OFF \
+%ifnarch %{x86_64}
+	-DENABLE_QSV11=OFF \
+%endif
 	-G Ninja
 
 %build
@@ -248,3 +315,9 @@ cd ..
 
 %install
 %ninja_install -C build
+
+echo '%%dir %{_libdir}/obs-plugins/locales' >browser.lang
+for i in %{buildroot}%{_libdir}/obs-plugins/locales/*.pak; do
+	L="`basename $i .pak`"
+	echo "%%lang($L) %{_libdir}/obs-plugins/locales/$L.pak*" >>browser.lang
+done
diff --git a/openmandriva-relax-ffnvcodec-ver.patch b/openmandriva-relax-ffnvcodec-ver.patch
new file mode 100644
index 0000000..a5196b0
--- /dev/null
+++ b/openmandriva-relax-ffnvcodec-ver.patch
@@ -0,0 +1,24 @@
+diff -uraN obs-studio-30.2.0-beta4/plugins/obs-ffmpeg/cmake/dependencies.cmake omv-obs-studio-30.2.0-beta4/plugins/obs-ffmpeg/cmake/dependencies.cmake
+--- obs-studio-30.2.0-beta4/plugins/obs-ffmpeg/cmake/dependencies.cmake	2024-06-18 20:13:42.000000000 +0200
++++ omv-obs-studio-30.2.0-beta4/plugins/obs-ffmpeg/cmake/dependencies.cmake	2024-06-19 17:13:12.458684469 +0200
+@@ -42,7 +42,7 @@
+   target_sources(obs-nvenc-version INTERFACE obs-nvenc-ver.h)
+   target_include_directories(obs-nvenc-version INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
+ 
+-  find_package(FFnvcodec 12.0.0.0...<12.2.0.0 REQUIRED)
++  find_package(FFnvcodec 12.0.0.0...<12.3.0.0 REQUIRED)
+ 
+   if(OS_LINUX AND NOT TARGET OBS::glad)
+     add_subdirectory("${CMAKE_SOURCE_DIR}/deps/glad" "${CMAKE_BINARY_DIR}/deps/glad")
+diff -uraN obs-studio-30.2.0-beta4/plugins/obs-ffmpeg/cmake/legacy.cmake omv-obs-studio-30.2.0-beta4/plugins/obs-ffmpeg/cmake/legacy.cmake
+--- obs-studio-30.2.0-beta4/plugins/obs-ffmpeg/cmake/legacy.cmake	2024-06-18 20:13:42.000000000 +0200
++++ omv-obs-studio-30.2.0-beta4/plugins/obs-ffmpeg/cmake/legacy.cmake	2024-06-19 17:12:54.309587800 +0200
+@@ -116,7 +116,7 @@
+   target_link_libraries(obs-ffmpeg PRIVATE Libva::va Libva::drm LIBPCI::LIBPCI Libdrm::Libdrm)
+ 
+   if(ENABLE_NATIVE_NVENC)
+-    find_package(FFnvcodec 12.0.0.0...<12.2.0.0 REQUIRED)
++    find_package(FFnvcodec 12.0.0.0...<12.3.0.0 REQUIRED)
+     target_sources(obs-ffmpeg PRIVATE obs-nvenc.c obs-nvenc.h obs-nvenc-helpers.c obs-nvenc-ver.h)
+     target_link_libraries(obs-ffmpeg PRIVATE FFnvcodec::FFnvcodec OBS::obsglad)
+     target_compile_definitions(obs-ffmpeg PRIVATE NVCODEC_AVAILABLE)
Not Available

angrypenguinpoland [@T] gmail.comNo Comment.45d 13hrs
angrypenguinpoland [@T] gmail.comNo Comment.44d 07hrs
angrypenguinpoland [@T] gmail.comNo Comment.44d 07hrs
369start [@T] proton.meNo Comment.40d 01hrs
369start [@T] proton.meNo Comment.40d 01hrs