diff --git a/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD b/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD index 8b3c5ee..2a844aa 100644 --- a/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD +++ b/distro-packages/Arch-Linux/cthulhu-git/PKGBUILD @@ -4,7 +4,7 @@ pkgbase=cthulhu-git pkgname=cthulhu-git _pkgname=cthulhu -pkgver=2026.07.18.r465.g050ae25 +pkgver=2026.08.06.r474.ge779ba2 pkgrel=1 pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca" url="https://git.stormux.org/storm/cthulhu" @@ -68,7 +68,7 @@ optdepends=( ) optdepends_x86_64=( # The helper is x86_64-only, but this package is architecture-independent. - 'cthulhu-wine-access-git: Wine, Proton, NVDA Controller, and Tolk integration' + 'cthulhu-wine-access: Wine, Proton, NVDA Controller, and Tolk integration' ) makedepends=( git diff --git a/distro-packages/Arch-Linux/cthulhu-wine-access-git/PKGBUILD b/distro-packages/Arch-Linux/cthulhu-wine-access-git/PKGBUILD index 1fd358e..93c22a3 100644 --- a/distro-packages/Arch-Linux/cthulhu-wine-access-git/PKGBUILD +++ b/distro-packages/Arch-Linux/cthulhu-wine-access-git/PKGBUILD @@ -10,14 +10,12 @@ url="https://git.stormux.org/storm/cthulhu" arch=(x86_64) license=(LGPL-2.1-or-later) depends=( - "cthulhu-git=${pkgver}" glib2 wine ) makedepends=( cmake git - meson ) provides=(cthulhu-wine-access) conflicts=(cthulhu-wine-access) @@ -40,9 +38,12 @@ pkgver() { } build() { - cd "${_pkgname}" - arch-meson _build -Dwine-access=enabled - meson compile -C _build + local sourceDir="${srcdir}/${_pkgname}" + bash "${sourceDir}/scripts/build-wine-access.sh" \ + "${sourceDir}/wine-access" \ + "${sourceDir}/_build/wine-access-build" \ + "${sourceDir}/_build/cthulhu-wine-access.exe" \ + "${sourceDir}/_build/cthulhu-wine-access.exe.so" } package() { diff --git a/distro-packages/Arch-Linux/cthulhu-wine-access/PKGBUILD b/distro-packages/Arch-Linux/cthulhu-wine-access/PKGBUILD index f66cd20..e223f7a 100644 --- a/distro-packages/Arch-Linux/cthulhu-wine-access/PKGBUILD +++ b/distro-packages/Arch-Linux/cthulhu-wine-access/PKGBUILD @@ -2,30 +2,31 @@ # shellcheck shell=bash disable=SC2034,SC2154,SC2164 pkgname=cthulhu-wine-access -pkgver=2026.08.06 +pkgver=2026.09.03 pkgrel=1 pkgdesc="Optional Wine and Proton accessibility bridge for Cthulhu" url="https://git.stormux.org/storm/cthulhu" arch=(x86_64) license=(LGPL-2.1-or-later) depends=( - "cthulhu=${pkgver}" glib2 wine ) makedepends=( cmake git - meson ) source=("git+https://git.stormux.org/storm/cthulhu.git#tag=${pkgver}") sha512sums=('SKIP') options=(!lto) build() { - cd cthulhu - arch-meson _build -Dwine-access=enabled - meson compile -C _build + local sourceDir="${srcdir}/cthulhu" + bash "${sourceDir}/scripts/build-wine-access.sh" \ + "${sourceDir}/wine-access" \ + "${sourceDir}/_build/wine-access-build" \ + "${sourceDir}/_build/cthulhu-wine-access.exe" \ + "${sourceDir}/_build/cthulhu-wine-access.exe.so" } package() { diff --git a/distro-packages/Arch-Linux/cthulhu/PKGBUILD b/distro-packages/Arch-Linux/cthulhu/PKGBUILD index c05c2e4..e30f78a 100644 --- a/distro-packages/Arch-Linux/cthulhu/PKGBUILD +++ b/distro-packages/Arch-Linux/cthulhu/PKGBUILD @@ -3,7 +3,7 @@ pkgbase=cthulhu pkgname=cthulhu -pkgver=2026.08.06 +pkgver=2026.09.03 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 b6c6d56..70df4a4 100755 --- a/distro-packages/Slackware/cthulhu.SlackBuild +++ b/distro-packages/Slackware/cthulhu.SlackBuild @@ -6,7 +6,7 @@ cd "$(dirname "$0")" ; CWD=$(pwd) PRGNAM=cthulhu -VERSION=${VERSION:-2026.08.06} +VERSION=${VERSION:-2026.09.03} BUILD=${BUILD:-1} TAG=storm PKGTYPE=txz diff --git a/distro-packages/Slint/cthulhu-info b/distro-packages/Slint/cthulhu-info index 4b75895..5731df8 100644 --- a/distro-packages/Slint/cthulhu-info +++ b/distro-packages/Slint/cthulhu-info @@ -1,5 +1,5 @@ PRGNAM="cthulhu" -VERSION="2026.08.06" +VERSION="2026.09.03" HOMEPAGE="https://git.stormux.org/storm/cthulhu" DOWNLOAD="https://git.stormux.org/storm/cthulhu.git" MD5SUM="SKIP" diff --git a/distro-packages/Slint/cthulhu.SlackBuild b/distro-packages/Slint/cthulhu.SlackBuild index b6c6d56..70df4a4 100755 --- a/distro-packages/Slint/cthulhu.SlackBuild +++ b/distro-packages/Slint/cthulhu.SlackBuild @@ -6,7 +6,7 @@ cd "$(dirname "$0")" ; CWD=$(pwd) PRGNAM=cthulhu -VERSION=${VERSION:-2026.08.06} +VERSION=${VERSION:-2026.09.03} BUILD=${BUILD:-1} TAG=storm PKGTYPE=txz diff --git a/meson.build b/meson.build index 429e039..c018ac4 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('cthulhu', - version: '2026.08.06', + version: '2026.09.03-master', meson_version: '>= 1.0.0', ) diff --git a/src/cthulhu/cthulhuVersion.py b/src/cthulhu/cthulhuVersion.py index d71685a..24afacf 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.08.06" +version = "2026.09.03" codeName = "master" diff --git a/tests/test_arch_pkgbuild_optional_wine.py b/tests/test_arch_pkgbuild_optional_wine.py index 90438f2..8d26921 100644 --- a/tests/test_arch_pkgbuild_optional_wine.py +++ b/tests/test_arch_pkgbuild_optional_wine.py @@ -46,26 +46,21 @@ class ArchPkgbuildOptionalWineTests(unittest.TestCase): } self.assertNotIn("wine", dependencyLines) - def test_main_packages_advertise_matching_optional_helper(self) -> None: - stableContents = self.pkgbuilds[0].read_text(encoding="utf-8") - self.assertIn( - "'cthulhu-wine-access: Wine, Proton, NVDA Controller, and Tolk integration'", - self._array_contents(stableContents, "optdepends_x86_64"), - ) - self.assertNotIn( - "cthulhu-wine-access", - self._array_contents(stableContents, "optdepends"), - ) - - gitContents = self.pkgbuilds[1].read_text(encoding="utf-8") - self.assertIn( - "'cthulhu-wine-access-git: Wine, Proton, NVDA Controller, and Tolk integration'", - self._array_contents(gitContents, "optdepends_x86_64"), - ) - self.assertNotIn( - "cthulhu-wine-access-git", - self._array_contents(gitContents, "optdepends"), + def test_main_packages_advertise_interchangeable_optional_helper(self) -> None: + helperDescription = ( + "'cthulhu-wine-access: Wine, Proton, NVDA Controller, and Tolk integration'" ) + for pkgbuild in self.pkgbuilds: + with self.subTest(pkgbuild=pkgbuild): + contents = pkgbuild.read_text(encoding="utf-8") + self.assertIn( + helperDescription, + self._array_contents(contents, "optdepends_x86_64"), + ) + self.assertNotIn( + "cthulhu-wine-access", + self._array_contents(contents, "optdepends"), + ) def test_stable_packages_use_current_release_version(self) -> None: for pkgbuild in (self.pkgbuilds[0], self.helperPkgbuilds[0]): @@ -105,14 +100,31 @@ class ArchPkgbuildOptionalWineTests(unittest.TestCase): def test_stable_helper_has_release_contract(self) -> None: contents = self.helperPkgbuilds[0].read_text(encoding="utf-8") self.assertRegex(contents, r"(?m)^arch=\(x86_64\)$") - self.assertRegex(contents, r'(?m)^ "cthulhu=\$\{pkgver\}"$') - def test_optional_helper_packages_own_the_wine_dependency(self) -> None: + def test_optional_helpers_do_not_depend_on_main_package(self) -> None: for pkgbuild in self.helperPkgbuilds: with self.subTest(pkgbuild=pkgbuild): contents = pkgbuild.read_text(encoding="utf-8") - self.assertIn("-Dwine-access=enabled", contents) + dependencies = self._array_contents(contents, "depends") + self.assertNotRegex( + dependencies, + r"(?m)^\s*['\"]?cthulhu(?:-git)?(?:[<>=].*)?['\"]?\s*$", + ) + + def test_git_helper_provides_stable_helper_name(self) -> None: + contents = self.helperPkgbuilds[1].read_text(encoding="utf-8") + self.assertRegex(contents, r"(?m)^provides=\(cthulhu-wine-access\)$") + self.assertRegex(contents, r"(?m)^conflicts=\(cthulhu-wine-access\)$") + + def test_optional_helper_packages_build_only_the_helper(self) -> None: + for pkgbuild in self.helperPkgbuilds: + with self.subTest(pkgbuild=pkgbuild): + contents = pkgbuild.read_text(encoding="utf-8") + self.assertIn('/scripts/build-wine-access.sh"', contents) + self.assertNotIn("arch-meson", contents) self.assertRegex(contents, r"(?m)^ wine$") + makeDependencies = self._array_contents(contents, "makedepends") + self.assertNotRegex(makeDependencies, r"(?m)^\s*meson\s*$") def test_optional_helper_packages_disable_lto(self) -> None: for pkgbuild in self.helperPkgbuilds: