tenzen-studio-bin: new package

This commit is contained in:
Felitendo committed 2026-09-19 20:31:36 +02:00
1 parent 1096f54b1f
commit d6af5287a2
6 files changed
+120 -2

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
pkgbase = tenzen-studio-bin
pkgdesc = Record and edit product demos: cut pauses, add zooms and captions (upstream Flatpak bundle)
pkgver = 0.1.26
pkgrel = 1
url = https://tenzen.studio
arch = x86_64
license = LicenseRef-proprietary
makedepends = ostree
makedepends = asar
depends = gtk3
depends = nss
depends = alsa-lib
depends = ffmpeg
depends = python-xlib
optdepends = libpulse: record system audio
provides = tenzen-studio
conflicts = tenzen-studio
noextract = Tenzen-0.1.26-linux-x64.flatpak
options = !strip
options = !debug
source = Tenzen-0.1.26-linux-x64.flatpak::https://downloads.tenzen.studio/desktop/stable/linux/0.1.26/Tenzen-0.1.26-linux-x64.flatpak
sha256sums = 172496d25807dc54bf0313594f198834ba4fa3df0c29ee5265b13f2fca07c093
pkgname = tenzen-studio-bin
+58
View File
@@ -0,0 +1,58 @@
# Maintainer: Felitendo
# This PKGBUILD is updated automatically:
# https://github.com/Felitendo/PKGBUILDS
pkgname=tenzen-studio-bin
_pkgname=tenzen
pkgver=0.1.26
pkgrel=1
pkgdesc="Record and edit product demos: cut pauses, add zooms and captions (upstream Flatpak bundle)"
arch=('x86_64')
url="https://tenzen.studio"
license=('LicenseRef-proprietary')
depends=('gtk3' 'nss' 'alsa-lib' 'ffmpeg' 'python-xlib')
optdepends=('libpulse: record system audio')
makedepends=('ostree' 'asar')
provides=('tenzen-studio')
conflicts=('tenzen-studio')
options=('!strip' '!debug')
_bundle="Tenzen-${pkgver}-linux-x64.flatpak"
source=("${_bundle}::https://downloads.tenzen.studio/desktop/stable/linux/${pkgver}/${_bundle}")
noextract=("${_bundle}")
sha256sums=('172496d25807dc54bf0313594f198834ba4fa3df0c29ee5265b13f2fca07c093')
prepare() {
# A Flatpak bundle is an OSTree static delta carrying a single commit:
# apply it to a throwaway repository and check that commit out.
rm -rf repo flatpak
ostree init --repo=repo --mode=bare-user-only
ostree static-delta apply-offline --repo=repo "${_bundle}"
local _commit
_commit="$(find repo/objects -name '*.commit')"
_commit="$(basename "$(dirname "${_commit}")")$(basename "${_commit}" .commit)"
ostree checkout --repo=repo --user-mode "${_commit}" flatpak
# the bundle exports no icon - the app's own is only inside app.asar
asar extract-file flatpak/files/lib/com.tenzen.desktop/resources/app.asar \
dist/assets/brand/icon.png
}
package() {
install -d "${pkgdir}/opt/${pkgname}"
cp -a "${srcdir}/flatpak/files/lib/com.tenzen.desktop/." "${pkgdir}/opt/${pkgname}/"
install -d "${pkgdir}/usr/bin"
ln -s "/opt/${pkgname}/${_pkgname}" "${pkgdir}/usr/bin/${_pkgname}"
# named after the app's desktopName, so windows are matched to the entry
install -Dm644 "${srcdir}/flatpak/files/share/applications/com.tenzen.desktop.desktop" \
"${pkgdir}/usr/share/applications/${_pkgname}.desktop"
sed -i \
-e "s|^Exec=.*|Exec=${_pkgname} %U|" \
-e "s|^Icon=.*|Icon=${_pkgname}|" \
"${pkgdir}/usr/share/applications/${_pkgname}.desktop"
# 1024x1024, which the hicolor theme has no directory for
install -Dm644 "${srcdir}/icon.png" "${pkgdir}/usr/share/pixmaps/${_pkgname}.png"
}
+33
View File
@@ -0,0 +1,33 @@
# tenzen-studio-bin - Tenzen Studio (https://tenzen.studio), a proprietary
# Electron app for recording and editing product demos.
#
# Upstream publishes no source, so there is only this -bin package. For Linux
# it ships nothing but a Flatpak bundle, versioned on its own download host:
# the PKGBUILD unpacks that with ostree (a Flatpak bundle is an OSTree static
# delta) and takes the icon out of app.asar, so the test build needs both.
#
# The release API names the current version and lists every artifact with its
# sha256, so nothing has to be downloaded to refresh the checksum - makepkg's
# test build verifies it against the real download anyway.
API="https://tenzen.studio/api/v1/desktop/releases/latest?channel=stable"
BUILD_DEPS=(ostree asar)
latest_version() {
curl -sf "$API" | jq -r '.release.version'
}
# refresh_checksums <version> <pkgbuild-path>
refresh_checksums() {
local ver="$1" pkgbuild="$2" sha
sha="$(curl -sf "$API" | jq -r --arg f "Tenzen-$ver-linux-x64.flatpak" \
'.release.artifacts[] | select(.file_name == $f) | .sha256')"
if [[ ! "$sha" =~ ^[0-9a-f]{64}$ ]]; then
echo "the release API lists no Tenzen-$ver-linux-x64.flatpak" >&2
return 1
fi
sed -i "s|^sha256sums=.*|sha256sums=('$sha')|" "$pkgbuild"
}