]> git.pld-linux.org Git - packages/obs-studio.git/blobdiff - obs-studio.spec
- updated options and dependencies
[packages/obs-studio.git] / obs-studio.spec
index 8687705cc43da2d3bba925a8203f8a526838cebd..0002351906c63faf5ee50ca2818ac20e5cfeb1c8 100644 (file)
+# 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:       21.0.1
-Release:       4
-License:       GPL v2
-Group:         Applications
+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: 2dbd9d5832d070a349cd97f495d788ac
-Patch0:                libobs_link.patch
-Patch1:                %{name}-build.patch
+# Source0-md5: 5597636f9c66342566f47d68aa4c6693
+Patch0:                disable-missing-plugins.patch
+Patch1:                size_t.patch
+Patch2:                x32.patch
 URL:           https://obsproject.com/
-BuildRequires: Qt5Core-devel
-BuildRequires: Qt5Gui-devel
-BuildRequires: cmake
+BuildRequires: ImageMagick-devel
+BuildRequires: OpenGL-GLX-devel
+BuildRequires: alsa-lib-devel
+BuildRequires: cmake >= 3.16
 BuildRequires: curl-devel
-BuildRequires: fdk-aac-devel
+BuildRequires: dbus-devel
+# avcodec avfilter avdevice avutil swscale avformat swresample
 BuildRequires: ffmpeg-devel
 BuildRequires: fontconfig-devel
-BuildRequires: freetype-devel
+BuildRequires: freetype-devel >= 2
+BuildRequires: glib2-devel >= 2.0
 BuildRequires: jack-audio-connection-kit-devel
-BuildRequires: jansson-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: mbedtls-devel
+BuildRequires: pciutils-devel
+BuildRequires: pipewire-devel >= 0.3.33
+BuildRequires: pkgconfig
 BuildRequires: pulseaudio-devel
-BuildRequires: python3-devel
-BuildRequires: qt5-build
-BuildRequires: qt5-qmake
-BuildRequires: swig-python
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: rpmbuild(macros) >= 1.605
+BuildRequires: speexdsp-devel
+BuildRequires: srt-devel
+BuildRequires: swig-python >= 2
 BuildRequires: udev-devel
 BuildRequires: vlc-devel
-BuildRequires: xorg-lib-libXcomposite-devel
-BuildRequires: xorg-lib-libXinerama-devel
-BuildRequires: xorg-lib-libXrandr-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.
 
+%description -l pl.UTF-8
+OBS Studio to oprogramowanie służące do wydajnego przechwytywania,
+składania, kodowania, nagrywania i przesyłania treści wideo.
+
 %package devel
 Summary:       Header files for OBS Studio
-Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki %{name}
+Summary(pl.UTF-8):     Pliki nagłówkowe OBS Studio
 Group:         Development/Libraries
 Requires:      %{name} = %{version}-%{release}
 
 %description devel
-Header files for %{name} library.
+Header files for OBS Studio.
 
 %description devel -l pl.UTF-8
-Pliki nagłówkowe biblioteki %{name}.
+Pliki nagłówkowe OBS Studio.
 
 %prep
 %setup -q
-
 %patch0 -p1
 %patch1 -p1
+%ifarch x32
+%patch2 -p1
+%endif
 
 %build
-install -d build
-cd build
-
-%if "%{_lib}" == "lib64"
-export OBS_MULTIARCH_SUFFIX=64
-%endif
-%if "%{_lib}" == "libx32"
-export OBS_MULTIARCH_SUFFIX=x32
+export OBS_MULTIARCH_SUFFIX="%(echo "%{_lib}" | sed -e 's/^lib//')"
+%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
-
-%cmake \
        -DOBS_VERSION_OVERRIDE=%{version} \
-               ../
-%{__make}
+       -DQT_VERSION=%{?with_qt5:5}%{!?with_qt5:6} \
+       -DUNIX_STRUCTURE=1
+
+%{__make} -C build
 
 %install
 rm -rf $RPM_BUILD_ROOT
+
 %{__make} -C build install/fast \
         DESTDIR=$RPM_BUILD_ROOT
 
+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
+       locale="$(basename "$f" .ini | tr - _)"
+       case "$locale" in
+         en_US)
+               loctag=""
+               ;;
+         pt_BR|zh_CN|zh_TW)
+               loctag="%lang($locale) "
+               ;;
+         *)
+               # this rule covers also conversion of bogus Serbian codes to "sr": "sr_CS" (actually sr_RS@latin), "sr_SP" (actually sr_RS, cyrillic)
+               loctag="%lang(${locale%_??}) "
+               ;;
+       esac
+       echo "${loctag}/$f"
+done > "$builddir/%{name}.lang"
+
+# dir guard
+%{__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
 
 %post  -p /sbin/ldconfig
 %postun        -p /sbin/ldconfig
 
-%files
+%files -f %{name}.lang
 %defattr(644,root,root,755)
 %doc AUTHORS README.rst
 %attr(755,root,root) %{_bindir}/obs
-%attr(755,root,root) %{_libdir}/libobs-frontend-api.so.0.*
-%ghost %{_libdir}/libobs-frontend-api.so.0
-%attr(755,root,root) %{_libdir}/libobs-opengl.so.0.*
-%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) %{_bindir}/obs-ffmpeg-mux
+%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.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/*.so
+%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
+%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-outputs.so
+%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
 %dir %{_libdir}/obs-scripting
 %ifnarch x32
 %attr(755,root,root) %{_libdir}/obs-scripting/obslua.so
 %endif
 %attr(755,root,root) %{_libdir}/obs-scripting/_obspython.so
 %attr(755,root,root) %{_libdir}/obs-scripting/obspython.py
-%{_desktopdir}/obs.desktop
-%{_iconsdir}/*/*/apps/obs.png
+
+%{_datadir}/metainfo/com.obsproject.Studio.appdata.xml
+%{_desktopdir}/com.obsproject.Studio.desktop
+%{_iconsdir}/hicolor/*x*/apps/com.obsproject.Studio.png
+%{_iconsdir}/hicolor/scalable/apps/com.obsproject.Studio.svg
 
 %dir %{_datadir}/obs
 %{_datadir}/obs/libobs
-%{_datadir}/obs/obs-studio
 %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
+%dir %{_datadir}/obs/obs-studio/locale
+%{_datadir}/obs/obs-studio/themes
+%{_datadir}/obs/obs-studio/locale.ini
+
+%dir %{_datadir}/obs/obs-plugins/decklink
+%dir %{_datadir}/obs/obs-plugins/decklink/locale
 
 %dir %{_datadir}/obs/obs-plugins/frontend-tools
-%{_datadir}/obs/obs-plugins/frontend-tools/locale
+%dir %{_datadir}/obs/obs-plugins/frontend-tools/locale
 %dir %{_datadir}/obs/obs-plugins/frontend-tools/scripts
 %{_datadir}/obs/obs-plugins/frontend-tools/scripts/*.lua
 %{_datadir}/obs/obs-plugins/frontend-tools/scripts/*.py
 %{_datadir}/obs/obs-plugins/frontend-tools/scripts/clock-source
 
 %dir %{_datadir}/obs/obs-plugins/image-source
-%{_datadir}/obs/obs-plugins/image-source/locale
+%dir %{_datadir}/obs/obs-plugins/image-source/locale
 
 %dir %{_datadir}/obs/obs-plugins/linux-alsa
-%{_datadir}/obs/obs-plugins/linux-alsa/locale
+%dir %{_datadir}/obs/obs-plugins/linux-alsa/locale
 
 %dir %{_datadir}/obs/obs-plugins/linux-capture
-%{_datadir}/obs/obs-plugins/linux-capture/locale
+%dir %{_datadir}/obs/obs-plugins/linux-capture/locale
 
-%dir %{_datadir}/obs/obs-plugins/linux-decklink
-%{_datadir}/obs/obs-plugins/linux-decklink/locale
-
-%dir %{_datadir}/obs/obs-plugins/linux-jack
-%{_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
-%{_datadir}/obs/obs-plugins/linux-pulseaudio/locale
+%dir %{_datadir}/obs/obs-plugins/linux-pulseaudio/locale
 
 %dir %{_datadir}/obs/obs-plugins/linux-v4l2
-%{_datadir}/obs/obs-plugins/linux-v4l2/locale
+%dir %{_datadir}/obs/obs-plugins/linux-v4l2/locale
 
 %dir %{_datadir}/obs/obs-plugins/obs-ffmpeg
-%{_datadir}/obs/obs-plugins/obs-ffmpeg/locale
-%attr(755,root,root) %{_datadir}/obs/obs-plugins/obs-ffmpeg/ffmpeg-mux
+%dir %{_datadir}/obs/obs-plugins/obs-ffmpeg/locale
 
 %dir %{_datadir}/obs/obs-plugins/obs-filters
-%{_datadir}/obs/obs-plugins/obs-filters/locale
 %{_datadir}/obs/obs-plugins/obs-filters/*.effect
 %{_datadir}/obs/obs-plugins/obs-filters/LUTs
-
-%dir %{_datadir}/obs/obs-plugins/obs-libfdk
-%{_datadir}/obs/obs-plugins/obs-libfdk/locale
+%dir %{_datadir}/obs/obs-plugins/obs-filters/locale
 
 %dir %{_datadir}/obs/obs-plugins/obs-outputs
-%{_datadir}/obs/obs-plugins/obs-outputs/locale
+%dir %{_datadir}/obs/obs-plugins/obs-outputs/locale
 
 %dir %{_datadir}/obs/obs-plugins/obs-transitions
-%{_datadir}/obs/obs-plugins/obs-transitions/locale
 %{_datadir}/obs/obs-plugins/obs-transitions/*.effect
-%{_datadir}/obs/obs-plugins/obs-transitions/*.inc
 %{_datadir}/obs/obs-plugins/obs-transitions/luma_wipes
+%dir %{_datadir}/obs/obs-plugins/obs-transitions/locale
+
+%dir %{_datadir}/obs/obs-plugins/obs-vst
+%dir %{_datadir}/obs/obs-plugins/obs-vst/locale
 
 %dir %{_datadir}/obs/obs-plugins/obs-x264
-%{_datadir}/obs/obs-plugins/obs-x264/locale
+%dir %{_datadir}/obs/obs-plugins/obs-x264/locale
 
 %dir %{_datadir}/obs/obs-plugins/rtmp-services
-%{_datadir}/obs/obs-plugins/rtmp-services/locale
 %{_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
-%{_datadir}/obs/obs-plugins/text-freetype2/locale
 %{_datadir}/obs/obs-plugins/text-freetype2/*.effect
+%dir %{_datadir}/obs/obs-plugins/text-freetype2/locale
 
 %dir %{_datadir}/obs/obs-plugins/vlc-video
-%{_datadir}/obs/obs-plugins/vlc-video/locale
+%dir %{_datadir}/obs/obs-plugins/vlc-video/locale
 
 %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
 %{_includedir}/obs
-%{_libdir}/cmake/LibObs
-%{_libdir}/libobs-frontend-api.so
-%{_libdir}/libobs-opengl.so
-%{_libdir}/libobs.so
-%{_libdir}/libobsglad.so
+%{_pkgconfigdir}/libobs.pc
+%{_libdir}/cmake/libobs
+%{_libdir}/cmake/obs-frontend-api
This page took 0.11142 seconds and 4 git commands to generate.