Wednesday, 30 September 2009

Ubuntu Global Jam in Montreal, this weekend

There's really only a couple of hours left until our Global Jam event in Montreal kicks off: a truly awesome setup, that can be run thanks to the amazing help of komputes and the rooms gratiously granted to us by the ETS (École de Technologie Supérieure), GULL-ETS, and Clod Patry. Thanks all.

So this is my official invitation: are you an Ubuntu enthusiast in the region of Montreal? Are you interested in helping out fixing bugs, getting to know more about your favorite OS or even just getting to know what all this fuss with "Linux" and "Ubuntu" is about?

Then come join us at ÉTS, for this three-day event: we've got all kinds of really cool stuff planned, as well as interesting presentations on packaging, bug triage, Asterisk, to only name a few. I'll be presenting on a couple of subjects myself, such as sysadmin tools and helping out with coding.




Here's the deal:
  • École de technologie supérieure (http://www.etsmtl.ca/)

  • October 2 (16h to 23h), and 3-4 (12h to 18h),
  • 1100 rue Notre-Dame Ouest
  • Salles/Rooms A-1300 et A-1238
  • More information at https://wiki.ubuntu.com/QuebecTeam/GlobalJam2009
Everyone is welcome!

Tuesday, 8 September 2009

My Ubuntu development tools

This is another post about my work towards becoming MOTU.

I've been working a lot on various packages, such as network-manager, concordance, and more recently acct and acct-ng. On the way, you always get to know more, and following the spirit of open source, I've decided to share what I've learned.

Since I've started to do packaging work, I've been keeping various little configuration files around to tweak the behaviour of the various utilities we get to use daily. I've been keeping all those in a 'junk' bazaar repository, but it's getting much less like 'junk' and more like something actually usable, so I'm publishing it:

lp:~mathieu-tl/+junk/development-tools

It's a branch new branches that contains the very latest version of all the config I've been using, including some aliases I usually always have set on my systems. I will be keeping all the files up to date there from now on, so you will likely see things evolve over time.

Here's what I have in there:
  • A .pbuilderrc file: it allows me to specify DIST=karmic (or sid or whatever else) at the command line, and also makes use of mini-dinstall to quickly build packages and changes the packages available when running builds. As such, the following command will build a package for karmic:
sudo DIST=karmic pbuild build glittering_new_package.dsc

Just as this line will build the same package for jaunty (provided all is well):

sudo DIST=jaunty pbuild build glittering_new_package.dsc
  • .mini-dinstall.conf : The second part to the above. Specifies some rules for mini-dinstall (requires creating /var/cache/archive...)
  • .dput.cf has the last part of this stuff, or where to put packages, and how to let mini-dinstall know about them
  • .dput.cf also knows how to push source packages to PPAs, as well as to mentors.debian.org.
  • .quiltrc : to make pretty patches. Then you can make them follow DEP3 too.
  • .selected_editor : because I just really love vim.
  • .bazaar/builddeb.conf : tweaks to directories used by bzr bd.
  • .ssh/config : very nice and time-saving tweaks to SSH.
  • .shell* files : they contain additional aliases, shell functions, and variables that are either extremely useful (at least to me) or just plain mandatory for anyone serious in doing packaging, such as DEBFULLNAME, DEBEMAIL, or BZR_EMAIL.
Oh yeah, and you might want to change those last three variables to your own values in .shell_custom_vars... :)

All that includes a quick README file, but essentially it's a matter of dropping the files in your home directory and logging in and out, or closing and reopening a terminal. All the shell stuff works by including .shell_custom_start somewhere in your profile.

If you find stuff that you think is totally wrong or needs more work, please let me know. There is still a lot of room for improvement.