Inspired by André’s recent post I recalled that many people have gave me bad feedback about jhbuild. So I thought I might share some ideas and tips, here we go:
- Don’t use the jhbuild shipped by your distribution, use git master
- Only build what you need, buildone is your friend
- Prefer distro packages when possible, ALWAYS
- I want to test the latest awesome version of RupertBrowser!
jhbuild buildone rupert-browser
- But… I want to have RupertBrowser from master and it requires a LibBrowser that is not in my distro!
jhbuild buildone libbrowser rupert-browser
- Awesome! But it seems RupertBrowser devs have a cool branch I’d like to automatically build, I bet you can’t do that!
Edit your jhbuildrc:
branches['rupert-browser'] = (None, ‘new-cool-branch’)
- No wait, but that branch requires me to use the –enable-coolness switch for configure… how do I do that?
jhbuildrc again:
module_autogenargs['rupert-browser'] = ‘–enable-coolness’
- This all looks nice, would you please show me a somewhat basic jhbuildrc file anyway?
Sure, but don’t ask me to explain it all, use your bright mind or read jhbuild’s documentation, or config.py script (from jhbuild’s repo in git.gnome.org). Here it is:
# if you are a committer to git.gnome.org, this is your line
# ignore it if you are not a committer
repos['git.gnome.org'] = ‘ssh://someone@git.gnome.org/git/’# see jhbuild’s repository for the classic modules or use a path to a custom one
moduleset = ‘gnome-2-32′# don’t hit the internet for modules, just use what came with jhbuild
use_local_modulesets = True# only build modules when there are new commits since the last time
build_policy = ‘updated’# simultaneous build anyone?
makeargs = ‘-j4′### Branches
branches['gtk+'] = (None, ‘awesome-new-stuff’)### Checkout and install prefix
checkoutroot = ‘/home/user/gnome/’
prefix = ‘/home/user/gnome/build’### Custom configuration
autogenargs = ‘–disable-static –disable-gtk-doc ‘
module_autogenargs['epiphany'] = autogenargs + ‘–something-magic’### Extra env, you can set anything for the shell env here
os.environ['CFLAGS'] = ‘-g -O2′

. I’m happy with it, but open to suggestions. Hope it’s useful for someone.