Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1592220 - Review Request: speech-tools - the current version of the support library for Festival
Summary: Review Request: speech-tools - the current version of the support library for...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Zbigniew Jędrzejewski-Szmek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-06-18 08:35 UTC by Lukáš Tyrychtr
Modified: 2018-08-30 09:22 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-08-30 09:22:40 UTC
Type: ---
Embargoed:
zbyszek: fedora-review+


Attachments (Terms of Use)

Description Lukáš Tyrychtr 2018-06-18 08:35:12 UTC
Spec URL: https://pagure.io/speech-tools/raw/master/f/speech_tools.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/tyrylu/festival-reborn/srpm-builds/00759814/speech_tools-2.5-3.fc27.src.rpm
Description: This review is the first part of implementing the update of Festival to 2.5 (see bug 1592208 for additional info of the change). The current festival needs this version of speech_tools and it was decided to split it out to a separate package rather keeping it in the festival's spec.
Fedora Account System Username: tyrylu

Comment 1 Robert-André Mauchin 🐧 2018-06-18 16:24:05 UTC
 - Requires: speech_tools-lib

You need to specify arch, version and release:

Requires: speech_tools-lib%{?_isa} = %{version}-%{release}

 - Be more specific here:

%files lib
%{_libdir}/*

  Also read https://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages
Versionned .so must be in the lib package but unversionned .so must be in the devel packge

 - Clean up the %changelog: separate entries by a line, add your email between <>

Comment 2 Lukáš Tyrychtr 2018-06-18 18:56:46 UTC
Done. Actually, there were no unversioned .so files, but the package is now more strict in including versioned .so libraries only in the dev package. The spec file URL is still valid and except for the release increase, they in fact should not change the srpm contents.

Comment 3 Robert-André Mauchin 🐧 2018-06-18 22:11:14 UTC
>Actually, there were no unversioned .so files

Make a symbolic link for it then


No need to bump release between review comments, only when the package is build in Koji this will be necessary.

Comment 4 Robert-André Mauchin 🐧 2018-06-18 23:37:30 UTC
> >Actually, there were no unversioned .so files
> 
> Make a symbolic link for it then
> 

   Actually fix it by copying the .so too:

install -m 644 lib/*.so* %{buildroot}%{_libdir}

   And in %files:

%files lib
%{_libdir}/*.so.*

%package lib-devel
Summary: Development files for the speech_tools libraries
Requires: speech_tools-lib%{?_isa} = %{version}-%{release}

%description lib-devel
This package contains the development related files for the speech_tools libraries.

%files lib-devel
%{_includedir}/*
%{_libdir}/*.a
%{_libdir}/*.so
%{_libdir}/speech_tools/*

 - You should name the subpackage libs and libs-devel for contistency with other Fedora packages

 - Just use:

%{_libdir}/speech_tools/

  thus you will also own the directory

 - Be more specific here:

%{_includedir}/speech_tools/

 - Escape macros in comments by doubling the %:

#Source0:        http://festvox.org/packed/festival/%%{version}/speech_tools-%%{version}.0-release.tar.gz

 - Libs must have executable perms:

install -m 755 lib/*.so* %{buildroot}%{_libdir}

 - Speaking of install, you must run it with "-p" to keep timestamps:

%install
mkdir -p %{buildroot}%{_bindir}
# The list of installed utilities is taken from the Debian package
install -p -m 755 main/{bcat,ch_lab,ch_track,ch_utt,ch_wave,dp,na_play,na_record,ngram_build,ngram_test,ols,ols_test,pda,pitchmark,scfg_make,scfg_parse,scfg_test,scfg_train,sig2fv,sigfilter,spectgen,tilt_analysis,tilt_synthesis,viterbi,wagon,wagon_test,wfst_build,wfst_run} %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_libdir}
install -p -m 755 lib/*.so* %{buildroot}%{_libdir}
install -p -m 644 lib/*.a %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_includedir}/speech_tools
cp -dr include/* %{buildroot}%{_includedir}/speech_tools
rm -r %{buildroot}%{_includedir}/speech_tools/win32
# I would gladlylike to skip the internal details, but festival depends on them. 
mkdir -p %{buildroot}%{_libdir}/speech_tools/base_class
install -p -m 644 base_class/*.cc %{buildroot}%{_libdir}/speech_tools/base_class
install -p -m 644 base_class/*.h %{buildroot}%{_libdir}/speech_tools/base_class
mkdir -p %{buildroot}%{_libdir}/speech_tools
cp -dr config/ %{buildroot}%{_libdir}/speech_tools
mkdir -p %{buildroot}%{_libdir}/speech_tools/lib/siod
install -p -m 644 lib/siod/*.scm %{buildroot}%{_libdir}/speech_tools/lib/siod
# Note that a symlink would be nice below, but it breaks the expectations around dir traversal.
mkdir -p %{buildroot}%{_libdir}/speech_tools/include
cp -r %{buildroot}%{_includedir}/speech_tools/* %{buildroot}%{_libdir}/speech_tools/include


 - Requires:       ncurses is not needed, it will be picked up automatically.

 - Static libraries are generally not shipped. If you still need them, add them to a -static subpackage.

 - Do something wuth the LICENSE file, install it in the main package and libs package

 - The header and %changelog entry differ. 

 - Split the description to stay below 80 characters per line:

speech_tools-lib-devel.x86_64: E: description-line-too-long C This package contains the development related files for the speech_tools libraries.



Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Static libraries in -static or -devel subpackage, providing -devel if
  present.
  Note: Package has .a files: speech_tools-lib-devel. Does not provide
  -static: speech_tools-lib-devel.
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#StaticLibraries


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "BSD (4 clause)", "NTP", "CC0", "BSD
     (unspecified)", "GPL (v2 or later) (with incorrect FSF address)". 932
     files have unknown license. Detailed output of licensecheck in
     /home/bob/packaging/review/speech_tools/review-
     speech_tools/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/lib64/speech_tools
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib64/speech_tools
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by:
     /usr/include/speech_tools/instantiate(festival-speechtools-devel),
     /usr/include/speech_tools/sigpr(festival-speechtools-devel),
     /usr/include/speech_tools/unix(festival-speechtools-devel),
     /usr/include/speech_tools(festival-speechtools-devel),
     /usr/include/speech_tools/rxp(festival-speechtools-devel),
     /usr/include/speech_tools/ling_class(festival-speechtools-devel)
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: Uses parallel make %{?_smp_mflags} macro.
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     speech_tools-lib , speech_tools-lib-devel
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: speech_tools-2.5-4.fc29.x86_64.rpm
          speech_tools-debuginfo-2.5-4.fc29.x86_64.rpm
          speech_tools-debugsource-2.5-4.fc29.x86_64.rpm
          speech_tools-lib-2.5-4.fc29.x86_64.rpm
          speech_tools-lib-devel-2.5-4.fc29.x86_64.rpm
          speech_tools-2.5-4.fc29.src.rpm
speech_tools.x86_64: W: incoherent-version-in-changelog 2.5-3 ['2.5-4.fc29', '2.5-4']
speech_tools.x86_64: W: no-documentation
speech_tools.x86_64: W: no-manual-page-for-binary bcat
speech_tools.x86_64: W: no-manual-page-for-binary ch_lab
speech_tools.x86_64: W: no-manual-page-for-binary ch_track
speech_tools.x86_64: W: no-manual-page-for-binary ch_utt
speech_tools.x86_64: W: no-manual-page-for-binary ch_wave
speech_tools.x86_64: W: no-manual-page-for-binary dp
speech_tools.x86_64: W: no-manual-page-for-binary na_play
speech_tools.x86_64: W: no-manual-page-for-binary na_record
speech_tools.x86_64: W: no-manual-page-for-binary ngram_build
speech_tools.x86_64: W: no-manual-page-for-binary ngram_test
speech_tools.x86_64: W: no-manual-page-for-binary ols
speech_tools.x86_64: W: no-manual-page-for-binary ols_test
speech_tools.x86_64: W: no-manual-page-for-binary pda
speech_tools.x86_64: W: no-manual-page-for-binary pitchmark
speech_tools.x86_64: W: no-manual-page-for-binary scfg_make
speech_tools.x86_64: W: no-manual-page-for-binary scfg_parse
speech_tools.x86_64: W: no-manual-page-for-binary scfg_test
speech_tools.x86_64: W: no-manual-page-for-binary scfg_train
speech_tools.x86_64: W: no-manual-page-for-binary sig2fv
speech_tools.x86_64: W: no-manual-page-for-binary sigfilter
speech_tools.x86_64: W: no-manual-page-for-binary spectgen
speech_tools.x86_64: W: no-manual-page-for-binary tilt_analysis
speech_tools.x86_64: W: no-manual-page-for-binary tilt_synthesis
speech_tools.x86_64: W: no-manual-page-for-binary viterbi
speech_tools.x86_64: W: no-manual-page-for-binary wagon
speech_tools.x86_64: W: no-manual-page-for-binary wagon_test
speech_tools.x86_64: W: no-manual-page-for-binary wfst_build
speech_tools.x86_64: W: no-manual-page-for-binary wfst_run
speech_tools-lib.x86_64: W: no-soname /usr/lib64/libestbase.so.2.5.0.1
speech_tools-lib.x86_64: W: shared-lib-calls-exit /usr/lib64/libestbase.so.2.5.0.1 exit.5
speech_tools-lib.x86_64: W: no-soname /usr/lib64/libestools.so.2.5.0.1
speech_tools-lib.x86_64: W: shared-lib-calls-exit /usr/lib64/libestools.so.2.5.0.1 exit.5
speech_tools-lib.x86_64: W: no-soname /usr/lib64/libeststring.so.1.2
speech_tools-lib.x86_64: W: shared-lib-calls-exit /usr/lib64/libeststring.so.1.2 exit.5
speech_tools-lib.x86_64: W: no-documentation
speech_tools-lib-devel.x86_64: E: description-line-too-long C This package contains the development related files for the speech_tools libraries.
speech_tools-lib-devel.x86_64: W: no-soname /usr/lib64/libestbase.so
speech_tools-lib-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libestbase.so exit.5
speech_tools-lib-devel.x86_64: W: no-soname /usr/lib64/libestools.so
speech_tools-lib-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libestools.so exit.5
speech_tools-lib-devel.x86_64: W: no-soname /usr/lib64/libeststring.so
speech_tools-lib-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libeststring.so exit.5
speech_tools-lib-devel.x86_64: W: no-documentation
speech_tools-lib-devel.x86_64: E: non-executable-script /usr/lib64/speech_tools/config/rules/modules.sh 644 /bin/sh 
speech_tools-lib-devel.x86_64: E: non-executable-script /usr/lib64/speech_tools/config/system.sh 644 /bin/sh 
speech_tools.src:8: W: macro-in-comment %{version}
speech_tools.src:8: W: macro-in-comment %{version}
speech_tools.src: E: specfile-error warning: Macro expanded in comment on line 8: %{version}/speech_tools-%{version}.0-release.tar.gz
6 packages and 0 specfiles checked; 4 errors, 46 warnings.

Comment 5 Lukáš Tyrychtr 2018-06-20 08:35:05 UTC
Alright, the review comments have been (or at least ried) addressed. The original spec URL is still valid, new SRPM: https://copr-be.cloud.fedoraproject.org/results/tyrylu/festival-reborn/srpm-builds/00769326/speech_tools-2.5-4.fc28.src.rpm
I did not understand the comment about the changelog and header mismatch, can you be more specific?

Comment 6 Robert-André Mauchin 🐧 2018-06-20 16:11:31 UTC
Your changelog entry was 2.5-3 whereas the header was 2.5-4. Add 2.5-4 to the latest entry.

%license LICENSE should also be in the libs subpackage.


Package otherwise approved.

Comment 7 Lukáš Tyrychtr 2018-06-20 19:43:11 UTC
Correcetd. And thank you.

Comment 8 W. Michael Petullo 2018-08-13 01:05:45 UTC
See also https://bugzilla.redhat.com/show_bug.cgi?id=1457878#c21 for a proposed, updated festival package.

Comment 9 Lukáš Tyrychtr 2018-08-22 09:38:04 UTC
Just a hack how to convince fedpkg to execute request-repo when i finally can. It has been done before.

Comment 10 Gwyn Ciesla 2018-08-23 20:58:55 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/speech_tools

Comment 11 Zbigniew Jędrzejewski-Szmek 2018-08-24 10:47:48 UTC
Hmm, the name of the package is not optimal. It really should be "speech-tools", see https://fedoraproject.org/wiki/Packaging:Naming#General_Naming. Since the package hasn't been imported yet, maybe you could change the name, re-request the repo? Doing it now is still relatively painless.

Comment 12 Lukáš Tyrychtr 2018-08-24 16:16:56 UTC
Yeah, i am aware that the name is not according to the Fedora naming guidelines exactly, however it atheres to the upstream conventions everywhere else (source tarball, Debian, Archlinux and may be others), and the upstream atherence clause in the guidelines is there as well.

Comment 13 Zbigniew Jędrzejewski-Szmek 2018-08-24 16:58:59 UTC
Yeah, the guidelines are not really clear. Modern (last few years) practice is to use dashes and lowercase. Following upstreams unfortunately leads an unmanageable mess, because many upstreams are not consistent in their naming. Normalizing on the Fedora side works out much better.

Comment 14 Lukáš Tyrychtr 2018-08-25 08:00:47 UTC
Alright, what's the procedure for getting the underscored version of the repository deleted? Filing a ticket in scm-requests?

Comment 15 Zbigniew Jędrzejewski-Szmek 2018-08-25 08:50:12 UTC
A think a ticket under https://pagure.io/releng/issues.

Comment 16 Zbigniew Jędrzejewski-Szmek 2018-08-27 20:30:01 UTC
Lukáš, what's the status here?

Comment 17 Zbigniew Jędrzejewski-Szmek 2018-08-27 20:34:13 UTC
Oh, I see you filed https://pagure.io/releng/issue/7702. Sorry, I wasn't clear. Please just update the title of this ticket and upload a new srpm and spec file and we'll rubber-stamp it and then you can ask for a new repo again.

Comment 18 Lukáš Tyrychtr 2018-08-28 08:49:47 UTC
Hello. I've done the renaming.
Current spec: https://pagure.io/speech-tools/raw/c4accd11ceced2c667311d986b1812fc57f71c87/f/speech-tools.spec
Current srpm: https://copr-be.cloud.fedoraproject.org/results/tyrylu/festival-reborn/srpm-builds/00791728/speech-tools-2.5-5.fc28.src.rpm
From the last review the only difference is the package name.

Comment 19 Zbigniew Jędrzejewski-Szmek 2018-08-28 09:07:37 UTC
There's still "speech_tools" in various places. In the file names it's OK, but not in %description and Requires.

Comment 20 Lukáš Tyrychtr 2018-08-28 09:40:04 UTC
Oh, you're right, there was so much underscores in the paths that i did not notice the important ones. They should be fixed now:
Spec: https://copr-be.cloud.fedoraproject.org/results/tyrylu/festival-reborn/srpm-builds/00791749/speech-tools.spec
SRPM: https://copr-be.cloud.fedoraproject.org/results/tyrylu/festival-reborn/srpm-builds/00791749/speech-tools-2.5-5.fc28.src.rpm

Comment 21 W. Michael Petullo 2018-08-28 23:41:12 UTC
I adjusted the festival package at #1457878 to make use of this separate speech-tools package.

Comment 22 Zbigniew Jędrzejewski-Szmek 2018-08-29 07:53:43 UTC
Stuff to fix after import:
> BuildRequires:  gcc-c++ ncurses-devel alsa-lib-devel
Those should be on separate lines. Otherwise diffs are hard to read.

> # Because of the copr build a https reachable mirror was needed
> Source0: https://trycht.cz/festvox/packed/festival/%{version}/speech_tools-%{version}.0-release.tar.gz
Please switch back to official URL.

> Source1: LICENSE
I see that the LICENSE file is not part of the upstream tarball. A real URL would be better. Also, a link to an upstream issue about including the license file would be great

> %description
Please wrap that paragraph to ~80 lines.

OK, package is (re-)APPROVED.

Comment 23 Lukáš Tyrychtr 2018-08-29 08:07:01 UTC
Thank you. I'll do these things and report the missing upstream LICENSE file.

Comment 24 Zbigniew Jędrzejewski-Szmek 2018-08-29 18:49:06 UTC
Lukáš, please re-request the repo with fedpkg for the new name.

Comment 25 Lukáš Tyrychtr 2018-08-29 19:19:32 UTC
I'll do it the second time, now the reviewer and assignee matches (it did not previously and it obviously was a problem). :)

Comment 26 Gwyn Ciesla 2018-08-29 19:33:01 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/speech-tools

Comment 27 Lukáš Tyrychtr 2018-08-30 09:22:40 UTC
Hopefully it'll make f29, i do not have any opinions from release engineering whether the deadlines are as such big a problem as they can be, so it might change to rawhide, but rawhide is certain, speech-tools has already a build there.


Note You need to log in before you can comment on or make changes to this bug.