[Neurodebian-devel] Debian packages for Stimfit
Yaroslav Halchenko
debian at onerussian.com
Mon Jan 31 15:45:15 UTC 2011
Hi Christoph,
Great to see stimfit packaging converging. Here is my review (sorry, list came
up a bit lengthy; I hope I would not scary you).
On Mon, 31 Jan 2011, Christoph Schmidt-Hieber wrote:
> Fixed. As you suggested, both python-stfio and stimfit are now built from the same source. Uploaded as 0.10.7 to the launchpad ppa.
* where could I fetch your GPG key you used to sign .dsc?
I've failed to find it around (PPA has different one A9205C2F)
$> gpg --recv-key 9F7AC0CC
gpg: requesting key 9F7AC0CC from hkp server pgp.mit.edu
gpgkeys: key 9F7AC0CC not found on keyserver
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
$> gpg --recv-key --keyserver http://keyserver.ubuntu.com:11371 9F7AC0CC
gpg: requesting key 9F7AC0CC from http server keyserver.ubuntu.com
gpgkeys: no key data found for http://keyserver.ubuntu.com:11371/
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
* I guess there is no need to ship /usr/lib/python-stfio/ at all --
static library is of no use (or do you want to expose interface and make
library public?), and .so seems to be duplicated under dist-packages as well
$> dpkg -c python-stfio_0.10.7-0ubuntu2_amd64.deb | grep -e '\(so\|libs\)'
-rw-r--r-- root/root 1037 2011-01-31 06:13 ./usr/lib/python-stfio/libstfio.la
-rw-r--r-- root/root 6582434 2011-01-31 06:13 ./usr/lib/python-stfio/libstfio.a
-rw-r--r-- root/root 2730756 2011-01-31 06:13 ./usr/lib/python-stfio/libstfio.so
-rw-r--r-- root/root 2730756 2011-01-31 06:13 ./usr/lib/python2.6/dist-packages/stfio/_stfio.so
* as above it builds only for the default version of python. Would you
consider building for all supported? it is desired but not mandated... just wanted
to know
* better not to ship .la files at all
http://wiki.debian.org/ReleaseGoals/LAFileRemoval
* during build there is report of
dpkg-shlibdeps: warning: debian/stimfit/usr/lib/python2.6/dist-packages/stimfit/_stf.so contains an unresolvable reference to symbol _ZN9Recording9SetFitEndEi: it's probably a plugin.
is that indeed a plugged in via some custom loading of some dynamic library? I see it undefined:
$> objdump -t /usr/lib/python2.6/dist-packages/stimfit/_stf.so | grep _ZN9Recording9SetFitEndEi
0000000000000000 *UND* 0000000000000000 _ZN9Recording9SetFitEndEi
$> objdump -t /usr/lib/stimfit/libstf.so | grep _ZN9Recording9SetFitEndEi
0000000000000000 *UND* 0000000000000000 _ZN9Recording9SetFitEndEi
and there is more of them:
dpkg-shlibdeps: warning: 48 other similar warnings have been skipped (use -v to see them all).
* all lintian warnings should be addressed:
neurodebian at lego:/tmp/stimfit$ lintian stimfit_0.10.7-0ubuntu2_amd64.changes
E: stimfit: copyright-contains-dh_make-todo-boilerplate
W: stimfit: binary-without-manpage usr/bin/stimfit
W: stimfit: executable-not-elf-or-script ./usr/lib/python2.6/dist-packages/stimfit/charlie.py
W: stimfit: executable-not-elf-or-script ./usr/lib/python2.6/dist-packages/stimfit/natools.py
W: stimfit: executable-not-elf-or-script ./usr/lib/python2.6/dist-packages/stimfit/ivtools.py
W: stimfit: executable-not-elf-or-script ./usr/lib/python2.6/dist-packages/stimfit/minidemo.py
W: stimfit: executable-not-elf-or-script ./usr/lib/python2.6/dist-packages/stimfit/hdf5tools.py
W: stimfit: executable-not-elf-or-script ./usr/lib/python2.6/dist-packages/stimfit/mintools.py
E: stimfit: unstripped-binary-or-object ./usr/bin/stimfit
E: stimfit: unstripped-binary-or-object ./usr/lib/python2.6/dist-packages/stimfit/_stf.so
E: stimfit: unstripped-binary-or-object ./usr/lib/stimfit/libstf.so
E: python-stfio: copyright-contains-dh_make-todo-boilerplate
W: python-stfio: wrong-section-according-to-package-name python-stfio => python
W: python-stfio: executable-not-elf-or-script ./usr/lib/python2.6/dist-packages/stfio/hdf5tools.py
E: python-stfio: unstripped-binary-or-object ./usr/lib/python-stfio/libstfio.so
E: python-stfio: unstripped-binary-or-object ./usr/lib/python2.6/dist-packages/stfio/_stfio.so
- stripping -- you've forgotten to add dh_strip
you might like to create also stimfit-dbg package which would absorb all debug symbols, so you just
call
dh_strip --dbg-package=stimfit-dbg
that would help people to get meaningful backtraces if they are to file a bugreport
N.B. you can avoid running into 'missing calls to dh_' scripts by switching
to use debhelper 7 format of debian/rules, where you specify only
customizations
- manpage... since you have some command line options -- it is better to provide such one
you might like to use help2man tool which would allow you to use output of
--version and --help to create a manpage for a binary. We use it for our packages quite often:
$> grep -l help2man */debian/rules
ants/debian/rules
libgdf/debian/rules
mipav/debian/rules
mlpy/debian/rules
neurodebian/debian/rules
psychopy/debian/rules
pynifti/debian/rules
pyoptical/debian/rules
N.B. most (if not all) of those repositories should be available from
http://git.debian.org/ under pkg-exppsy/ (historical name for our project)
- debian/copyright
needs to become a bit more extended, with proper copyright/license
header and entries -- now many things are missing (see below)
Also I would recommend to adopt DEP5 format for that file:
http://dep.debian.net/deps/dep5/
many (if not all) of above packages of ours carry such copyright files
also I see some files which might be problematic:
./src/core/filelib/axon/Common/axodebug.h
// Copyright (c) 1993-1997 Axon Instruments.
// All rights reserved.
and no license, I have not spotted it among ./src/core/filelib/axon files
-- so strictly speaking it is not allowed to be used or distributed... where
it came from and what is the license? (should be listed in debian/copyright).
The same for any other file for which you are not the copyright holder/author
(besides common free ones part of build infrastructure like ltmain.sh):
./src/core/levmar/* GPL (v2 or later)
[Copyright: 2004-05 Manolis Lourakis (lourakis at ics.forth.gr)]
NB it seems that at least two more projects carry copy of it -- hugin and
freemat... may be eventually it could be made a separate package to reduce
maintenance effort
* isn't stimfit using stfio anyhow? I do not see any reference but I thought
it would be logical... may be worth adding python-stfio to at least Suggests of
stimfit?
* is test.h5 which you use in ./src/stfswig/unittest_stfio.py too big
to be included at least into version control repository?
ideally unittests should run during build (invoked from debian/rules) so
functionality for the built package gets tested. It is most of the time better
to fail while building than then interact with angry users ;-)
would you mind sharing some way some other samples files to test
functionality of stimfit/python-stfio ?
* are there any other tests available besides the above?
* since stimfit ships python module, to be friendly to Debian python
guys, might be useful to add
* since stimfit is a gui application, it would be great to register it within
the system by providing .desktop file to be shipped into
/usr/share/applications so people could invoke it from the GNOME or KDE
menu.
NB ideally there should also be debian/stimfit.menu and call to
dh_installmenu to register stimfit within Debian menu system which would
provide support for environments which do not care about .desktop files
here you could find some examples:
$> ls -ld */debian/*desktop
-rw------- 1 yoh yoh 244 Oct 4 12:05 afni/debian/afni.desktop
-rw-r--r-- 1 yoh yoh 208 Jul 15 2009 caret/debian/caret.desktop
drwxr-sr-x 2 yoh yoh 4096 Jul 1 2010 fsl/debian/desktop/
-rw-r--r-- 1 yoh yoh 330 Jun 11 2009 fslview/debian/fslview.desktop
-rw-r--r-- 1 yoh yoh 300 Jan 14 13:05 psychopy/debian/psychopy.desktop
-rw------- 1 yoh yoh 222 Jul 2 2010 voxbo/debian/vbview2.desktop
$> ls -ld */debian/*menu
-rw------- 1 yoh yoh 210 Oct 4 12:05 afni/debian/afni.menu
-rw-r--r-- 1 yoh yoh 221 Jul 15 2009 caret/debian/caret.menu
-rw------- 1 yoh yoh 3527 Jul 1 2010 fsl/debian/fsl.menu
-rw-r--r-- 1 yoh yoh 244 Jun 11 2009 fslview/debian/fslview.menu
-rw------- 1 yoh yoh 107 Jul 6 2010 kbibtex/debian/menu
-rw------- 1 yoh yoh 240 Oct 5 17:35 mipav/debian/mipav.menu
-rw------- 1 yoh yoh 330 Sep 16 2009 odin/debian/menu
-rw------- 1 yoh yoh 330 Sep 16 2009 odin/debian/odin.menu
-rw-r--r-- 1 yoh yoh 139 Jan 14 13:05 psychopy/debian/menu
-rw------- 1 yoh yoh 207 Jul 2 2010 voxbo/debian/voxbo.menu
or just look into /usr/share/menu/ and /usr/share/applications
--
=------------------------------------------------------------------=
Keep in touch www.onerussian.com
Yaroslav Halchenko www.ohloh.net/accounts/yarikoptic
More information about the Neurodebian-devel
mailing list