Cthulhu is no longer a fork. Now it is a screen reader written in Golang.
This commit is contained in:
1 parent
a998fe67de
commit
069fc674dc
708 files changed
+112482
-532
No files matched your search
@@ -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:
|
||||
Reference in new issue
Block a user