| Summary: | Review Request: bcg729 - Opensource implementation of the G.729 codec | ||
|---|---|---|---|
| Product: | Package Reviews | Reporter: | Sandro Mani <manisandro> |
| Component: | Review Request | Assignee: | RPM Fusion Package Review <rpmfusion-package-review> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | dominik, pikachu.2014, rpmfusion-package-review |
| Priority: | P5 | Flags: | kwizart:
fedora-review+
|
| Version: | Current | ||
| Hardware: | All | ||
| OS: | GNU/Linux | ||
| See Also: | https://bugzilla.redhat.com/show_bug.cgi?id=1358293 | ||
| namespace: | |||
| Bug Depends on: | |||
| Bug Blocks: | 4 | ||
| Attachments: | diff with proposed changes | ||
|
Description
Sandro Mani
2016-07-27 09:56:37 CEST
I will review your package. You can remove these useless BuildRequires, since this library doesn't seem to depend on openssl (the openssl command is only needed for tests, and you don't run them at package build):
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(libssl)
(In reply to comment #2) > You can remove these useless BuildRequires, since this library doesn't seem to > depend on openssl (the openssl command is only needed for tests, and you don't > run them at package build): > BuildRequires: pkgconfig(libcrypto) > BuildRequires: pkgconfig(libssl) I'd advise enabling these tests instead of dropping the build dependencies. (In reply to comment #3) > I'd advise enabling these tests instead of dropping the build dependencies. That should be the best to do indeed. Unfortunately check tests require online resources (see also the original reviesw request for Fedora on RHBZ #1358293). (In reply to comment #4) > (In reply to comment #3) > > I'd advise enabling these tests instead of dropping the build dependencies. > That should be the best to do indeed. Unfortunately check tests require online > resources (see also the original reviesw request for Fedora on RHBZ #1358293). You can add the test data as Source1: and extract it in the right place (test subdir). The test script will detect it and skip downloading. As for the failed checksum check, they probably forgot to update the checksum in test/testCampaignAll when they updated the zip archive at http://www.belledonne-communications.com/downloads/ . The latter is dated April 2016 and the former is from March 2015. It doesn't matter, though, as long as you unpack the zip in the right place. Created attachment 1593 [details]
diff with proposed changes
Here's how you can enable tests without having the test script download test data during make check. Also, the static library needs to be built and linked to the test binaries because they use internal symbols, which are invisible due to -fvisibility=hidden .
(In reply to comment #6) > Created attachment 1593 [details] > diff with proposed changes > > Here's how you can enable tests without having the test script download test > data during make check. Also, the static library needs to be built and linked > to the test binaries because they use internal symbols, which are invisible due > to -fvisibility=hidden . Good catch, thanks for your contribution :) By the way, a 1.0.1 version of bcg729 is available, also: http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.1.tar.gz Thanks for your feedback! Spec URL: https://smani.fedorapeople.org/review/bcg729.spec SRPM URL: https://smani.fedorapeople.org/review/bcg729-1.0.1-1.fc26.src.rpm %changelog * Thu Jul 28 2016 Sandro Mani <manisandro@gmail.com> - 1.0.1-1 - Update to 1.0.1 * Thu Jul 28 2016 Dominik Mierzejewski <rpm@greysector.net> - 1.0.0-3 - add test data, build (but don't install) static library and enable tests Package Review
==============
Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed
Issues:
=======
- All build dependencies are listed in BuildRequires, except for any that
are listed in the exceptions section of Packaging Guidelines.
--> pkgconfig(libcrypto) and pkgconfig(libssl) are useless.
===== 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]: ldconfig called in %post and %postun if required.
[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]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[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.
[-]: Large documentation must go in a -doc subpackage. Large could be size
(~1MB) or number of files.
Note: Documentation size is 10240 bytes in 2 files.
[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]: 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]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[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]: Packages must not store files under /srv, /opt or /usr/local
===== SHOULD items =====
Generic:
[-]: 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.
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Scriptlets must be sane, if used.
[!]: 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.
[x]: %check is present and all tests pass.
[?]: 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]: The placement of pkgconfig(.pc) files are correct.
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[-]: Spec use %global instead of %define unless justified.
===== EXTRA items =====
Generic:
[!]: Package should not use obsolete m4 macros
Note: Some obsoleted macros found, see the attachment.
See: https://fedorahosted.org/FedoraReview/wiki/AutoTools
--> Already fixed upstream, see https://github.com/BelledonneCommunications/bcg729/commit/78386ce
[x]: Rpmlint is run on debuginfo package(s).
Note: There are rpmlint messages (see attachment).
[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: bcg729-1.0.1-1.fc26.x86_64.rpm
bcg729-devel-1.0.1-1.fc26.x86_64.rpm
bcg729-debuginfo-1.0.1-1.fc26.x86_64.rpm
bcg729-1.0.1-1.fc26.src.rpm
bcg729.x86_64: W: spelling-error Summary(en_US) Opensource -> Open source, Open-source, Outsource
bcg729.x86_64: W: spelling-error Summary(en_US) codec -> codex, code, codes
bcg729.x86_64: W: spelling-error %description -l en_US opensource -> open source, open-source, outsource
bcg729.x86_64: W: spelling-error %description -l en_US codec -> codex, code, codes
bcg729.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
bcg729.x86_64: E: incorrect-fsf-address /usr/share/licenses/bcg729/COPYING
bcg729-devel.x86_64: W: only-non-binary-in-usr-lib
bcg729-devel.x86_64: W: no-documentation
bcg729-devel.x86_64: E: incorrect-fsf-address /usr/include/bcg729/decoder.h
bcg729-devel.x86_64: E: incorrect-fsf-address /usr/include/bcg729/encoder.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/gainQuantization.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/preProcessing.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/typedef.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/findOpenLoopPitchDelay.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/codebooks.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/LP2LSPConversion.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/computeLP.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/fixedCodebookSearch.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/decodeGains.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/decodeGains.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/computeWeightedSpeech.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/codebooks.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/interpolateqLSP.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/encoder.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/LPSynthesisFilter.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/qLSP2LP.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/preProcessing.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/LPSynthesisFilter.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/bcg729/encoder.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/computeAdaptativeCodebookGain.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/qLSP2LP.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/decoder.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/computeAdaptativeCodebookGain.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/gainQuantization.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/postProcessing.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/postFilter.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/computeWeightedSpeech.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/LSPQuantization.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/LSPQuantization.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/adaptativeCodebookSearch.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/decodeLSP.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/utils.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/adaptativeCodebookSearch.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/computeLP.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/decodeFixedCodeVector.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/decodeAdaptativeCodeVector.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/interpolateqLSP.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/decodeFixedCodeVector.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/decodeAdaptativeCodeVector.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/postFilter.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/decodeLSP.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/findOpenLoopPitchDelay.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/src/utils.c
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/LP2LSPConversion.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/fixedCodebookSearch.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/bcg729/decoder.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/postProcessing.h
bcg729-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/bcg729-1.0.1/include/g729FixedPointMath.h
bcg729.src: W: spelling-error Summary(en_US) Opensource -> Open source, Open-source, Outsource
bcg729.src: W: spelling-error Summary(en_US) codec -> codex, code, codes
bcg729.src: W: spelling-error %description -l en_US opensource -> open source, open-source, outsource
bcg729.src: W: spelling-error %description -l en_US codec -> codex, code, codes
bcg729.src: W: spelling-error %description -l en_US multi -> mulch, mufti
4 packages and 0 specfiles checked; 51 errors, 12 warnings.
Requires
--------
bcg729 (rpmlib, GLIBC filtered):
/sbin/ldconfig
libc.so.6()(64bit)
rtld(GNU_HASH)
bcg729-devel (rpmlib, GLIBC filtered):
/usr/bin/pkg-config
bcg729(x86-64)
libbcg729.so.0()(64bit)
bcg729-debuginfo (rpmlib, GLIBC filtered):
Provides
--------
bcg729:
bcg729
bcg729(x86-64)
libbcg729.so.0()(64bit)
bcg729-devel:
bcg729-devel
bcg729-devel(x86-64)
pkgconfig(libbcg729)
bcg729-debuginfo:
bcg729-debuginfo
bcg729-debuginfo(x86-64)
Source checksums
----------------
http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.1.tar.gz :
CHECKSUM(SHA256) this package : 15f45abe2568b608984fe5f74aa8916d01a51cb26dcd559423d886d68ebe04ef
CHECKSUM(SHA256) upstream package : 15f45abe2568b608984fe5f74aa8916d01a51cb26dcd559423d886d68ebe04ef
http://www.belledonne-communications.com/downloads/bcg729-patterns.zip :
CHECKSUM(SHA256) this package : 72fc90105526dc1916bea06dccb9ecb7aedc29a0e39eb33c8b4100d4145398f5
CHECKSUM(SHA256) upstream package : 72fc90105526dc1916bea06dccb9ecb7aedc29a0e39eb33c8b4100d4145398f5
AutoTools: Obsoleted m4s found
------------------------------
AC_PROG_LIBTOOL found in: bcg729-1.0.1/configure.ac:12
Note: fixed upstream, see https://github.com/BelledonneCommunications/bcg729/commit/78386ce
Since the test data are provided locally, no checksum is computed during make check. As a result, openssl is not needed and even less its devel package (no link on openssl). I will approve your package once the BuildRequires on pkgconfig(libcrypto) and pkgconfig(libssl) are removed ;)
Are you sure that the test data is redistributable? I see no license in the ZIP. Good point, I'll ask upstream. Upstream reply: "Most of it [bcg729-patterns.zip] was generated by us, but one part has been generated from some ITU code files, which holds the following license: Copyright (c) 1996, AT&T, France Telecom, NTT, Universite de Sherbrooke All rights reserved. I cannot tell you for sure what is the exact license of this ZIP - if you can skip it it would be better I guess." Spec URL: https://smani.fedorapeople.org/review/bcg729.spec SRPM URL: https://smani.fedorapeople.org/review/bcg729-1.0.1-3.fc26.src.rpm %changelog * Tue Aug 02 2016 Sandro Mani <manisandro@gmail.com> - 1.0.1-3 - Remove %%check, testdata is not under a permissible license * Thu Jul 28 2016 Sandro Mani <manisandro@gmail.com> - 1.0.1-2 - Remove OpenSSL BRs Thanks for your feedback. This package is APPROVED!
Notice that can re-add --disable-static to %configure and then remove the "%exclude %{_libdir}/lib%{name}.a" line in %files, since checks are not run. It's not mandatory anyway :)
Ah missed that, I'll re-add the --disable-static. Thanks for the review! (Am I supposed to place the Package CVS request comment in this ticket or should [1] work? Latter currently gives "discoveryfailure") [1] https://admin.rpmfusion.org/pkgdb/request/package/ (In reply to comment #15) > (Am I supposed to place the Package CVS request comment in this ticket or > should [1] work? Latter currently gives "discoveryfailure") > > [1] https://admin.rpmfusion.org/pkgdb/request/package/ I suppose the CVS request comment is still needed for the moment. Package CVS request ====================== Package Name: bcg729 Short Description: Opensource implementation of the G.729 codec Owners: smani Branches: f23 f24 f25 InitialCC: ---------------------- License tag: free This module was created but the package was never built Can someone import the package and do the needed build ? Thx Sorry this has fallen off my radar. I was waiting for the access rights to propagate through the infrastructure, but I see now that the permission denied issues were caused by me never having applied to be in packager group rather than the permissions not propagating... Ups... Actually I'm still unable to clone... Is it just a matter of patience or is there something else I forgot to take care of? $ rfpkg clone free/bcg729 Cloning into 'bcg729'... Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. Could not execute clone: Command '['git', 'clone', 'ssh://smani@pkgs.rpmfusion.org/free/bcg729', '--origin', 'origin']' returned non-zero exit status 128 (In reply to Sandro Mani from comment #20) > Actually I'm still unable to clone... Is it just a matter of patience or is > there something else I forgot to take care of? I've forced the account creation on pkgs.rpmfusion.org, it should be okay. Works now, thanks! |