[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ITR: libhttp

On Fri, 1 Jun 2007 15:14:16 -0500
"Richard A. Johnson" <nixternal@ubuntu.com> wrote:

> http://mentors.debian.net/debian/pool/main/l/libemhttp0/libemhttp0_1.1.dsc
> Might help to have a link to the .dsc file. sorry for the double post.

OK, the review. Lots.

1. debian/copyright : boilerplate code is still present. Complete the
details for the download location and the upstream author(s). You must
put details of the licence in this file. As this is not a "common
licence", quote the licence text from the .c file in full. Check
each .c and .h file and ensure that they are all using the same licence
text, then remove the comments at the end of debian/copyright. 

Whether CDBS is used or not, whether the package is for an
embedded platform or not, this kind of omission simply has to be fixed.
Compare with other packages.

2. debian/control : The Source package doesn't need the SONAME because
the source package name doesn't change when the API changes. I think
you need to summarise the main points of that text, not simply link to
it from the long description. This is especially true because the
upstream page is just plain text (hard to read, hard to scan) and the
actual link itself is not "active", only the Homepage link is
clickable in packages.debian.org. Put other parts of the page in
README and manpages. Changing the source name will also require changes
to debian/changelog. (Use some of the text from the packaged README to
fill out the description, use the rest in the manpages. Point to the
README from the manpages to help users find the API documentation and
talk to upstream about possibly making that API documentation
available as HTML.) 

3. debian/rules : --prefix=/usr is already specified for you by CDBS,
it isn't needed in EXTRA_FLAGS.

4. lintian warnings (some covered above)
Now running lintian...
E: libemhttp0-dev: helper-templates-in-copyright
E: libemhttp0-dbg: non-standard-toplevel-dir debian/
E: libemhttp0-dbg: helper-templates-in-copyright
E: libemhttp0: helper-templates-in-copyright
W: libemhttp0: package-name-doesnt-match-sonames libhttp0
W: emhttp-tools: binary-without-manpage usr/bin/hget
W: emhttp-tools: binary-without-manpage usr/bin/hhead
W: emhttp-tools: binary-without-manpage usr/bin/hpost
E: emhttp-tools: helper-templates-in-copyright
Finished running lintian.

Write those manpages - no, really, write them. The binaries appear to
have --help output so, for starters, use the template created by
dh_make (create a temporary directory to re-run dh_make and copy the
manpage XML from there). Introduce some of the content of that
upstream text file and then use xsltproc to convert the XML into a
usable manpage. Keep the XML in debian/ (so that changes are easy to
update) but don't bother generating the manpages during the build - do
it manually yourself when the XML changes.

Just because embedded platforms will remove the manpage, does not mean
you can get away without a manpage. If anything, it makes it MORE
important that the Debian package has a detailed manpage so that the
cross-built embedded package can be debugged more easily. Use the
upstream text to explain, in detail, where this package differs to
other implementations of these processes and calls. Documentation is

E: libemhttp0-dbg: non-standard-toplevel-dir debian/
This refers to ./debian/tmp/usr/lib/debug/ in the dbg package. This is
a serious error and must be fixed. Use debc to view the details of the

This is the most serious problem:
W: libemhttp0: package-name-doesnt-match-sonames libhttp0

Renaming is NOT simply a case of changing debian/control. You need to
rename the actual shared library (and symlinks). Your package tries to
install ./usr/lib/libhttp.so.0.0.9 when it should
be ./usr/lib/libemhttp.so.0.0.9 (and so on for all the other files).

That's why my original post may have seemed to come across quite
harshly - renaming a library package is actually a reasonable amount of
work both now and into the future. If at all possible, work with
upstream to change the name permanently.

There is quite a lot to do in this package yet.


Neil Williams

Attachment: pgphf9ghzcXqI.pgp
Description: PGP signature

Reply to: