From 35c0d89a6c478cb9780668cb1511de55f2ef93d4 Mon Sep 17 00:00:00 2001 From: madomado Date: Tue, 23 May 2023 12:39:42 +0800 Subject: [PATCH] wip add obs-studio --- anda/apps/obs-studio/obs-studio.spec | 165 +++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 anda/apps/obs-studio/obs-studio.spec diff --git a/anda/apps/obs-studio/obs-studio.spec b/anda/apps/obs-studio/obs-studio.spec new file mode 100644 index 0000000000..dc74bd5b83 --- /dev/null +++ b/anda/apps/obs-studio/obs-studio.spec @@ -0,0 +1,165 @@ +%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 + +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 + +# 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 # TODO Terra package +# NVIDIA Hardware accelerated encoding: CUDA +Suggests: xorg-x11-drv-nvidia-cuda + + +# 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. + +%package -n obs-studio-plugin-x264 +Summary: Open Broadcaster Software Studio - x264 encoding plugin +License: GPL-2.0-or-later +BuildRequires: x264-devel +Requires: obs-studio%{?_isa} >= %{version} +Supplements: obs-studio%{?_isa} + +%description -n obs-studio-plugin-x264 +Open Broadcaster Software is free and open source software +for video recording and live streaming. + +This package contains the plugin for using the x264 encoder for +streaming or recording AVC/H.264 video. + +%files -n obs-studio-plugin-x264 +%license COPYING +%{_libdir}/obs-plugins/obs-x264.so +%{_datadir}/obs/obs-plugins/obs-x264/ + + +%package -n obs-studio-plugin-vlc-video +Summary: Open Broadcaster Software Studio - VLC-based video plugin +License: GPL-2.0-or-later +BuildRequires: vlc-devel +# We dlopen() libvlc +Requires: libvlc.so.%{libvlc_soversion}%{?lib64_suffix} +Requires: obs-studio%{?_isa} >= %{version} +Supplements: obs-studio%{?_isa} + + +%description -n obs-studio-plugin-vlc-video +Open Broadcaster Software is free and open source software +for video recording and live streaming. + +This package contains the plugin for using VLC to embed video +as an overlay in a video stream or recording. + +%files -n obs-studio-plugin-vlc-video +%license COPYING +%{_libdir}/obs-plugins/vlc-video.so +%{_datadir}/obs/obs-plugins/vlc-video/ + + +%prep +%autosetup +# TODO + +%build +%cmake -B build -S obs-studio-%version \ + -DCMAKE_INSTALL_PREFIX="%buildroot/usr" \ + -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 +