Rewriting update-alternatives in C

Among the goals listed in dpkg’s roadmap, there’s the C rewrite of the remaining perl scripts provided by the dpkg binary package (dpkg-dev is not concerned, it will remain a collection of perl scripts). Of the remaining scripts, update-alternatives was the largest piece of code (~1100 lines of perl) and I started converting it to C a few weeks ago (based on preliminary work of Guillem). It’s now 2200 lines of C…

Thanks to the relatively extensive test-suite that I wrote last year, I’m relatively confident that this new update-alternatives won’t break your system. That said, it still needs some real-life usage to ensure everything is really ok (and users actively trying to break it are even better). Thus I would be glad if you could try it out ( binary package for i386 or .dsc) and report back to debian-dpkg@lists.debian.org.

The rewrite of the 2 other remaining scripts is almost completed in a branch of Guillem. Hopefully this can be our last project completed in time for Squeeze as far as dpkg goes. It would be a great achievement for people that would like to use dpkg in embedded environments and avoid perl due to its size.

Note: nobody sponsored that work. But it’s not too late :-)

Additional Resources

Liberate the Debian Administrator's Handbook

The liberation campaign for the Debian Administrator's Handbook is running. This project is very important for me. If you appreciate my articles and what I do for Debian, I invite you to participate. Here's the current progress for the liberation of the book:

Click here and if you contribute at least 10 EUR, you'll get a copy of the ebook as soon as it's available.

Comments

  1. funktree says:

    haskell

  2. funktree says:

    hey, why don’t switch to haskell? it can describe complex operations and dataflows very succinctly, and it compiles to native code. a suggestion.

  3. Buxy says:

    @funktree: first the rewrite is already done so I won’t redo it a second time. Then I never used haskell and dpkg is only C+perl+sh and I don’t see a good reason to introduce another language in the mix.

  4. Ewoud Kohl van Wijngaarden says:

    Your dpkg roadmap link is broken. The M in roadmap should be uppercase as well.

  5. Buxy says:

    @Ewoud: thanks, fixed the link.

Trackbacks

  1. [...] part and the great news: dpkg 1.15.8 (to be uploaded soon) will no longer need perl! After my changes to rewrite update-alternatives in C, Guillem recently pushed the rewrite of dpkg-divert/mksplit in C. Please test it out (binary [...]