Bug 459637

Summary: Review Request: svxlink - Repeater controller and EchoLink (simplex or repeater)
Product: [Fedora] Fedora Reporter: Lucian Langa <lucilanga>
Component: Package ReviewAssignee: Jason Tibbitts <j>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, j, notting, vanmeeuwen+fedora
Target Milestone: ---Flags: j: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-12-10 14:34:21 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:

Description Lucian Langa 2008-08-20 19:17:42 UTC
Spec URL: http://lucilanga.fedorapeople.org/svxlink.spec
SRPM URL: http://lucilanga.fedorapeople.org/svxlink-080730-1.fc9.src.rpm
Description: The SvxLink project is a multi purpose voice services system for
ham radio use. For example, EchoLink connections are supported.
Also, the SvxLink server can act as a repeater controller.

A few notes:
- not entirely sure about the versioning
- Patch1 might be required (initially commented) as it seems mock spandsp version (0.0.4) differs from the one in koji (0.0.5) ?!, not able to test it recently.

Comment 1 Lucian Langa 2008-08-21 14:27:04 UTC
 - cleaned up -devel packages
 - tweaked server config file to include the correct libdir.

... and bumped version

http://lucilanga.fedorapeople.org/svxlink.spec
http://lucilanga.fedorapeople.org/svxlink-080730-2.fc9.src.rpm

Comment 2 Jason Tibbitts 2008-11-20 19:14:50 UTC
This fails to build for me on x86_64 rawhide:

--- Compiling SpanDtmfDecoder.cpp...
/usr/include/spandsp/dtmf.h: In member function 'virtual bool SpanDtmfDecoder::initialize()':
/usr/include/spandsp/dtmf.h:228: error: too few arguments to function 'void dtmf_rx_parms(dtmf_rx_state_t*, int, int, int, int)'
SpanDtmfDecoder.cpp:169: error: at this point in file

Also, the build system obscures the compiler calls, but I'm not sure I see any place that would incorporate the regular Fedora compiler flags.  There's no mention of %{optflags} or $RPM_OPT_FLAGS in the spec and there's no configure script to call.

Comment 3 Lucian Langa 2008-11-21 13:02:53 UTC
(In reply to comment #2)
> --- Compiling SpanDtmfDecoder.cpp...
> /usr/include/spandsp/dtmf.h: In member function 'virtual bool
> SpanDtmfDecoder::initialize()':
> /usr/include/spandsp/dtmf.h:228: error: too few arguments to function 'void
> dtmf_rx_parms(dtmf_rx_state_t*, int, int, int, int)'
> SpanDtmfDecoder.cpp:169: error: at this point in file
Patch2 was not applied. Fixed.


> Also, the build system obscures the compiler calls, but I'm not sure I see any
> place that would incorporate the regular Fedora compiler flags.  There's no
> mention of %{optflags} or $RPM_OPT_FLAGS in the spec and there's no configure
> script to call.
Fixed.


A few notes:

rpmlint
libasync.x86_64: W: shared-lib-calls-exit /usr/lib64/libasyncaudio-0.16.1.so exit.5
libasync.x86_64: W: shared-lib-calls-exit /usr/lib64/libasynccpp-0.16.1.so exit.5
libasync-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libasyncaudio-0.16.1.so exit.5
libasync-devel.x86_64: W: shared-lib-calls-exit /usr/lib64/libasynccpp-0.16.1.so exit.5
Not entirely sure but I think it safe.
From what I could see there are 2 calls both internal error handling.
I will address this upstream anyway.


libasync.x86_64: W: unused-direct-shlib-dependency
libasync-devel.x86_64: W: unused-direct-shlib-dependency
I am unable to fix, package does not use libtool and passing -Wl,-as-needed won't work (fails with undefined reference)
I think the above are harmless.

new version:
http://lucilanga.fedorapeople.org/svxlink.spec
http://lucilanga.fedorapeople.org/svxlink-080730-3.fc10.src.rpm

Comment 4 Jason Tibbitts 2008-12-03 00:43:10 UTC
The shared-lib-calls-exit bits are just pointing out an oddity in the API of the library; generally the caller would want to handle errors itself instead of simply having the library exit, but I suspect that most of these libraries are for internal use anyway.  If anything, they'd be something to report upstream; they're not blockers.

The unused-direct-shlib-dependency complaints are valid, but not really significant.  I don't see any libraries there that wouldn't be pulled in by qt itself, so there's not really any inefficiency.

The static libraries will need to go in their own -static packages; they are not permitted in the -devel packages alongside shared libraries.  Preferably they aren't included at all, but that's up to you.

Many (all?) of the *so files are duplicated between the base and -devel packages.  It looks like you used the usual pattern for capturing just the versioned .so files, but this package uses some odd library versioning so for some reason the library version appears before the ".so" as well as after it on some files.  I don't pretend to understand why, but I guess you'll need to change the patterns used for capturing the versioned and unversioned .so files.

The COPYRIGHT file mentions a gsm directory with a different copyright, but I don't see it in the package.  I guess the package now just uses an external library.

I don't see any licensing information on the sounds.  Can you verify the license?

Comment 5 Lucian Langa 2008-12-03 10:34:51 UTC
(In reply to comment #4)
> The static libraries will need to go in their own -static packages; they are
> not permitted in the -devel packages alongside shared libraries.  Preferably
> they aren't included at all, but that's up to you.
Removed.

> Many (all?) of the *so files are duplicated between the base and -devel
> packages.  It looks like you used the usual pattern for capturing just the
> versioned .so files, but this package uses some odd library versioning so for
> some reason the library version appears before the ".so" as well as after it on
> some files.  I don't pretend to understand why, but I guess you'll need to
> change the patterns used for capturing the versioned and unversioned .so files.
Fixed (I think...)


> The COPYRIGHT file mentions a gsm directory with a different copyright, but I
> don't see it in the package.  I guess the package now just uses an external
> library.
I've asked upstream to update the file.


> I don't see any licensing information on the sounds.  Can you verify the
> license?
Asked upstream.

new version:
http://lucilanga.fedorapeople.org/svxlink.spec
http://lucilanga.fedorapeople.org/svxlink-080730-4.fc10.src.rpm

Comment 6 Lucian Langa 2008-12-06 16:14:34 UTC
(In reply to comment #5)

> > I don't see any licensing information on the sounds.  Can you verify the
> > license?
License of sounds is GPLv2

new version:
http://lucilanga.fedorapeople.org/svxlink.spec
http://lucilanga.fedorapeople.org/svxlink-080730-5.fc10.src.rpm

Comment 7 Jason Tibbitts 2008-12-06 20:41:07 UTC
Thanks for doing that.  It would be good to add a quick comment to the spec near the License: tag indicating which parts are GPLv2 and which are GPLv2+ so you don't have to look for the COPYRIGHT files.

I can't quite tell if the svxlink-server package needs a dependency on udev (for /etc/udev/rules.d) or whether the dependency chain includes it.

I note that the .so files aren't executable.  I was under the impression that they needed to be executable for things to work, and my systems don't seem to have any non-executable so files in _libdir.

Any reason for not using the standard user management scriptlet?  As it is now, your system fails badly if the svxlink user is defined somewhere other than /etc/passwd (such as on my LDAP server).  Check http://fedoraproject.org/wiki/Packaging/UsersAndGroups for more info; it's basically just calling getent.  Also, you will need Requries(pre): shadow-utils for that scriptlet.

* source files match upstream.  sha256sums:
  77d14a788ba1a9c5a2027f875790ec3eaeb5074ba48d0bb382c2b6992249a7d1  
   sounds-080730.tar.gz
  68039508fa77ac3daf648bc26b99029c867068a03b43aab6650101c2fc2ef107  
   svxlink-080730.tar.gz
* package meets naming and versioning guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* summaries are OK.
* descriptions are OK.
* dist tag is present.
* build root is OK.
* license field matches the actual license.
* license is open source-compatible.
* license texts included in package.
* latest version is being packaged.
* BuildRequires are proper.
* compiler flags are appropriate.
* %clean is present.
* package builds in mock (rawhide, x86_64).
* package installs properly.
* debuginfo package looks complete.
* rpmlint has acceptable complaints.
* final provides and requires are sane:
  echolib-0.13.0-5.fc11.x86_64.rpm
   libecholib.so.0.13()(64bit)
   echolib = 0.13.0-5.fc11
   echolib(x86-64) = 0.13.0-5.fc11
  =
   /sbin/ldconfig
   libasyncaudio.so.0.16()(64bit)
   libasynccore.so.0.16()(64bit)
   libecholib.so.0.13()(64bit)
   libgcc_s.so.1()(64bit)
   libgcc_s.so.1(GCC_3.0)(64bit)
   libgsm.so.1()(64bit)

  echolib-devel-0.13.0-5.fc11.x86_64.rpm
   echolib-devel = 0.13.0-5.fc11
   echolib-devel(x86-64) = 0.13.0-5.fc11
  =
   echolib = 0.13.0
   libecholib.so.0.13()(64bit)

  libasync-0.16.1-5.fc11.x86_64.rpm
   libasyncaudio.so.0.16()(64bit)
   libasynccore.so.0.16()(64bit)
   libasynccpp.so.0.16()(64bit)
   libasyncqt.so.0.16()(64bit)
   libasync = 0.16.1-5.fc11
   libasync(x86-64) = 0.16.1-5.fc11
  =
   /sbin/ldconfig
   libICE.so.6()(64bit)
   libSM.so.6()(64bit)
   libX11.so.6()(64bit)
   libXcursor.so.1()(64bit)
   libXext.so.6()(64bit)
   libXft.so.2()(64bit)
   libXi.so.6()(64bit)
   libXinerama.so.1()(64bit)
   libXrandr.so.2()(64bit)
   libXrender.so.1()(64bit)
   libasyncaudio.so.0.16()(64bit)
   libasynccore.so.0.16()(64bit)
   libasynccpp.so.0.16()(64bit)
   libasyncqt.so.0.16()(64bit)
   libfontconfig.so.1()(64bit)
   libfreetype.so.6()(64bit)
   libgcc_s.so.1()(64bit)
   libgcc_s.so.1(GCC_3.0)(64bit)
   libjpeg.so.62()(64bit)
   libmng.so.1()(64bit)
   libpng12.so.0()(64bit)
   libqt-mt.so.3()(64bit)
   libsigc-1.2.so.5()(64bit)
   libz.so.1()(64bit)

  libasync-devel-0.16.1-5.fc11.x86_64.rpm
   libasync-devel = 0.16.1-5.fc11
   libasync-devel(x86-64) = 0.16.1-5.fc11
  =
   libasync = 0.16.1
   libasyncaudio.so.0.16()(64bit)
   libasynccore.so.0.16()(64bit)
   libasynccpp.so.0.16()(64bit)
   libasyncqt.so.0.16()(64bit)

  qtel-0.11.1-5.fc11.x86_64.rpm
   qtel = 0.11.1-5.fc11
   qtel(x86-64) = 0.11.1-5.fc11
  =
   libICE.so.6()(64bit)
   libSM.so.6()(64bit)
   libX11.so.6()(64bit)
   libXcursor.so.1()(64bit)
   libXext.so.6()(64bit)
   libXft.so.2()(64bit)
   libXi.so.6()(64bit)
   libXinerama.so.1()(64bit)
   libXrandr.so.2()(64bit)
   libXrender.so.1()(64bit)
   libasyncaudio.so.0.16()(64bit)
   libasynccore.so.0.16()(64bit)
   libasyncqt.so.0.16()(64bit)
   libecholib.so.0.13()(64bit)
   libfontconfig.so.1()(64bit)
   libfreetype.so.6()(64bit)
   libgcc_s.so.1()(64bit)
   libgcc_s.so.1(GCC_3.0)(64bit)
   libjpeg.so.62()(64bit)
   libmng.so.1()(64bit)
   libpng12.so.0()(64bit)
   libqt-mt.so.3()(64bit)
   libsigc-1.2.so.5()(64bit)
   libstdc++.so.6()(64bit)
   libstdc++.so.6(CXXABI_1.3)(64bit)
   libstdc++.so.6(GLIBCXX_3.4)(64bit)
   libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
   libz.so.1()(64bit)

?  svxlink-server-0.10.1-5.fc11.x86_64.rpm
   ModuleDtmfRepeater.so()(64bit)
   ModuleEchoLink.so()(64bit)
   ModuleHelp.so()(64bit)
   ModuleParrot.so()(64bit)
   ModuleTcl.so()(64bit)
   config(svxlink-server) = 0.10.1-5.fc11
   svxlink-server = 0.10.1-5.fc11
   svxlink-server(x86-64) = 0.10.1-5.fc11
  =
   /bin/bash
   /bin/sh
   /usr/bin/tclsh
   config(svxlink-server) = 0.10.1-5.fc11
   libICE.so.6()(64bit)
   libSM.so.6()(64bit)
   libX11.so.6()(64bit)
   libXcursor.so.1()(64bit)
   libXext.so.6()(64bit)
   libXft.so.2()(64bit)
   libXi.so.6()(64bit)
   libXinerama.so.1()(64bit)
   libXrandr.so.2()(64bit)
   libXrender.so.1()(64bit)
   libasyncaudio.so.0.16()(64bit)
   libasynccore.so.0.16()(64bit)
   libasynccpp.so.0.16()(64bit)
   libasyncqt.so.0.16()(64bit)
   libecholib.so.0.13()(64bit)
   libfontconfig.so.1()(64bit)
   libfreetype.so.6()(64bit)
   libgcc_s.so.1()(64bit)
   libgcc_s.so.1(GCC_3.0)(64bit)
   libgsm.so.1()(64bit)
   libjpeg.so.62()(64bit)
   libmng.so.1()(64bit)
   libpng12.so.0()(64bit)
   libpopt.so.0()(64bit)
   libpopt.so.0(LIBPOPT_0)(64bit)
   libqt-mt.so.3()(64bit)
   libsigc-1.2.so.5()(64bit)
   libspandsp.so.1()(64bit)
   libstdc++.so.6()(64bit)
   libstdc++.so.6(CXXABI_1.3)(64bit)
   libstdc++.so.6(GLIBCXX_3.4)(64bit)
   libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
   libtcl8.5.so()(64bit)
   libz.so.1()(64bit)
?   Needs udev?

  svxlink-server-devel-0.10.1-5.fc11.x86_64.rpm
   svxlink-server-devel = 0.10.1-5.fc11
   svxlink-server-devel(x86-64) = 0.10.1-5.fc11
  =

* shared libraries installed; ldconfig called properly.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
? file permissions are appropriate.
* no generically named files
X issues with scriptlets 
* code, not content.
* documentation is small, so no -doc subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.
* headers are in the -devel subpackages.
* no pkgconfig files.
* no static libraries.
* no libtool .la files.
* desktop files valid and installed properly.

Comment 8 Lucian Langa 2008-12-07 11:02:31 UTC
(In reply to comment #7)
> Thanks for doing that.  It would be good to add a quick comment to the spec
> near the License: tag indicating which parts are GPLv2 and which are GPLv2+ so
> you don't have to look for the COPYRIGHT files.
Fixed.


> I can't quite tell if the svxlink-server package needs a dependency on udev
> (for /etc/udev/rules.d) or whether the dependency chain includes it.
Added udev dependency.

 
> I note that the .so files aren't executable.  I was under the impression that
> they needed to be executable for things to work, and my systems don't seem to
> have any non-executable so files in _libdir.
Fixed. Though I can find non-executable files in my _libdir. I guess it all depends on the loading method. Anyway this is seamless thing to do.


> Any reason for not using the standard user management scriptlet?  As it is now,
> your system fails badly if the svxlink user is defined somewhere other than
> /etc/passwd (such as on my LDAP server).  Check
> http://fedoraproject.org/wiki/Packaging/UsersAndGroups for more info; it's
> basically just calling getent.  Also, you will need Requries(pre): shadow-utils
> for that scriptlet.
Fixed.

new versions:
http://lucilanga.fedorapeople.org/svxlink.spec
http://lucilanga.fedorapeople.org/svxlink-080730-6.fc10.src.rpm

Comment 9 Jason Tibbitts 2008-12-07 19:19:47 UTC
Looks good: license note is there, udev dependency is added, so files are executable (and I should check to see if this is really necessary), scriptlets and their dependencies are OK.

APPROVED

Comment 10 Lucian Langa 2008-12-07 19:29:35 UTC
Thank you.

New Package CVS Request
=======================
Package Name: svxlink
Short Description: Repeater controller and EchoLink (simplex or repeater)
Owners: lucilanga
Branches: F-9 F-10 EL-5
InitialCC:

Comment 11 Kevin Fenzi 2008-12-08 00:27:04 UTC
cvs done.

Comment 12 Lucian Langa 2008-12-08 06:31:59 UTC
F-9, F-10 and EL-5 directories are missing from cvs.

Comment 13 Kevin Fenzi 2008-12-10 03:29:06 UTC
Odd. Sorry about that. Should be fixed now.

Comment 14 Fedora Update System 2008-12-10 14:32:13 UTC
svxlink-080730-6.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/svxlink-080730-6.fc9

Comment 15 Fedora Update System 2008-12-10 14:32:56 UTC
svxlink-080730-6.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/svxlink-080730-6.fc10

Comment 16 Fedora Update System 2008-12-30 23:54:50 UTC
svxlink-080730-6.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 17 Fedora Update System 2009-01-07 09:14:21 UTC
svxlink-080730-6.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.