My Open Source Contributions June – November 2016

So much for my monthly blogging! Here’s what I have been up to in the Open Source world over the last 6 months.

Debian

  • Uploaded a new version of the debian-multimedia blends metapackages
  • Uploaded the latest abcmidi
  • Uploaded the latest node-process-nextick-args
  • Prepared version 1.0.2 of libdrumstick for experimental, as a first step for the transition. It was sponsored by James Cowgill.
  • Prepared a new node-inline-source-map package, which was sponsored by Gianfranco Costamagna.
  • Uploaded kmetronome to experimental as part of the libdrumstick transition.
  • Prepared a new node-js-yaml package, which was sponsored by Gianfranco Costamagna.
  • Uploaded version 4.2.4 of Gramps.
  • Prepared a new version of vmpk which I am going to adopt, as part of the libdrumstick transition. I tried splitting the documentation into a separate package, but this proved difficult, and in the end I missed the transition freeze deadline for Debian Stretch.
  • Prepared a backport of Gramps 4.2.4, which was sponsored by IOhannes m zmölnig as Gramps is new for jessie-backports.
  • Began a final push to get kosmtik packaged and into the NEW queue before the impending Debian freeze for Stretch. Unfortunately, many dependencies need updating, which also depend on packages not yet in Debian. Also pushed to finish all the new packages for node-tape, which someone else has decided to take responsibility for.
  • Uploaded node-cross-spawn-async to fix a Release Critical bug.
  • Prepared  a new node-chroma-js package,  but this is unfortunately blocked by several out of date & missing dependencies.
  • Prepared a new node-husl package, which was sponsored by Gianfranco Costamagna.
  • Prepared a new node-resumer package, which was sponsored by Gianfranco Costamagna.
  • Prepared a new node-object-inspect package, which was sponsored by Gianfranco Costamagna.
  • Removed node-string-decoder from the archive, as it was broken and turned out not to be needed anymore.
  • Uploaded a fix for node-inline-source-map which was failing tests. This turned out to be due to node-tap being upgraded to version 8.0.0. Jérémy Lal very quickly provided a fix in the form of a Pull Request upstream, so I was able to apply the same patch in Debian.

Ubuntu

  • Prepared a merge of the latest blends package from Debian in order to be able to merge the multimedia-blends package later. This was sponsored by Daniel Holbach.
  • Prepared an application to become an Ubuntu Contributing Developer. Unfortunately, this was later declined. I was completely unprepared for the Developer Membership Board meeting on IRC after my holiday. I had had no time to chase for endorsements from previous sponsors, and the application was not really clear about the fact that I was not actually applying for upload permission yet. No matter, I intend to apply again later once I have more evidence & support on my application page.
  • Added my blog to Planet Ubuntu, and this will hopefully be the first post that appears there.
  • Prepared a merge of the latest debian-multimedia blends meta-package package from Debian. In Ubuntu Studio, we have the multimedia-puredata package seeded so that we get all the latest Puredata packages in one go. This was sponsored by Michael Terry.
  • Prepared a backport of Ardour as part of the Ubuntu Studio plan to do regular backports. This is still waiting for sponsorship if there is anyone reading this that can help with that.
  • Did a tweak to the Ubuntu Studio seeds and prepared an update of the Ubuntu Studio meta-packages. However, Adam Conrad did the work anyway as part of his cross-flavour release work without noticing my bug & request for sponsorship. So I closed the bug.
  • Updated the Ubuntu Studio wiki to expand on the process for updating our seeds and meta-packages. Hopefully, this will help new contributors to get involved in this area in the future.
  • Took part in the testing and release of the Ubuntu Studio Trusty 14.04.5 point release.
  • Took part in the testing and release of the Ubuntu Studio Yakkety Beta 1 release.
  • Prepared a backport of Ansible but before I could chase up what to do about the fact that ansible-fireball was no longer part of the Ansible package, some one else did the backport without noticing my bug. So I closed the bug.
  • Prepared an update of the Ubuntu Studio meta-packages. This was sponsored by Jeremy Bicha.
  • Prepared an update to the ubuntustudio-default-settings package. This switched the Ubuntu Studio desktop theme to Numix-Blue, and reverted some commits to drop the ubuntustudio-lightdm-theme package fom the archive. This had caused quite a bit of controversy and discussion on IRC due to the transition being a little too close to the release date for Yakkety. This was sponsored by Iain Lane (Laney).
  • Prepared the Numix Blue update for the ubuntustudio-lightdm-theme package. This was also sponsored by Iain Lane (Laney). I should thank Krytarik here for the initial Numix Blue theme work here (on the lightdm theme & default settings packages).
  • Provided a patch for gfxboot-theme-ubuntu which has a bug which is regularly reported during ISO testing, because the “Try Ubuntu Studio without installing” option was not a translatable string and always appeared in English. Colin Watson merged this, so hopefully it will be translated by the time of the next release.
  • Took part in the testing and release of the Ubuntu Studio Yakkety 16.10 release.
  • After a hint from Jeremy Bicha, I prepared a patch that adds a desktop file for Imagemagick to the ubuntustudio-default-settings package. This will give us a working menu item in Ubuntu Studio whilst we wait for the bug to be fixed upstream in Debian. Next month I plan to finish the ubuntustudio-lightdm-theme, ubuntustudio-default-settings transition, including dropping ubuntustudio-lightdm-theme from the Ubuntu Studio seeds. I will include this fix at the same time.

Other

  • At other times when I have had a spare moment, I have been working on resurrecting my old Family History website. It was originally produced in my Windows XP days, and I was no longer able to edit it in Linux. I decided to convert it to Jekyll. First I had to extract the old HTML from where the website is hosted using the HTTrack Website Copier. Now, I am in the process of switching the structure to the standard Jekyll template approach. I will need to switch to a nice Jekyll based theme, as as the old theming was pretty complex. I pushed the code to my Github repository for safe keeping.

Plan for December

Debian

Before the 5th January 2017 Debian Stretch soft freeze I hope to:

Ubuntu

  • Add the Ubuntu Studio Manual Testsuite to the package tracker, and try to encourage some testing of the newest versions of our priority packages.
  • Finish the ubuntustudio-lightdm-theme, ubuntustudio-default-settings transition including an update to the ubuntustudio-meta packages.
  • Reapply to become a Contributing Developer.
  • Start working on an Ubuntu Studio package tracker website so that we can keep an eye on the status of the packages we are interested in.

Other

  • Continue working to convert my Family History website to Jekyll.
  • Try and resurrect my old Gammon one-name study Drupal website from a backup and push it to the new GoONS Website project.
Advertisements

Open Source Contributions – April & May 2016

Due to holidays in London, and planning next the next one, the 1604 Ubuntu Studio (Xenial) release, doing the documentation to become an Ubuntu Member (most of which I have separately blogged about), and a recent stretch of fantastic weather in Denmark, I have not been so productive in the last two months. But here is some of the stuff I managed to get done, or at least started on.

Ubuntu Studio:

  • Dropped the redundant ubuntustudio-sounds package from ubuntustudio-look package and left for Kaj to upload. Then submitted a removal bug.
  • Changed the Ubuntu Studio seeds to use the new Debian Multimedia puredata metapackage, instead of having to manually add new puredata packages.
  • After the Xenial release, prepared the package tracker ready for Yakkety appliaction testing.
  • Updated the Ubuntu Studio backports list with the priority packages that we want to keep the LTS releases up to date with.
  • Improved the Ubuntu Studio backports wiki so that others can join in to help with the work.
  • Started the process to backport Ardour to Xenial and Trusty. Had to change the packaging for the Trusty backport, due to the automatic debug package migration options not being recognised in Trusty.

Debian:

  • Uploaded the latest Gramps release (4.2.3), including providing a patch to update the appdata.xml file to the latest specification.
  • Continued helping to mentor Lucio Carreras with trying to package the sayonara media player application for the Debian Multimedia Team.
  • Sebastian Ramacher was working on an upload of the latest idjc package which needed the latest version of libshout-idjc. So I uploaded this to help out.
  • The was discussion (#825186) about which tasks from the Debian Multimedia blend to include in a new option in the Debian Installer. Hopefully Debian Stretch will be the first release where users can select which blends to install as part of the normal installation process.

My Debian contributions – March 2016

Due to  a lot of work in Ubuntu in the run up to the 1604 release, I have not been so busy in Debian this last month. But there was a bit:

My Debian work for the last year

Unbelievable! It has been nearly a year since my last post. Lets try and rectify that tardiness. First I will try and sum up all my Debian work over the last year.

  • Javascript Team
    • For the Open Layers 3 effort in the Debian GIS Team, I helped by packaging, Bluebird dependencies, Browserify dependencies & node-tape dependencies.
    • I also began packaging dependencies for Mapbox Studio.
    • Here is a mostly complete list of the node packages I packaged or adopted for the above work:
      • node-cross-spawn
      • node-cli-table
      • node-convert-source-map
      • node-coffeeify
      • node-inline-source-map
      • node-minimist
      • node-os-tmpdir
      • node-tmp
      • node-typedarray
      • node-cross-spawn-async
      • node-process-nextick-args
      • node-util-deprecate
      • node-string-decoder
      • node-isarray
      • node-core-util-is
      • node-concat-stream
      • node-isstream
  • Collab Maint
    • Gramps upgraded to 4.1.2, then 4.1.3, 4.2.0, 4.2.1, and 4.2.2
      • I also wrote my first autopkgtest of the Gramps command line options
    • Abcmidi was updated several times
    • Created a new goocanvas-2.0 package
    • Adopted goocanvas
    • Packaged dominate (this is a new dependency for Creepy in the GIS Team)
  • GIS Team
    • Packaged netcdf-python
    • Updated osmgpsmap
    • Helped with netcdf transition by testing reverse dependencies
    • Helped package netcdf-cxx-legacy, netcdf-cxx & netcdf-fortran
    • Worked on creepy here and there (mainly testing patches for Petter)
    • Started packaging node-kosmtik dependencies (did node-leaflet-hash & node-leaflet-formbuilder)
    • Updated GIS Policy with a section on how to update the policy
    • Updated GIS Policy with a tidy up of the section on setting up a build environment
  • Multimedia Team
    • Maintaining the Multimedia Blends tasks
    • Reviewed new ntk package
    • Reviewed new qxgedit package
    • Tested, investgated upstream, and then removed gmtk, gnome-mplayer & gecko-mediaplayer from the archive as they were not in good shape and unmaintained upstream.
    • Moved pmidi from experimental to unstable
    • Updated multimedia-blends metapackage
    • Updated sfarklib
    • Created new photography, animation, broadcast metapackages, and renamed the timestretching one to audio-utilities
    • Took over the autotalent package from Alessio
  • Mentors
    • Reviewed the packaging for python-instagram
  • Python Modules Team
    • Did 4 NMUs for the python-support removal effort
    • Team Upload of tweepy to fix RC bug

Gramps – Python 3 encoding bug and 2 parallel release freezes

Gramps project

Gramps project

The Gramps project had recently received a lot of reports from users of the new Python 3 version of Gramps (4.1.1) that after they upgraded, Gramps did not function and there were lots of error messages. This was serious if they had not taken a backup before the upgrade, because the new database was not backwards compatible. This turned out to be because in the switch to Python 3, as part of the database upgrade some strings were being encoded in ASCII instead of Unicode. This was a problem for those non-English languages with special characters.

Nick produced a fix for this, and then Tim added a function that fixed the problem also for people that had already converted to 4.1.1 of Gramps. But this still left the problem that Debian and Ubuntu users were going very soon upgrade to 4.1.1 without the fix, and both Debian and Ubuntu are in freeze mode before they issue their next release.

With the help of Tim & Paul from the Gramps project, I was able to patch the version of Gramps (4.1.1) in Debian, and convince the Release Team to unblock the Debian freeze for this fix so that it would be part of the soon to be released Jessie. Then I also submitted a bug, and got this version of Gramps synced to Ubuntu Vivid (15.04).

So hopefully, things will go much smoother for Gramps users upgrading to the new Debian and Ubuntu in the next few months.

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.

I am now a Debian Maintainer

Well actually, I became a Debian Maintainer quite a while ago (12th November 2014 in fact). My first upload without sponsorship was to fix a release critical bug on the Gramps package. This was the 13th December 2014.

Many thanks to my sponsors: Andreas Tille, IOhannes Zmölnig, and Tobias Frost, and the many helpers on Debian Mentors, that supported me along the way.

For those that don’t know, being a Debian Maintainer allows you to upload certain packages of software to the Debian repository. It is a step along the way to becoming a fully fledged Debian Developer. More information can be found here:

Debian Maintainer