Bug 648254 - Review Request: fawkes - Robot Software Framework
Summary: Review Request: fawkes - Robot Software Framework
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Peter Lemenkov
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2010-10-31 18:00 UTC by Tim Niemueller
Modified: 2010-11-22 16:59 UTC (History)
3 users (show)

Fixed In Version: fawkes-0.4-5.fc13
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2010-11-15 22:24:22 UTC
Type: ---
lemenkov: fedora-review+
j: fedora-cvs+

Attachments (Terms of Use)

Description Tim Niemueller 2010-10-31 18:00:22 UTC
Spec URL: http://fedorapeople.org/~timn/robotics/fawkes.spec
SRPM URL: http://fedorapeople.org/~timn/robotics/fawkes-0.4-2.fc13.src.rpm
Fawkes is a component-based software framework for robotic real-time
applications for various platforms and domains.

It was developed for cognitive robotics real-time applications like soccer
and service robotics and supports fast information exchange and efficient
combination and coordination of different components to suit the needs of
mobile robots operating in uncertain environments.

URL: http://www.fawkesrobotics.org
Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=2567389

rpmlint: Produces many warnings and one error, which I'm going to explain now.

fawkes.x86_64: E: no-binary
The base package is a meta package pulling the required libraries and a useful subset of plugins. I'm not aware of an option to have the base package noarch and sub-packages arch dependent. Therefore the base package is arch dependent and causes this false error.
21x W: no-documentation
Many sub-packages involve only packaging a plugin without own documentation. We consider improving this upstream by having a README per plugin.
31x W: no-manual-page-for-binary
We are aware of lacking documentation and have started improving on this (cf. http://git.fawkesrobotics.org/fawkes.git/shortlog/refs/heads/timn/man-pages). A patch is included to include work on this branch and until approval we will have more man pages already.
25x W: devel-file-in-non-devel-package
This is a false positive. The mentioned libraries are interface files loaded at run-time, not linked libraries. They are not devel files, they are required for normal run-time. They are marked as warning because they do not reside in a path that contains a "plugins" directory, which would be spared by rpmlint. The shared objects are required to support run-time introspection.
W: spelling-error %description -l en_US refbox -> ref box, ref-box, reflex
refbox is indeed the correct spelling, it is a custom word from RoboCup terminology. It is mentioned in addition to the full word, referee box.

Comment 1 Peter Lemenkov 2010-10-31 19:04:12 UTC
That's a really big spec-file.

Ok, I'll review it

Comment 2 Peter Lemenkov 2010-11-04 08:19:04 UTC
One (non-blocker) suggestion - I suspect that the contents of %{_libdir}/%{name} are dlopened, right? Then no need to use versioned soname for them (if they are dlopened and not linked at compile time). Please, consider adding -avoid-version or something similar (depending on your buildsystem) to libtool command line in the next releases of Fawkes.


Legend: + = PASSED, - = FAILED, 0 = Not Applicable

+ rpmlint is NOT silent, but all its messages were explained by submitter (see above). I decided not to post this really huge text here.

+ The package is named according to the  Package Naming Guidelines.
+ The spec file name matches the base package %{name}, in the format %{name}.spec.
+ The package meets the Packaging Guidelines.
+ The package is licensed with a Fedora approved license and meets the Licensing Guidelines.
+ The License field in the package spec file matches the actual license.
+ The file, containing the text of the license(s) for the package, is included in %doc.
+ The spec file is written in American English.
+ The spec file for the package is legible.
+ The sources used to build the package, match the upstream source, as provided in the spec URL.

sulaco ~/rpmbuild/SOURCES: sha256sum fawkes-0.4.tar.bz2*
8bd9a44c070eec07323846f069be4c3dbdb6c54bb3a9312285ea14614b9ea80d  fawkes-0.4.tar.bz2
8bd9a44c070eec07323846f069be4c3dbdb6c54bb3a9312285ea14614b9ea80d  fawkes-0.4.tar.bz2.1
sulaco ~/rpmbuild/SOURCES: 

+ The package successfully compiles and builds into binary rpms on at least one primary architecture. See koji link above.
+ All build dependencies are listed in BuildRequires. There are several unneeded BuildRequires listed (from default build root set) but listing them explicitly is not a blocker and might help other distribution's maintainers to adapt this spec-file easily.
0 No need to handle locales.
+ The package stores shared library files in some of the dynamic linker's default paths, and it calls ldconfig in %post and %postun.
+ The package does NOT bundle copies of system libraries.
0 The package is not designed to be relocatable.

- The package MUST own all directories that it creates. Please, add %dir %{_datadir}/fawkes to fawkes-core %files section.

+ The package does not list a file more than once in the spec file's %files listings.
+ Permissions on files are set properly.
+ The package has a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
+ The package consistently uses macros.
+ The package contains code, or permissible content.
+ Anything, the package includes as %doc, does not affect the runtime of the application.
+ Header files are stored in a -devel package.
0 No static libraries.
0 No pkgconfig(.pc) files.
+ The library file(s) that end in .so (without suffix) is(are) stored in a -devel package.
+ The -devel package requires the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release}
+ The package does NOT contain any .la libtool archives.

- The package includes a %{name}.desktop files, and this files should be validated with with desktop-file-validate in the %install section.

+ The package does not own files or directories already owned by other packages.
+ At the beginning of %install, the package runs rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
+ All filenames in rpm packages are valid UTF-8.

So here is a summary:

* Add %dir %{_datadir}/fawkes to fawkes-core %files section.
* Validate installed *.desktop files with desktop-file-validate in the %install section.

Comment 3 Tim Niemueller 2010-11-04 19:58:07 UTC
I have updated the spec file. The changes are:
- Make fawkes-core own /usr/share/fawkes
- Run desktop-file-validate on .desktop files
- consistent macro usage
- Update man-page patch to latest version
- Add patch for timn/desktop-files branch fixing desktop files
- Use uncolored targets for better Koji readability
- Build all and gui targets in one to have only one tree traversal

The new SRPM is at http://fedorapeople.org/~timn/robotics/fawkes-0.4-3.fc13.src.rpm (spec has been updated in place).

Comment 4 Peter Lemenkov 2010-11-04 20:13:39 UTC
Ok, good. I don't see any other issues, so this package is


Comment 5 Tim Niemueller 2010-11-04 21:13:41 UTC
Thank you for your thorough review!

Comment 6 Tim Niemueller 2010-11-04 21:15:56 UTC
New Package SCM Request
Package Name: fawkes
Short Description: Robot Software Framework
Owners: timn
Branches: f13 f14 el5 el6

Comment 7 Jason Tibbitts 2010-11-05 17:28:39 UTC
The bug summary says "Fawkes", the SCM request says "fawkes".  Please correct
the one which does not match your wishes and re-raise the fedora-cvs flag.

Comment 8 Jason Tibbitts 2010-11-05 17:56:59 UTC
Git done (by process-git-requests).

Comment 9 Fedora Update System 2010-11-05 23:38:21 UTC
fawkes-0.4-3.fc13 has been submitted as an update for Fedora 13.

Comment 10 Fedora Update System 2010-11-05 23:40:15 UTC
fawkes-0.4-3.fc14 has been submitted as an update for Fedora 14.

Comment 11 Fedora Update System 2010-11-06 23:58:47 UTC
fawkes-0.4-5.fc13 has been submitted as an update for Fedora 13.

Comment 12 Fedora Update System 2010-11-06 23:59:20 UTC
fawkes-0.4-5.fc14 has been submitted as an update for Fedora 14.

Comment 13 Fedora Update System 2010-11-06 23:59:50 UTC
fawkes-0.4-5.el5 has been submitted as an update for Fedora EPEL 5.

Comment 14 Fedora Update System 2010-11-07 21:27:02 UTC
fawkes-0.4-5.fc13 has been pushed to the Fedora 13 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update fawkes'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/fawkes-0.4-5.fc13

Comment 15 Fedora Update System 2010-11-15 22:23:10 UTC
fawkes-0.4-5.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 16 Fedora Update System 2010-11-15 22:24:17 UTC
fawkes-0.4-5.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 17 Fedora Update System 2010-11-22 16:59:08 UTC
fawkes-0.4-5.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.

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