Bug 1140324 (pjproject)

Summary: Review Request: pjproject - Libraries for building VoIP applications
Product: [Fedora] Fedora Reporter: Jared Smith <jsmith.fedora>
Component: Package ReviewAssignee: Peter Robinson <pbrobinson>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: amessina, bugzilla-redhat, fedora, g.devel, kevin, lmadsen, package-review, pahan, projects.rg
Target Milestone: ---Flags: pbrobinson: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: pjproject-2.3-6.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-20 16:44:27 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: 692131, 1130101    

Description Jared Smith 2014-09-10 16:59:10 UTC
Spec URL: https://jsmith.fedorapeople.org/Packaging/pjproject/pjproject.spec
SRPM URL: https://jsmith.fedorapeople.org/Packaging/pjproject/pjproject-2.3-2.fc21.src.rpm
Description: PJSIP is a free and open source multimedia communication library written in C language implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE. It combines signaling protocol (SIP) with rich multimedia framework and NAT traversal functionality into high level API that is portable and suitable for almost any type of systems ranging from desktops, embedded systems, to mobile handsets.
Fedora Account System Username: jsmith

Comment 1 Jared Smith 2014-09-10 17:03:28 UTC
*** Bug 728302 has been marked as a duplicate of this bug. ***

Comment 2 Jared Smith 2014-09-10 17:07:48 UTC
Just to save some time/effort, here's the output of rpmlint on the spec file, source RPM, and produced binary RPMs:

[jsmith@slapshot pjproject]$ rpmlint pjproject.spec pjproject-2.3-2.fc21.src.rpm pjproject-2.3-2.fc21.x86_64.rpm pjproject-devel-2.3-2.fc21.x86_64.rpm 
pjproject-devel.x86_64: W: only-non-binary-in-usr-lib
pjproject-devel.x86_64: W: no-documentation
3 packages and 1 specfiles checked; 0 errors, 2 warnings.

Comment 3 Kevin Kofler 2014-09-10 22:21:43 UTC
> rm -rf third_party/mp3

If this contains an MP3 encoder and/or decoder, this directory needs to be completely removed from the tarball, not just removed in %prep. The same goes for any other patent-encumbered codecs. (If in doubt, rip out ALL the bundled libraries from the tarball, you have to ship a cleaned tarball anyway, so you may as well delete everything unwanted.)

Comment 4 Kevin Kofler 2014-09-10 22:22:52 UTC
(The reason: Code with patent issues cannot be shipped even in the SRPM.)

Comment 5 Jared Smith 2014-09-11 01:06:42 UTC
It does not contain either an MP3 encoder or decoder -- it's simply a stub to be able to use an external MP3 encoder/decoder if the DLL is found on Windows.  I think we're perfectly fine here.

Comment 6 Kevin Kofler 2014-09-11 16:42:25 UTC
Yes, that's fine to delete in %prep (as you're already doing) then.

Comment 7 Raphael Groner 2014-09-11 19:22:05 UTC
Is there a package that will depend on pjproject? Otherwise what example / application could be used to test the library?

Comment 8 Peter Robinson 2014-09-12 10:31:45 UTC
(In reply to Raphael Groner from comment #7)
> Is there a package that will depend on pjproject? Otherwise what example /
> application could be used to test the library?

Asterisk 13

Comment 9 Peter Robinson 2014-09-12 14:52:13 UTC
Looks fine. APPROVED

A few minor bits you might consider:
- document in the spec file the reason the audio/video is disabled in the spec for easy reference
- Use the new %license directive

+ rpmlint output

rpmlint pjproject-2.3-2.fc21.src.rpm pjproject-2.3-2.fc21.x86_64.rpm pjproject-devel-2.3-2.fc21.x86_64.rpm pjproject-debuginfo-2.3-2.fc21.x86_64.rpm pjproject.spec 
pjproject-devel.x86_64: W: only-non-binary-in-usr-lib
pjproject-devel.x86_64: W: no-documentation
4 packages and 1 specfiles checked; 0 errors, 2 warnings.

+ package name satisfies the packaging naming guidelines
+ specfile name matches the package base name
+ package should satisfy packaging guidelines
+ license meets guidelines and is acceptable to Fedora
+ license matches the actual package license
+ latest version packaged
+ %doc includes license file
* Might be useful to use the new %license tag
+ spec file written in American English
+ spec file is legible
+ upstream sources match sources in the srpm
  8440e43242c439ae5ec30b5b85005fce  pjproject-2.3.tar.bz2
+ package successfully builds on at least one architecture
  tested using koji scratch build
  http://koji.fedoraproject.org/koji/taskinfo?taskID=7572191
+ BuildRequires list all build dependencies
n/a %find_lang instead of %{_datadir}/locale/*
+ binary RPM with shared library files must call ldconfig in %post and %postun+ does not use Prefix: /usr
+ package owns all directories it creates
+ no duplicate files in %files
+ Package perserves timestamps on install
+ Permissions on files must be set properly 
+ consistent use of macros
+ package must contain code or permissible content
n/a large documentation files should go in -doc subpackage
+ files marked %doc should not affect package runtime 
+ header files should be in -devel
n/a static libraries should be in -static
+ libfoo.so must go in -devel
+ devel must require the fully versioned base
+ packages should not contain libtool .la files
n/a packages containing GUI apps must include %{name}.desktop file
+ packages must not own files or directories owned by other packages
+ filenames must be valid UTF-8

Optional:

n/a if there is no license file, packager should query upstream to include it
n/a translations of description and summary for non-English languages, if
available
+ reviewer should build the package in mock/koji
+ the package should build into binary RPMs on all supported architectures
n/a review should test the package functions as described
+ scriptlets should be sane
n/a non -devel packages should require fully versioned base
+ pkgconfig files should go in -devel
+ shouldn't have file dependencies outside /etc /bin /sbin /usr/bin or
/usr/sbin
n/a Package should have man files

Comment 10 Jared Smith 2014-09-12 15:17:11 UTC
New Package SCM Request
=======================
Package Name: pjproject
Short Description: Communications library for SIP, SDP, RTP, STUN, TURN, and ICE
Upstream URL: http://pjsip.com/
Owners: jsmith 
Branches: f19 f20 f21 el6 epel7
InitialCC:

Comment 11 Gwyn Ciesla 2014-09-12 15:33:08 UTC
Git done (by process-git-requests).

Comment 12 Fedora Update System 2014-09-26 21:36:53 UTC
pjproject-2.3-2.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/pjproject-2.3-2.fc21

Comment 13 Fedora Update System 2014-09-26 21:37:45 UTC
pjproject-2.3-2.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/pjproject-2.3-2.fc20

Comment 14 Fedora Update System 2014-09-26 21:39:06 UTC
pjproject-2.3-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/pjproject-2.3-2.fc19

Comment 15 Fedora Update System 2014-10-11 06:56:55 UTC
pjproject-2.3-2.fc20 has been pushed to the Fedora 20 stable repository.

Comment 16 Fedora Update System 2014-10-11 06:57:22 UTC
pjproject-2.3-2.fc21 has been pushed to the Fedora 21 stable repository.

Comment 17 Fedora Update System 2014-10-11 06:58:31 UTC
pjproject-2.3-2.fc19 has been pushed to the Fedora 19 stable repository.

Comment 18 Fedora Update System 2015-01-22 22:17:05 UTC
pjproject-2.3-6.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/pjproject-2.3-6.el7

Comment 19 Fedora Update System 2015-03-11 16:40:00 UTC
pjproject-2.3-6.el7 has been pushed to the Fedora EPEL 7 stable repository.