Abcmidi and the Mayhem Bugs

When I managed to adopt the abcmidi package in Debian a while back, I had contacted Seymour Shlien (the upstream maintainer) about the four Mayhem bugs (here’s an example of one of them). Unfortunately, neither Seymour or I at the time could work out what was going on.

Although the Mayhem Team had provided a script that always confirmed the crash when a certain invalid command option was passed to the abcmidi commands, the core dump provided was from an i386 (32 bit) processor, and I am running an AMD 64 bit processor. This meant that gdb did not give a traceback at all, even when I went to the effort of downloading the source code and building the package again without stripping the debugging symbols.

Recently, I noticed that Seymour had released a new version of abcmidi, and I decided to tackle the problems again whilst packaging this new version. To make things easier for me, I added a -dbg package to abcmidi so that the debugging symbols would be available for gdb to provide a useful backtrace.

But even with this, I found that gdb was not dumping the core when the script was run to produce the crash. So I learnt a little bit more about debugging. Why was there no dump of the core? Running $ ulimit -c gave the output “0”, which meant – no core-dump! Following the advice on this very useful website (linux core dumps), I set things up so that the above command gave the output “unlimited”. Normally it is advisable that you put a limit on the core dumps to avoid your machine’s hard disk filling up, but I was doing this on an expendable Virtual Machine.

This time when I ran the script, the core was dumped! So when I loaded the core-dump into gdb with $ gdb usr/bin/abcmatch core, I was able to: > set logging on, then type > bt full, and > quit, and found a text file with the full backtrace that I emailed to Seymour for each binary command that had the bug.

Very quickly, Seymour fixed the bugs and released a new version. I packaged it straight away and Tobias Frost sponsored it. The package is still waiting in the NEW queue because of the new -dbg package, but hopefully it will be released into experimental soon and the bugs will be automatically closed.

FSCONS, the Debian Freeze, and becoming a DM

Wow – it has been a while since my last post. I must have been busy! So here is a summary of what Debian work I have been doing over the last few weeks.

Adopting the abcmidi package had been on my to-do list for a long time. I had a little trouble fixing the upstream makefile so that the recommended hardening options could be enabled, but eventually I cracked it and did a request for sponsorship. After returning from a short holiday in Poland, I found that James Cowgill had done a pretty thorough review of the package, and that I had quite a few things to fix. He also pointed out that a new release had been made since I submitted the RFS. So the first step was to import the latest version, and then to produce the missing manual page for abcmatch.

Then I was distracted by the latest Gramps release (4.1.1) which fixed a few bugs, and that I wanted to get it into Jessie before the Freeze (which was only a 2 days away).  Thankfully IOhannes was ready and sponsored its upload in time.

The next day I found that Tobias Frost had spotted abcmidi, and kindly uploaded it (but missed Jame’s review). So then the rush was on to fix the other major problem with abcmidi, which was the failing clean target. I got myself in a bit of a muddle in the rush to fix it, but Tobias was helped out and we got there. So now I am the new maintainer for abcmidi!

Then I could breathe a sigh of relief, because Jessie was frozen, and only Release Critical bug fixes will be allowed in.

The next weekend I packed my bags (and my family) off to Göteborg, Sweden for FSCONS. This was my first Free Software conference, and I was a little nervous at first. After attending a few very interesting presentations, I went to the Debian DIY room and introduced myself to Per Andersson. Per has been doing an excellent job of trying to forge a Debian Community in the Nordic Region. On the Saturday evening, there was a Key Signing party and I collected many keys, including several Debian Developers like Per. This is a necessary part of becoming a Debian Maintainer. Per gave an excellent run down on the Debian Junior Blend. As my son uses Dou Dou Linux on his computer sometimes (which is a very similar concept – and based on Debian), I made a mental note to help out at sometime in the future. Unfortunately I had to leave before the end, but on the last day Per chaired a session on how to move forward with the Nordic Community idea. There were a lot of positive vibes about the idea, and I hope it takes off.

When I got home, I signed all the keys I had received and uploaded all the signatures sent to me over the next week or so. Once I had enough signatures, I was able to apply to be a Debian Maintainer. Andreas Tille and IOhannes Zmölnig supported the application with some very kind words, and eventually the application was approved. My key is now in the Debian Maintainers keyring, and I am officially a Debian Maintainer – yey!