Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/packages/piper-tts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ versions:
gpl-sources:
filename: gpl-sources.tar
description: piper1-gpl and eSpeak NG (both compiled from source)
- version: 1.8.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
From ca2ccdcef11ec0be6e0375444dda7420f99ee856 Mon Sep 17 00:00:00 2001
From: Ludovic Henry <git@ludovic.dev>
Date: Sun, 20 Sep 2026 23:47:02 +0000
Subject: [PATCH] Widen license_files to cover the statically linked eSpeak NG

setup.py names license_files explicitly, so setuptools' default
LICEN[CS]E*/COPYING* glob never applies and a licence file dropped in
beside the existing ones is silently ignored.

CMakeLists.txt builds eSpeak NG from source as an ExternalProject and
links it statically into piper/espeakbridge, and the wheel also ships
eSpeak NG's own espeak-ng-data. eSpeak NG is GPL-3.0-or-later with
Apache-2.0, BSD-2-Clause and UCD parts, and none of its four licence
files reach dist-info/licenses/ in any piper_tts wheel on PyPI -- this is
not riscv64-specific, every platform's wheel is missing them.

Widening the second entry to licenses/* lets COPYING.espeak-ng and its
siblings, staged in licenses/ during the build, reach
dist-info/licenses/ with no other packaging change. The existing
licenses/LICENSE.g2pW-Apache-2.0 is still matched by the same glob.

Upstream-Status: To upstream [not yet submitted; the gap exists in every piper_tts wheel on PyPI regardless of architecture, so it needs a maintainer discussion about which eSpeak NG licence files to ship rather than a drive-by PR]

Signed-off-by: Ludovic Henry <git@ludovic.dev>
---
setup.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/setup.py b/setup.py
index dc8b6cf..932f9d7 100644
--- a/setup.py
+++ b/setup.py
@@ -46,8 +46,10 @@ setup(
description="Fast and local neural text-to-speech engine",
url="http://github.com/OHF-voice/piper1-gpl",
license="GPL-3.0-or-later",
- # g2pW is Apache-2.0; see src/piper/g2pw_onnx.py.
- license_files=["COPYING", "licenses/LICENSE.g2pW-Apache-2.0"],
+ # g2pW is Apache-2.0; see src/piper/g2pw_onnx.py. The glob also picks up the
+ # licences of eSpeak NG, which CMakeLists.txt links into espeakbridge and
+ # whose data this package ships.
+ license_files=["COPYING", "licenses/*"],
author="The Home Assistant Authors",
author_email="hello@home-assistant.io",
keywords=["home", "assistant", "tts", "text-to-speech"],
--
2.43.0

Loading