summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authortytan6522022-07-05 20:32:23 +0200
committertytan6522022-07-05 20:38:35 +0200
commit73637156099894ba4a0db4eef386879c709305cd (patch)
treeb1f64bdea6ce065fd185ea17dc534b08e39e3360
parentfbc7f75b8b439a9949852fbc302d0e60e80e4272 (diff)
downloadaur-73637156099894ba4a0db4eef386879c709305cd.tar.gz
build: Ownership changes
-rw-r--r--.SRCINFO68
-rw-r--r--PKGBUILD191
-rw-r--r--fix_python_binary_loading.patch24
3 files changed, 178 insertions, 105 deletions
diff --git a/.SRCINFO b/.SRCINFO
index bf8370148744..ffa2afc16158 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 7f755369513f..bd80378cd67b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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,