[Guix packaging] GmEsoft/SP0256_CTS256A-AL2 #70

Open
opened 2026-08-14 13:16:58 +00:00 by htayj · 1 comment
htayj commented 2026-08-14 13:16:58 +00:00 (Migrated from github.com)

Candidate

  • Upstream canonical URL: https://github.com/GmEsoft/SP0256_CTS256A-AL2
  • Source pinned commit/release when known: bbc75dca9af8a9c2df239294b0014629b70daf05 (default-branch snapshot checked 2026-08-14)
  • Target concrete installed deliverable: SP0256 and CTS256A-AL2 speech-synthesis emulators
  • Primary category: desktop-application
  • Tags: speech-synthesis
  • Primary language normalized: C++
  • Build system: custom native build system
  • SPDX expression: GPL-3.0-only
  • License status: declared-free
  • License evidence: GitHub repository metadata declares GPL-3.0-only; the upstream license text still needs package-review confirmation.
  • Difficulty: hard — No supported host build manifest is evident, so a reproducible native build and audio/runtime boundary must be established.
  • Workflow state: research
  • Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found.

Scope and blockers

Deliver host speech-synthesis emulator programs/libraries only.

Acceptance checks

  • guix lint -L. <package-name> and guix build -L. <package-name> pass once a package definition exists.
  • Run a local text-to-speech/sample conversion smoke without audio hardware or network.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-14T13:16:58Z.

## Candidate - Upstream canonical URL: https://github.com/GmEsoft/SP0256_CTS256A-AL2 - Source pinned commit/release when known: `bbc75dca9af8a9c2df239294b0014629b70daf05` (default-branch snapshot checked 2026-08-14) - Target concrete installed deliverable: SP0256 and CTS256A-AL2 speech-synthesis emulators - Primary category: desktop-application - Tags: speech-synthesis - Primary language normalized: C++ - Build system: custom native build system - SPDX expression: GPL-3.0-only - License status: declared-free - License evidence: GitHub repository metadata declares GPL-3.0-only; the upstream license text still needs package-review confirmation. - Difficulty: hard — No supported host build manifest is evident, so a reproducible native build and audio/runtime boundary must be established. - Workflow state: research - Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found. ## Scope and blockers Deliver host speech-synthesis emulator programs/libraries only. ## Acceptance checks - `guix lint -L. <package-name>` and `guix build -L. <package-name>` pass once a package definition exists. - Run a local text-to-speech/sample conversion smoke without audio hardware or network. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/70). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:16:58Z.
htayj commented 2026-08-25 19:56:16 +00:00 (Migrated from github.com)

Goocastle recorded disposition: blocked.

Canonical source is https://github.com/GmEsoft/SP0256_CTS256A-AL2 at fixed revision bbc75dca9af8a9c2df239294b0014629b70daf05 (upstream README version 0.0.6-alpha, 2024-08-16 merge commit). The local channel has no installable equivalent; it only has gmesoft-sp0256-cts256a-al2-source in tay/packages/starred-d-h.scm at that revision. The pinned tree has no .gitmodules file and no gitlink entries, so there are no independently fetched submodule origins requiring separate license review. The top-level LICENSE is the full GPL version 3 text, source headers grant GPL-3-or-later, and SP0256/sp0256.c contains an explicit GPL-2-or-later notice with Joseph Zbiciak copyright; the license evidence therefore supports free source code but does not support the issue metadata's GPL-3.0-only expression without correction. The exact pinned README also states that Microchip, Inc. holds the copyrights to the SP0256-AL2 design and ROM image and the CTS256A-AL2 ROM image, and retains IP rights in the emulated algorithms and data. Those required bundled assets are embedded in SP0256/sp0256_012.cpp, SP0256/sp0256_al2.cpp, and CTS256A-AL2/runtime.h at this same parent revision. Neither the README nor the GPL notices provide a clear redistribution grant from Microchip or another rightsholder for those assets; the parent repository license cannot cure that third-party rights gap. This is the concrete blocker: unattended Guix redistribution of the requested emulators is legally unsafe until upstream supplies an explicit grant from Microchip/current rightsholders covering the exact ROM images and emulation data, or replaces them with independently redistributable material. Technical assessment after that grant: the repository has only Visual Studio .sln/.vcproj/.vcxproj projects, targets Win32/v141, links winmm.lib, and uses Windows-only windows.h, mmsystem.h waveOut, Win32Sleeper, _tmain/_TCHAR, and conio APIs; it has no Makefile, CMake file, or native Guix build. A package would need a gnu-build-system definition (candidate placement gnu/packages/audio.scm), no external library inputs evident after a POSIX stdio/sleep port, and patches to compile both cts256a-al2 and sp0256, keep CTS allophone output on stdout, make the SP0256 -wFILE path use the bundled 8-bit PCM mono WAV writer without any audio hardware, and avoid the Win32 waveOut default path. The isolated acceptance smoke once rights are cleared is: run cts256a-al2 -n 'Hello World.' to a temporary allophone file, feed it to sp0256 -i- -w/tmp-file.wav with network disabled and no audio device, then assert successful exit, RIFF/WAVE plus PCM=1, mono=1, 8-bit metadata, a nonempty data chunk, and deterministic nonempty CTS output; this is a planned acceptance proof, not package proof.


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T19:56:16Z.

<!-- goocastle-disposition:sequential-reviewer:70:1:blocked --> Goocastle recorded disposition: blocked. Canonical source is https://github.com/GmEsoft/SP0256_CTS256A-AL2 at fixed revision bbc75dca9af8a9c2df239294b0014629b70daf05 (upstream README version 0.0.6-alpha, 2024-08-16 merge commit). The local channel has no installable equivalent; it only has gmesoft-sp0256-cts256a-al2-source in tay/packages/starred-d-h.scm at that revision. The pinned tree has no .gitmodules file and no gitlink entries, so there are no independently fetched submodule origins requiring separate license review. The top-level LICENSE is the full GPL version 3 text, source headers grant GPL-3-or-later, and SP0256/sp0256.c contains an explicit GPL-2-or-later notice with Joseph Zbiciak copyright; the license evidence therefore supports free source code but does not support the issue metadata's GPL-3.0-only expression without correction. The exact pinned README also states that Microchip, Inc. holds the copyrights to the SP0256-AL2 design and ROM image and the CTS256A-AL2 ROM image, and retains IP rights in the emulated algorithms and data. Those required bundled assets are embedded in SP0256/sp0256_012.cpp, SP0256/sp0256_al2.cpp, and CTS256A-AL2/runtime.h at this same parent revision. Neither the README nor the GPL notices provide a clear redistribution grant from Microchip or another rightsholder for those assets; the parent repository license cannot cure that third-party rights gap. This is the concrete blocker: unattended Guix redistribution of the requested emulators is legally unsafe until upstream supplies an explicit grant from Microchip/current rightsholders covering the exact ROM images and emulation data, or replaces them with independently redistributable material. Technical assessment after that grant: the repository has only Visual Studio .sln/.vcproj/.vcxproj projects, targets Win32/v141, links winmm.lib, and uses Windows-only windows.h, mmsystem.h waveOut, Win32Sleeper, _tmain/_TCHAR, and conio APIs; it has no Makefile, CMake file, or native Guix build. A package would need a gnu-build-system definition (candidate placement gnu/packages/audio.scm), no external library inputs evident after a POSIX stdio/sleep port, and patches to compile both cts256a-al2 and sp0256, keep CTS allophone output on stdout, make the SP0256 -wFILE path use the bundled 8-bit PCM mono WAV writer without any audio hardware, and avoid the Win32 waveOut default path. The isolated acceptance smoke once rights are cleared is: run cts256a-al2 -n 'Hello World.' to a temporary allophone file, feed it to sp0256 -i- -w/tmp-file.wav with network disabled and no audio device, then assert successful exit, RIFF/WAVE plus PCM=1, mono=1, 8-bit metadata, a nonempty data chunk, and deterministic nonempty CTS output; this is a planned acceptance proof, not package proof. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/70#issuecomment-5415952570). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T19:56:16Z.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tay/guix-channel#70
No description provided.