diff --git a/.gitignore b/.gitignore index 535936a..9618e76 100644 --- a/.gitignore +++ b/.gitignore @@ -75,6 +75,7 @@ debug.log # Package artifacts *.pkg.tar.zst distro-packages/*/cthulhu/ +distro-packages/*/cthulhu-git/ distro-packages/*/pkg/ # Generated makefiles (should not be committed) diff --git a/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD b/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD new file mode 100644 index 0000000..f83a7af --- /dev/null +++ b/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD @@ -0,0 +1,126 @@ +# Maintainer: Storm Dragon + +pkgname=cthulhu-git +_pkgname=cthulhu +pkgver=2026.05.06.r394.ga5f7c9a +pkgrel=1 +pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca" +url="https://git.stormux.org/storm/cthulhu" +arch=(any) +license=(LGPL) +provides=("${_pkgname}") +conflicts=("${_pkgname}") +depends=( + # Core AT-SPI accessibility + at-spi2-core + gobject-introspection-runtime + python-gobject + python-cairo + gtk3 + python-pywayland + # Audio and speech + speech-dispatcher + gstreamer + gst-plugins-base # playbin, audiotestsrc, basic decoders + gst-plugins-good # pulsesink, more decoders + + # Braille support + brltty + liblouis + + # Plugin system and D-Bus remote control + python-pluggy + python-tomlkit + python-dasbus + + # AI Assistant dependencies (for screenshots, HTTP requests, and actions) + python-requests + python-pyautogui + + # Desktop integration + hicolor-icon-theme + libwnck3 + pango + + # System utilities + python + python-setproctitle + socat # for self-voicing feature + xorg-xkbcomp + xorg-xmodmap +) +optdepends=( + 'espeak-ng: Alternative TTS engine' + 'festival: Alternative TTS engine' + 'flite: Lightweight TTS engine' + 'espeak: Legacy TTS engine' + + # AI Assistant providers (optional) + 'claude-code: Claude AI provider support' + 'openai-codex: ChatGPT AI provider support' + 'gemini-cli: Gemini AI provider support' + 'ollama: Local AI model support' + + # OCR plugin dependencies (optional) + 'python-pillow: Image processing for OCR and AI Assistant' + 'python-pytesseract: Python wrapper for Tesseract OCR engine' + 'python-pdf2image: PDF to image conversion for OCR' + 'python-scipy: Scientific computing for OCR color analysis' + 'python-webcolors: Color name lookup for OCR text decoration' + 'tesseract: OCR engine for text recognition' + 'tesseract-data-eng: English language data for Tesseract' + + # nvda2cthulhu plugin (optional) + 'python-msgpack: Msgpack decoding for nvda2cthulhu' + 'python-tornado: WebSocket server for nvda2cthulhu' + + # Window Title Reader plugin (optional) + 'python-xlib: X11 access for Wine window title plugin' +) +makedepends=( + git + meson + ninja + python-build + python-installer + python-wheel +) +install=cthulhu.install +source=( + "${_pkgname}::git+https://git.stormux.org/storm/${_pkgname}.git#branch=master" + "cthulhu.install" +) +b2sums=( + 'SKIP' + '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 + meson compile -C _build +} + +package() { + 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: diff --git a/distro-packages/Arch-Linux/cthulhu.install b/distro-packages/Arch-Linux/cthulhu-git/cthulhu.install similarity index 100% rename from distro-packages/Arch-Linux/cthulhu.install rename to distro-packages/Arch-Linux/cthulhu-git/cthulhu.install diff --git a/distro-packages/Arch-Linux/PKGBUILD b/distro-packages/Arch-Linux/cthulhu/PKGBUILD similarity index 100% rename from distro-packages/Arch-Linux/PKGBUILD rename to distro-packages/Arch-Linux/cthulhu/PKGBUILD diff --git a/distro-packages/Arch-Linux/cthulhu/cthulhu.install b/distro-packages/Arch-Linux/cthulhu/cthulhu.install new file mode 100644 index 0000000..0fbb304 --- /dev/null +++ b/distro-packages/Arch-Linux/cthulhu/cthulhu.install @@ -0,0 +1,11 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +}