diff --git a/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD b/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD index 076c123..819d4f8 100644 --- a/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD +++ b/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD @@ -2,7 +2,7 @@ pkgname=cthulhu-git _pkgname=cthulhu -pkgver=2026.05.14.r396.ge2f9a7c +pkgver=2026.05.25.r407.gc39f231 pkgrel=1 pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca" url="https://git.stormux.org/storm/cthulhu" diff --git a/distro-packages/Arch-Linux/cthulhu/PKGBUILD b/distro-packages/Arch-Linux/cthulhu/PKGBUILD index 592adfa..b34a264 100644 --- a/distro-packages/Arch-Linux/cthulhu/PKGBUILD +++ b/distro-packages/Arch-Linux/cthulhu/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Storm Dragon pkgname=cthulhu -pkgver=2026.05.14 +pkgver=2026.05.25 pkgrel=1 pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca" url="https://git.stormux.org/storm/cthulhu" diff --git a/distro-packages/Slackware/cthulhu.SlackBuild b/distro-packages/Slackware/cthulhu.SlackBuild index 2d16579..d97aff5 100755 --- a/distro-packages/Slackware/cthulhu.SlackBuild +++ b/distro-packages/Slackware/cthulhu.SlackBuild @@ -3,16 +3,15 @@ # Slackware build script for cthulhu # Created based on PKGBUILD from Storm Dragon -cd $(dirname $0) ; CWD=$(pwd) +cd "$(dirname "$0")" ; CWD=$(pwd) PRGNAM=cthulhu -VERSION=${VERSION:-0.4} +VERSION=${VERSION:-2026.05.25} BUILD=${BUILD:-1} TAG=storm PKGTYPE=txz -export PYTHON=/usr/bin/python3.11 -if [ -z "$ARCH" ]; then +if [ -z "${ARCH:-}" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; @@ -23,7 +22,7 @@ fi # If the variable PRINT_PACKAGE_NAME is set, then this script will report what # the name of the created package would be, and then exit. This information # could be useful to other scripts. -if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then +if [ -n "${PRINT_PACKAGE_NAME:-}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi @@ -48,12 +47,12 @@ fi set -e -rm -rf $PKG -mkdir -p $TMP $PKG $OUTPUT -cd $TMP -rm -rf $PRGNAM-$VERSION -git clone https://git.stormux.org/storm/cthulhu.git $PRGNAM-$VERSION -cd $PRGNAM-$VERSION +rm -rf "$PKG" +mkdir -p "$TMP" "$PKG" "$OUTPUT" +cd "$TMP" +rm -rf "$PRGNAM-$VERSION" +git clone --branch "$VERSION" --depth 1 https://git.stormux.org/storm/cthulhu.git "$PRGNAM-$VERSION" +cd "$PRGNAM-$VERSION" chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ @@ -61,38 +60,31 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -# Prepare the source -NOCONFIGURE=1 ./autogen.sh - CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ -./configure \ +meson setup _build \ --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ + --libdir="/usr/lib${LIBDIRSUFFIX}" \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ - --build=$ARCH-slackware-linux + --buildtype=release +meson compile -C _build +DESTDIR="$PKG" meson install -C _build -make -make install DESTDIR=$PKG - -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ +find "$PKG" -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a AUTHORS COPYING ChangeLog README.md \ - $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +rm -f "$PKG/usr/share/icons/hicolor/icon-theme.cache" -mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc -cat $CWD/doinst.sh > $PKG/install/doinst.sh +mkdir -p "$PKG/usr/doc/$PRGNAM-$VERSION" +cp -a COPYING HACKING README.md README-DEVELOPMENT.md RELEASE-HOWTO \ + "$PKG/usr/doc/$PRGNAM-$VERSION" +cat "$CWD/$PRGNAM.SlackBuild" > "$PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild" -cd $PKG -# let's avoid a "bad interpreter error -sed "s,#!python3.11,#!/usr/bin/python3.11," usr/bin/cthulhu > dummy -mv dummy usr/bin/cthulhu -chmod 755 usr/bin/cthulhu -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE +mkdir -p "$PKG/install" +cat "$CWD/slack-desc" > "$PKG/install/slack-desc" +cat "$CWD/doinst.sh" > "$PKG/install/doinst.sh" + +cd "$PKG" +/sbin/makepkg -l y -c n "$OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" diff --git a/distro-packages/Slackware/doinst.sh b/distro-packages/Slackware/doinst.sh new file mode 100644 index 0000000..00d4b61 --- /dev/null +++ b/distro-packages/Slackware/doinst.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/distro-packages/Slackware/slack-desc b/distro-packages/Slackware/slack-desc new file mode 100644 index 0000000..d420716 --- /dev/null +++ b/distro-packages/Slackware/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +cthulhu: cthulhu (Screen reader for blind or visually impaired users) +cthulhu: +cthulhu: Cthulhu is a screen reader for individuals who are blind or visually +cthulhu: impaired, forked from Orca. It provides a way to access applications +cthulhu: and toolkits that support the AT-SPI accessibility infrastructure. +cthulhu: +cthulhu: Homepage: https://git.stormux.org/storm/cthulhu +cthulhu: +cthulhu: +cthulhu: +cthulhu: diff --git a/distro-packages/Slint/README b/distro-packages/Slint/README index 09beca3..a275a04 100644 --- a/distro-packages/Slint/README +++ b/distro-packages/Slint/README @@ -25,6 +25,14 @@ This package requires the following packages, all available from SlackBuilds.org - libwnck3 - python3-atspi - python3-cairo +- python3-dasbus - python3-gobject +- python3-pluggy +- python3-pywayland - python3-setproctitle +- python3-tomlkit - speech-dispatcher + +BUILD DEPENDENCIES: +- meson +- ninja diff --git a/distro-packages/Slint/cthulhu-info b/distro-packages/Slint/cthulhu-info index bdafddb..caf48f9 100644 --- a/distro-packages/Slint/cthulhu-info +++ b/distro-packages/Slint/cthulhu-info @@ -1,10 +1,10 @@ PRGNAM="cthulhu" -VERSION="0.4" +VERSION="2026.05.25" HOMEPAGE="https://git.stormux.org/storm/cthulhu" DOWNLOAD="https://git.stormux.org/storm/cthulhu.git" MD5SUM="SKIP" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -REQUIRES="at-spi2-core brltty gobject-introspection gstreamer gst-plugins-base gst-plugins-good gtk3 liblouis libwnck3 python3-atspi python3-cairo python3-gobject python3-setproctitle speech-dispatcher" +REQUIRES="at-spi2-core brltty gobject-introspection gstreamer gst-plugins-base gst-plugins-good gtk3 liblouis libwnck3 python3-atspi python3-cairo python3-dasbus python3-gobject python3-pluggy python3-pywayland python3-setproctitle python3-tomlkit speech-dispatcher" MAINTAINER="Storm Dragon" EMAIL="storm_dragon@stormux.org" diff --git a/distro-packages/Slint/cthulhu.SlackBuild b/distro-packages/Slint/cthulhu.SlackBuild index 2d16579..d97aff5 100755 --- a/distro-packages/Slint/cthulhu.SlackBuild +++ b/distro-packages/Slint/cthulhu.SlackBuild @@ -3,16 +3,15 @@ # Slackware build script for cthulhu # Created based on PKGBUILD from Storm Dragon -cd $(dirname $0) ; CWD=$(pwd) +cd "$(dirname "$0")" ; CWD=$(pwd) PRGNAM=cthulhu -VERSION=${VERSION:-0.4} +VERSION=${VERSION:-2026.05.25} BUILD=${BUILD:-1} TAG=storm PKGTYPE=txz -export PYTHON=/usr/bin/python3.11 -if [ -z "$ARCH" ]; then +if [ -z "${ARCH:-}" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; @@ -23,7 +22,7 @@ fi # If the variable PRINT_PACKAGE_NAME is set, then this script will report what # the name of the created package would be, and then exit. This information # could be useful to other scripts. -if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then +if [ -n "${PRINT_PACKAGE_NAME:-}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi @@ -48,12 +47,12 @@ fi set -e -rm -rf $PKG -mkdir -p $TMP $PKG $OUTPUT -cd $TMP -rm -rf $PRGNAM-$VERSION -git clone https://git.stormux.org/storm/cthulhu.git $PRGNAM-$VERSION -cd $PRGNAM-$VERSION +rm -rf "$PKG" +mkdir -p "$TMP" "$PKG" "$OUTPUT" +cd "$TMP" +rm -rf "$PRGNAM-$VERSION" +git clone --branch "$VERSION" --depth 1 https://git.stormux.org/storm/cthulhu.git "$PRGNAM-$VERSION" +cd "$PRGNAM-$VERSION" chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ @@ -61,38 +60,31 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -# Prepare the source -NOCONFIGURE=1 ./autogen.sh - CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ -./configure \ +meson setup _build \ --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ + --libdir="/usr/lib${LIBDIRSUFFIX}" \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ - --build=$ARCH-slackware-linux + --buildtype=release +meson compile -C _build +DESTDIR="$PKG" meson install -C _build -make -make install DESTDIR=$PKG - -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ +find "$PKG" -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a AUTHORS COPYING ChangeLog README.md \ - $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +rm -f "$PKG/usr/share/icons/hicolor/icon-theme.cache" -mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc -cat $CWD/doinst.sh > $PKG/install/doinst.sh +mkdir -p "$PKG/usr/doc/$PRGNAM-$VERSION" +cp -a COPYING HACKING README.md README-DEVELOPMENT.md RELEASE-HOWTO \ + "$PKG/usr/doc/$PRGNAM-$VERSION" +cat "$CWD/$PRGNAM.SlackBuild" > "$PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild" -cd $PKG -# let's avoid a "bad interpreter error -sed "s,#!python3.11,#!/usr/bin/python3.11," usr/bin/cthulhu > dummy -mv dummy usr/bin/cthulhu -chmod 755 usr/bin/cthulhu -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE +mkdir -p "$PKG/install" +cat "$CWD/slack-desc" > "$PKG/install/slack-desc" +cat "$CWD/doinst.sh" > "$PKG/install/doinst.sh" + +cd "$PKG" +/sbin/makepkg -l y -c n "$OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" diff --git a/distro-packages/Slint/doinst.sh b/distro-packages/Slint/doinst.sh index 3e5691a..00d4b61 100644 --- a/distro-packages/Slint/doinst.sh +++ b/distro-packages/Slint/doinst.sh @@ -1,3 +1,5 @@ +#!/bin/sh + if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 fi diff --git a/meson.build b/meson.build index c66b6d1..b5a502b 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('cthulhu', - version: '2026.05.14-master', + version: '2026.05.25', meson_version: '>= 1.0.0', ) diff --git a/set-version.sh b/set-version.sh index 2cab2d2..1ba0f6e 100755 --- a/set-version.sh +++ b/set-version.sh @@ -59,8 +59,11 @@ fi cthulhuVersionFile="${scriptDir}/src/cthulhu/cthulhuVersion.py" mesonFile="${scriptDir}/meson.build" pkgbuildFile="${scriptDir}/distro-packages/Arch-Linux/cthulhu/PKGBUILD" +slackwareBuildFile="${scriptDir}/distro-packages/Slackware/cthulhu.SlackBuild" +slintBuildFile="${scriptDir}/distro-packages/Slint/cthulhu.SlackBuild" +slintInfoFile="${scriptDir}/distro-packages/Slint/cthulhu-info" -for path in "$cthulhuVersionFile" "$mesonFile" "$pkgbuildFile"; do +for path in "$cthulhuVersionFile" "$mesonFile" "$pkgbuildFile" "$slackwareBuildFile" "$slintBuildFile" "$slintInfoFile"; do if [[ ! -f "$path" ]]; then echo "Error: Missing file: $path" >&2 exit 1 @@ -68,18 +71,19 @@ for path in "$cthulhuVersionFile" "$mesonFile" "$pkgbuildFile"; do done sed -i "s/^version = \".*\"/version = \"${pythonVersion}\"/" "$cthulhuVersionFile" -if [[ -n "$codeNameValue" ]]; then - sed -i "s/^codeName = \".*\"/codeName = \"${codeNameValue}\"/" "$cthulhuVersionFile" -fi +sed -i "s/^codeName = \".*\"/codeName = \"${codeNameValue}\"/" "$cthulhuVersionFile" sed -i "s/^ version: '.*',/ version: '${fullVersion}',/" "$mesonFile" sed -i "s/^pkgver=.*/pkgver=${pythonVersion}/" "$pkgbuildFile" sed -i "s/^pkgrel=.*/pkgrel=1/" "$pkgbuildFile" +sed -i "s/^VERSION=\${VERSION:-.*}/VERSION=\${VERSION:-${pythonVersion}}/" "$slackwareBuildFile" +sed -i "s/^VERSION=\${VERSION:-.*}/VERSION=\${VERSION:-${pythonVersion}}/" "$slintBuildFile" +sed -i "s/^VERSION=\".*\"/VERSION=\"${pythonVersion}\"/" "$slintInfoFile" if ! rg -q "^version = \"${pythonVersion}\"" "$cthulhuVersionFile"; then echo "Error: Failed to update ${cthulhuVersionFile}" >&2 exit 1 fi -if [[ -n "$codeNameValue" ]] && ! rg -q "^codeName = \"${codeNameValue}\"" "$cthulhuVersionFile"; then +if ! rg -q "^codeName = \"${codeNameValue}\"" "$cthulhuVersionFile"; then echo "Error: Failed to update codeName in ${cthulhuVersionFile}" >&2 exit 1 fi @@ -95,8 +99,23 @@ if ! rg -q "^pkgrel=1$" "$pkgbuildFile"; then echo "Error: Failed to reset pkgrel in ${pkgbuildFile}" >&2 exit 1 fi +if ! rg -q "^VERSION=\\\$\\{VERSION:-${pythonVersion}\\}$" "$slackwareBuildFile"; then + echo "Error: Failed to update ${slackwareBuildFile}" >&2 + exit 1 +fi +if ! rg -q "^VERSION=\\\$\\{VERSION:-${pythonVersion}\\}$" "$slintBuildFile"; then + echo "Error: Failed to update ${slintBuildFile}" >&2 + exit 1 +fi +if ! rg -q "^VERSION=\"${pythonVersion}\"$" "$slintInfoFile"; then + echo "Error: Failed to update ${slintInfoFile}" >&2 + exit 1 +fi echo "Updated version to ${fullVersion} in:" \ "${cthulhuVersionFile}" \ "${mesonFile}" \ - "${pkgbuildFile}" + "${pkgbuildFile}" \ + "${slackwareBuildFile}" \ + "${slintBuildFile}" \ + "${slintInfoFile}" diff --git a/src/cthulhu/cthulhuVersion.py b/src/cthulhu/cthulhuVersion.py index 2f683bf..2dc068b 100644 --- a/src/cthulhu/cthulhuVersion.py +++ b/src/cthulhu/cthulhuVersion.py @@ -23,5 +23,5 @@ # Forked from Orca screen reader. # Cthulhu project: https://git.stormux.org/storm/cthulhu -version = "2026.05.14" -codeName = "master" +version = "2026.05.25" +codeName = "" diff --git a/src/cthulhu/cthulhu_platform.py.in b/src/cthulhu/cthulhu_platform.py.in index da74200..38dee96 100644 --- a/src/cthulhu/cthulhu_platform.py.in +++ b/src/cthulhu/cthulhu_platform.py.in @@ -30,7 +30,8 @@ __license__ = "LGPL" # $CTHULHU_VERSION # -version = f"Cthulhu screen reader version {cthulhuVersion.version}-{cthulhuVersion.codeName}" +versionSuffix = f"-{cthulhuVersion.codeName}" if cthulhuVersion.codeName else "" +version = f"Cthulhu screen reader version {cthulhuVersion.version}{versionSuffix}" # The revision if built from git; otherwise an empty string # diff --git a/src/cthulhu/plugins/DisplayVersion/plugin.py b/src/cthulhu/plugins/DisplayVersion/plugin.py index bcd279a..b12dd57 100644 --- a/src/cthulhu/plugins/DisplayVersion/plugin.py +++ b/src/cthulhu/plugins/DisplayVersion/plugin.py @@ -35,7 +35,8 @@ class DisplayVersion(Plugin): def _get_version_string(self): """Generate the full version string with AT-SPI and session information.""" - msg = f'Cthulhu screen reader version {cthulhuVersion.version}-{cthulhuVersion.codeName}' + version_suffix = f'-{cthulhuVersion.codeName}' if cthulhuVersion.codeName else '' + msg = f'Cthulhu screen reader version {cthulhuVersion.version}{version_suffix}' if cthulhu_platform.revision: msg += f' revision {cthulhu_platform.revision}'