e27bed5
%global extraver prealpha
e27bed5
5b98132
%if 0%{?fedora} >= 33
5b98132
%global blaslib flexiblas
5b98132
%else
5b98132
%global blaslib openblas
5b98132
%endif
5b98132
f3f5125
Name:           sphinxbase
e27bed5
Version:        5
5a5d1a0
Release:        0.9.%{extraver}%{?dist}
e27bed5
Epoch:          1
f3f5125
Summary:        Common library for CMU Sphinx voice recognition products
f3f5125
f3f5125
License:        BSD
f3f5125
URL:            http://cmusphinx.sourceforge.net/
e27bed5
Source0:        http://downloads.sourceforge.net/cmusphinx/%{name}-%{version}%{extraver}.tar.gz
f3f5125
22c3e85
# https://github.com/cmusphinx/sphinxbase/pull/72
22c3e85
Patch0:         sphinxbase-5prealpha-fix-doxy2swig.patch
22c3e85
32eb881
BuildRequires: make
f3f5125
BuildRequires:  autoconf-archive
f3f5125
BuildRequires:  bison
f3f5125
BuildRequires:  doxygen-latex
f3f5125
BuildRequires:  gcc-c++
f3f5125
BuildRequires:  ghostscript
f3f5125
BuildRequires:  libtool
5b98132
BuildRequires:  %{blaslib}-devel
f3f5125
BuildRequires:  perl-generators
f3f5125
BuildRequires:  perl-interpreter
f3f5125
BuildRequires:  perl(Pod::Usage)
f3f5125
BuildRequires:  pkgconfig(libpulse)
f3f5125
BuildRequires:  pkgconfig(samplerate)
f3f5125
BuildRequires:  pkgconfig(sndfile)
f3f5125
BuildRequires:  python3-Cython
f3f5125
BuildRequires:  python3-devel
f3f5125
BuildRequires:  python3-setuptools
f3f5125
BuildRequires:  swig
f3f5125
f3f5125
%description
f3f5125
Sphinxbase is a common library for CMU Sphinx voice recognition products.
f3f5125
This package does not provide voice recognition by itself.
f3f5125
f3f5125
%package devel
f3f5125
Summary:        Header and other development files for sphinxbase
e27bed5
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
f3f5125
Requires:       pkgconfig(libpulse)
f3f5125
Provides:       bundled(jquery)
f3f5125
f3f5125
%description devel
f3f5125
Header files and other development files for sphinxbase.
f3f5125
f3f5125
%package libs
f3f5125
Summary:        Libraries for sphinxbase
f3f5125
f3f5125
%description libs
f3f5125
The libraries for sphinxbase.
f3f5125
f3f5125
%package -n python3-sphinxbase
f3f5125
%{?python_provide:%python_provide python3-sphinxbase}
f3f5125
Summary:        Python interface to sphinxbase
e27bed5
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
f3f5125
f3f5125
%description -n python3-sphinxbase
f3f5125
Python 3 interface to sphinxbase.
f3f5125
f3f5125
%prep
e27bed5
%setup -q -n sphinxbase-%{version}%{extraver}
f3f5125
5b98132
# Use blaslib instead of the blas reference implementation
5b98132
sed -ri 's/blas|lapack/%{blaslib}/' configure.ac
f3f5125
f3f5125
# Use system-provided ax_python_devel.m4
f3f5125
rm -f m4/ax_python_devel.m4
f3f5125
5b98132
# Regenerate configure files due to blaslib and m4 changes
f3f5125
autoreconf -fi
f3f5125
f3f5125
# Fix encoding
f3f5125
iconv -f ISO8859-1 -t UTF-8 -o AUTHORS.new AUTHORS
f3f5125
touch -r AUTHORS.new AUTHORS
f3f5125
mv -f AUTHORS.new AUTHORS
f3f5125
f3f5125
# Force code generation with newer versions of Cython and bison
f3f5125
rm -f python/sphinxbase.c src/libsphinxbase/lm/jsgf_parser.{c,h}
f3f5125
f3f5125
# Improve auto requires detection
f3f5125
for f in src/sphinx_jsgf2fsg/fsg2dot.pl; do
f3f5125
  sed -r 's|/usr/bin/env (.*)|/usr/bin/\1|' $f > $f.new
f3f5125
  touch -r $f $f.new
f3f5125
  mv -f $f.new $f
f3f5125
done
f3f5125
22c3e85
%patch0 -p1 -b .fix-doxy2swig
22c3e85
f3f5125
%build
5b98132
export CPPFLAGS="-I %{_includedir}/%{blaslib}"
e27bed5
export PYTHON="python3"
f3f5125
%configure --disable-static --with-python=%{__python3}
f3f5125
f3f5125
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
f3f5125
# -Wl,--as-needed after all the libraries.
f3f5125
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
f3f5125
    -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
f3f5125
    -e 's|CC="\(g.*\)"|CC="\1 -Wl,--as-needed"|' \
f3f5125
    -i libtool
f3f5125
f3f5125
# Build the programs and libraries
f3f5125
make %{?_smp_mflags}
f3f5125
f3f5125
# Some private libs are marked as nonprivate in the pkgconfig file
f3f5125
extralibs=$(sed -n 's/^Libs:.*-lm \(.*\)/\1/p' sphinxbase.pc | sed 's/  / /g')
f3f5125
sed -e 's/^\(libs=".*-lm\).*/\1"/' \
f3f5125
    -e 's/^\(Libs:.*-lm\).*/\1/' \
f3f5125
    -e "s/^Libs\.private.*/& $extralibs/" \
f3f5125
    -i sphinxbase.pc
f3f5125
f3f5125
# Build the man pages
f3f5125
cd doc
f3f5125
export LD_LIBRARY_PATH=../src/libsphinxbase/.libs:../src/libsphinxad/.libs
f3f5125
for prog in sphinx_cepview sphinx_fe; do
f3f5125
  perl args2man.pl ../src/${prog}/${prog} < ${prog}.1.in > ${prog}.1
f3f5125
done
f3f5125
perl args2man.pl ../src/sphinx_adtools/sphinx_pitch < sphinx_pitch.1.in > sphinx_pitch.1
f3f5125
f3f5125
%install
f3f5125
# Install the binaries and libraries
b6791b1
mkdir -p %{buildroot}%{python3_sitearch}
e27bed5
%make_install
f3f5125
f3f5125
# Install the man pages
f3f5125
mkdir -p %{buildroot}%{_mandir}/man1
f3f5125
cp -p doc/*.1 %{buildroot}%{_mandir}/man1
f3f5125
f3f5125
# Remove libtool archives
e27bed5
rm -f %{buildroot}%{python3_sitearch}/sphinxbase/*.la
f3f5125
rm -f %{buildroot}%{_libdir}/*.la
f3f5125
f3f5125
%files
f3f5125
%{_bindir}/*
f3f5125
%{_mandir}/man1/*
f3f5125
f3f5125
%files devel
f3f5125
%doc doc/html
f3f5125
%{_includedir}/sphinxbase/
f3f5125
%{_libdir}/libsphinxad.so
f3f5125
%{_libdir}/libsphinxbase.so
f3f5125
%{_libdir}/pkgconfig/sphinxbase.pc
f3f5125
%{_datadir}/sphinxbase/
f3f5125
f3f5125
%files libs
f3f5125
%doc AUTHORS NEWS README
f3f5125
%license LICENSE
e27bed5
%{_libdir}/libsphinxad.so.3*
e27bed5
%{_libdir}/libsphinxbase.so.3*
f3f5125
f3f5125
%files -n python3-sphinxbase
e27bed5
%{python3_sitearch}/sphinxbase
f3f5125
f3f5125
%changelog
5a5d1a0
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:5-0.9.prealpha
5a5d1a0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
5a5d1a0
5b98132
* Sun Aug 16 2020 Iñaki Úcar <iucar@fedoraproject.org> - 1:5-0.8.prealpha
5b98132
- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager
5b98132
b6791b1
* Sat Aug 01 2020 W. Michael Petullo <mike@flyn.org> - 1:5-0.7.prealpha
b6791b1
- Fix errant use of python_sitearch macro
b6791b1
c3ec705
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:5-0.6.prealpha
c3ec705
- Second attempt - Rebuilt for
c3ec705
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
c3ec705
1251107
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:5-0.5.prealpha
1251107
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
1251107
e91a2e0
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1:5-0.4.prealpha
e91a2e0
- Rebuilt for Python 3.9
e91a2e0
22c3e85
* Thu Feb 13 2020 W. Michael Petullo <mike@flyn.org> - 1:5-0.3.prealpha
22c3e85
- Fix doxy2swig with Python 3.9, https://bugzilla.redhat.com/show_bug.cgi?id=1793503
22c3e85
e3cbeac
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:5-0.2.prealpha
e3cbeac
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
e3cbeac
e27bed5
* Sun Oct 13 2019 W. Michael Petullo <mike@flyn.org> - 1:5-0.1.prealpha
e27bed5
- More work to switch to Python 3
e27bed5
- Use %%make_install
e27bed5
- Remove %%ldconfig_scriptlets
e27bed5
- More specific glob in %%{python3_sitearch}
e27bed5
- Move prealpha and make use of epoch
e27bed5
- Use epoch in requires
e27bed5
- Remove remaining .la file
e27bed5
- More specific globbing of libraries
e27bed5
f3f5125
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5prealpha-5
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
f3f5125
f3f5125
* Thu Nov 29 2018 Miro Hrončok <mhroncok@redhat.com> - 5prealpha-4
f3f5125
- Switch to Python 3
f3f5125
f3f5125
* Thu Aug 09 2018 W. Michael Petullo <mike@flyn.org> - 5prealpha-3
f3f5125
- Remove --disable-rpath after noticing warning from ./configure
f3f5125
- Add autoconf-archive to BuildRequires
f3f5125
f3f5125
* Thu Aug 09 2018 W. Michael Petullo <mike@flyn.org> - 5prealpha-2
f3f5125
- Add swig to BuildRequires
f3f5125
f3f5125
* Sun Jul 22 2018 W. Michael Petullo <mike@flyn.org> - 5prealpha-1
f3f5125
- New upstream release
f3f5125
f3f5125
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-21
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
f3f5125
f3f5125
* Tue Jul  3 2018 Jerry James <loganjerry@gmail.com> - 0.8-20
f3f5125
- Build with /usr/bin/python2 instead of /usr/bin/python
f3f5125
f3f5125
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-19
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
f3f5125
f3f5125
* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.8-18
f3f5125
- Add Provides for the old name without %%_isa
f3f5125
f3f5125
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.8-17
f3f5125
- Python 2 binary package renamed to python2-sphinxbase
f3f5125
  See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
f3f5125
f3f5125
* Wed Aug 16 2017 Jerry James <loganjerry@gmail.com> - 0.8-16
f3f5125
- Link with openblas instead of atlas
f3f5125
f3f5125
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-15
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
f3f5125
f3f5125
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-14
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
f3f5125
f3f5125
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-13
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
f3f5125
f3f5125
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8-12
f3f5125
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
f3f5125
f3f5125
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-11
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
f3f5125
f3f5125
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8-10
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
f3f5125
f3f5125
* Wed Nov 12 2014 Jerry James <loganjerry@gmail.com> - 0.8-9
f3f5125
- Link with atlas instead of the reference blas implementation
f3f5125
- Add Provides: bundled(jquery)
f3f5125
- Fix private libs listed as nonprivate in the pkgconfig file
f3f5125
- Minor spec file cleanups
f3f5125
f3f5125
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8-8
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
f3f5125
f3f5125
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8-7
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
f3f5125
f3f5125
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8-6
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
f3f5125
f3f5125
* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 0.8-5
f3f5125
- Perl 5.18 rebuild
f3f5125
f3f5125
* Fri Mar 29 2013 Jerry James <loganjerry@gmail.com> - 0.8-4
f3f5125
- Different approach to the -largefile patch to fix problems with the original
f3f5125
- Drop -aarch64 patch since we now run autoreconf
f3f5125
- Add -uninit patch to fix bogus lm scores
f3f5125
- Add -doxygen patch to fix some broken doxygen comments
f3f5125
f3f5125
* Thu Mar 28 2013 Jerry James <loganjerry@gmail.com> - 0.8-3
f3f5125
- Add -largefile patch to get large file support
f3f5125
- Add -aarch64 patch (bz 926565)
f3f5125
f3f5125
* Mon Feb 18 2013 Jerry James <loganjerry@gmail.com> - 0.8-2
f3f5125
- Add perl(Pod::Usage) BR
f3f5125
f3f5125
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8-2
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
f3f5125
f3f5125
* Mon Dec 17 2012 Jerry James <loganjerry@gmail.com> - 0.8-1
f3f5125
- New upstream release
f3f5125
- Drop patches; no longer necessary
f3f5125
f3f5125
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7-5
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
f3f5125
f3f5125
* Tue Jan 10 2012 Jerry James <loganjerry@gmail.com> - 0.7-4
f3f5125
- Rebuild for bz 772699
f3f5125
f3f5125
* Fri Jan  6 2012 Jerry James <loganjerry@gmail.com> - 0.7-3
f3f5125
- Rebuild for GCC 4.7
f3f5125
- Fix a typo in the filter
f3f5125
f3f5125
* Fri Jul 15 2011 Jerry James <loganjerry@gmail.com> - 0.7-2
f3f5125
- Use RPM 4.9's new filter scheme to remove bogus provides
f3f5125
- Minor spec file cleanups
f3f5125
f3f5125
* Tue Apr 19 2011 Jerry James <loganjerry@gmail.com> - 0.7-1
f3f5125
- New upstream release
f3f5125
f3f5125
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.1-2
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
f3f5125
f3f5125
* Mon Aug 16 2010 Jerry James <loganjerry@gmail.com> - 0.6.1-1
f3f5125
- New upstream release
f3f5125
f3f5125
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 0.4.1-3
f3f5125
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
f3f5125
f3f5125
* Fri Nov 20 2009 Jerry James <loganjerry@gmail.com> - 0.4.1-2
f3f5125
- Update python BRs for Rawhide
f3f5125
f3f5125
* Mon Jun  1 2009 Jerry James <loganjerry@gmail.com> - 0.4.1-1
f3f5125
- Initial RPM