Sunday 22 May 2011

Hobbyists

To package for Debian is not difficult. It is just ... different. And once learned, that skill is ubiquitously applicable. Quite some bits that contribute to the motivation to support Debian Med in the first place is to get this kind of software out to the younger ones or just anyone seeking some opportunity to contribute to computational biology, medical informatics or clinical research in some way. This may have some very tangible outcomes, e.g. when you hear that the local doctor cannot read the DVD with images from a PET-CT then this can now be fixed for the next visit. Open Source software definitely can change the world a bit. And the packaging in Debian Med already today helps bringing the software into University Clinics world-wide and to those local doctors that are directly supported by Sebastian and Karsten.

So, if you are out there with an interest in packaging the one or other bit, just say hello on the Debian Med mailing list, please. If English does not come sufficiently easy to you then do not be afraid. At least European languages are well covered and we might find a Debian developer outside the Debian Med community for you to help in your mother tongue.

To not only read the PET-CT data but also deeply impress your doctor, currently there is help needed for a proper packaging of
and for the bioinformatics side of Debian Med, a tricky beast to package (one would start with something that works before rendering is perfect) but nonetheless important is The task pages (offline for maintenance while I type) of Debian Med show some entries in yellow (need help) and red (missing). Enough to do for everyone.

Sunday 15 May 2011

Who's supporting what ... Debian, Ubuntu, and mutual contributions to Debian Med

A basic idea behind the concept of Blends with Debian is to bring people together that happen to be interested in the same software - users and developers alike ... and to help users developing into developers when interested. Packages are commonly community maintained. When there is some issue spotted with a particular package, it is natural to everyone to fix it when the fix is free of side-effects and easier than writing an email to the regular maintainer. Or when one feels nice. Or when one is the maintainer.

To me, this very much summarises what Debian Med's support is about: once informed about an issue you fix it and/or inform the upstream developers about it. Different people are good at different kind of packages and different kind of problems and then: not everyone is interested in every bug, not everyone is having sufficient time available. So, we all complement each other rather nicely. No guarantees for anything, but trust in the individuals and the community to care. In contrast to the understanding of the term support in a commercial environment, we do not need to improve the packages beyond what upstream has developed. But when we do, then those changes are sent to upstream for an inclusion with the next version to profit everyone, i.e. also Windows or MacOS X users. For our scientific packages such a zero delta to upstream principle is particularly important to remain compatible e.g. with the bioinformatics community at large that may use the same version of a particular tool without our contributions.

Can we also support Ubuntu? Quite a few Debian Developers, Debian Maintainers, package curators and upstream developers are particularly happy to contribute to Debian Med because of Ubuntu's large user base. For them, getting the package into Debian is the way to get packages into Ubuntu. For software that is compatible to the Debian Free Software Guidelines software, the transition from Debian to Ubuntu is just smooth. And concerning support, any problems noticed for any of the packages in Debian Med, which are all on the periphery of the distribution, shall be fixed equally (i.e. no more than once) between the distros. The users and developers of those downstream distributions to Debian then help in spotting things earlier. These thoughts and more led to the initiation of Utnubu (ubuntU spelled backwards) and more recently the Debian Exchange projects. In my personal universe, I always felt Debian Med to be a couple of years ahead of that development. After all, we have subversion and git repositories to maintain our packages. And everyone can contribute to those packaging efforts. And we have a series of developers on Ubuntu who are actively contributing to it.

For users of Debian Med who are not working with the very latest version of their distro, like with oldstable (lenny) or stable (squeeze), 10.04 (lucid) or 10.10 (maverick), our packaging has some difficulties to reach them. They just won't see the recent submissions to the archive. What is not much of an issue for the core functionalities of a distribution, for the scientific edge this may be a problem. There are multiple answers to this:
  • as a user: force installation (with --force) and hope for compatibility with the libraries or compile packages yourself, which is easy:
    • add deb-src of unstable to the sources.list
    • say apt-get source --build packagename
    • dpkg -i *.deb
  • as packagers: organise repositories also for older versions of the distributions
For Debian and Ubuntu this are the backports. But only few individuals have upload permissions to those separate repositories. For Ubuntu, and currently discussed also for Debian, there are also Personal Package Archives, in short PPA. Everybody, and any group of everybodies, can have such a repository under their own control. The upload to an older release commonly just means to specify that name in debian/changelog and then create a source-only package by adding the flag "-S" to dpkg-buildpackage. This saves the maintainer to invest all the build time and brings package maintenance down to netbooks and mobile phones so one can do it while waiting for/in the bus :)

Still, to render packages available to older distributions remains manual labour. There is no official support for those elderly distros, be they from Debian or from Ubuntu. To help the situation just a bit, and to grant access to Ubuntu users for those packages that were sent to the experimental section of Debian and/or help overcome the limitation during the freeze of release, a few weeks ago a first Debian Med PPA was created. Let's see what this brings over time.

Some more technical description of the upload from Debian to the PPA: Descriptions on how to upload are linked to the launchpad site. Just, the friendly abbreviations don't work for Debian. So one goes the manual way. The launchpad ftp server (if you are using FTP) does not report the current working directory but "OK"s every cd you make. This is somewhat irritating when using a client that changes to the pub directory upon login. The upload will then fail.
One should rather adopt the typical tools to upload like dput or dupload. The destination (at least for Debian users) needs to be specified manually e.g. for dput as follows:
cat >> ~/.dput.cf <<EOPUT
[debianmedppa]
incoming = ~debian-med/ppa/ubuntu/
fqdn = ppa.launchpad.net
login = anonymous
method = ftp
allow_unsigned_uploads = 0
EOPUT
After locally building the source (or complete) package and signing it, this can then be uploaded with dput debianmedppa packagename*.changes. I cannot say that I have already completely understood every little aspect of launchpad, e.g. I get very much confused about how to distinguish Eucalyptus from their euca2ools. And I am very bad at Bazaar (their version control system). But I like what I have understood and hope they soon start to also support versions of Debian for their PPA and an auto-porting across releases. Debian is now planning for a Debian variant of PPAs. It is really high time for this and should possibly even substitute the experimental section IMHO. If they can afford it and are well advised, then they will also support some downstream distros with it and attempt auto-backports. We'll see.

Tuesday 3 May 2011

Gcc 4.6 transition (Posted by Andreas Tille)

Hello,
from gcc 4.4.x with a very short introduction to 4.5.x Debian is now leaping ahead to 4.6.x with several new features. Already coming with 4.5 was the link time optimisation and there are now 128 bit floats. This shall mean something to the molecular dynamics community and maybe others on this list. We also see many more and better optimisations, so everyone will profit this already very present switch to 4.6.x in sid. Phoronix kindly did a benchmark on HMMER with Pfam and MAFFT.
The downside is ... some package builds will break. Thanks to Lucas Nussbaum's tireless QA work the whole Debian archive is rebuilded regularly - so we just know which packages are affected. However, those FTBFS (fails to build from source) cause some work on our side because we need to find out the reason why some package might fail. If we do not fix it the package in question will not reach the next stable release because those issues are regarded "serious" in Debian.
Most of the time, the fixes are rather straight forward. Like, e.g. by
#including <cstddef>
or similar. Please drop comments to this post with whatever strange issue you may have run into. Particularly funny e.g. is the building of Embassy packages for which configure reports a broken gcc. After all, the change to 4.6 is nice to
  • send another email to upstream with a patch for them to fix the failure
  • and while at it, maybe fix something that you wanted to have fixed/modded/... for long, just never got around to it
  • report to upstream (and this blog maybe) about performance improvements experienced with the new gcc
  • just enjoy it silently
Gcc 4.6 is said not to ship with Ubuntu 11.04, which is unfortunate for Ubuntu but should not hamper the transition of packages. In general those gcc transitions are just enforcing stricter standard compliance of the code and the changes which need to be done in packaging will most probably not break a build with gcc 4.5.
When handling such build failures for your specific package in Debian Med please keep two things in mind:

  1. Helping upstream in enhancing their code makes them happy to cooperate with Debian Med and they will probably suggest their users Debian as default distribution if they regard us as competent and helpful partners

  2. The role of Debian Med inside Debian will be strengthened if we are quick in fixing our issues. Please keep in mind that the constant growth of Debian always triggers suggestions to drop packages which are not used by many users to keep the maintenance effort lower. By default Debian Med has a small user base (compared to web browsers or office suites etc.) and thus we should really make sure that everybody in Debian knows for sure that the Debian Med packaging team is usually quick in fixing their issues and do not create extra work for other people.