Bug 845221 - Review Request: ilbc - Internet Low Bitrate Codec
Review Request: ilbc - Internet Low Bitrate Codec
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Darryl L. Pierce
Fedora Extras Quality Assurance
:
Depends On:
Blocks: 848423 728302 814230
  Show dependency treegraph
 
Reported: 2012-08-02 06:34 EDT by Peter Lemenkov
Modified: 2015-06-21 20:08 EDT (History)
7 users (show)

See Also:
Fixed In Version: ilbc-1.1.1-4.el7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-09-13 07:16:44 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
dpierce: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Peter Lemenkov 2012-08-02 06:34:59 EDT
Spec URL: http://peter.fedorapeople.org/ilbc.spec
SRPM URL: http://peter.fedorapeople.org/ilbc-1.1.1-1.fc18.src.rpm
Description: iLBC (internet Low Bitrate Codec) is a FREE speech codec suitable for robust voice communication over IP. The codec is designed for narrow band speech and results in a payload bit rate of 13.33 kbit/s with an encoding frame length of 30 ms and 15.20 kbps with an encoding length of 20 ms. The iLBC codec enables graceful speech quality degradation in the case of lost frames, which occurs in connection with lost or delayed IP packets.

Fedora Account System Username: peter

Koji scratchbuild for Rawhide:

* http://koji.fedoraproject.org/koji/taskinfo?taskID=4350107

Koji scratchbuild for EL6:

* http://koji.fedoraproject.org/koji/taskinfo?taskID=4350118


This is a stripped-down version from WebRTC (which itself isn't very portable now and very very far from being included in Fedora - I'm working on it as well) with a compatibility layer for older applications.

I've made tests of this library with my own rtplib's test suite (which involves decoding and encoding  of a reference bitstreams) and it works as well as WebRTC's internal version.

Note - I intentionally didn't remove EL5-related stuff since I plan to use this library on EL5 systems.
Comment 1 Peter Lemenkov 2012-08-02 06:44:14 EDT
Koji scratchbuild for EL5:

* http://koji.fedoraproject.org/koji/taskinfo?taskID=4350138
Comment 2 Tom "spot" Callaway 2012-08-02 09:27:07 EDT
FWIW, I had to make webrtc packages for Chromium, they should be okay for someone to maintain in Fedora, I'm just not incredibly motivated to do it by myself (although, I'd be willing to comaintain):

http://repos.fedorapeople.org/repos/spot/chromium/fedora-17/SRPMS/webrtc-0.1-0.5.20120613svn2401.fc17.src.rpm
Comment 3 Peter Lemenkov 2012-08-02 09:36:29 EDT
(In reply to comment #2)
> FWIW, I had to make webrtc packages for Chromium, they should be okay for
> someone to maintain in Fedora, I'm just not incredibly motivated to do it by
> myself (although, I'd be willing to comaintain):
> 
> http://repos.fedorapeople.org/repos/spot/chromium/fedora-17/SRPMS/webrtc-0.1-
> 0.5.20120613svn2401.fc17.src.rpm

No offence but it seems that I walked much further down this road :)

https://github.com/lemenkov/WebRTC/commits/autotools

In fact the current state of WebRTC is awful (failed unit-tests, discrepancies in macros here ant there, impossible to build as is on PPC or Tilera, etc). I don't think we'll soon get a something ready for the consumption.

After looking closely at the WebRTC I realized that WebRTC folks 

* doesn't do daily full rebuilds,
* doesn't run unit-tests regularly
* doesn't test patches for regressions before submitting.
* doesn't do static analysis of their code base
* doesn't use different compilers
Comment 4 Tom "spot" Callaway 2012-08-02 09:43:31 EDT
It's Google code, I'm not sure what you were expecting. ;)

Anyways, I don't think any of the above items necessary preclude webrtc from going into Fedora, as long as there is a maintainer who understands all of these things and is crazy enough to still want to do it.
Comment 5 Itamar Reis Peixoto 2012-08-02 09:49:11 EDT
is this useable with asterisk ?

I think for some reason jcollie remove ilbc from asterisk package.
Comment 6 Itamar Reis Peixoto 2012-08-02 09:50:57 EDT
** removed.
Comment 7 Peter Lemenkov 2012-08-02 09:52:43 EDT
(In reply to comment #5)
> is this useable with asterisk ?
> 
> I think for some reason jcollie remove ilbc from asterisk package.

Should be compatible. This package contains a compatibility layer with the original version from RFCs. Please try it out.
Comment 8 Peter Lemenkov 2012-08-03 05:36:11 EDT
Heads up, folks.
Unfortunately it's not 100% compatible with the old API - I'm working on this. Stay tuned!
Comment 9 Peter Lemenkov 2012-08-15 09:43:11 EDT
(In reply to comment #8)
> Heads up, folks.
> Unfortunately it's not 100% compatible with the old API - I'm working on
> this. Stay tuned!

Hello All. I added a compatibility symlinks for older apps but it seems that some of them will require manual intervention anyway (fortunately changes will be quite simple and straightforward). Here is a new package:

* http://peter.fedorapeople.org/ilbc.spec
* http://peter.fedorapeople.org/ilbc-1.1.1-2.fc18.src.rpm
Comment 10 Darryl L. Pierce 2012-09-12 11:27:06 EDT
LEGEND: X=Met, !=Not met, ?=Not a blocker but should be fixed
=============================================================
[X] MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review.[1] 

mcpierce@mcpierce-laptop:review  $ rpmlint ilbc*rpm
ilbc.src: W: spelling-error %description -l en_US codec -> codex, code, codes
ilbc.src: W: spelling-error %description -l en_US kbit -> knit, kit, bit
ilbc.src: W: spelling-error %description -l en_US kbps -> bps, kips, k bps
ilbc.src: W: no-url-tag
ilbc.src: W: invalid-url Source0: dekkers-libilbc-upstream-1.1.1-9-g88cd161.tar.gz
ilbc.x86_64: W: spelling-error %description -l en_US codec -> codex, code, codes
ilbc.x86_64: W: spelling-error %description -l en_US kbit -> knit, kit, bit
ilbc.x86_64: W: spelling-error %description -l en_US kbps -> bps, kips, k bps
ilbc.x86_64: W: no-url-tag
ilbc.x86_64: W: no-documentation
ilbc-debuginfo.x86_64: W: no-url-tag
ilbc-devel.x86_64: W: summary-not-capitalized C development files for ilbc
ilbc-devel.x86_64: W: no-url-tag
ilbc-devel.x86_64: W: no-documentation
4 packages and 0 specfiles checked; 0 errors, 14 warnings.

[X] MUST: The package must be named according to the Package Naming Guidelines .
[X] MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption. [2] . 
[X] MUST: The package must meet the Packaging Guidelines .
[X] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
[X] MUST: The License field in the package spec file must match the actual license. [3]
[!] MUST: 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 must be included in %doc.[4]

No files are marked as %doc, though the package needs to provide at least the COPYING file and mark it as %doc

[X] MUST: The spec file must be written in American English. [5]
[X] MUST: The spec file for the package MUST be legible. [6]
[?] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use sha256sum for this task as it is used by the sources file once imported into git. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.

The Source0 field isn't a URL. It should point to the location where someone could download the upstream source tarball. See the rpmlint output above.

[X] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. [7]
[X] MUST: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense.
[X] MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.[9]
[X] MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. [10]
[X] MUST: Packages must NOT bundle copies of system libraries.[11]
[X] MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. [13]
[X] MUST: A Fedora package must not list a file more than once in the spec file's %files listings. (Notable exception: license texts in specific situations)[14]
[X] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. [15]
[X] MUST: Each package must consistently use macros. [16]
[X] MUST: The package must contain code, or permissable content. [17]
[X] MUST: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity). [18]
[X] MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. [18]
[X] MUST: Development files must be in a -devel package. [20]
[X] MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name}%{?_isa} = %{version}-%{release} [21]
[X] MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.[19]
[X] MUST: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time. [23]
[X] MUST: All filenames in rpm packages must be valid UTF-8. [24]



SHOULD Items:
Items marked as SHOULD are things that the package (or reviewer) SHOULD do, but is not required to do.
[X] SHOULD: The reviewer should test that the package builds in mock. [27]
[X] SHOULD: The package should compile and build into binary rpms on all supported architectures. [28]
[ ] SHOULD: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example.
[X] SHOULD: The placement of pkgconfig(.pc) files depends on their usecase, and this is usually for development purposes, so should be placed in a -devel pkg. A reasonable exception is that the main pkg itself is a devel tool not installed in a user runtime, e.g. gcc or gdb. [30]
Comment 11 Peter Lemenkov 2012-09-12 14:54:48 EDT
Added COPYING and README as %doc

* http://peter.fedorapeople.org/ilbc.spec
* http://peter.fedorapeople.org/ilbc-1.1.1-3.fc19.src.rpm
Comment 12 Darryl L. Pierce 2012-09-12 15:44:41 EDT
(In reply to comment #11)
> Added COPYING and README as %doc
> 
> * http://peter.fedorapeople.org/ilbc.spec
> * http://peter.fedorapeople.org/ilbc-1.1.1-3.fc19.src.rpm

Very good. APPROVED!
Comment 13 Peter Lemenkov 2012-09-12 15:48:40 EDT
(In reply to comment #12)
> (In reply to comment #11)
> > Added COPYING and README as %doc
> > 
> > * http://peter.fedorapeople.org/ilbc.spec
> > * http://peter.fedorapeople.org/ilbc-1.1.1-3.fc19.src.rpm
> 
> Very good. APPROVED!

Thanks!

New Package SCM Request
=======================
Package Name: ilbc
Short Description: Internet Low Bitrate Codec
Owners: peter
Branches: f17 f18 el5 el6
InitialCC:
Comment 14 Jon Ciesla 2012-09-12 15:52:48 EDT
Git done (by process-git-requests).
Comment 15 Fedora Update System 2012-09-13 01:48:31 EDT
ilbc-1.1.1-3.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/ilbc-1.1.1-3.fc17
Comment 16 Fedora Update System 2012-09-13 01:48:43 EDT
ilbc-1.1.1-3.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/ilbc-1.1.1-3.fc18
Comment 17 Fedora Update System 2012-09-13 01:48:53 EDT
ilbc-1.1.1-3.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/ilbc-1.1.1-3.el5
Comment 18 Fedora Update System 2012-09-13 01:49:04 EDT
ilbc-1.1.1-3.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/ilbc-1.1.1-3.el6
Comment 19 Darryl L. Pierce 2012-09-13 07:00:38 EDT
You should mark this BZ as CLOSED/NEXTRELEASE rather than having Bodhi mark it as modified since it's not a bug fix.
Comment 20 Peter Lemenkov 2012-09-13 07:16:44 EDT
(In reply to comment #19)
> You should mark this BZ as CLOSED/NEXTRELEASE rather than having Bodhi mark
> it as modified since it's not a bug fix.

Ok, I'm closing this as CLOSED/RAWHIDE (it's available in Rawhide now).
Comment 21 Fedora Update System 2012-09-18 16:00:19 EDT
ilbc-1.1.1-3.fc18 has been pushed to the Fedora 18 stable repository.
Comment 22 Fedora Update System 2012-09-26 05:12:32 EDT
ilbc-1.1.1-3.fc17 has been pushed to the Fedora 17 stable repository.
Comment 23 Fedora Update System 2015-03-09 02:47:08 EDT
ilbc-1.1.1-4.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/ilbc-1.1.1-4.el7
Comment 24 Fedora Update System 2015-03-28 14:38:20 EDT
ilbc-1.1.1-4.el7 has been pushed to the Fedora EPEL 7 stable repository.

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