Sunday, April 10, 2011

RPM-Writing Lab

httptunnel-3.0.5

Source Tar
Spec
SRPM
RPM
Build Log

Created template spec file, failed to build until I added the following macros under %files
%{_bindir}/*
%{_mandir}/*/*

Added first changelog entry for release 1. RPMlint reported issues with formatting and spelling which were corrected until no more lint errors were reported.


rush-1.7

Build Log

Originally the second package for this lab was going to be barcode. However, after experiencing a number of errors during build I decided to look at the original SPEC file for the package. It required a number of patches and additional spec file entries I wouldn't have been able to figure out unless I was knowledgeable about the program. Because of this I decided to choose a different package which I could hopefully build and correct without referring to the original package spec.

Rush required a bit more work and investigation compared to httptunnel which was rather simple to package. The first step was to deal with the install-info files. Upon reading the a number of packaging wikis I determined the SPEC file required the following additions:
Requires(post): info
Requires(preun): info
%post
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :
%preun
if [ $1 = 0 ] ; then
/sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
fi
As well the following additions were required for the %files section in order to handle the locale messages, documentation, and the executable/configuration files. The
%files
%defattr(-,root,root,-)
%doc README
%config %{_sysconfdir}/rush.rc
%config(noreplace) %{_sysconfdir}/rush.rc
%lang(nl) %{_datadir}/locale/nl/LC_MESSAGES/rush.mo
%lang(pl) %{_datadir}/locale/pl/LC_MESSAGES/rush.mo
%lang(uk) %{_datadir}/locale/uk/LC_MESSAGES/rush.mo
%lang(vi) %{_datadir}/locale/vi/LC_MESSAGES/rush.mo
%{_bindir}/*
%{_sbindir}/*
%{_datadir}/rush/rush-po.awk
%{_infodir}/rush.info.gz
After these additions RPMlint reported no errors on the SPEC and SRPM. However, on the RPM itself four errors were reported:

rush.i686: E: non-readable /etc/rush.rc 0640L
The file can't be read by everybody. If this is expected (for security
reasons), contact your rpmlint distributor to get it added to the list of
exceptions for your distro (or add it to your local configuration if you
installed rpmlint from the source tarball).

rush.i686: W: no-manual-page-for-binary rushlast
Each executable in standard binary directories should have a man page.

rush.i686: W: no-manual-page-for-binary rushwho
Each executable in standard binary directories should have a man page.

rush.i686: W: no-manual-page-for-binary rush
Each executable in standard binary directories should have a man page.

1 packages and 0 specfiles checked; 1 errors, 3 warnings.

These errors appear to be issues with the source itself and a lack of proper documentation and possibly permission settings (rush.rc being unreadable).

No comments:

Post a Comment