I am using latest Gnome with JHBuild and Fedora 18 for several days and I am so impressed that I thought to write about it!
This is not about to make you either install Fedora or upstream Gnome with JHBuild, but certainly the idea of having the very latest Gnome, in a rolling release form, is charming. ..and sometimes can also be proven useful!
Fedora 18 & Gnome
Fedora 18 ships a pure Gnome 3.6, which is cool as RHEL 7 will also ship a Gnome based on Fedora 18 with all the advantages that Gnome3 will gain by being a serious enterprise player. Ok, I am not interested about all the new features and updates in Fedora 18 but for the experience I get.
My disk is an Intel SSD, RAM runs in 2000MHz and my card is a nVidia 480 series and ..yes I’am using Nouveau Open Source Drivers. As you can see I am running Gnome Shell 3.6 because I need the extensions, and I just run some specific modules from 3.8 branch.
Coming back to Fedora 18 I can say, Jesus this thing is fast! Without over-reacting Gnome Shell with Nouveau drivers goes as smooth and fast as in Ubuntu with nVidia. If I enable nVidia there isn’t even a reason to compare Ubuntu and Fedora.
On the other hand in terms of usability Ubuntu and Fedora is the day and the night. Gnome Software is one really bad application and Yum makes it even worse. The only efficient (almost efficient) way to install software in Fedora is by using the Terminal. I really hope that someone will step up and coding a new Gnome Software Center for Gnome 3.10 according to the mockups.
The surprising thing in Fedora 18 is the stability. So far I had not one single crash even if still in Alpha version! However, there are some bugs, Google-Chrome doesn’t run (beta does), OpenShot goes slow, Firefox can’t resolve addresses (it takes 1 min) with IPV6 (I need to disable this), and once I couldn’t delete files in Nautilus by shortcut (Ctrl+Delete), but Menu+Mouse was working fine.
Other than these, nothing else was wrong for me. The truth is that I don’t use many applications, actually I don’t make heavy use of any application outside of Gnome’s and Aptana (Eclipse). Just for the record Ruby and Rails with RVM goes super fast, both for Gems compiling and in run-time.
There is a paradox in Fedora that affects all versions I used so far (15,16,17). Every release (15 was an exception and was a bad release from the beginning to end) seems pretty good in the beginning and after ~three months things are getting bad. Many bugs that don’t get fixed, there aren’t application updates (other than core modules, Kernel, X, Gnome) and the whole experience goes down.
It looks like Fedor-ians abandon the current release and focus to make the next one. Or it is just coincidence? Whatever the reason is _and I don’t make these out of my head :)_, I just hope thing to be difference with Fedora 18 as it looks very promising.
A fact about Fedora is that every release is extremely better than the previous!
Fedora 18 and JHBuild
JHBuild is an application that setups an isolated environment for building Gnome modules (actually you can build many other projects as well, like Wayland) from upstream with out messing up with your main system. It also discovers the dependencies, downloads and install them. It kinda works the same way as Gentoo (at least the last time I tried it!) .
Although you can deploy JHBuild and Gnome to any distro, I had some issues with Ubuntu whereas in Fedora 18 everything run smoothly -apart that I had to manually compile sqlite.
Who might be interested in JHBuild?
Developers, but they already know about it :)
Theme & Extension authors: You can try latest Gnome without needing a virtual box that will slow down your testing.
Enthusiasts: You can have a rolling Gnome release with all the new features minutes after arriving in master repository.
Check this out: I can use Nautilus 3.7.1 ( I have made an alias) with the recursive search and I can also file a bug in Gnome as the title bar says “mp” instead of “mp3″ :)
How to install JHBuild
I will skip the part of installation as everything you will need can be found in Gnome Documentation and JHBuild Introduction. What I think you have to know, is that JHBuild is so simple that is meant for everyone to try it. After you install JHBuild (and its dependencies) you have to setup your module-sets (defaults will do) in the ~/.config/jhbuildrc file, which is the only configuration file of JHBuild, and is pretty simple one also.
# -*- mode: python -*- # -*- coding: utf-8 -*- # edit this file to match your settings and copy it to ~/.config/jhbuildrc # if you have a GNOME git account, uncomment this line # repos['git.gnome.org'] = 'ssh://email@example.com/git/' # what module set should be used. The default can be found in # jhbuild/defaults.jhbuildrc, but can be any file in the modulesets directory # or a URL of a module set file on a web server. # moduleset = 'gnome-apps-3.4' # # A list of the modules to build. Defaults to the GNOME core and tested apps. # modules = [ 'meta-gnome-core', 'meta-gnome-apps-tested' ] # Or to build the old GNOME 2.32: # moduleset = 'gnome2/gnome-2.32' # modules = ['meta-gnome-desktop'] # what directory should the source be checked out to? checkoutroot = '~/checkout/gnome' # the prefix to configure/install modules to (must have write access) prefix = '/opt/gnome' # custom CFLAGS / environment pieces for the build # os.environ['CFLAGS'] = '-Wall -g -O0' # extra arguments to pass to all autogen.sh scripts # to speed up builds of GNOME, try '--disable-static --disable-gtk-doc' #autogenargs='' # A string listing additional arguments to be passed to make. # Set makeargs to 'V=1' for verbose build output. #makeargs = ''
Now, if you want to install latest Gnome-Shell all you have to do is:
jhbuild build gnome-shell
To install all modules in your module-set.
In theory this will download and install Gnome Shell and all its dependencies under /opt/gnome (default installation path). Then to run it you just type:
jhbuild run gnome-shell -r
So simple and it works from every Gnome Module ..and beyond Gnome! This happens in theory. In practice some dependencies won’t download or they will failed to build. Nothing to worry about, if mutter failed to build you can just re-compile it.
jhbuild buildone mutter
This assumes that all mutter dependencies already exists. There are many tricks you will find in documentation like how to stop and resumes installations and much more. Keep on mind that installing Gnome-Shell needs about 57 packages, and that means several hours of downloading and building depending your connection and you machine.
In my case I have 165 modules so update all these it will take around 6-7 hours, maybe more. But it is still easy.
This it will update all the packages I have currently install (by my module sets) but it won’t install them. Later I can manually install whatever package I want without checking out the Git which is time costly.
jhbuild buildone gnome-shell -n (-n = --no-network)
If you don’t really like terminal there is also a GUI
In theory installing latest Gnome is one click away (and some hours of building) :)
This isn’t meant to be a guide but a show off how simple things feel. I am not saying that setting JHBuild is super easy but isn’t either hard. You definitely don’t need any previous experience in compiling and building Gnome Apps (however it would be helpful), all you need to do is to follow step-by-step the documentation, and you will get the latest and the greatest changes in Gnome. Also you can help Gnome Project by filing some bugs!
If you have some time to kill, just give it a try!
Tip: You can make a new user (ie jhbuild) and set your new Gnome for this account.