Posts Tagged ‘JHBuild’

I’m not afraid of people using JHBuild

Wednesday, July 15th, 2009

Just a quick blog to point you at the external dependencies branch of JHBuild i’ve been working on.

The external deps branch aims to do 2 things:

  • Don’t jhbuild any modules that are already system installed
  • Add a new command to jhbuild to install system packages so they don’t need to be jhbuilded

It pretty much works, it needs massaging into shape to merge into master. Then we need to collect some meta-data:

  • Minimum versions. How do we know if the system installed glib is new enough? I added a minimum=”" annotation to the dependency information we already have.
  • Package names. Right now it’s a bit difficult to map jhbuild module names to package names. I’ve added aliases files for now, and some crude python to try and infer the aliases for Debian. Better ideas welcome.

I also need to get round to a PackageKit backend so it supports more than Debian/Ubuntu :]

If you want a jhbuild where ‘jhbuild build gedit’ only builds the least amount of stuff, help me :]

JHBuild and DVCS

Thursday, December 11th, 2008

A while ago I opened a bug asking to make it easier to use bzr-mirror.gnome.org with JHBuild. I proposed a patch which still needed some love, but wasn’t really sure how to finish it. It added a flag so you can say, “if there is a mirror of this for {bzr,git} users, use it”. Recently, thanks to zeenix pestering, I finished it. Of course he quickly identified some issues, which led to changes to the JHBuild code for svn, git and bzr. Among other things, SVN finally got tag support, and has a more consistent decision making path. And JHBuild-controlled-Git can handle branches a lot nicer now.

We really need to start cleaning the modulesets – one of the biggest problems we had is that the properties are getting misused. “../branches/foobar” is not a module, its part of a path! This is the route to pain, misery and suffering! As I find time I hope to clean this up, but for now the JHBuild mirror seems to be working.

To start using it, just set mirror_policy to “bzr” or “git” in your .jhbuildrc. You probably want a clean slate for this – it won’t doing anything clever in terms of taking over existing SVN checkouts. Another option is

module_mirror_policy = {
  "conduit": "bzr",
  "foobar": "git,
}

I hope to get JHBuild to automate git-svn a little here too (and automatically git-svn init) where appropriate.

XFCE4 in JHBuild

Sunday, February 17th, 2008

Not one to discriminate against the major Linux desktop suites, I’ve created a very basic XFCE 4.4 moduleset. As with the KDE4 moduleset, the dependencies aren’t perfect – I just added them until “jhbuild build xfce4″ worked. I’ll probably correct the dependencies some more and set it up to “recommend” that you build against the same GTK as GNOME 2.22 at some point.

The big thing XFCE has over KDE in JHBuild? If i just want to do some work with orage, I can “jhbuild build orage” and only get the bits of XFCE i need to use orage. With KDE, their module layout may render this impossible without some ugly hackery :-(

KDE4 in JHBuild

Saturday, February 16th, 2008

A while ago I added CMake support to JHBuild. The main reason for that was so that I could have a JHBuild moduleset for SynCE and Conduit that pulled in OpenSync if needed. A bonus was that, potentially, I could build KDE4, or parts of it, inside a JHBuild instance.

That day has come… Last night I hacked on a moduleset for KDE 4.0.1 and successfully built everything and then ran KHangman and Kopete with jhbuild run. You can get the moduleset for yourself here. The JHBuild config I use is here.When you have both of these you can just:

jhbuild -f ~/.kbuildrc build kde4

And everything will be built for you. (Don’t forget to checkout the KDE4 instructions for dependencies…)

Now i’m going to look at making a KDE4 SVN moduleset, with the power to do jhbuild build khangman instead of having to build the whole of kdegames… From the layout of their SVN, this looks like it will be easier said than done and will probably involve evil hacks :-(

JHBuild and Debian

Wednesday, December 12th, 2007

So mysteriously around the same time as John is working on JHBuild for Windows, i’ve set my sights on something a little easier. There is a variant of JHBuild for Debian users wanting packages of SVN versions called JHDebuild. (If you search for it now, you’ll find about twice as much because Google has indexed my tweets and launchpad entries).

I spent a week fighting with JHBuild. It was quite annoying, and I ended up making a script to set up a chroot that I could guarantee /would/compile. But just as I was finishing that I found out about the stuff that Ken was working on. After drooling a little while I decided I wanted to get a few things out of my Debian development environment. I want to be able to easily get a .deb of any GNOME project. And I want to be able to get debs of the whole suite. JHDebuild seemed to fit my needs. Unfortunately its proving more difficult to get going than JHBuild :-(

So far my patches have been for properties that seem to be missing for some of the repositories and their branch classes. I patched the reprepro support to support more archs. At the moment i’m just trying to get my head around the “get debian/ folder” business – i think i’ve found some duplicate code. Then its back to figuring out why so many packages won’t build. Right now, I think I won’t be able to proceed until I resolve the make dist GNOME Goal…

I’ve set up a branch on launchpad to hold my changes for now, with the hope of pushing most, if not all, back upstream when i’ve gotten things working a bit more.