Files
2026-09-09 18:31:03 -04:00

112 lines
2.9 KiB
Bash

# Maintainer: Storm Dragon <storm_dragon@stormux.org>
# shellcheck shell=bash disable=SC2034,SC2154,SC2164
pkgbase=cthulhu-git
pkgname=cthulhu-git
_pkgname=cthulhu
pkgver=2026.09.03.r475.gd4bec38
pkgrel=1
pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca"
url="https://git.stormux.org/storm/cthulhu"
arch=(x86_64 aarch64 armv7h)
license=(LGPL-2.1-or-later)
provides=("${_pkgname}=${pkgver}")
conflicts=("${_pkgname}")
depends=(
# Core AT-SPI accessibility
at-spi2-core
glib2
gobject-introspection-runtime
python-gobject
python-cairo
gtk3
# Audio and speech
speech-dispatcher
gstreamer
gst-plugins-base # playbin, audiotestsrc, basic decoders
gst-plugins-good # pulsesink, more decoders
# Braille support
python-brltty
liblouis
# Plugin system and D-Bus remote control
python-pluggy
python-tomlkit
python-dasbus
python-msgpack
python-tornado
python-xlib
# Desktop integration
hicolor-icon-theme
libwnck3
pango
# System utilities
python-setproctitle
xorg-xkbcomp
)
optdepends=(
'git: Install and update third-party plugin sources'
'python-pywayland: Wayland shared workspace backend'
'piper-tts: Piper speech backend'
'socat: Send text to the Self Voice socket from the command line'
# AI Assistant providers (optional)
'python-requests: AI Assistant plugin and HTTP provider support'
'python-pyautogui: AI Assistant mouse and keyboard actions'
'claude-code: Claude AI provider support'
'openai-codex: OpenAI Codex provider support'
'gemini-cli: Gemini AI provider support'
'ollama: Local AI model support'
# OCR plugin dependencies (optional)
'python-pillow: Image processing for OCR'
'python-pytesseract: Python wrapper for Tesseract OCR engine'
'tesseract: OCR engine for text recognition'
)
optdepends_x86_64=(
# The helper is x86_64-only, but this package is architecture-independent.
'cthulhu-wine-access: Wine, Proton, NVDA Controller, and Tolk integration'
)
makedepends=(
git
meson
)
source=("${_pkgname}::git+https://git.stormux.org/storm/${_pkgname}.git#branch=master")
sha512sums=('SKIP')
pkgver() {
cd "${_pkgname}"
local projectVersion revisionCount commitHash
projectVersion=$(sed -n "s/^[[:space:]]*version: '\([^']*\)'.*/\1/p" meson.build)
projectVersion=${projectVersion%-master}
projectVersion=${projectVersion//-/.}
[[ -n "${projectVersion}" ]] || return 1
revisionCount=$(git rev-list --count HEAD)
commitHash=$(git rev-parse --short=7 HEAD)
printf "%s.r%s.g%s\n" "${projectVersion}" "${revisionCount}" "${commitHash}"
}
build() {
cd "${_pkgname}"
arch-meson _build -Dwine-access=disabled
meson compile -C _build
}
package() {
arch=(any)
provides=("cthulhu=${pkgver}")
conflicts=(cthulhu)
cd "${_pkgname}"
meson install -C _build --destdir "$pkgdir"
# Remove icon cache - it will be generated by post-install hooks
rm -f "$pkgdir/usr/share/icons/hicolor/icon-theme.cache"
}
# vim:set sw=2 sts=-1 et: