Bug 666763

Summary: Review Request: ax_emergency_listen - monitors APRS emergency packets
Product: [Fedora] Fedora Reporter: g.trentalancia
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: andrew.elwell, fedora-package-review, j, martin.gieseking, notting
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-29 19:16:11 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: 201449    

Description g.trentalancia 2011-01-03 03:23:34 UTC
Spec URL: http://iz6rdb.trentalancia.com/en/ax_emergency_listen.spec
SRPM URL: http://iz6rdb.trentalancia.com/en/ax_emergency_listen-1.3.2-1.src.rpm
Description: The small ax_emergency_listen utility can be used to monitor for APRSĀ® Emergency packets (Mic-E packets having the emergency status or Mic-E and uncompressed packets using the emergency symbol). It is is inspired by the "listen" program which is part of the ax25-apps package.

Comment 1 Martin Gieseking 2011-01-03 20:08:47 UTC
Hi Guido,

since this is your first package submission, you need a sponsor who approves you. Thus, add FE-NEEDSPONSOR to the Blocks field above, and see the following web pages for further information:
https://fedoraproject.org/wiki/PackageMaintainers/Join
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group

Here are some quick comments on your spec file:
- use macro %{version} in Source0 to simplify future updates

- According to COPYRIGHT, the license is GPLv3+ (because of the addition
  "or (at your option) any later version"). This should be reflected in the 
  License field.

- drop BR: autoconf automake as both packages are picked up automatically

- drop Requires: libax25, ncurses (the dependency is detected automatically)

- drop INSTALL from %files (not needed in a binary package)

- drop empty file NEWS

$ rpmlint /var/lib/mock/fedora-14-x86_64/result/*.rpm
ax_emergency_listen.x86_64: E: explicit-lib-dependency libax25
ax_emergency_listen.x86_64: E: zero-length /usr/share/doc/ax_emergency_listen-1.3.2/NEWS
3 packages and 0 specfiles checked; 2 errors, 0 warnings.

Comment 2 Martin Gieseking 2011-01-03 20:14:07 UTC
Also, don't use trademark characters in Summary and %description. See
http://fedoraproject.org/wiki/Packaging:Guidelines#Trademarks_in_Summary_or_Description

Comment 3 g.trentalancia 2011-01-03 22:12:04 UTC
Thanks Martin, I am very grateful to you for the comments. I have updated the SPEC file, removed the Trademark symbol and introduced the sponsor block.

Comment 4 g.trentalancia 2011-01-04 04:04:54 UTC
A new release is available for review at http://iz6rdb.trentalancia.com/en/ax_emergency_listen-1.3.2-2.fc11.src.rpm

It adds an init script and a configuration file so that the program can be run as a sort of daemon. Also it makes ax25-tools "Required", because it is very useful to have it installed for configuring the AX25 interface beforehand.

No reviewer ? No sponsor ? (as yet)

Comment 5 Jason Tibbitts 2011-01-04 04:16:45 UTC
This ticket has existed for just under a day so far; I'm not sure how fast you believe the process is but it's a bit early to be anxious about obtaining a sponsor.

Have you read the documentation Martin provided in comment 1?  Have you done any package review work?  Looked over any of the 250+ other tickets awaiting reviews?  We have far fewer sponsors than new contributors and some folks have been waiting for months.  Helping out with that and demonstrating your understanding of packaging will help to attract a sponsor.

Personally I'm not interested in reviewing this because if I can't figure out what the package is supposed to do from reading the %description, I rarely bother.  Jargon like "APRS" and "Mic-E" might mean something to someone, but they mean nothing to me.  It's generally considered polite to try to define acronyms and such in your package description, if for no other reason than it gives more useful search terms.

Comment 6 g.trentalancia 2011-01-04 18:29:39 UTC
Thanks very much for your comments Jason, I have improved the description according to your tips which have been much appreciated. The latest available release is now 1.3.2-4 available at:

http://iz6rdb.trentalancia.com/en/ax_emergency_listen-1.3.2-4.src.rpm

Having already written the software, it is not easy to find the time to package it and build it for every distribution available and then also review other packages in every distribution. But I will try to do my best...

Comment 7 g.trentalancia 2011-01-04 19:59:09 UTC
I am getting the following rpmlint error:

E: invalid-build-requires libax25-devel

But the package requires libax25 for running and libax25-devel when building from source (requires for example <netax25/axconfig.h>). I cannot access an x86_64 installation but libax25-devel is also available there...

What does the error really mean ?

Comment 8 Jason Tibbitts 2011-01-04 20:23:00 UTC
rpmlint -I invalid-build-requires just says:
  Your source package contains a dependency not compliant with the lib64 naming.
  This BuildRequires dependency will not be resolved on lib64 platforms (eg.
  amd64).
which isn't very helpful.  So, rpmlint source to the rescue.  These three lines from TagsCheck.py are relevant:

lib_devel_number_regex = re.compile('^lib(.*?)([0-9.]+)(_[0-9.]+)?-devel')
if is_source and lib_devel_number_regex.search(d[0]):
  printError(pkg, 'invalid-build-requires', d[0])

So, libax25-devel trips the warning.  I can't see why it should, so the complaint looks bogus to me.  I suspect that said warning is more meaningful on some other distribution having that would use a naming convention like 'libfoo32-devel'.  I've really only experience with Fedora, though, so I can't say what distribution that would be.

I'd simply note that the rpmlint complaint is invalid and move on.

Comment 9 Martin Gieseking 2011-01-04 20:52:16 UTC
I don't get the mentioned rpmlint warning when checking the packages based on the SRPM given in comment #6 (mock build, f14, x86_64). However, there are a some other things to be fixed:

$ rpmlint /var/lib/mock/fedora-14-x86_64/result/*.rpm
ax_emergency_listen.src: W: strange-permission ax_emergency_listen_helper 0755L
ax_emergency_listen.src: W: strange-permission ax_emergency_listen.init 0755L
ax_emergency_listen.src:93: W: macro-in-%changelog %{_sysconfdir}
ax_emergency_listen.src:66: W: mixed-use-of-spaces-and-tabs (spaces: line 66, tab: line 1)
ax_emergency_listen.x86_64: W: non-conffile-in-etc /etc/sysconfig/ax_emergency_listen
ax_emergency_listen.x86_64: W: no-manual-page-for-binary ax_emergency_listen_helper
ax_emergency_listen.x86_64: W: service-default-enabled /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.x86_64: W: missing-lsb-keyword Required-Start in /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.x86_64: W: missing-lsb-keyword Required-Stop in /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.x86_64: W: service-default-enabled /etc/rc.d/init.d/ax_emergency_listen
3 packages and 0 specfiles checked; 0 errors, 10 warnings.

Comment 10 g.trentalancia 2011-01-04 21:25:46 UTC
Thanks Jason and thanks Martin for your latest comments and interest !

Jason and Martin: I was using rpmlint version 1.0 and not on Fedora. So perhaps, it is a warning being triggered only by upstream rpmlint. Let's leave the issue as it is.

Martin: yes, I do get more or less the same Warnings that you get. More specifically:

[root@tesla rpmlint-1.0]# python2.6 -O -u rpmlint.py -C . /home/guido/rpmbuild/SRPMS/ax_emergency_listen-1.3.2-4.src.rpm 
ax_emergency_listen.src: W: spelling-error %description -l en_US startup -> start up, start-up, starter
ax_emergency_listen.src: W: strange-permission ax_emergency_listen-1.3.2.tar.bz2 0664
ax_emergency_listen.src: W: strange-permission ax_emergency_listen.spec 0664
ax_emergency_listen.src:93: W: macro-in-%changelog %{_sysconfdir}
ax_emergency_listen.src:66: W: mixed-use-of-spaces-and-tabs (spaces: line 66, tab: line 1)
1 packages and 0 specfiles checked; 3 errors, 6 warnings.

- Fixed the spelling issue in release 1.3.2-5 that is about to come;
- Don't know what's wrong with permissions set to 664 (or 644) on the source archive ???
- Fixed the use of macros in changelog (rel 5);
- Fixed the use of spaces (rel 5).


[root@tesla rpmlint-1.0]# python2.6 -O -u rpmlint.py -C . /home/guido/rpmbuild/SRPMS/ax_emergency_listen-1.3.2-4.src.rpm /home/guido/rpmbuild/RPMS/i386/ax_emergency_listen-1.3.2-4.fc11.i386.rpm 
ax_emergency_listen.src: W: spelling-error %description -l en_US startup -> start up, start-up, starter
ax_emergency_listen.src: W: strange-permission ax_emergency_listen-1.3.2.tar.bz2 0664
ax_emergency_listen.src: W: strange-permission ax_emergency_listen.spec 0664
ax_emergency_listen.src:93: W: macro-in-%changelog %{_sysconfdir}
ax_emergency_listen.src:66: W: mixed-use-of-spaces-and-tabs (spaces: line 66, tab: line 1)
ax_emergency_listen.i386: W: manpage-not-compressed bz2 /usr/share/man/man1/ax_emergency_listen.1.gz
ax_emergency_listen.i386: W: spelling-error %description -l en_US startup -> start up, start-up, starter
ax_emergency_listen.i386: W: unstripped-binary-or-object /usr/bin/ax_emergency_listen
ax_emergency_listen.i386: W: non-conffile-in-etc /etc/sysconfig/ax_emergency_listen
ax_emergency_listen.i386: W: no-manual-page-for-binary ax_emergency_listen_helper
ax_emergency_listen.i386: W: missing-lsb-keyword Required-Start in /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.i386: W: missing-lsb-keyword Required-Stop in /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.i386: W: service-default-enabled /etc/rc.d/init.d/ax_emergency_listen
2 packages and 0 specfiles checked; 5 errors, 15 warnings.

- Fixed the spelling issue in release 1.3.2-5 that is about to come;
- Don't know what's wrong with permissions set to 664 (or 644) on the source archive ???
- Fixed the use of macros in changelog (rel 5);
- Fixed the use of spaces (rel 5);
- Why should I strip binaries ? To loose debugging information when at the end it is compiled with it ?
- What's wrong with the config file being place in /etc/sysconfig (is there a list of known config files somewhere, that is not listing mine ?) ?
- Fixed the init script with empty Required-Start and Required-Stop; in the end, the only thing that is required is that the (kiss) interface has been configured with kissattach or something equivalent to that; it doesn't even need the network interface to be up (such as ax0);
- It's really pointless to provide a manual page for the daemonizer script (by the way, do you have any better idea on how to "daemonize" without touching the source files ?);
- The service is enabled by default, otherwise ? Who decides what is good and what is bad ? Other packages with init files are doing the same... And if the user is installing the package there is a very good chance that he/she intends to use it;
- Manual page not compressed in bzip2 ?? No idea. You don't even have got that, Martin. Something to do with upstream rpmlint 1.0 that I am using.

Honestly, apart from those warnings that I have already fixed in release 5, I would say everything is fine, at the end it's only warnings and the Packaging Guidelines don't even mention about warnings.

However, I remain open to any advice on possible fixes.

Comment 11 g.trentalancia 2011-01-04 22:14:19 UTC
The latest release is now 1.3.2-5 and it's available at:

http://iz6rdb.trentalancia.com/en/ax_emergency_listen-1.3.2-5.src.rpm

Comment 12 Martin Gieseking 2011-01-05 18:19:05 UTC
(In reply to comment #10)
> - Don't know what's wrong with permissions set to 664 (or 644) on the source
> archive ???

I suggest just to change the file permissions to 644 in the srpm. It makes rpmlint happy and doesn't hurt as install assigns the proper permissions anyway.


> - Why should I strip binaries ? To loose debugging information when at the end
> it is compiled with it ?

You should not strip the binaries manually. rpmbuild does that automatically when creating the debuginfo package. Obviously, your rpmbuild utility behaves a bit different.


> - What's wrong with the config file being place in /etc/sysconfig (is there a
> list of known config files somewhere, that is not listing mine ?) ?

config files must be marked with %config(noreplace) or plain %config. See
http://fedoraproject.org/wiki/PackagingGuidelines#Configuration_files


> - Fixed the init script with empty Required-Start and Required-Stop; in the
> end, the only thing that is required is that the (kiss) interface has been
> configured with kissattach or something equivalent to that; it doesn't even
> need the network interface to be up (such as ax0);

OK. You should also have a look at
http://fedoraproject.org/wiki/Packaging/SysVInitScript#Initscript_packaging
and adapt the iniscript and the spec file accordingly.



> - It's really pointless to provide a manual page for the daemonizer script 
> (by the way, do you have any better idea on how to "daemonize" without 
> touching the source files ?);

The warning about the missing manpage can be ignored, of course.


> - The service is enabled by default, otherwise ? Who decides what is good and
> what is bad ?

The Fedora guidelines want the packagers not to start services by default. See
http://fedoraproject.org/wiki/Packaging/SysVInitScript#Why_don.27t_we....



> - Manual page not compressed in bzip2 ?? No idea. You don't even have got 
> that, Martin. Something to do with upstream rpmlint 1.0 that I am using.

Fedora's rpmbuild compresses manpages by default. So no action is required here.

Comment 13 g.trentalancia 2011-01-05 19:30:18 UTC
Hi Martin,

thanks again for your thoughtful comments !

- Fixed the third issue (in rel 6), very good point I had forgotten that !
- Fixed the init script and the spec for the chkconfig issue (rel 6), although in truth it's not a "network listening" thing, it has nothing to do with network interfaces, not even the ax25 ones (which could well be inactive), it just deals with the serial interface to which, supposedly, a TNC is connected; and also, have a look below...
- The very last issue, from my understanding, is about the manual page being compressed using gzip rather than bz2 and possibly this is something to do with the fact that I am using rpmlint from upstream. Anyway, something not to bother with...

But then, have a look at what happens with the binary package after removing completely %post and %postun:

ax_emergency_listen.i386: E: init-script-without-chkconfig-postin /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.i386: E: init-script-without-chkconfig-preun /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.i386: W: no-default-runlevel /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.i386: W: missing-lsb-keyword Default-Stop in /etc/rc.d/init.d/ax_emergency_listen

and after re-adding %post and %postun:

ax_emergency_listen.i386: W: no-default-runlevel /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.i386: W: missing-lsb-keyword Default-Stop in /etc/rc.d/init.d/ax_emergency_listen

I have just followed the Guidelines and your suggestions.

Of course, rpmlint on the SRPMS is clean.

Comment 14 Martin Gieseking 2011-01-05 20:22:07 UTC
(In reply to comment #13)
> - Fixed the init script and the spec for the chkconfig issue (rel 6), although
> in truth it's not a "network listening" thing, it has nothing to do with
> network interfaces, not even the ax25 ones (which could well be inactive), it
> just deals with the serial interface to which, supposedly, a TNC is connected;
> and also, have a look below...

OK. As far as I understand the guideline text, it doesn't matter whether the service listens to network ports or not. When using the snippets, you're usually on the safe side.


> - The very last issue, from my understanding, is about the manual page being
> compressed using gzip rather than bz2 and possibly this is something to do 
> with the fact that I am using rpmlint from upstream. 

Yes, sorry. I didn't read the message carefully enough. :)


> But then, have a look at what happens with the binary package after removing
> completely %post and %postun:

Why did you remove %post and %postun? They should be present (together with %preun) as they are in the spec file snippets given at
http://fedoraproject.org/wiki/Packaging/SysVInitScript#Initscript_packaging


> and after re-adding %post and %postun:
> 
> ax_emergency_listen.i386: W: no-default-runlevel
> /etc/rc.d/init.d/ax_emergency_listen
> ax_emergency_listen.i386: W: missing-lsb-keyword Default-Stop in
> /etc/rc.d/init.d/ax_emergency_listen

Since you haven't posted the latest version yet, I can't say anything about the origin of these warnings. They are probably related to missing parameters in the header of the init script.

Comment 15 g.trentalancia 2011-01-05 20:29:18 UTC
Ok, I have just uploaded the latest release 1.3.2-6 to:

http://iz6rdb.trentalancia.com/en/ax_emergency_listen-1.3.2-6.src.rpm

Everything should be sorted in the best manner. There were rpmlint warnings about:

ax_emergency_listen.i386: W: missing-lsb-keyword Required-Start in /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.i386: W: missing-lsb-keyword Required-Stop in /etc/rc.d/init.d/ax_emergency_listen
ax_emergency_listen.i386: W: missing-lsb-keyword Default-Stop in /etc/rc.d/init.d/ax_emergency_listen

which obviously are in conflict with the Packaging Guidelines, but I preferred to keep rpmlint silent. At the end, it's just exactly the same either ways, as those lines are now empty.

Do you need anything about ways to get this package sponsored and finally getting it pushed into the distribution ? I have also done a little bit of an informal review for another package, so should I just keep waiting ?

Comment 16 g.trentalancia 2011-01-05 20:35:03 UTC
And I forgot, I have also reported a bug and proposed a patch to fix it for an important APRS package. So I really expect someone to push this package, as it is now beginning to take more time for packaging and other collateral stuff than it took to develop the utility itself !

Comment 17 Martin Gieseking 2011-01-05 21:34:46 UTC
(In reply to comment #16)
> So I really expect someone to push this package, as it
> is now beginning to take more time for packaging and other collateral stuff
> than it took to develop the utility itself !

Sorry, Guido, but it doesn't work this way. Preparing clean packages is as important as developing working program code. Thus, it can take some time to get a package approved. As Jason already mentioned, the initial sponsoring process can delay the approval of the first package because there are quite a few new contributers waiting to get sponsored (see http://fedoraproject.org/PackageReviewStatus/NEW.html for example). 

Joining the packager group requires that you're willing to invest time in preparing and maintaining packages and that you have an understanding of the packaging guidelines. The latter is usually shown by doing some informal reviews of other packager's submissions.

Personally, I'm pretty busy with my job at the moment, and I still have two contributors waiting for my sponsorship which also takes time. So I'm currently not able to sponsor you.

BTW, if you don't have the time and/or don't want to maintain this package yourself, you can also add your utility to the package wishlist (http://fedoraproject.org/wiki/PackageMaintainers/WishList) and wait for some other packager to pick it.

Comment 18 g.trentalancia 2011-01-05 22:18:50 UTC
(In reply to comment #17)
> (In reply to comment #16)
> > So I really expect someone to push this package, as it
> > is now beginning to take more time for packaging and other collateral stuff
> > than it took to develop the utility itself !
> 
> Sorry, Guido, but it doesn't work this way. Preparing clean packages is as
> important as developing working program code.

Of course, I understand this. But consider the point of someone who developed the utility for free, has done already most of the packaging, has done an informal review on another package, has submitted a bug report and a relative patch to fix it. Everything for free.

And in the end, the utility can be just fetched from the Internet as it is (tar archive, GNU packaging), built and installed on the fly on any recent distribution...

Also, the latest release (1.3.2-6) looks fine to me. It adheres to Packaging Guidelines, it builds and installs fine on Fedora.

> Thus, it can take some time to get a package approved.

If it is just a matter of waiting, then that's fine to me.

> Joining the packager group requires that you're willing to invest time in
> preparing and maintaining packages and that you have an understanding of the
> packaging guidelines. The latter is usually shown by doing some informal
> reviews of other packager's submissions.

I have no interest at the moment for joining the packager or maintainer group other than what relates this package. For example, I am already doing upstream testing of most Linux stuff.

> BTW, if you don't have the time and/or don't want to maintain this package
> yourself, you can also add your utility to the package wishlist
> (http://fedoraproject.org/wiki/PackageMaintainers/WishList) and wait for some
> other packager to pick it.

If this is the only solution, then I could do that. But what's wrong with the latest release ? What prevents it from being pushed in ? If there is something else that I can do in a reasonably short time, I will do. Otherwise if it's too complicated, then we'd better leave it to the WishList or let somebody pick this request and follow up...

Comment 19 Martin Gieseking 2011-01-05 23:09:14 UTC
(In reply to comment #18)
> Of course, I understand this. But consider the point of someone who developed
> the utility for free, has done already most of the packaging, has done an
> informal review on another package, has submitted a bug report and a relative
> patch to fix it. Everything for free.

Yes, sure. I'm also an upstream developer and a Fedora packager. All this work is done in my spare time and offered for free too. This is probably true for most of the Fedora people. So you're in good company.


> If this is the only solution, then I could do that. But what's wrong with the
> latest release ? What prevents it from being pushed in ? 

No, it's not the only solution. The point is that you can't open a review request for someone else. If a package is approved, it's assigned to the person who created the review request. This person is responsible for the package and has to maintain it, i.e request git distro branches, create koji builds, push the builds to the update server etc. Thus, simply speaking, it's not possible that someone else pushes the package of this ticket into Fedora. So, one aspect that prevents your latest release from being added to Fedora is that you're not sponsored yet.

Comment 20 g.trentalancia 2011-01-06 15:48:10 UTC
(In reply to comment #19)
> (In reply to comment #18)
> Yes, sure. I'm also an upstream developer and a Fedora packager. All this work
> is done in my spare time and offered for free too. This is probably true for
> most of the Fedora people. So you're in good company.

Oh yes, good company for sure !

> So, one aspect that prevents your latest release from being added to Fedora
> is that you're not sponsored yet.

I suppose it's just a matter of waiting a sponsor... Let's wait.

The idea is that the utility could be useful to newbies ham and it can do something quite useful such as picking emergency packets on the air and reacting upon receiving them. Of course, it can also be used by non-newbies and by non-hams (as it is not transmitting on the air, then usually no license is required). In fact, there are similar pieces of code but they are intended to integrate with GUI applications and pop-up windows. I believe this utility is original in the sense that it is intended to automate the task of handling emergency packets without requiring an operator to sit in front of a GUI. Also, where and when legally possible alerts of any kind (email, text messages, facsimiles or whatever else) can be forwarded directly to public emergency services. And everything is done with just a few lines of very simple code.

Thanks again very much for your support Martin !

Comment 21 Andrew Elwell 2011-01-12 14:29:35 UTC
Hi Guido,

I spotted this Review Request while I was adding another one of mine to the list. (I'm working on some APRS tool packaging too) -- Have a look at bug #669010 and the soon-to-be-submitted aprsg package (am just working on that now). Also are you aware of http://fedoraproject.org/wiki/SIGs/AmateurRadio 

Good luck with your sponsorship request!

Andrew

Comment 22 Jason Tibbitts 2012-06-29 04:53:40 UTC
I'm looking over the oldest NEEDSPONSOR tickets and came across this one which seems to have fallen through the cracks.  I'm guessing you never got in contact with anyone in the amateur radio SIG who could help you out.

In any case I can't promise anything as my time is limited, but if you're still interested in submitting this, let me know and I'll see what I can do.

Comment 23 g.trentalancia 2012-06-29 19:12:26 UTC
Hi Jason,

it's free ham radio software derived from free ham radio software.

At the moment is completely unmantained as I have no time for it.

Therefore, feel free to do whatever you like with it under the terms of the LICENSE and without any warranty of any kind.

There might or there might not be other releases.

Comment 24 Jason Tibbitts 2012-06-29 19:16:11 UTC
I guess the above means that you don't wish to continue to submit this package to Fedora, so I'll close this ticket out.