[Neurodebian-devel] Debian packages for Stimfit

Christoph Schmidt-Hieber c.schmidt-hieber at ucl.ac.uk
Sat Feb 5 20:39:12 UTC 2011


Dear Yaroslav,

there's been some progress with the packaging:

On Mon, 31 Jan 2011, Yaroslav Halchenko wrote:
> * 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

Fixed

> * 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

Not implemented yet.

> * better not to ship .la files at all
>  http://wiki.debian.org/ReleaseGoals/LAFileRemoval

Fixed.

> * 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).

These warnings are still present after adding -fPIC. Supposedly because _stf.so is only loaded by Python at runtime?

> * 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

Fixed, but haven't switched to debhelper 7 format yet.

>  - manpage... since you have some command line options -- it is better to provide such one

Added.

>  - 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)]

I've added the missing parts to debian/copyright.
The Axon Instruments/Molecular Devices code is still a problem. While most files mention:

"Permission is granted to freely to use, modify and copy the code in this file." (sic!)

this sentence is missing in a few other files. At best, they simply forgot to put it in. I'll try to get a reply from Molecular Devices (they've bought up Axon Instruments).

> * 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?

No, stimfit isn't using stfio. stfio is a standalone Python module for reading files, while Stimfit is a GUI program that happens to have an embedded Python shell. They're just using the same file reading library. I've added python-stfio to the Recommends for 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?

Shame on me, unit testing is pathetic at the moment. We'll try to add some more testing on the long run.

> * since stimfit ships python module, to be friendly to Debian python
>  guys, might be useful to add

No, there's no standalone stimfit Python module. _stf.so can only be imported from the embedded Python shell in a running stimfit application.

> * 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

Will do in the near future.


Thanks again for your review,

Christoph



More information about the Neurodebian-devel mailing list