At the end of last week, Sébastien and Michael were discussing some gnome-session thing and they wondered if there was a patch in openSUSE to make it work. The bad thing is that they couldn't look by themselves without creating an account on the build service, and so they asked me. It reminded me of a time where I was looking at the patches in all distributions for the modules I maintained, and I was quite annoyed by the same problem. And, well, it sounded so easy I couldn't resist: I hacked a quick workaround.

It turns out you can list the content of a source package and download the files without an account; however it's at the moment not possible to get the list of source packages. This last point is quite a blocker if you want to easily browse the sources. So I just wrote a small script that periodically exports the list of source packages for the released distributions and Factory, and voilà! You can now browse the packages and download all files, including the most interesting part: patches.

There's a small bug in the build service -- it does't send the MIME type, I think, so you can't directly view the files in the browser. Also, I didn't make this work with all the projects in the build service but only a subset. So you don't get, for example, the latest work we're doing in the GNOME team (since it's in GNOME:Factory). But still, better than nothing, isn't it? Everybody will now be able to see the weird patches we have, and this can only be a good thing.

Note that in the future, the build service content will probably be readable without an account, so this will make this hack irrelevant (which is a good thing!). Also you'll have noticed the tmp in the URL of the server; did I mention it was a hack? ;-) Oh, I nearly forgot: if you want to run some script on this data, contact me, we'll find a better way than just parsing those webpages.

Update: oh, well, I decided to add GNOME:Factory since it's really where people should look for the GNOME stuff. I had to play a bit around to find the right way to handle this because the packages are links to the ones in openSUSE:Factory, but I got it. If someone wants me to add another project, let me know, it's really trivial.