Bug 845221

Summary: Review Request: ilbc - Internet Low Bitrate Codec
Product: [Fedora] Fedora Reporter: Peter Lemenkov <lemenkov>
Component: Package ReviewAssignee: Darryl L. Pierce <dpierce>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: dpierce, itamar, jeff, notting, package-review, tcallawa, tross
Target Milestone: ---Flags: dpierce: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
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 11:16:44 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 728302, 814230, 848423    

Description Peter Lemenkov 2012-08-02 10:34:59 UTC
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 10:44:14 UTC
Koji scratchbuild for EL5:

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

Comment 2 Tom "spot" Callaway 2012-08-02 13:27:07 UTC
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 13:36:29 UTC
(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 13:43:31 UTC
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 13:49:11 UTC
is this useable with asterisk ?

I think for some reason jcollie remove ilbc from asterisk package.

Comment 6 Itamar Reis Peixoto 2012-08-02 13:50:57 UTC
** removed.

Comment 7 Peter Lemenkov 2012-08-02 13:52:43 UTC
(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 09:36:11 UTC
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 13:43:11 UTC
(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 15:27:06 UTC
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 18:54:48 UTC
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 19:44:41 UTC
(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 19:48:40 UTC
(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 Gwyn Ciesla 2012-09-12 19:52:48 UTC
Git done (by process-git-requests).

Comment 15 Fedora Update System 2012-09-13 05:48:31 UTC
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 05:48:43 UTC
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 05:48:53 UTC
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 05:49:04 UTC
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 11:00:38 UTC
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 11:16:44 UTC
(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 20:00:19 UTC
ilbc-1.1.1-3.fc18 has been pushed to the Fedora 18 stable repository.

Comment 22 Fedora Update System 2012-09-26 09:12:32 UTC
ilbc-1.1.1-3.fc17 has been pushed to the Fedora 17 stable repository.

Comment 23 Fedora Update System 2015-03-09 06:47:08 UTC
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 18:38:20 UTC
ilbc-1.1.1-4.el7 has been pushed to the Fedora EPEL 7 stable repository.