GNOME is a wonderful desktop environment! Okay, KDE fans, no offense meant here! I use both GNOME and KDE. But I tend to use GNOME more often, owing to its simplistic look and feel. KDE obviously offers more eyecandy and is easily tweakable. However, I am not a fan of heavy eye candy or animations, and hence I like GNOME more ☺
Contributing to GNOME
Setting up the development env
Deciding to contribute to GNOME, is the most difficult step. After that, if you ask me, next difficult thing is to setup the environment! GNOME has a created a framework JHBuild to automate the build and dependency resolution for the sources. All you need to do is use this tool to install all dependencies. Once you configure what module to build, simply running
jhbuild build will automate the build process. Latest version of Fedora is recommended for the development, since most of the full time developers use it.
Dealing with network proxy
If you are in a university, most probably you will have to deal with this situation. Most of the repositories use a
git:// protocol to download the source. Unfortunately, this wont work behind a proxy.
JHBuild has a configuration option
repo which can be used to override the default repository URLs for individual projects. repo is a python dictionary. So you need the exact key for overriding a specific URL from
https, depending on the specific project. For example, GNOME Git offers https while FreeDesktop only offers http.
The specific key for the corresponding project URL can be obtained from the
modulesets folder in the jhbuild source. Its an XML file which you need to search for the
<repository> tag. For example, my
jhbuildrc contains the following entries:
repos['git.gnome.org'] = 'https://git.gnome.org/browse/' repos['git.freedesktop.org'] = 'http://anongit.freedesktop.org/git/' repos['wayland.freedesktop.org'] = 'http://anongit.freedesktop.org/git/wayland' repos['gstreamer.freedesktop.org'] = 'http://anongit.freedesktop.org/git/gstreamer' repos['pulseaudio.freedesktop.org'] = 'http://anongit.freedesktop.org/git/pulseaudio' repos['telepathy.freedesktop.org'] = 'http://anongit.freedesktop.org/git/telepathy' repos['modemmanager.freedesktop.org'] = 'http://anongit.freedesktop.org/git/ModemManager' repos['git.savannah.nongnu.org'] = 'http://git.savannah.gnu.org/r/' repos['github.com'] = 'https://github.com/'
Dealing git submodules behind proxy.
One more issue you will deal with, when under proxy is that for repositories that contain submodules, they still try to access the
git:// protocol. To work around this problem, drop to shell when jhbuild gives up (option 4), and then edit
.git/config and change the URL for the submodule to http or https.
You're all set!
Thats it. Now its your turn to do the magic and make GNOME better!