+# TODO: AJA (BR: libajantv2)
+#
+# Conditional build:
+%bcond_with qt5 # Qt 5 instead of Qt 6
+
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: 27.2.4
-Release: 6
+Version: 29.1.3
+Release: 1
License: GPL v2+
%define obs_vst_gitref 8ad3f64e702ac4f1799b209a511620eb1d096a01
Group: X11/Applications/Multimedia
#Source0Download: https://github.com/obsproject/obs-studio/releases
Source0: https://github.com/jp9000/obs-studio/archive/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: a79f8bf28ab9995e333fc1ac0bcfa708
-Source1: https://github.com/obsproject/obs-vst/archive/%{obs_vst_gitref}/obs-vst-20220206.tar.gz
-# Source1-md5: 7554389796e176c6bc73d453cf883703
-Patch0: mbedtls3-compatibility.patch
-Patch1: Remove_encrypted_RTMP_support.patch
+# Source0-md5: 5597636f9c66342566f47d68aa4c6693
+Patch0: disable-missing-plugins.patch
+Patch1: size_t.patch
+Patch2: x32.patch
URL: https://obsproject.com/
BuildRequires: ImageMagick-devel
BuildRequires: OpenGL-GLX-devel
-BuildRequires: Qt5Core-devel >= 5
-BuildRequires: Qt5Gui-devel >= 5
-BuildRequires: Qt5Svg-devel >= 5
-BuildRequires: Qt5Widgets-devel >= 5
-BuildRequires: Qt5X11Extras-devel >= 5
BuildRequires: alsa-lib-devel
-BuildRequires: cmake >= 2.8.12
+BuildRequires: cmake >= 3.16
BuildRequires: curl-devel
BuildRequires: dbus-devel
-BuildRequires: fdk-aac-devel
# avcodec avfilter avdevice avutil swscale avformat swresample
BuildRequires: ffmpeg-devel
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel >= 2
+BuildRequires: glib2-devel >= 2.0
BuildRequires: jack-audio-connection-kit-devel
BuildRequires: jansson-devel >= 2.5
+BuildRequires: libdrm-devel
+BuildRequires: librist-devel
+BuildRequires: libstdc++-devel >= 6:4.7
BuildRequires: libv4l-devel
+BuildRequires: libva-devel
+BuildRequires: libx264-devel
+# xcb xcb-composite xcb-randr xcb-shm xcb-xfixes xcb-xinerama
BuildRequires: libxcb-devel
%ifnarch x32
BuildRequires: luajit-devel
%endif
-BuildRequires: libstdc++-devel >= 6:4.7
-BuildRequires: libx264-devel
BuildRequires: mbedtls-devel
-BuildRequires: pipewire-devel
+BuildRequires: pciutils-devel
+BuildRequires: pipewire-devel >= 0.3.33
BuildRequires: pkgconfig
BuildRequires: pulseaudio-devel
BuildRequires: python3-devel >= 1:3.2
-BuildRequires: qt5-build >= 5
-BuildRequires: qt5-qmake >= 5
+BuildRequires: rpmbuild(macros) >= 1.605
BuildRequires: speexdsp-devel
+BuildRequires: srt-devel
BuildRequires: swig-python >= 2
BuildRequires: udev-devel
BuildRequires: vlc-devel
+# wayland-client
+BuildRequires: wayland-devel
+BuildRequires: wayland-egl-devel
BuildRequires: xorg-lib-libX11-devel
BuildRequires: zlib-devel
+%if %{with qt5}
+BuildRequires: Qt5Core-devel >= 5
+BuildRequires: Qt5Gui-devel >= 5
+BuildRequires: Qt5Network-devel >= 5
+BuildRequires: Qt5Svg-devel >= 5
+BuildRequires: Qt5Widgets-devel >= 5
+BuildRequires: Qt5Xml-devel >= 5
+BuildRequires: qt5-build >= 5
+BuildRequires: qt5-qmake >= 5
+%else
+BuildRequires: Qt6Core-devel >= 6
+BuildRequires: Qt6Gui-devel >= 6
+BuildRequires: Qt6Network-devel >= 6
+BuildRequires: Qt6Svg-devel >= 6
+BuildRequires: Qt6Widgets-devel >= 6
+BuildRequires: Qt6Xml-devel >= 6
+BuildRequires: qt6-build >= 6
+BuildRequires: qt6-qmake >= 6
+%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _noautoprovfiles %{_libdir}/obs-plugins
+# symbols from libm confuse the checker
+%define skip_post_check_so libobs.so.*
+
%description
OBS Studio is software designed for capturing, compositing, encoding,
recording, and streaming video content, efficiently.
Pliki nagłówkowe OBS Studio.
%prep
-%setup -q -a1
+%setup -q
%patch0 -p1
%patch1 -p1
-%{__mv} obs-vst-%{obs_vst_gitref} obs-vst
-%{__mv} obs-vst plugins
+%ifarch x32
+%patch2 -p1
+%endif
%build
-install -d build
-cd build
-
export OBS_MULTIARCH_SUFFIX="%(echo "%{_lib}" | sed -e 's/^lib//')"
-%cmake .. \
- -DUNIX_STRUCTURE=1 \
+%cmake -B build \
+ -DCMAKE_INSTALL_BINDIR:PATH=bin \
+ -DCMAKE_INSTALL_INCLUDEDIR:PATH=include \
+ -DCMAKE_INSTALL_DATAROOTDIR:PATH=share \
+ -DCMAKE_INSTALL_DATADIR:PATH=share \
+ -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
+ -DCMAKE_SKIP_RPATH=1 \
+ -DBUILD_BROWSER=OFF \
+ -DCALM_DEPRECATION=ON \
+ -DENABLE_AJA=OFF \
+%ifarch x32
+ -DENABLE_SCRIPTING_LUA=OFF \
+%endif
-DOBS_VERSION_OVERRIDE=%{version} \
- -DBUILD_BROWSER=OFF
+ -DQT_VERSION=%{?with_qt5:5}%{!?with_qt5:6} \
+ -DUNIX_STRUCTURE=1
-%{__make}
+%{__make} -C build
%install
rm -rf $RPM_BUILD_ROOT
done > "$builddir/%{name}.lang"
# dir guard
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/obs/obs-plugins/{decklink-captions,decklink-ouput-ui}/.keepme
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/obs/obs-plugins/{decklink-captions,decklink-output-ui}/.keepme
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/obs/obs-plugins/linux-pipewire/.gitkeep
%clean
rm -rf $RPM_BUILD_ROOT
%doc AUTHORS README.rst
%attr(755,root,root) %{_bindir}/obs
%attr(755,root,root) %{_bindir}/obs-ffmpeg-mux
-%attr(755,root,root) %{_libdir}/libobs-frontend-api.so.*.*
+%attr(755,root,root) %{_libdir}/libobs-frontend-api.so.29
%attr(755,root,root) %ghost %{_libdir}/libobs-frontend-api.so.0
-%attr(755,root,root) %{_libdir}/libobs-opengl.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libobs-opengl.so.0
-%attr(755,root,root) %{_libdir}/libobs.so.0
-%attr(755,root,root) %{_libdir}/libobsglad.so.0
-%attr(755,root,root) %{_libdir}/libobs-scripting.so
+%attr(755,root,root) %{_libdir}/libobs-opengl.so.29
+%attr(755,root,root) %ghost %{_libdir}/libobs-opengl.so.1
+%attr(755,root,root) %{_libdir}/libobs.so.29
+%attr(755,root,root) %ghost %{_libdir}/libobs.so.0
+%attr(755,root,root) %{_libdir}/libobs-scripting.so.29
+%attr(755,root,root) %ghost %{_libdir}/libobs-scripting.so.1
%dir %{_libdir}/obs-plugins
%attr(755,root,root) %{_libdir}/obs-plugins/decklink-captions.so
-%attr(755,root,root) %{_libdir}/obs-plugins/decklink-ouput-ui.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
-%attr(755,root,root) %{_libdir}/obs-plugins/linux-decklink.so
-%attr(755,root,root) %{_libdir}/obs-plugins/linux-jack.so
+%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-libfdk.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-outputs.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-transitions.so
%attr(755,root,root) %{_libdir}/obs-plugins/obs-vst.so
%{_datadir}/obs/libobs
%dir %{_datadir}/obs/obs-plugins
%dir %{_datadir}/obs/obs-studio
+%{_datadir}/obs/obs-studio/OBSPublicRSAKey.pem
%{_datadir}/obs/obs-studio/authors
%{_datadir}/obs/obs-studio/images
%{_datadir}/obs/obs-studio/license
%{_datadir}/obs/obs-studio/themes
%{_datadir}/obs/obs-studio/locale.ini
-%dir %{_datadir}/obs/obs-plugins/decklink-ouput-ui
+%dir %{_datadir}/obs/obs-plugins/decklink
+%dir %{_datadir}/obs/obs-plugins/decklink/locale
%dir %{_datadir}/obs/obs-plugins/frontend-tools
%dir %{_datadir}/obs/obs-plugins/frontend-tools/locale
%dir %{_datadir}/obs/obs-plugins/linux-capture
%dir %{_datadir}/obs/obs-plugins/linux-capture/locale
-%dir %{_datadir}/obs/obs-plugins/linux-decklink
-%dir %{_datadir}/obs/obs-plugins/linux-decklink/locale
-
-%dir %{_datadir}/obs/obs-plugins/linux-jack
-%dir %{_datadir}/obs/obs-plugins/linux-jack/locale
+%dir %{_datadir}/obs/obs-plugins/linux-pipewire
+%dir %{_datadir}/obs/obs-plugins/linux-pipewire/locale
%dir %{_datadir}/obs/obs-plugins/linux-pulseaudio
%dir %{_datadir}/obs/obs-plugins/linux-pulseaudio/locale
%{_datadir}/obs/obs-plugins/obs-filters/LUTs
%dir %{_datadir}/obs/obs-plugins/obs-filters/locale
-%dir %{_datadir}/obs/obs-plugins/obs-libfdk
-%dir %{_datadir}/obs/obs-plugins/obs-libfdk/locale
-
%dir %{_datadir}/obs/obs-plugins/obs-outputs
%dir %{_datadir}/obs/obs-plugins/obs-outputs/locale
%dir %{_datadir}/obs/obs-plugins/rtmp-services
%{_datadir}/obs/obs-plugins/rtmp-services/*.json
+%dir %{_datadir}/obs/obs-plugins/rtmp-services/schema
+%{_datadir}/obs/obs-plugins/rtmp-services/schema/*.json
%dir %{_datadir}/obs/obs-plugins/rtmp-services/locale
%dir %{_datadir}/obs/obs-plugins/text-freetype2
%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}/libobsglad.so
+%attr(755,root,root) %{_libdir}/libobs-scripting.so
%{_includedir}/obs
%{_pkgconfigdir}/libobs.pc
-%{_libdir}/cmake/LibObs
+%{_libdir}/cmake/libobs
+%{_libdir}/cmake/obs-frontend-api