Saturday, 29 June 2013

How to build Ubuntu packages from source the easy way

One of the biggest hurdles new contributors to Ubuntu face is figuring out how to build the package they want to work on. While the Autotools-based build system used by the majority of the packages is effective, it isn't exactly welcoming to people who haven't spent years working with it.

I've written a guide to help new contributors get started with building our packages. It;s really quite simple once you know what tools to use, and the biggest problem I faced when I started working with the source code was knowing there was an easier way than the configure-make-make-install routine that would inevitably be interrupted by numerous esoteric error messages.

The guide can be found here, and will work with any Gnome packages, so that includes Rhythmbox, Shotwell, Nautilus, Gedit, etc.

Any and all feedback is welcome.

Thursday, 21 February 2013

Not got a Global Jam event to attend? Come jam on IRC

The Ubuntu Global Jam is am amazing opportunity to meet other Ubuntu supporters in your local area and sit down together and hack away on one of the many areas of Ubuntu development. However, not everyone is able to attend such an event in person, either because they live too far away from any organised events, will be on the road during the weekend, or because some disorganised cretin didn't bother thinking of organising one until the last minute. That cretin isn't me at all. Nope. I'm on the road that weekend, on business or something.

While the spirit of the Global Jam is to meet and work in person, it does't have to be that way. Over the weekend of the Jam, I'll be hanging out on Freenode IRC, specifically #ubuntu-bugs and #ubuntu-desktop, to work on the tasks that would have been done in person had I, um, that other person, the cretin, been a little more organised.

Bug triage

At the time of writing, the following numbers were pulled off of the Launchpad pages for some of Ubuntu's core apps:

Package New Bugs Confirmed Bugs Incomplete Bugs
Rhythmbox 234 225 44
Nautilus 285 216 60
Empathy 8 78 34
Firefox 1054 812 36
Gedit 62 41 4
LibreOffice 230 143 75
Totem 5 86 97

But bug triaging doesn't start and end with what's shipped on the CD. There are a ton of great apps in the Software Centre that need some love just as much as the core ones do. A few of my personal favourites are:

Package New Bugs Confirmed Bugs Incomplete Bugs
Miro 25 13 1
Chromium 2 0 0
VLC 2 6 6
Calibre 47 19 0

These are just a few of my favourite apps. If you have your own favourite, then by all means hack away on the bug backlog for it. If you need help finding the Launchpad page for it, come into #ubuntu-bugs on Freenode and ask. There are lots of lovely people in there who'll be happy to help you out.

What should you do with these bugs?
  • If a bug is marked as 'New', that means no-one has gotten round to looking at it yet. Why don't you have a go. New bugs need to be moved to either Invalid, Incomplete or Confirmed. Check out this article for more information on what each of these mean.
  • Confirmed bugs need to be moved to Triaged, though if a long time as gone past since it was reported it may have been already fixed elsewhere, in which case it should be moved to Invalid.
  • Incomplete need to be moved to either Invalid, Confirmed or Triaged.
You see all those numbers I've listed above for the 'New Bugs', 'Confirmed Bugs' and 'Incomplete Bugs'? Our goal is to reduce all of them to zero because every bug needs to be triaged. The Bug Squad has a great wiki page on what each of the statuses mean. Read it, understand it, drop into #ubuntu-bugs and help us out.


The general health of the Ubuntu Desktop is maintained by taking new releases of software from upstream and packaging it in Ubuntu. This process usually happens automatically, but in cases where the Ubuntu version has been patched, manual intervention is required.

The desktop team maintain several lists of things that need done, notably:
The Ubuntu Packaging Guide is a great reference that you should keep close by you at all times. If you want to help out with this, then read through those first two resources, and make sure you know where to find the third, and hop into #ubuntu-desktop on Freenode and lend a hand. If you have any questions, then just ask them in there and someone will help you out.

You should never underestimate the impact a single person who gives just an hour or two of their time can have on the overall quality of Ubuntu, because in reality, you're not going to be the only one doing so. If 1000 people all give just an hour to bug triaging or packaging, that's 1000 hours of work going into Ubuntu, and that's freaking enormous. Dropping into IRC and picking up a couple of tasks for an hour can make a world of difference.

A small request for bug triagers

Anyone who is subscribed to Planet Ubuntu will undoubtedly know that I lead the One Hundred Paper Cuts project, a project to identify and fix the minor annoyances that trouble the users of Ubuntu's core apps. One of the things we need in order to sustain our work is a constant stream of new bug reports to look at, approximately 50-100 per month if we're to have enough to work on in the next cycle.

The Global Jam is coming up in just over a week, and if you decide to work on bug triaging then, or are just working on bug triaging in general, then it would be fantastic if you could forward any potential paper cuts to us. You can find out how to do that here.

But how to you know if a bug is possibly a paper cut? There are a few guidelines you can use to figure that out:
  • Is it in a graphical application distributed on the Ubuntu Desktop CD?
  • Is it reproducible?
  • Is the average likely to user encounter it on a regular basis?
  • Is it annoying?
  • Does it appear easy to fix?
If is satisfies all of these point, then send it out way. If you're not sure, then send it anyway and we'll deal with it. These are guidelines more than actual rules and in the end, it all comes down to common sense. If you want to know more, or have any questions, then you can contact the team on our Launchpad mailing list.

Monday, 18 February 2013

Next meeting of the paper cuts team will be tomorrow

The paper cuts team will be meeting tomorrow (Tuesday 19th February 2013) in #ubuntu-meeting on Freenode at 1900 UTC. See here for a translation of that time into your favourite timezone.

This is a great opportunity for anyone who's been interested in getting involved with Ubuntu development, but for whatever reason hasn't gotten round to it, to dip their toes in. The paper cuts project covers many areas of Ubuntu development, from bug triaging to bug fixing, from packaging out patches to packaging our tools. We work other teams whenever our work takes us onto theirs, and we work with upstreams to fix the bugs in their packages that Ubuntu ships. Our tasks are small and relatively simple, perfect for new contributors who don't wan't to get in over their heads too soon.

If you've got anything you'd like to discuss, then head over to the wiki page for the meeting and add it to the agenda. Once you've done that you should head over to the paper cuts mailing list and give us a heads up that you've done it so we can have a quick chat about it before the meeting - the more we discuss before the meeting, the more time we'll have in the meeting to talk about other things.

Come along tomorrow night and hang about in the chatroom. You don't even have to say anything if you don't want to. Just lurk and get a feel for how we do things. I'll be online afterwards so if you want to follow up on anything that came up in the meeting, or just ask me anything at all about the project, then just ping 'notgary' on Freenode (that's me btw :)).

Hoping to see some new faces (well usernames) there tomorrow.

Tuesday, 22 January 2013

Next paper cuts meeting this Thursday, regular meetings to happen on Tuesdays

Part of building a successful project, whether it's a business, a charity or an open source software endeavour, is making sure that your team members and contributors get together regularly and chat to each other about what they've been doing, what they want to do and what problems they're facing. One that note, One Hundred Paper Cuts will be having their next meeting on Thursday 24th January at 2000 UTC in #ubuntu-meeting on Freenode. Following that, regular meetings will take place in #ubuntu-meeting at 1900 UTC every Tuesday.

If you've been thinking about getting involved but haven't gotten round to it yet, then just drop by to say hi and let us know what you're interested in doing. Contributing to One Hundred Paper Cuts is probably the best way to improve the experience of the end user on Ubuntu.

Wednesday, 2 January 2013

Want to get involved with Ubuntu? Get involved with One Hundred Paper Cuts.

With all the cool stuff that's been released in Ubuntu over the past two cycles, and all the cool stuff that's going to come out, there's never been a better time to get involved with Ubuntu. But where do start?

Ubuntu is a huge project whose moving parts are beyond counting, so it can be hard to figure out where to go to start contributing to Ubuntu. One place you can start, and the best as far as I'm concerned :), is One Hundred Paper Cuts.

But what is One Hundred Paper Cuts? According to the wiki:
The One Hundred Paper Cuts project exists to work on the little annoyances in Ubuntu. These bugs are normally considered too low priority for the developers of the apps in question, who already have more than enough to work on, and so the One Hundred Paper Cuts project comes along and picks them up. In each release cycle, the project aims to fix 100 of these little bugs and in doing so, give Ubuntu a layer of polish that is not typically found in other Linux distros.

Paper Cuts? Meh. Unity's where all the cool kids are

The paper cut project is one of the ways that Ubuntu stands out from everything else that's out there. Unity may be getting all the attention (both good and bad), but it's only part of the experience the average Ubuntu user is going to have. Most people will only use to open an app and continue their work in that, and all the tacky Amazon adverts in the world can't help them have a better experience in Rhythmbox or Nautilus, and that's where we come in.

One Hundred Paper Cuts is where you can have the greatest impact on the day-to-day experience of the average user. If there's a UI flaw in Rhythmbox that stops them being able to search their music collection just the way they want, that's going to annoy them every time they open the app, and it'll do it way more than a crash will because they know it's coming, every single time they start it up. If you want to make a real difference to the way people use Ubuntu, then join One Hundred Paper Cuts. All you have to do is fix a single bug to make a lot of peoples lives much easier.

I don't know how to program. What can I possibly do?

The majority of the work is actually done by non-programmers, and that's true of Ubuntu as a whole. If you don't know how to program but want to get involved with the paper cuts project, you can:
  • Fire up your favourite app that ships by default in Ubuntu and tell us everything about it that annoys you. If you don't know how to spot a paper cut, check this out, and if you want to know how to report one when you find it, look at this.
  • Track down the Launchpad page for your favourite app and look through the existing bug reports to see if there are any paper cuts hiding in there. If you find them, then report them to us.
  • Help lighten our load a little bit by chipping away at our backlog of new bugs. These need to be marked as confirmed, incomplete or invalid. If they're not paper cuts, at least make sure it gets forwarded to the right project.
  • Help lighten our load a little bit more and by chipping away at our backlog of confirmed bugs. Guidelines on how and when to change the status of a paper cut can be found here.

I do know how to program. What can I possibly do?

If you know how to program C/GTK+, or are at least willing to learn on your feet, then there'e no shortage of things to do. Pick a bug you like the sound of and hack away at it. If you need any help, then send a call out to the team mailing list and we'll give you a hand.

Happy holidays and happy hacking :)

Thursday, 20 December 2012

How can I contribute to the One Hundred Paper Cuts project

Do you want to get involved in the paper cuts project but don't know where to start? Are you a programmer? Are you not a programmer? If you answered yes to any of these questions, then we've got a place for you.

Have a look at this and see if any of these roles take your fancy. If you find something, then join the Paper Cut Ninja team on Launchpad, subscribe to the mailing list, introduce yourself and left us know what you're interested in doing. If you've got any questions at all, we'll be happy to help you out.