concat, concat-bin, concat-git: adapt to upstream's 0.2.3 layout
This commit is contained in:
1 parent
c262539617
commit
555756fb25
10 files changed
+138
-101
No files matched your search
+40
-41
@@ -3,63 +3,62 @@
|
||||
# https://github.com/Felitendo/PKGBUILDS
|
||||
|
||||
pkgname=concat-bin
|
||||
pkgver=0.2.2
|
||||
pkgver=0.2.3
|
||||
pkgrel=1
|
||||
pkgdesc="Free and open-source CapCut replacement, a video editor with a Rust engine (upstream binary)"
|
||||
arch=('x86_64')
|
||||
arch=('x86_64' 'aarch64')
|
||||
url="https://github.com/jub0t/Concat"
|
||||
# The binary is Concat under the AGPL; the FFmpeg libraries it ships beside
|
||||
# itself are a BtbN GPL build. Both licence texts land in the package: the
|
||||
# itself are a GPL build. Both licence texts land in the package: the
|
||||
# repository's LICENSE, and upstream's notices file, which is what names the
|
||||
# terms of everything linked in - FFmpeg, Slint under its GPL option,
|
||||
# whisper.cpp, sherpa-onnx.
|
||||
license=('AGPL-3.0-or-later' 'GPL-3.0-or-later')
|
||||
# Nothing is spawned at run time any more: FFmpeg is linked, whisper.cpp and
|
||||
# sherpa-onnx are compiled in. What is left is what the binary loads - the
|
||||
# ALSA backend of cpal, fontconfig and freetype for text, and the windowing
|
||||
# libraries winit and the renderer open by name: EGL, Wayland, X11 and
|
||||
# xkbcommon. dbus is the XDG portal, which is how the file dialogs and
|
||||
# "reveal in file manager" work without a toolkit.
|
||||
# Nothing is spawned at run time: FFmpeg is linked, whisper.cpp and
|
||||
# sherpa-onnx are compiled in, and ONNX Runtime ships in the same lib/
|
||||
# directory. What is left is what the binary loads by name - the ALSA backend
|
||||
# of cpal, fontconfig and freetype for text, and the windowing libraries
|
||||
# winit and the renderer open: EGL, Wayland, X11 and xkbcommon. dbus is the
|
||||
# XDG portal, which is how the file dialogs and "reveal in file manager" work
|
||||
# without a toolkit.
|
||||
depends=('alsa-lib' 'fontconfig' 'freetype2' 'libglvnd' 'libxkbcommon'
|
||||
'libxkbcommon-x11' 'libx11' 'libxcursor' 'libxi' 'libxrender'
|
||||
'wayland' 'dbus' 'gcc-libs' 'glibc' 'hicolor-icon-theme')
|
||||
provides=('concat')
|
||||
conflicts=('concat')
|
||||
# !strip: upstream's binary is already stripped, and the FFmpeg libraries
|
||||
# beside it are theirs to ship as they are.
|
||||
# !strip: upstream's binary is already stripped, and the FFmpeg and ONNX
|
||||
# Runtime libraries beside it are theirs to ship as they are.
|
||||
options=('!strip' '!debug')
|
||||
# Upstream's Linux release is one self-contained folder: the binary, the
|
||||
# FFmpeg 8.1 runtime libraries it was linked against, a desktop entry and an
|
||||
# icon. The libraries have to come along - the binary needs libavcodec.so.62
|
||||
# and Arch is on FFmpeg 9 (libavcodec.so.63) - so the whole folder is
|
||||
# installed under /usr/lib/$pkgname, where the binary's own rpath
|
||||
# ($ORIGIN/lib) finds them.
|
||||
# Upstream's Linux packages carry one self-contained folder: the binary and
|
||||
# the libraries it was linked against - FFmpeg 8 (Arch is on 9) and ONNX
|
||||
# Runtime, the cutout models' runtime. They go to /opt/concat, where the
|
||||
# binary's own rpath ($ORIGIN/lib) finds them, which is also where upstream's
|
||||
# .deb puts them and what its desktop entry points at.
|
||||
#
|
||||
# The asset name carries the workspace's version rather than the tag (a
|
||||
# prerelease of 0.2.2 ships Concat-0.2.2-linux-x86_64.tar.gz whatever its tag
|
||||
# says), so it is resolved through the GitHub API and synced here along with
|
||||
# the checksum; see pkg.sh.
|
||||
_tag="v0.2.2"
|
||||
_asset="Concat-0.2.2-linux-x86_64.tar.gz"
|
||||
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/jub0t/Concat/releases/download/${_tag}/${_asset}")
|
||||
sha256sums=('9151e36948773b3d0d02256f1a8ee44580eec5d1fe48fdb31c2da3b2250a39ff')
|
||||
# Of the three Linux artifacts - .deb, .rpm and AppImage - the .deb is the
|
||||
# plain one: an ar archive around that folder, with no runtime wrapped around
|
||||
# it and nothing to mount.
|
||||
#
|
||||
# The asset name carries the workspace's version, not the tag (a prerelease of
|
||||
# 0.2.4 ships Concat-0.2.4-linux-x86_64.deb whatever its tag says), so both
|
||||
# the tag and that version are resolved through the release manifest and
|
||||
# synced here along with the checksums; see pkg.sh.
|
||||
_tag="v0.2.3"
|
||||
_relver="0.2.3"
|
||||
source_x86_64=("${pkgname}-${pkgver}-x86_64.deb::https://github.com/jub0t/Concat/releases/download/${_tag}/Concat-${_relver}-linux-x86_64.deb")
|
||||
source_aarch64=("${pkgname}-${pkgver}-aarch64.deb::https://github.com/jub0t/Concat/releases/download/${_tag}/Concat-${_relver}-linux-aarch64.deb")
|
||||
noextract=("${pkgname}-${pkgver}-x86_64.deb" "${pkgname}-${pkgver}-aarch64.deb")
|
||||
sha256sums_x86_64=('01d2fb58521038a426429f1543ab2ec2359aa428a9dfd1b8948ce97b7d79c6c3')
|
||||
sha256sums_aarch64=('3bd3f6bcfb165141b50b1ca2d3ab1b070f7e5a0e9f86a3c9ec121c4b5085a220')
|
||||
|
||||
package() {
|
||||
cd "${_asset%.tar.gz}"
|
||||
# -p: lib/ is the usual set of soname symlinks beside the real files, and
|
||||
# only an extraction that preserves them keeps the rpath working.
|
||||
bsdtar -xOf "$srcdir/${pkgname}-${pkgver}-${CARCH}.deb" 'data.tar.*' \
|
||||
| bsdtar -xpf - -C "$pkgdir" ./opt ./usr
|
||||
|
||||
install -Dm755 concat "$pkgdir/usr/lib/$pkgname/concat"
|
||||
# cp, not install: lib/ is the usual set of FFmpeg soname symlinks beside
|
||||
# the real files, and only a copy that preserves them keeps it working.
|
||||
cp -a lib "$pkgdir/usr/lib/$pkgname/lib"
|
||||
|
||||
install -d "$pkgdir/usr/bin"
|
||||
ln -s "/usr/lib/$pkgname/concat" "$pkgdir/usr/bin/concat"
|
||||
|
||||
install -Dm644 concat.desktop "$pkgdir/usr/share/applications/concat.desktop"
|
||||
install -Dm644 concat.png \
|
||||
"$pkgdir/usr/share/icons/hicolor/256x256/apps/concat.png"
|
||||
|
||||
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||
install -Dm644 THIRD_PARTY_NOTICES.md \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/THIRD_PARTY_NOTICES.md"
|
||||
# upstream ships them as documentation; on Arch they belong here
|
||||
install -d "$pkgdir/usr/share/licenses"
|
||||
mv "$pkgdir/usr/share/doc/concat" "$pkgdir/usr/share/licenses/$pkgname"
|
||||
rmdir "$pkgdir/usr/share/doc"
|
||||
}
|
||||
Reference in new issue
Block a user