diff options
author | 2023-04-19 04:00:49 +0100 | |
---|---|---|
committer | 2023-04-19 04:00:49 +0100 | |
commit | 3a5a7f52627f48f5d7f1fae63564af6c953bd3b0 (patch) | |
tree | 12cd167e8b472d41f498daac06da6ac1ce15891e /app-accessibility/speech-tools | |
parent | sys-libs/ncurses: add 6.4_p20230418 (diff) | |
download | gentoo-3a5a7f52627f48f5d7f1fae63564af6c953bd3b0.tar.gz gentoo-3a5a7f52627f48f5d7f1fae63564af6c953bd3b0.tar.bz2 gentoo-3a5a7f52627f48f5d7f1fae63564af6c953bd3b0.zip |
app-accessibility/speech-tools: fix musl build
Closes: https://bugs.gentoo.org/829344
Closes: https://bugs.gentoo.org/896170
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-accessibility/speech-tools')
-rw-r--r-- | app-accessibility/speech-tools/files/speech-tools-2.5.0-musl-isnan.patch | 65 | ||||
-rw-r--r-- | app-accessibility/speech-tools/speech-tools-2.5.0-r2.ebuild | 156 |
2 files changed, 221 insertions, 0 deletions
diff --git a/app-accessibility/speech-tools/files/speech-tools-2.5.0-musl-isnan.patch b/app-accessibility/speech-tools/files/speech-tools-2.5.0-musl-isnan.patch new file mode 100644 index 000000000000..da0077313abd --- /dev/null +++ b/app-accessibility/speech-tools/files/speech-tools-2.5.0-musl-isnan.patch @@ -0,0 +1,65 @@ +See https://bugs.openjdk.org/browse/JDK-8178689 for some analysis - we can +safely replace the deprecated/obsolete isnanf (which musl doesn't immplement) +with isnan. + +https://bugs.gentoo.org/896170 +https://bugs.gentoo.org/829344 +--- a/intonation/tilt/tilt_utils.cc ++++ b/intonation/tilt/tilt_utils.cc +@@ -133,7 +133,7 @@ float rfc_to_t_tilt(EST_Features &e) + { + float t_tilt; + t_tilt = (rfc_to_a_tilt(e) + rfc_to_d_tilt(e)) / 2; +- if (isnanf(t_tilt)) ++ if (isnan(t_tilt)) + t_tilt = 0.0; + return t_tilt; + } +--- a/sigpr/pda/smooth_pda.cc ++++ b/sigpr/pda/smooth_pda.cc +@@ -112,7 +112,7 @@ void smooth_portion(EST_Track &c, EST_Features &op) + + for (i = 0; i < c.num_frames(); ++i) + { // occasionally NaNs result... +- if (isnanf(a[i])) ++ if (isnan(a[i])) + { + c.set_break(i); + c.a(i) = 0.0; +--- a/sigpr/sigpr_frame.cc ++++ b/sigpr/sigpr_frame.cc +@@ -314,7 +314,7 @@ void lpc2cep(const EST_FVector &lpc, EST_FVector &cep) + for (n = 0; n < cep.length(); n++) + { + // check if NaN -- happens on some frames of silence +- if (isnanf(cep[n]) ) cep[n] = 0.0; ++ if (isnan(cep[n]) ) cep[n] = 0.0; + + if (cep[n] > MAX_ABS_CEPS){ + cerr << "WARNING : cepstral coeff " << n << " was " << +--- a/stats/confusion.cc ++++ b/stats/confusion.cc +@@ -138,7 +138,7 @@ void print_confusion(const EST_FMatrix &a, EST_StrStr_KVL &list, + cout.precision(3); + cout.setf(ios::right); + // cout.setf(ios::fixed, ios::floatfield); +- if (isnanf(correct(i))) ++ if (isnan(correct(i))) + cout << endl; + else + cout << correct(i) << endl; +--- a/include/EST_math.h ++++ b/include/EST_math.h +@@ -81,12 +81,6 @@ extern "C" { + #define isnanf(X) isnan(X) + #endif + +-/* Linux (and presumably Hurd too as Linux is GNU libc based) */ +-/* Sorry I haven't confirmed this cpp symbol yet */ +-#if defined(linux) +-#define isnanf(X) __isnanf(X) +-#endif +- + /* OS/2 with gcc EMX */ + #if defined(__EMX__) + #define isnanf(X) isnan(X) diff --git a/app-accessibility/speech-tools/speech-tools-2.5.0-r2.ebuild b/app-accessibility/speech-tools/speech-tools-2.5.0-r2.ebuild new file mode 100644 index 000000000000..649cf3b379e0 --- /dev/null +++ b/app-accessibility/speech-tools/speech-tools-2.5.0-r2.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic toolchain-funcs + +MY_P=${P/speech-/speech_} +PATCHSET="r3" + +DESCRIPTION="Speech tools for Festival Text to Speech engine" +HOMEPAGE="https://www.cstr.ed.ac.uk/projects/speech_tools/" +SRC_URI="http://www.festvox.org/packed/festival/$(ver_cut 1-2)/${MY_P}-release.tar.gz + https://dev.gentoo.org/~neurogeek/${PN}/speech_tools-2.1-${PATCHSET}-patches.tar.gz" +S="${WORKDIR}/speech_tools" + +LICENSE="FESTIVAL HPND BSD rc regexp-UofT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" +IUSE="nas openmp X" + +RDEPEND=" + media-libs/alsa-lib + sys-libs/ncurses:= + nas? ( media-libs/nas ) + X? ( + x11-libs/libX11 + x11-libs/libXt + ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +DOCS=( README.md lib/cstrutt.dtd lib/example_data ) + +PATCHES=( + "${WORKDIR}/patch/02_all_gcc42.patch" + "${WORKDIR}/patch/03_all_GentooLinux.patch" + "${WORKDIR}/patch/05_all_sharedlib.patch" + "${WORKDIR}/patch/06_all_gcc43-include.patch" + "${WORKDIR}/patch/09_all_remove-shared-refs.patch" + "${WORKDIR}/patch/10_all_base_class.patch" + "${WORKDIR}/patch/81_all_etcpath.patch" + "${WORKDIR}/patch/91_all_gentoo-config.patch" + "${WORKDIR}/patch/92_all_ldflags_fix.patch" + "${WORKDIR}/patch/94_all_ncurses_tinfo.patch" + + # Fix underlinking, bug #493204 + "${FILESDIR}/${PN}-2.1-underlinking.patch" + "${FILESDIR}/${PN}-2.5.0-fno-common.patch" + "${FILESDIR}/${PN}-2.5.0-drop-curses.patch" + "${FILESDIR}/${P}-warnings.patch" + "${FILESDIR}/${P}-musl-isnan.patch" +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_prepare() { + default + + sed -i -e '/^CXXFLAGS =/s|CC_OTHER_FLAGS|CXX_OTHER_FLAGS|' \ + config/compilers/gcc_defaults.mak || die + + sed -i -e 's,{{HORRIBLELIBARCHKLUDGE}},"/usr/$(get_libdir)",' \ + main/siod_main.cc || die + + # bug #309983 + sed -i -e "s:\(GCC_SYSTEM_OPTIONS =\).*:\1:" \ + "${S}"/config/systems/sparc_SunOS5.mak || die + + sed -i -e "s|\$(OMP_OPTS)|$(use openmp && echo -fopenmp)|g" \ + -e "s|\$(OMP_DEFS)|$(use openmp && echo -DOMP_WAGON=1)|g" \ + -e "/MAKE_SHARED_LIB =/s|-shared|$(use openmp && echo -fopenmp) -shared|" \ + config/compilers/gcc_defaults.mak || die + + eautoreconf +} + +src_configure() { + local CONFIG=config/config.in + + sed -i -e 's/@COMPILERTYPE@/gcc42/' ${CONFIG} || die + + if use nas; then + sed -i -e "s/#.*\(INCLUDE_MODULES += NAS_AUDIO\)/\1/" \ + ${CONFIG} || die + fi + + if ! use X; then + sed -i -e "s/-lX11 -lXt//" config/modules/esd_audio.mak || die + fi + + econf +} + +src_compile() { + # Lacks prototypes, bug #881863 + append-cflags -std=gnu89 + # Uses 'register' keyword removed in C++17, bug #894184 + append-cxxflags -std=c++14 + + emake -j1 \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + CC_OTHER_FLAGS="${CFLAGS}" \ + CXX_OTHER_FLAGS="${CXXFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + AR="$(tc-getAR)" \ + RANLIB="$(tc-getRANLIB)" +} + +src_install() { + default + + dolib.so lib/libest*.so* + + insinto /usr/share/speech-tools + doins -r config base_class + + insinto /usr/share/speech-tools/lib + doins -r lib/siod + + mv include speech-tools || die + doheader -r speech-tools + dosym ../../include/speech-tools /usr/share/speech-tools/include + + for file in bin/*; do + [ "${file}" = "bin/Makefile" ] && continue + dobin ${file} + dstfile="${ED}/usr/${file}" + sed -i -e "s:${S}/testsuite/data:/usr/share/speech-tools/testsuite:g" \ + ${dstfile} || die + sed -i -e "s:${S}/bin:/usr/$(get_libdir)/speech-tools:g" \ + ${dstfile} || die + sed -i -e "s:${S}/main:/usr/$(get_libdir)/speech-tools:g" \ + ${dstfile} || die + + # This just changes LD_LIBRARY_PATH + sed -i -e "s:${S}/lib:/usr/$(get_libdir):g" ${dstfile} || die + done + + exeinto /usr/$(get_libdir)/speech-tools + for file in `find main -perm /111 -type f`; do + doexe ${file} + done + + # Remove bcat (only useful for testing on windows, see bug #418301). + rm "${ED}/usr/bin/bcat" || die + rm "${ED}/usr/$(get_libdir)/speech-tools/bcat" || die +} |