Bug 529387 - Review Request: rcrpanel - Create a front panel for an electronics device
Summary: Review Request: rcrpanel - Create a front panel for an electronics device
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jason Tibbitts
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-10-16 14:40 UTC by John J. McDonough
Modified: 2010-12-06 18:31 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-12-06 18:15:12 UTC
Type: ---
Embargoed:
j: fedora-review+
j: fedora-cvs+


Attachments (Terms of Use)

Description John J. McDonough 2009-10-16 14:40:40 UTC
Spec URL: http://jjmcd.fedorapeople.org/Download/rcrpanel.spec
SRPM URL: http://jjmcd.fedorapeople.org/Download/rcrpanel-3.4-2.fc11.src.rpm
Description: rcrpanel is an application to lay out a front panel for a radio or similar electronics device.  rcrpanel can provide dials for potentiometers or variable capacitors as well as lay out cutouts for switches and jacks.  rcrpanel accepts a panel description file and produces PostScript output.

Comment 1 John J. McDonough 2009-10-16 14:42:28 UTC
This is my first package for review.

Comment 2 Jason Tibbitts 2009-10-16 16:06:23 UTC
A few comments:

rpmlint says:

  rcrpanel.x86_64: W: spurious-executable-perm 
   /usr/share/doc/rcrpanel-3.4/rcrpanel.txt
  rcrpanel.x86_64: E: wrong-script-end-of-line-encoding 
   /usr/share/doc/rcrpanel-3.4/rcrpanel.txt
I don't see any reason why that file would be executable.  Once you fix that, the second complaint will change but the underlying issue is the same: the file has DOS-style line ending.  A suggestion for fixing that is at http://fedoraproject.org/wiki/Common_Rpmlint_issues#wrong-file-end-of-line-encoding

The package does not build using the proper set of compiler flags; currently it just uses "-g -Wall", while it needs to use whatever is in $RPM_OPT_FLAGS.  Adding
  CFLAGS="$RPM_OPT_FLAGS"
to the make call gets that working, but then the source no longer compiles due to several errors of the form:
  /builddir/build/BUILD/rcrpanel-3.4/rcrpanel.c:620: undefined reference to 
   `sincos'

There is no reason to gzip the manpage; rpmbuild will automatically use its preferred compression method (which we may indeed change in the future).

Note that modern Fedora needs neither the BuildRoot: tag nor the "rm -rf" line at the start of %install.  If you intend this to go into EPEL, though, then you'll probably want to keep those so you don't have to maintain a different spec for EPEL.

Comment 3 John J. McDonough 2009-10-16 16:53:09 UTC
Thanks so much Jason.  The sincos thing is a little confusing, but I'll get it.

Comment 4 John J. McDonough 2009-10-16 19:10:36 UTC
All fixed now, read for another go.  I can't believe I forgot rpmlint.

Comment 5 Randy Berry 2009-10-17 02:28:44 UTC
Add to %prep
sed -i 's/\r//' rcrpanel.txt
chmod -x rcrpanel.txt

This resolves the wrong-script-end-of-line-encoding and spurious-executable-perm 

The issue with the CFLAGS="$RPM_OPT_FLAGS" still exists I am also getting a file-not-utf8 warning for the man page. Still working on solving that. Nothing I've tried seems to work.

Comment 6 John J. McDonough 2009-10-17 12:09:07 UTC
Randy, how do you see that?  I get no clues that there is an issue.

Comment 7 Randy Berry 2009-10-17 22:37:50 UTC
I get the not UTF8 warning on both mock and rpmbuild. It shows up in the RPM itself.

rpmlint /home/rberry/rpmbuild/RPMS/i586/rcrpanel-3.4-2.fc11.i586.rpm 
rcrpanel.i586: W: file-not-utf8 /usr/share/man/man1/rcrpanel.1.gz
1 packages and 0 specfiles checked; 0 errors, 1 warnings

rpmlint /var/lib/mock/fedora-11-i386/result/rcrpanel-*
rcrpanel.i586: W: file-not-utf8 /usr/share/man/man1/rcrpanel.1.gz
3 packages and 0 specfiles checked; 0 errors, 1 warnings.

Comment 8 John J. McDonough 2009-10-17 23:05:34 UTC
hmmmm ... what's different I wonder?


rpmlint /home/jjmcd/rpmbuild/RPMS/i586/rcrpanel-3.4-2.fc11.i586.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

I hadn't used mock but I did do scratch builds on Koji for all the archs and also got no messages.  Only for F11 tho.  I "think" that is supposed to accomplish the same thing as mock.

Comment 9 John J. McDonough 2009-10-17 23:38:22 UTC
OK, there is definitely something I'm missing.  In installed mock, did a build, and:

rpmlint /var/lib/mock/fedora-11-i386/result/rcrpanel-*
3 packages and 0 specfiles checked; 0 errors, 0 warnings.

Interestingly, when I tried a mock build for x86_64 I got a bunch of yum errors - missing dependencies around perl.  Doggy Celeron with little memory, though.

Comment 10 Randy Berry 2009-10-18 04:43:05 UTC
I'm not sure whats going on. I tried it with the steps I provided above and without I still get the utf warning. Perhaps it is on my end?

Comment 11 John J. McDonough 2009-10-18 14:18:52 UTC
I did update the tar to remove the DOS line endings from all the files, rather than doing it in the install.  I wonder whether that somehow also changed the UTF-8 thing and maybe you are using the original srpm.  I guess I should have updated the release number.

Comment 12 Randy Berry 2009-10-18 23:17:26 UTC
Could be. Update the release number and provide a new link to the updated spec\srpm.

Comment 13 David Nalley 2009-10-19 00:50:10 UTC
Hi John:

Your Source0 line needs to be the url to the software:
For instance: 
http://qslmaker.mi-nts.org/downloads/Panel-3.2.tar.gz

See: http://fedoraproject.org/wiki/Packaging/SourceURL   for more details. 

License is incorrect in the spec file (it's listed as GPLv2) - rcrpanel.c has GPLv2+ in it. 

While not necessary you can reduce some of the chatter in %files by reducing: 
%doc rcrpanel.txt
%doc README
%doc COPYING
%doc AUTHORS


to: 
%doc rcrpanel.txt README COPYING AUTHORS

Comment 14 John J. McDonough 2009-10-19 14:11:40 UTC
OK, I think I got all of the above, also corrected a few places where there were old, obsolete comments.  New spec and srpm

Spec URL: http://jjmcd.fedorapeople.org/Download/rcrpanel.spec
SRPM URL: http://jjmcd.fedorapeople.org/Download/rcrpanel-3.5-1.fc11.src.rpm

Comment 15 David Nalley 2009-11-03 16:49:37 UTC
As noted before - I can't sponsor you - but this looks pretty good IMO: 

OK: rpmlint must be run on every package. The output should be posted in the review.
[ke4qqq@nalleyx60 SPECS]$ rpmlint rcrpanel.spec 
0 packages and 1 specfiles checked; 0 errors, 0 warnings.
[ke4qqq@nalleyx60 SPECS]$ rpmlint ../SRPMS/rcrpanel-3.5-1.fc11.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
[ke4qqq@nalleyx60 SPECS]$ rpmlint ../RPMS/i586/rcrpanel-3.5-1.fc11.i586.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

OK: The package must be named according to the Package Naming Guidelines 

OK: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption.
MUST: The package must meet the Packaging Guidelines
OK: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
GPLv2+
OK: The License field in the package spec file must match the actual license.
License field GPLv2+ - code = GPLv2+
OK: 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.
OK: The spec file must be written in American English. 
OK: The spec file for the package MUST be legible. 
OK: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use md5sum for this task. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.
[ke4qqq@nalleyx60 SOURCES]$ md5sum rcrpanel-3.5.tar.gz*
5e3f974eafc98ce1a87eab0e0b866242  rcrpanel-3.5.tar.gz
5e3f974eafc98ce1a87eab0e0b866242  rcrpanel-3.5.tar.gz.1

OK: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
Works on at least x86
NA: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch. Each architecture listed in ExcludeArch MUST have a bug filed in bugzilla, describing the reason that the package does not compile/build/work on that architecture. The bug number MUST be placed in a comment, next to the corresponding ExcludeArch line.
OK: 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.
NA: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.
NA: 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. 
OK: Packages must NOT bundle copies of system libraries.
OK: If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package. Without this, use of Prefix: /usr is considered a blocker. 
OK: 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. 
OK: A Fedora package must not list a file more than once in the spec file's %files listings. 
OK: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line. 
OK: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). 
OK: Each package must consistently use macros. 

Though I will note that you could use them more to make life simpler for yourself going forward. 
For instance - in your source0 line - you have: 
Source0:        http://qslmaker.mi-nts.org/downloads/rcrpanel-3.5.tar.gz

That could have been: 

Source0:        http://qslmaker.mi-nts.org/downloads/%{name}-%{version}.tar.gz

That would be one less line to remember to update/have to update each time you increment version number. 

OK: The package must contain code, or permissable content. 
NA: 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).
OK: 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. 
NA: Header files must be in a -devel package. 
NA: Static libraries must be in a -static package. 
NA: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability). 
NA: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package. 
OK: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} 
NA: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.
NA: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section. If you feel that your packaged GUI application does not need a .desktop file, you must put a comment in the spec file with your explanation. 
OK: 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. 
OK: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT). 
OK: All filenames in rpm packages must be valid UTF-8.

Comment 16 manuel wolfshant 2010-07-16 03:24:01 UTC
David, you can end the review if you want, John has been sponsored a couple of months ago.

Comment 17 Jason Tibbitts 2010-11-02 01:35:42 UTC
Hmm, it seems unfortunate that this stalled out when a review was basically complete.  I did a quick look and it still builds fine and has no rpmlint issues.  I might as well just take care of this.

Like many review tickets of this age, there are a few lines from the spec that are unnecessary on modern Fedora (BuildRoot:, the first line of %install, and on F13+, the entire %clean section).  I'd suggest removing them unless you plan to target EPEL.

* source files match upstream.  sha256sum:
  15f2d774c768695081f2221853b1dd869649b211eb2dbf809d3d5ed5875640e9
   rcrpanel-3.5.tar.gz
* package meets naming and versioning guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* summary is OK.
* description is OK.
* dist tag is present.
* license field matches the actual license.
* license is open source-compatible.
* license text included in package.
* BuildRequires are proper.
* compiler flags are appropriate.
* package builds in mock (rawhide, x86_64).
* package installs properly.
* debuginfo package looks complete.
* rpmlint is silent.
* final provides and requires are sane:
   rcrpanel = 3.5-1.fc15
   rcrpanel(x86-64) = 3.5-1.fc15
  =
   (nothing special)

* no shared libraries are added to the regular linker search paths.
* 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
* code, not content.
* documentation is small, so no -doc subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.

APPROVED

Comment 18 John J. McDonough 2010-11-04 00:02:29 UTC
New Package SCM Request
=======================
Package Name: rcrpanel
Short Description: Design panels for electronic equipment
Owners: jjmcd
Branches: f13 f14
InitialCC: sparks

Comment 19 Jason Tibbitts 2010-11-05 17:15:27 UTC
Git done.

Comment 20 Jason Tibbitts 2010-12-06 18:02:49 UTC
Is there any reason why this ticket is still open?

Comment 21 John J. McDonough 2010-12-06 18:15:12 UTC
No, I was sort of expecting Bodhi to do it for me.

Comment 22 Jason Tibbitts 2010-12-06 18:31:36 UTC
It will, but only if you provide the ticket number when you make your update.


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