Files
packages/anda/apps/obs-studio/obs-studio.spec
T
windowsboy111 126235dc70 Revert "fix: ~"
This reverts commit c699fad604.
2023-05-23 20:23:27 +08:00

154 lines
5.1 KiB
RPMSpec

%global obswebsocketver 5.2.2
Name: obs-studio
Version: 29.1.1
Release: 1%?dist
Summary: Open Broadcaster Software Studio
License: GPL-2.0-or-later and ISC and MIT and BSD-1-Clause and BSD-2-Clause and BSD-3-Clause and BSL-1.0 and LGPL-2.1-or-later and CC0-1.0 and (CC0-1.0 or OpenSSL or Apache-2.0) and LicenseRef-Fedora-Public-Domain and (BSD-3-Clause or GPL-2.0-only)
URL: https://obsproject.com/
Source0: https://github.com/obsproject/obs-studio/archive/refs/tags/%version.tar.gz
Source1: https://github.com/obsproject/obs-websocket/archive/%obswebsocketver/obs-websocket-%obswebsocketver.tar.gz
Patch1: 0001-UI-Consistently-reference-the-software-H264-encoder-.patch
Patch2: 0002-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch
Patch3: 0003-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
Patch11: obs-studio-websocket-use-system-qrcodegencpp.patch
BuildRequires: gcc
BuildRequires: cmake >= 3.16
BuildRequires: ninja-build
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: alsa-lib-devel
BuildRequires: asio-devel
BuildRequires: fdk-aac-free-devel
BuildRequires: ffmpeg-devel
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: jansson-devel >= 2.5
BuildRequires: json-devel
BuildRequires: libcurl-devel
BuildRequires: libdrm-devel
BuildRequires: libGL-devel
BuildRequires: libglvnd-devel
BuildRequires: librist-devel
BuildRequires: srt-devel
BuildRequires: libuuid-devel
BuildRequires: libv4l-devel
BuildRequires: libva-devel
BuildRequires: libX11-devel
BuildRequires: libxcb-devel
BuildRequires: libXcomposite-devel
BuildRequires: libXinerama-devel
BuildRequires: libxkbcommon-devel
BuildRequires: luajit-devel
BuildRequires: mbedtls-devel
BuildRequires: pciutils-devel
BuildRequires: pipewire-devel
BuildRequires: pipewire-jack-audio-connection-kit-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: python3-devel
BuildRequires: libqrcodegencpp-devel
BuildRequires: qt6-qtbase-devel
BuildRequires: qt6-qtbase-private-devel
BuildRequires: qt6-qtsvg-devel
BuildRequires: qt6-qtwayland-devel
BuildRequires: speexdsp-devel
BuildRequires: swig
BuildRequires: systemd-devel
BuildRequires: wayland-devel
BuildRequires: websocketpp-devel
BuildRequires: x264-devel
BuildRequires: vlc-devel
# Ensure QtWayland is installed when libwayland-client is installed
Requires: (qt6-qtwayland%{?_isa} if libwayland-client%{?_isa})
# For icon folder heirarchy
Requires: hicolor-icon-theme
# Virtual camera support
Recommends: kmod-v4l2loopback
# NVIDIA Hardware accelerated encoding: CUDA
Suggests: xorg-x11-drv-nvidia-cuda
# obs-studio-plugin-vlc-video
# We dlopen() libvlc
Requires: libvlc.so.%{libvlc_soversion}%{?lib64_suffix}
# These are modified sources that can't be easily unbundled
## License: MIT and CC0-1.0
## Newer version in Fedora with the same licensing
## Request filed upstream for fixing it: https://github.com/simd-everywhere/simde/issues/999
Provides: bundled(simde) = 0.7.1
## License: BSL-1.0
Provides: bundled(decklink-sdk)
## License: CC0-1.0 or OpenSSL or Apache-2.0
Provides: bundled(blake2)
## License: MIT
Provides: bundled(json11)
## License: MIT
Provides: bundled(libcaption)
## License: ISC
Provides: bundled(libff)
## License: BSD-1-Clause
Provides: bundled(uthash)
## License: BSD-3-Clause
Provides: bundled(rnnoise)
## License: LGPL-2.1-or-later and LicenseRef-Fedora-Public-Domain
Provides: bundled(librtmp)
## License: MIT
Provides: bundled(libnsgif)
## License: MIT
## Windows only dependency
## Support for Linux will also unbundle it
## Cf. https://github.com/obsproject/obs-studio/pull/8327
Provides: bundled(intel-mediasdk)
%description
Open Broadcaster Software is free and open source
software for video recording and live streaming.
%prep
%autosetup -p1 -n obs-studio-%{?snapdate:%{commit}}%{!?snapdate:%{version_no_tilde}}
# Prepare plugins/obs-websocket
tar -xf %SOURCE1 -C plugins/obs-websocket --strip-components=1
sed -e 's|OBS_MULTIARCH_SUFFIX|LIB_SUFFIX|g' -i cmake/Modules/ObsHelpers.cmake
# Kill rpath settings
sed -e '\|set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OBS_LIBRARY_DESTINATION}")|d' -i cmake/Modules/ObsHelpers_Linux.cmake
# touch the missing submodules
touch plugins/obs-browser/CMakeLists.txt
# remove -Werror flag to mitigate FTBFS with ffmpeg 5.1
sed -e 's|-Werror-implicit-function-declaration||g' -i cmake/Modules/CompilerConfig.cmake
sed -e '/-Werror/d' -i cmake/Modules/CompilerConfig.cmake
%build
%cmake -B build -S obs-studio-%version \
-DUNIX_STRUCTURE=1 -GNinja \
-DCMAKE_SKIP_RPATH=1 \
-DBUILD_BROWSER=OFF \
-DENABLE_JACK=ON \
-DENABLE_LIBFDK=ON \
-DENABLE_AJA=OFF \
-DOBS_VERSION_OVERRIDE="%version-%release" \
-Wno-dev \
-DOpenGL_GL_PREFERENCE=GLVND
%cmake_build
%install
%cmake_install
%files
%doc README.rst
%license COPYING plugins/{{enc-amf,obs-websocket}/LICENSE,obs-{browser,filters,outputs}/COPYING}
%changelog
* Tue May 23 2023 windowsboy111 <windowsboy111@fyralabs.com> - 29.1.1-1
- Initial package
- Ref: https://pkgs.rpmfusion.org/cgit/free/obs-studio-freeworld.git/tree/obs-studio-freeworld.spec
- Ref: https://gitlab.archlinux.org/archlinux/packaging/packages/obs-studio/-/blob/main/PKGBUILD