Cthulhu is no longer a fork. Now it is a screen reader written in Golang.

This commit is contained in:
Storm Dragon committed 2026-10-14 00:16:34 -04:00
1 parent a998fe67de
commit 069fc674dc
708 files changed
+112482 -532

No files matched your search

+53 -55
View File
@@ -4,21 +4,20 @@
pkgbase=cthulhu-git
pkgname=cthulhu-git
_pkgname=cthulhu
pkgver=2026.09.03.r475.gd4bec38
pkgver=2026.10.12.r1.ga998fe6
pkgrel=1
pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca"
pkgdesc="Desktop-agnostic screen reader with speech, Braille, and Tentacle support"
url="https://git.stormux.org/storm/cthulhu"
arch=(x86_64 aarch64 armv7h)
license=(LGPL-2.1-or-later)
license=(GPL-3.0-or-later)
provides=("${_pkgname}=${pkgver}")
conflicts=("${_pkgname}")
depends=(
# Core AT-SPI accessibility
# Native accessibility and user interface
glibc
at-spi2-core
glib2
gobject-introspection-runtime
python-gobject
python-cairo
gdk-pixbuf2
gtk3
# Audio and speech
speech-dispatcher
@@ -27,85 +26,84 @@ depends=(
gst-plugins-good # pulsesink, more decoders
# Braille support
python-brltty
brltty
liblouis
# Plugin system and D-Bus remote control
python-pluggy
python-tomlkit
python-dasbus
python-msgpack
python-tornado
python-xlib
# Xorg input, window capture, and clipboard operations
libx11
libxtst
libxfixes
libxkbcommon
xclip
# Desktop integration
hicolor-icon-theme
libwnck3
pango
# System utilities
python-setproctitle
xorg-xkbcomp
# Private D-Bus services and contained Tentacle processes
dbus
systemd
)
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'
'git: Discover and update Tentacle repositories'
'tesseract: OCR engine for text recognition'
'tesseract-data-eng: English OCR language data'
)
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'
# Wine accessibility helpers are supported on x86_64.
'wine-access: Wine, Proton, NVDA Controller, and Tolk integration'
)
makedepends=(
git
meson
go
pkgconf
)
options=(!debug !lto)
source=("${_pkgname}::git+https://git.stormux.org/storm/${_pkgname}.git#branch=master")
sha512sums=('SKIP')
prepare() {
cd "${_pkgname}"
git checkout testing
}
pkgver() {
cd "${_pkgname}"
local projectVersion revisionCount commitHash
projectVersion=$(sed -n "s/^[[:space:]]*version: '\([^']*\)'.*/\1/p" meson.build)
projectVersion=${projectVersion%-master}
projectVersion=${projectVersion//-/.}
projectVersion=$(sed -n 's/^const Version = "\([^"]*\)"/\1/p' internal/version/version.go)
[[ -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}"
echo "${projectVersion}.r${revisionCount}.g${commitHash}"
}
build() {
cd "${_pkgname}"
arch-meson _build -Dwine-access=disabled
meson compile -C _build
export CGO_ENABLED=1
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOPATH="${srcdir}/go"
export GOCACHE="${GOCACHE:-${srcdir}/go-build}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
go build -o build/cthulhu ./cmd/cthulhu
go build -tags brlapi -o build/cthulhu-braille ./cmd/cthulhu-braille
}
check() {
cd "${_pkgname}"
export CGO_ENABLED=1
export GOPATH="${srcdir}/go"
export GOCACHE="${GOCACHE:-${srcdir}/go-build}"
go test -tags brlapi ./... -count=1
}
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"
install -Dm755 build/cthulhu "${pkgdir}/usr/bin/cthulhu"
install -Dm755 build/cthulhu-braille "${pkgdir}/usr/bin/cthulhu-braille"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 AUTHORS "${pkgdir}/usr/share/doc/${pkgname}/AUTHORS"
}
# vim:set sw=2 sts=-1 et: