blob: 25af87821e7af4e9bd2b179b181d9b8db1c0a61d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# Maintainer: Magus <packaging@example.com>
pkgname=magelab-bin
pkgver=0.12.1
pkgrel=1
pkgdesc="Mage Lab is a user-centric AI interface with local reasoning and tools"
arch=('x86_64')
url="https://github.com/majesticio/magelab"
license=('MIT')
depends=('gtk3' 'webkit2gtk-4.1' 'libayatana-appindicator' 'libayatana-appindicator-glib')
provides=('magelab')
conflicts=('magelab')
options=('!strip' '!emptydirs')
source=("LICENSE::https://raw.githubusercontent.com/majesticio/magelab/refs/heads/main/LICENSE")
sha256sums=('c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4')
_magelab_zst_asset="magelab-bin-${pkgver}-${pkgrel}-x86_64.pkg.tar.zst"
_magelab_zst_url="https://cdn.crabnebula.app/asset/01M0BYQ0VA04WJAZF8CBWTM6PK"
_magelab_zst_sha256='2866f42f5f7b752146260221ef405adf28b093e3c6ea677bd60ceaa47bb29f4a'
_magelab_deb_asset="magelab_${pkgver}_amd64.deb"
_magelab_deb_url="https://cdn.crabnebula.app/asset/01M0BY7ENYWTEHN93RVAHV60X9"
_magelab_deb_sha256='30a9f802983947925ab4f070302b3bbb879fb6afbb7bcae07a4a7e1b955d3e44'
if [[ ${MAGELAB_BUILD_FROM_DEB:-0} != 0 ]]; then
_magelab_source_type='deb'
source_x86_64=("${_magelab_deb_asset}::${MAGELAB_DEB_URL:-${_magelab_deb_url}}")
sha256sums_x86_64=("${MAGELAB_DEB_SHA256:-${_magelab_deb_sha256}}")
else
_magelab_source_type='pkg'
source_x86_64=("${_magelab_zst_asset}::${MAGELAB_ZST_URL:-${_magelab_zst_url}}")
sha256sums_x86_64=("${MAGELAB_ZST_SHA256:-${_magelab_zst_sha256}}")
noextract=("${_magelab_zst_asset}")
fi
prepare() {
cd "${srcdir}"
if [[ "${_magelab_source_type}" == 'deb' ]]; then
bsdtar -xf "${_magelab_deb_asset}"
fi
}
package() {
cd "${srcdir}"
if [[ "${_magelab_source_type}" == 'pkg' ]]; then
local pkgroot="${srcdir}/pkgroot"
rm -rf "${pkgroot}"
mkdir -p "${pkgroot}"
bsdtar -xf "${_magelab_zst_asset}" -C "${pkgroot}" \
--exclude='.PKGINFO' \
--exclude='.BUILDINFO' \
--exclude='.MTREE' \
--exclude='.INSTALL' \
--exclude='.CHANGELOG'
cp -a "${pkgroot}/." "${pkgdir}/"
else
local data_tar
data_tar=$(find "${PWD}" -maxdepth 1 -name 'data.tar.*' -print -quit)
bsdtar -xf "${data_tar}" -C "${pkgdir}"
install -d "${pkgdir}/usr/lib/${pkgname}"
mv "${pkgdir}/usr/bin/magelab" "${pkgdir}/usr/lib/${pkgname}/magelab.real"
ln -s ../magelab/bin "${pkgdir}/usr/lib/${pkgname}/bin"
install -Dm755 "${pkgdir}/usr/bin/run" "${pkgdir}/usr/lib/${pkgname}/run"
install -Dm755 /dev/stdin "${pkgdir}/usr/bin/magelab" <<'WRAPPER'
#!/bin/bash
set -uo pipefail
REAL_BIN="/usr/lib/magelab-bin/magelab.real"
APP_BIN_DIR="/usr/lib/magelab-bin"
APP_RES_DIR="/usr/lib/magelab"
export PATH="${APP_BIN_DIR}:${PATH}"
export APPDIR="${APP_RES_DIR}"
if [[ -z "${MAGELAB_ENABLE_DMABUF:-}" ]]; then
if [[ -n "${WAYLAND_DISPLAY:-}" || "${XDG_SESSION_TYPE:-}" == "wayland" ]]; then
if [[ -z "${WEBKIT_DISABLE_DMABUF_RENDERER:-}" ]]; then
export WEBKIT_DISABLE_DMABUF_RENDERER=1
fi
fi
fi
if [[ -n "${MAGELAB_SKIP_DMABUF_FALLBACK:-}" || -n "${WEBKIT_DISABLE_DMABUF_RENDERER:-}" ]]; then
exec -a magelab "${REAL_BIN}" "$@"
fi
if ( exec -a magelab "${REAL_BIN}" "$@" ); then
exit 0
fi
status=$?
if [[ ${status} -eq 139 && -z "${MAGELAB_DMABUF_RETRY:-}" ]]; then
export MAGELAB_DMABUF_RETRY=1
export WEBKIT_DISABLE_DMABUF_RENDERER=1
exec -a magelab "${REAL_BIN}" "$@"
fi
exit ${status}
WRAPPER
fi
install -Dm644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
|