Files
gnome-jarvis/packaging/build-deb.sh
T
snxraven a78708f8ff
Rolling release / release (push) Failing after 1m24s
Updates
2026-09-11 19:36:12 -04:00

30 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
VERSION="${JARVIS_VERSION:-$(node -p "require('${ROOT_DIR}/package.json').version")}"
ARCH="${JARVIS_DEB_ARCH:-$(dpkg --print-architecture)}"
OUT_DIR="${ROOT_DIR}/dist"
PKG_DIR="${OUT_DIR}/jarvis-qvac_${VERSION}_${ARCH}"
rm -rf "${PKG_DIR}"
mkdir -p "${PKG_DIR}/DEBIAN" "${PKG_DIR}/usr/lib/jarvis-qvac" "${PKG_DIR}/usr/share/doc/jarvis-qvac"
cat > "${PKG_DIR}/DEBIAN/control" <<EOF
Package: jarvis-qvac
Version: ${VERSION}
Section: utils
Priority: optional
Architecture: ${ARCH}
Depends: pipewire-bin, python3-gi, gir1.2-gtk-4.0, gir1.2-adw-1, gnome-shell (>= 45)
Maintainer: JARVIS-QVAC maintainers
Description: Local GPU-backed GNOME voice assistant
JARVIS-QVAC is a local-first voice assistant for Ubuntu GNOME.
EOF
case "${ARCH}" in amd64) PLATFORM=linux-x64 ;; arm64) PLATFORM=linux-arm64 ;; *) echo "Unsupported architecture: ${ARCH}" >&2; exit 2 ;; esac
BUNDLE="${OUT_DIR}/jarvis-qvac-bare-${PLATFORM}.tar.gz"
[[ -f "${BUNDLE}" ]] || bash "${ROOT_DIR}/packaging/build-runtime-bundle.sh"
tar -xzf "${BUNDLE}" --strip-components=1 -C "${PKG_DIR}/usr/lib/jarvis-qvac"
cp "${ROOT_DIR}/README.md" "${PKG_DIR}/usr/share/doc/jarvis-qvac/README.md"
cp "${ROOT_DIR}/docs/RELEASE.md" "${PKG_DIR}/usr/share/doc/jarvis-qvac/RELEASE.md"
dpkg-deb -Zgzip -z6 --build --root-owner-group "${PKG_DIR}" "${OUT_DIR}/jarvis-qvac_${VERSION}_${ARCH}.deb" >/dev/null
rm -rf "${PKG_DIR}"
echo "${OUT_DIR}/jarvis-qvac_${VERSION}_${ARCH}.deb"