diff options
author | tytan652 | 2022-07-05 20:32:23 +0200 |
---|---|---|
committer | tytan652 | 2022-07-05 20:38:35 +0200 |
commit | 73637156099894ba4a0db4eef386879c709305cd (patch) | |
tree | b1f64bdea6ce065fd185ea17dc534b08e39e3360 | |
parent | fbc7f75b8b439a9949852fbc302d0e60e80e4272 (diff) | |
download | aur-73637156099894ba4a0db4eef386879c709305cd.tar.gz |
build: Ownership changes
-rw-r--r-- | .SRCINFO | 68 | ||||
-rw-r--r-- | PKGBUILD | 191 | ||||
-rw-r--r-- | fix_python_binary_loading.patch | 24 |
3 files changed, 178 insertions, 105 deletions
@@ -1,55 +1,61 @@ pkgbase = obs-studio-browser - pkgdesc = Free and open source software for video recording and live streaming. Built with browser, vst plugins. + pkgdesc = Free and open source software for video recording and live streaming. With everything except service integration pkgver = 27.2.4 - pkgrel = 1 + pkgrel = 2 url = https://github.com/obsproject/obs-studio - arch = i686 arch = x86_64 - license = GPL2 + license = GPL3 makedepends = cmake makedepends = git makedepends = libfdk-aac - makedepends = x264 - makedepends = vlc-luajit makedepends = swig makedepends = luajit - makedepends = python - makedepends = cef-minimal-obs - makedepends = wayland - makedepends = qt5-wayland makedepends = sndio - depends = ffmpeg - depends = pciutils - depends = jansson - depends = libxinerama - depends = qt5-svg - depends = qt5-x11extras - depends = curl + makedepends = lsb-release + makedepends = libajantv2 + makedepends = cef-minimal-obs=95.0.0_MediaHandler.2462+g95e19b8+chromium_95.0.4638.69_3 + makedepends = python + depends = jack depends = gtk-update-icon-cache - depends = mbedtls - depends = pipewire + depends = x264 + depends = rnnoise + depends = pciutils + depends = qt5-wayland depends = libxcomposite + depends = pipewire + depends = xdg-desktop-portal + depends = libxss + depends = libxrandr + depends = nss + depends = at-spi2-atk + depends = ffmpeg-obs>=5 + depends = vlc-luajit + depends = ftl-sdk + depends = mbedtls optdepends = libfdk-aac: FDK AAC codec support - optdepends = libva-intel-driver: Hardware encoding + optdepends = intel-media-driver: Hardware encoding (>= Broadwell) + optdepends = libva-intel-driver: Hardware encoding (<= Haswell) optdepends = libva-mesa-driver: Hardware encoding - optdepends = vlc-luajit: VLC Media Source + optdepends = swig: Scripting optdepends = luajit: Lua scripting - optdepends = xdg-desktop-portal: Pipewire capture - optdepends = python: Python scripting optdepends = sndio: Sndio input client optdepends = v4l2loopback-dkms: Virtual camera output + optdepends = libajantv2: AJA NTV 2 support + optdepends = decklink: Blackmagic Design DeckLink support + optdepends = python: Python scripting provides = obs-studio=27.2.4 + provides = obs-vst + provides = obs-browser conflicts = obs-studio + conflicts = obs-vst + conflicts = obs-browser conflicts = obs-linuxbrowser - source = obs-studio-browser::git+https://github.com/obsproject/obs-studio.git#tag=27.2.4 - source = git+https://github.com/Mixer/ftl-sdk.git + options = debug + source = obs-studio::git+https://github.com/obsproject/obs-studio.git#tag=27.2.4 source = git+https://github.com/obsproject/obs-browser.git source = git+https://github.com/obsproject/obs-vst.git - source = fix_python_binary_loading.patch - sha512sums = SKIP - sha512sums = SKIP - sha512sums = SKIP - sha512sums = SKIP - sha512sums = 93ad704cef425073b417d1ed95e076f688a6e45cdf589472c65e437d77297303f31dd8f15c7d5e30f83276a6396b732dfb5a695db9c773911aaa0423c5262177 + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP pkgname = obs-studio-browser @@ -1,70 +1,161 @@ -# Maintainer: Alice Gaudon <alice at gaudon dot pro> +# Maintainer: tytan652 <tytan652 at tytanium dot xyz> +# Contributor: Alice Gaudon <alice at gaudon dot pro> # Contributor: Benjamin Klettbach <b dot klettbach at gmail dot com> # Contributor: Jonathan Steel <jsteel at archlinux.org> # Contributor: ArcticVanguard <LideEmily at gmail dot com> # Contributor: ledti <antergist at gmail dot com> +DISTRIB_ID=`lsb_release --id | cut -f2 -d$'\t'` + pkgname=obs-studio-browser pkgver=27.2.4 -pkgrel=1 -pkgdesc="Free and open source software for video recording and live streaming. Built with browser, vst plugins." -arch=("i686" "x86_64") +pkgrel=2 +pkgdesc="Free and open source software for video recording and live streaming. With everything except service integration" +arch=("x86_64") url="https://github.com/obsproject/obs-studio" -license=("GPL2") -depends=("ffmpeg" "pciutils" "jansson" "libxinerama" - "qt5-svg" "qt5-x11extras" "curl" "gtk-update-icon-cache" "mbedtls" - "pipewire" "libxcomposite") -makedepends=("cmake" "git" "libfdk-aac" "x264" - "vlc-luajit" "swig" "luajit" "python" "cef-minimal-obs" - "wayland" "qt5-wayland" "sndio") -optdepends=("libfdk-aac: FDK AAC codec support" - "libva-intel-driver: Hardware encoding" - "libva-mesa-driver: Hardware encoding" - "vlc-luajit: VLC Media Source" - "luajit: Lua scripting" - "xdg-desktop-portal: Pipewire capture" - "python: Python scripting" - "sndio: Sndio input client" - "v4l2loopback-dkms: Virtual camera output") -provides=("obs-studio=$pkgver") -conflicts=("obs-studio" "obs-linuxbrowser") -source=("$pkgname::git+https://github.com/obsproject/obs-studio.git#tag=$pkgver" - "git+https://github.com/Mixer/ftl-sdk.git" - "git+https://github.com/obsproject/obs-browser.git" - "git+https://github.com/obsproject/obs-vst.git" - "fix_python_binary_loading.patch") -sha512sums=('SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - '93ad704cef425073b417d1ed95e076f688a6e45cdf589472c65e437d77297303f31dd8f15c7d5e30f83276a6396b732dfb5a695db9c773911aaa0423c5262177') +license=("GPL3") +_mbedtlsver=2.28 +_pythonver=3.10 +depends=( + "jack" "gtk-update-icon-cache" "x264" "rnnoise" "pciutils" + + # "libxinerama" "qt5-svg" provided by "vlc-luajit" + # "libxkbcommon-x11" provided by "qt5-base" + # "jansson" "curl" provided by "ftl-sdk" + + # Needed to use Qt on Wayland platform + "qt5-wayland" + + # Both needed to load linux-capture, so those two are no longer optional + "libxcomposite" "pipewire" + + # Needed to use PipeWire capture + "xdg-desktop-portal" + + # Needed by obs-browser + "libxss" "libxrandr" "nss" "at-spi2-atk" + + # AUR Packages + "ffmpeg-obs>=5" "vlc-luajit" "ftl-sdk" +) +# To manage mbedtls rebuild easily, this will prevent you to rebuild OBS on non-updated system +# For Manjaro user this feature is disabled +# Also OBS will need a patch when mbedtls 3 is on the repo +if [[ $DISTRIB_ID == 'ManjaroLinux' ]]; then + depends+=('mbedtls') +else + depends+=("mbedtls>=$_mbedtlsver") +fi +## About vlc-luajit +# The official VLC package will make OBS crash when a VLC source is used. +# The issue is that VLC and OBS are compiled with different lua version. +# So I also created vlc-luajit, a VLC package compiled with the same lua as OBS. +# But to make people unable to install VLC official package with obs-studio-tytan652. +# I decided to make vlc-luajit a dependency of OBS rather than an optional one. +## About ffmpeg-obs +# Read ffmpeg-obs PKGBUILD for more info +makedepends=( + "cmake" "git" "libfdk-aac" "swig" "luajit" "sndio" "lsb-release" + + # AUR Packages + "libajantv2" + "cef-minimal-obs=95.0.0_MediaHandler.2462+g95e19b8+chromium_95.0.4638.69_3" +) +# To manage python rebuild easily, this will prevent you to rebuild OBS on non-updated system +# For Manjaro user this feature is disabled +if [[ $DISTRIB_ID == 'ManjaroLinux' ]]; then + makedepends+=('python') +else + makedepends+=("python>=$_pythonver") +fi +optdepends=( + "libfdk-aac: FDK AAC codec support" + "intel-media-driver: Hardware encoding (>= Broadwell)" + "libva-intel-driver: Hardware encoding (<= Haswell)" + "libva-mesa-driver: Hardware encoding" + "swig: Scripting" + "luajit: Lua scripting" + "sndio: Sndio input client" + "v4l2loopback-dkms: Virtual camera output" + "libajantv2: AJA NTV 2 support" + "decklink: Blackmagic Design DeckLink support" +) +# To manage python rebuild easily, this will prevent you to rebuild OBS on non-updated system +# For Manjaro user this feature is disabled +if [[ $DISTRIB_ID == 'ManjaroLinux' ]]; then + optdepends+=("python: Python scripting") +else + optdepends+=("python>=$_pythonver: Python scripting") +fi +provides=("obs-studio=$pkgver" "obs-vst" "obs-browser") +conflicts=("obs-studio" "obs-vst" "obs-browser" "obs-linuxbrowser") +options=('debug') +source=( + "obs-studio::git+https://github.com/obsproject/obs-studio.git#tag=$pkgver" + "git+https://github.com/obsproject/obs-browser.git" + "git+https://github.com/obsproject/obs-vst.git" +) +sha256sums=( + "SKIP" + "SKIP" + "SKIP" +) + +if [[ $DISTRIB_ID == 'ManjaroLinux' ]]; then +source+=( + "$pkgname.hook" + "$pkgname.sh" +) +sha256sums+=( + "e65c155cb5c35160d44ae3117f1fc69a9300bf12bfcdd337b139197b48b86654" + "e5699cf7735c0d765b433d322917ae93238f26f5f332f2d351f1e85a3d1e2849" +) +fi prepare() { - cd "$srcdir/$pkgname" - patch -Np1 < "$srcdir"/fix_python_binary_loading.patch - git config submodule.plugins/obs-outputs/ftl-sdk.url "$srcdir"/ftl-sdk - git config submodule.plugins/obs-browser.url "$srcdir"/obs-browser - git config submodule.plugins/obs-vst.url "$srcdir"/obs-vst - git submodule update + cd "$srcdir/obs-studio" + git config submodule.plugins/obs-vst.url $srcdir/obs-vst + git config submodule.plugins/obs-browser.url $srcdir/obs-browser + git submodule update + + ## linux-capture: Don't initialize format info if init_obs_pipewire fails (https://github.com/obsproject/obs-studio/commit/9903d73f36809c20795d5a918f2898fa6b8b88f8) + sed -i '1438 a return NULL; }' plugins/linux-capture/pipewire.c + sed -i '1437 a {' plugins/linux-capture/pipewire.c + + ## linux-pipewire: Version check call to pw_deinit (https://github.com/obsproject/obs-studio/commit/bf660b1d8dc1905527bb5919b1034c7b43c55dac) + sed -i '74,77d' plugins/linux-capture/linux-capture.c + + ## libobs,obs-outputs: Fix librtmp1 dependency interference on some linuxes (https://github.com/obsproject/obs-studio/pull/6377) + sed -i 's/#define EXPORT/#define EXPORT __attribute__((visibility("default")))/g' libobs/util/c99defs.h + + ## obs-ffmpeg: Several fixes allowing support of FFmpeg 5 (https://github.com/obsproject/obs-studio/pull/6423) + git cherry-pick -n e66542075d5d2cb51a14a0bdf3458ac10757de64 + git cherry-pick -n 5b6cc73c2475abe6a85647604b9ce937dec09000 + git cherry-pick -n 12d1f1c3358f7231244db0b971a333445e346f80 } build() { - cd $pkgname - - mkdir -p build; cd build + cd obs-studio + mkdir -p build; cd build - cmake \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DBUILD_BROWSER=ON \ - -DCEF_ROOT_DIR="/opt/cef-obs" \ - -DOBS_VERSION_OVERRIDE=$pkgver .. + cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_BROWSER=ON \ + -DCEF_ROOT_DIR="/opt/cef-obs" \ + -DOBS_VERSION_OVERRIDE="$pkgver-browser-$pkgrel" .. - make + make } package() { - cd $pkgname/build + cd obs-studio/build + + make install DESTDIR="$pkgdir" - make install DESTDIR="$pkgdir" + if [[ $DISTRIB_ID == 'ManjaroLinux' ]]; then + install -D -m644 "$srcdir/$pkgname.hook" -t "${pkgdir}"/usr/share/libalpm/hooks/ + install -D -m755 "$srcdir/$pkgname.sh" -t "${pkgdir}"/usr/share/libalpm/scripts/ + fi } diff --git a/fix_python_binary_loading.patch b/fix_python_binary_loading.patch deleted file mode 100644 index 6cba55f2f1af..000000000000 --- a/fix_python_binary_loading.patch +++ /dev/null @@ -1,24 +0,0 @@ -From c482159ce93deafc7f1fc5755ba15135709ae726 Mon Sep 17 00:00:00 2001 -From: Matt Gajownik <matt@obsproject.com> -Date: Tue, 25 Aug 2020 19:28:26 +1000 -Subject: [PATCH] libobs/util: Fix loading Python binary modules on *nix - -Fixes #2222 ---- - libobs/util/platform-nix.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/libobs/util/platform-nix.c b/libobs/util/platform-nix.c -index 26800d52f7..997b62db1a 100644 ---- a/libobs/util/platform-nix.c -+++ b/libobs/util/platform-nix.c -@@ -71,7 +71,8 @@ void *os_dlopen(const char *path) - #ifdef __APPLE__ - void *res = dlopen(dylib_name.array, RTLD_LAZY | RTLD_FIRST); - #else -- void *res = dlopen(dylib_name.array, RTLD_LAZY); -+ void *res = dlopen(dylib_name.array, -+ RTLD_LAZY | RTLD_DEEPBIND | RTLD_GLOBAL); - #endif - if (!res) - blog(LOG_ERROR, "os_dlopen(%s->%s): %s\n", path, |