commit:     9fdde86857d845fe3366813888eaee04a0540bb9
Author:     Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
AuthorDate: Mon Mar 17 17:06:07 2025 +0000
Commit:     Anna Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
CommitDate: Mon Mar 17 17:35:56 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=9fdde868

app-accessibility/rhvoice-core: add 1.16.4

Closes: https://bugs.gentoo.org/923911
Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq.in>

 app-accessibility/rhvoice-core/Manifest            |   2 +
 .../files/rhvoice-core-1.16.4-flags.patch          |  13 +++
 app-accessibility/rhvoice-core/metadata.xml        |  16 +---
 .../rhvoice-core/rhvoice-core-1.16.4.ebuild        | 103 +++++++++++++++++++++
 4 files changed, 121 insertions(+), 13 deletions(-)

diff --git a/app-accessibility/rhvoice-core/Manifest 
b/app-accessibility/rhvoice-core/Manifest
index 2f6ab5834..7d3680339 100644
--- a/app-accessibility/rhvoice-core/Manifest
+++ b/app-accessibility/rhvoice-core/Manifest
@@ -1,2 +1,4 @@
 DIST RHVoice-1.14.0-sanitizers.tar.gz 7339 BLAKE2B 
e600886c9afed2681ea7ad5fd9900af7d3f98a7d96291af7c9ef648be438d149e86ee143f3fa5af0dee08457008ce66be43177adcac79401ef025ddd0d8d40fe
 SHA512 
61df4641f3dbeca38cff44336df6fcea75d02d97135a677df51a02353b5580a96dd77af268bd42944afe36a58512fd948200098ea96a41d20ec503fc33a69421
 DIST RHVoice-1.14.0.tar.gz 3181853 BLAKE2B 
c3c8c7437aa859898dec8747963aa23e6e16b975b58d76f9b1ade3d1c17d9d4e63c24469a670c1210f9a1501606a34b6adf52ab4c64abfddb97541cced8f82b2
 SHA512 
dab57df49bdb1e2c574cd10e17e5bea08144a105d8f48991cef14b80d28db98dcae29b19d69ec97fc843ee8636d53c48845a3887552d347f117339c95fa0daf1
+DIST RHVoice-1.16.4-sanitizers.tar.gz 7339 BLAKE2B 
e600886c9afed2681ea7ad5fd9900af7d3f98a7d96291af7c9ef648be438d149e86ee143f3fa5af0dee08457008ce66be43177adcac79401ef025ddd0d8d40fe
 SHA512 
61df4641f3dbeca38cff44336df6fcea75d02d97135a677df51a02353b5580a96dd77af268bd42944afe36a58512fd948200098ea96a41d20ec503fc33a69421
+DIST RHVoice-1.16.4.tar.gz 3228520 BLAKE2B 
bc48e4b008416ec32b53969ca94d50eca847ced140601c8480624ee21410da149662cf64b5bcb7119c79900654b5488bc719acbfc3c424c3ede606d7b5433b5a
 SHA512 
97e08eb8277fc39dd09d9954f0bb5927ed49e4d8310b82b8d71a16236db988f49d92303278644ce9031da61a026c14a36b7de0f95cb42072a6ac9754e29272b8

diff --git 
a/app-accessibility/rhvoice-core/files/rhvoice-core-1.16.4-flags.patch 
b/app-accessibility/rhvoice-core/files/rhvoice-core-1.16.4-flags.patch
new file mode 100644
index 000000000..2c7499d78
--- /dev/null
+++ b/app-accessibility/rhvoice-core/files/rhvoice-core-1.16.4-flags.patch
@@ -0,0 +1,13 @@
+Hardening.cmake: allow overwriting HARDENING_MACRODEFS
+
+CMake requires explicit form for cache variables.
+
+--- a/cmake/Hardening.cmake
++++ b/cmake/Hardening.cmake
+@@ -272,5 +272,5 @@ function(harden target)
+       
+       #list(JOIN HARDENING_MACRODEFS " " HARDENING_MACRODEFS) # unneeded, 
list is needed, not string
+       set(HARDENING_MACRODEFS "${HARDENING_MACRODEFS}" CACHE STRING 
"Hardening flags CMake list (not string!)")
+-      target_compile_definitions(${target} PRIVATE ${HARDENING_MACRODEFS})
++      target_compile_definitions(${target} PRIVATE 
$CACHE{HARDENING_MACRODEFS})
+ endfunction(harden)

diff --git a/app-accessibility/rhvoice-core/metadata.xml 
b/app-accessibility/rhvoice-core/metadata.xml
index 7015e8069..659bfe949 100644
--- a/app-accessibility/rhvoice-core/metadata.xml
+++ b/app-accessibility/rhvoice-core/metadata.xml
@@ -12,18 +12,8 @@
                <flag name="speech-dispatcher">Build a speech-dispatcher 
middleware module</flag>
        </use>
        <longdescription lang="en">
-               RHVoice is a free and open source speech synthesizer.
-
-               Voices are built from recordings of natural speech. They have 
small
-               footprints, because only statistical models are stored on users'
-               computers. And though the voices lack the naturalness of the
-               synthesizers which generate speech by combining segments of the
-               recordings themselves, they are still very intelligible and 
resemble
-               the speakers who recorded the source material.
-
-               Initially, RHVoice could speak only Russian. Now it also 
supports
-               American English, Brazilian Portuguese, Esperanto, Georgian, 
Ukrainian,
-               Kyrgyz and Tatar. In theory, it is possible to implement 
support for
-               other languages, if all the necessary resources can be found or 
created.
+               RHVoice is a multilingual speech synthesizer primarily 
developed for
+               use with screen readers, maintaining the balance between speech
+               quality and responsiveness.
        </longdescription>
 </pkgmetadata>

diff --git a/app-accessibility/rhvoice-core/rhvoice-core-1.16.4.ebuild 
b/app-accessibility/rhvoice-core/rhvoice-core-1.16.4.ebuild
new file mode 100644
index 000000000..6812029d8
--- /dev/null
+++ b/app-accessibility/rhvoice-core/rhvoice-core-1.16.4.ebuild
@@ -0,0 +1,103 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+MY_PN="RHVoice"
+MY_P="${MY_PN}-${PV}"
+SANITIZERS_COMMIT="99e159ec9bc8dd362b08d18436bd40ff0648417b"
+DESCRIPTION="Multilingual text-to-speech engine"
+HOMEPAGE="
+       https://rhvoice.org
+       https://github.com/RHVoice/RHVoice
+"
+SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz 
-> ${MY_P}.tar.gz
+       
https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_COMMIT}.tar.gz 
-> ${MY_P}-sanitizers.tar.gz
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD GPL-2+ GPL-3+ LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ao dbus portaudio +pulseaudio +speech-dispatcher"
+REQUIRED_USE="|| ( ao portaudio pulseaudio )"
+
+COMMON_DEPEND="
+       dev-libs/boost:=
+       ao? ( media-libs/libao )
+       dbus? (
+               dev-libs/glib:2[dbus]
+               dev-libs/libsigc++:2
+               >=dev-cpp/glibmm-2.66.1:2
+       )
+       portaudio? ( media-libs/portaudio )
+       pulseaudio? ( media-libs/libpulse )
+       speech-dispatcher? ( app-accessibility/speech-dispatcher )
+"
+RDEPEND="${COMMON_DEPEND}
+       !<app-accessibility/rhvoice-1.14.0
+"
+DEPEND="${COMMON_DEPEND}
+       dev-cpp/cli11
+       <dev-libs/utfcpp-4.0
+"
+
+PATCHES=(
+       # https://bugs.gentoo.org/923911
+       "${FILESDIR}"/${PN}-1.16.4-flags.patch
+)
+
+DOCS=( README.md doc/. config/dicts )
+
+LANGS=( en ru )
+for lang in "${LANGS[@]}"; do
+       IUSE+=" l10n_${lang}"
+       RDEPEND+=" l10n_${lang}? ( app-dicts/rhvoice-${lang} )"
+done
+
+src_unpack() {
+       default
+       cd "${S}" || die
+
+       rmdir cmake/thirdParty/sanitizers || die
+       mv "${WORKDIR}"/sanitizers-cmake-${SANITIZERS_COMMIT} 
cmake/thirdParty/sanitizers || die
+}
+
+src_prepare() {
+       cmake_src_prepare
+       cmake_comment_add_subdirectory '"${thirdPartyCMakeModulesDir}/CCache"'
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DRHVOICE_VERSION_FROM_GIT=${PV}
+               -DWITH_CLI11=ON
+               -DWITH_DATA=OFF
+
+               # src/CMakeLists.txt
+               -DBUILD_CLIENT=OFF      # deprecated, use speech-dispatcher
+               -DBUILD_UTILS=OFF       # fails to build because of bundled 
tclap
+               -DBUILD_TESTS=ON        # standalone cli application
+               -DBUILD_SERVICE=$(usex dbus)
+               -DBUILD_SPEECHDISPATCHER_MODULE=$(usex speech-dispatcher)
+
+               # src/audio/CMakeLists.txt
+               -DWITH_LIBAO=$(usex ao)
+               -DWITH_PULSE=$(usex pulseaudio)
+               -DWITH_PORTAUDIO=$(usex portaudio)
+
+               # Hardening.cmake: don't mess with flags
+               -DHARDENING_PIC=OFF
+               -DHARDENING_SSE2=OFF
+               -DHARDENING_COMPILE_FLAGS=
+               -DHARDENING_LINK_FLAGS=
+               -DHARDENING_MACRODEFS=
+       )
+
+       use speech-dispatcher && \
+               append-cppflags -DSPD_MAJOR=1 -DSPD_MINOR=0
+
+       cmake_src_configure
+}

Reply via email to