diff --git a/pkgbuilds/obs-studio/.omarchy/package.json b/pkgbuilds/obs-studio/.omarchy/package.json new file mode 100644 index 0000000..2a67d7e --- /dev/null +++ b/pkgbuilds/obs-studio/.omarchy/package.json @@ -0,0 +1,9 @@ +{ + "source": "local", + "upstream": { + "watch": { + "github": "obsproject/obs-studio", + "pattern": "(?P[0-9]+(?:\\.[0-9]+)*)" + } + } +} diff --git a/pkgbuilds/obs-studio/PKGBUILD b/pkgbuilds/obs-studio/PKGBUILD new file mode 100644 index 0000000..f3f1693 --- /dev/null +++ b/pkgbuilds/obs-studio/PKGBUILD @@ -0,0 +1,107 @@ +# 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 + + # Arch ships mbedtls 3 side-by-side under /usr/lib/mbedtls3, and OBS's + # finder needs to be pointed at it (same paths the AUR pkgbases use). + -DMbedTLS_DIR=/usr/lib/mbedtls3/cmake/MbedTLS + -DMbedTLS_INCLUDE_DIR=/usr/include/mbedtls3 + -DMbedtls_LIBRARY=/usr/lib/mbedtls3/libmbedtls.so + -DMbedcrypto_LIBRARY=/usr/lib/mbedtls3/libmbedcrypto.so + -DMbedx509_LIBRARY=/usr/lib/mbedtls3/libmbedx509.so + + -Wno-dev + ) + cmake "${cmake_options[@]}" + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build +}