103 lines
2.6 KiB
Bash
103 lines
2.6 KiB
Bash
# ARM build from the upstream release source bundle. The vendor CEF bundle
|
|
# is x86-only, so this build omits browser sources/docks. AJA is unavailable
|
|
# in Arch Linux ARM. Other plugins use upstream architecture detection.
|
|
|
|
pkgname=obs-studio
|
|
pkgver=32.2.2
|
|
pkgrel=1
|
|
pkgdesc="Free and open source software for video recording and live streaming (without the x86-only CEF browser source)"
|
|
arch=('aarch64')
|
|
url="https://obsproject.com"
|
|
license=('GPL-2.0-or-later')
|
|
depends=(
|
|
'alsa-lib'
|
|
'curl'
|
|
'ffmpeg>=8'
|
|
'fontconfig'
|
|
'freetype2'
|
|
'gcc-libs'
|
|
'glib2'
|
|
'glibc'
|
|
'jack'
|
|
'jansson'
|
|
'libdatachannel>=0.24.3' # WebRTC/WHIP output
|
|
'libfdk-aac'
|
|
'libgl'
|
|
'libjuice'
|
|
'libpipewire'
|
|
'libpulse'
|
|
'librist' # MPEGTS output
|
|
'libva'
|
|
'libx11'
|
|
'libxcb'
|
|
'libxcomposite'
|
|
'libxkbcommon'
|
|
'luajit' # Lua scripting
|
|
'mbedtls3>=3.6.1'
|
|
'pciutils'
|
|
'python>=3.14' # Python scripting
|
|
'qrcodegencpp-cmake' # obs-websocket connect QR code
|
|
'qt6-base>=6.8'
|
|
'qt6-svg'
|
|
'qt6-wayland'
|
|
'rnnoise'
|
|
'sndio'
|
|
'speexdsp'
|
|
'srt' # MPEGTS output
|
|
'systemd-libs'
|
|
'util-linux-libs'
|
|
'v4l-utils'
|
|
'wayland'
|
|
'x264'
|
|
'zlib'
|
|
)
|
|
makedepends=(
|
|
'asio' # header-only, obs-websocket
|
|
'cmake'
|
|
'extra-cmake-modules'
|
|
'nlohmann-json' # header-only, obs-websocket and plugin manager
|
|
'simde' # header-only, SIMD portability layer libobs uses on ARM
|
|
'swig' # scripting bindings
|
|
'uthash' # header-only, libobs
|
|
'vlc' # VLC source plugin builds against libvlc headers, dlopens at runtime
|
|
'websocketpp' # header-only, obs-websocket
|
|
)
|
|
optdepends=(
|
|
'vlc: VLC media source'
|
|
'v4l2loopback-dkms: V4L2 virtual camera output'
|
|
)
|
|
source=("https://github.com/obsproject/obs-studio/releases/download/$pkgver/OBS-Studio-$pkgver-Sources.tar.gz")
|
|
sha512sums=('6346b5bff255c9178ef57296489af11bc6949076b4084d3dff8d3da923c8b0d2ab64edb312629c54b8d4be1510bb4166b92838a8c6c2db55a7ee9e08108166de')
|
|
|
|
build() {
|
|
local cmake_options=(
|
|
-S "obs-studio-$pkgver-sources"
|
|
-B build
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
-DCMAKE_INSTALL_PREFIX=/usr
|
|
-DCMAKE_INSTALL_LIBDIR=lib
|
|
-DENABLE_BROWSER=OFF # no linux-aarch64 CEF exists
|
|
-DENABLE_AJA=OFF # libajantv2 is not in ALARM
|
|
-DENABLE_LIBFDK=ON
|
|
-DENABLE_JACK=ON
|
|
-DENABLE_SNDIO=ON
|
|
-DENABLE_VLC=ON
|
|
-DENABLE_WAYLAND=ON
|
|
|
|
# The tarball has no .git for the version machinery to read.
|
|
-DOBS_VERSION_OVERRIDE="$pkgver"
|
|
-DOBS_COMPILE_DEPRECATION_AS_WARNING=ON
|
|
|
|
# Use Arch's side-by-side MbedTLS 3 CMake configuration.
|
|
-DMbedTLS_DIR=/usr/lib/mbedtls3/cmake/MbedTLS
|
|
|
|
-Wno-dev
|
|
)
|
|
cmake "${cmake_options[@]}"
|
|
cmake --build build
|
|
}
|
|
|
|
package() {
|
|
DESTDIR="$pkgdir" cmake --install build
|
|
}
|