tag:blogger.com,1999:blog-75053170896411405562024-02-02T17:53:40.319+10:30GNOME Developer BlogThe problems, bugs and discoveries of a software developer attempting to enhance the GNOME desktop.Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-7505317089641140556.post-44643966863428504062012-06-30T17:21:00.000+09:302012-06-30T17:21:24.895+09:30GNOME 3.6 - clean sheet<p>Every<sup>1</sup> software package builds for GNOME 3.6! Lets hope it stays that way. If you're having some problems, send a mail to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-love">GNOME love</a> mailing list.</p>
<p>JHBuild recently changed the location of the config file. It used to be at <code>~/.jhbuildrc</code>. It's now at <code>~/.config/jhbuildrc</code>. JHBuild complies with <code>XDG_CONFIG_HOME</code>, for details see <a href="https://bugzilla.gnome.org/show_bug.cgi?id=646510">bug 646510</a>. JHBuild will still continue to use the old config if it exists - to not annoy users who setup JHBuild before the switch.</p>
<p>My <code>~/.config/jhbuildrc</code> contains:</p>
<pre>moduleset = ['gnome-apps-3.6', 'gnome-world-3.6']
modules = ['meta-gnome-core', 'meta-gnome-apps-tested']
skip = ['gnome-disk-utility', 'mono', 'gtk-sharp', 'ndesk-dbus', 'ndesk-dbus-glib',
'mono-addins', 'tomboy', 'pygtk', 'gnome-python', 'gnome-python-desktop',
'libepc', 'vinagre', 'nemiver']</pre>
<p>[1] I do skip some packages, see my <code>~/.config/jhbuildrc</code> above.</p>Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0tag:blogger.com,1999:blog-7505317089641140556.post-25912089460544872011-12-10T16:25:00.000+10:302011-12-10T16:25:40.184+10:30GNOME 3.4 everything builds except Evolution & Glade<p>GNOME 3.4 everything builds except:</p><ul><li>Evolution - see <a href="https://bugzilla.gnome.org/show_bug.cgi?id=665782">bug 665782</a></li>
<li>glade - see <a href="https://bugzilla.gnome.org/show_bug.cgi?id=665784">bug 665784</a></li></ul><p>My <code>~/.jhbuildrc</code> contains:</p><pre>moduleset = ['gnome-apps-3.4', 'gnome-world-3.4']
modules = ['meta-gnome-core', 'meta-gnome-apps-tested']</pre><p>If you're not having the same success, send a mail to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-love">GNOME love</a> mailing list and we'll try to help out!</p>Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0tag:blogger.com,1999:blog-7505317089641140556.post-56055506376840033462011-01-06T22:02:00.001+10:302011-01-06T22:03:16.155+10:30GNOME 3.0 builds! And...After eight months of trying, I am finally able to build GNOME 3.0! Well, apart from:<br />
<ul><li>Cheese - <a href="https://bugzilla.gnome.org/show_bug.cgi?id=632834">bug 632834</a></li>
<li>gnome-system-monitor - <a href="https://bugzilla.gnome.org/show_bug.cgi?id=632799">bug 632799</a></li>
</ul>Neither application is a pivotal part of the GNOME desktop.<br />
<br />
Now, does it <strike>blend</strike> run? No.<br />
Attempting to run gnome-session immediately fails. gnome-session is the application that starts GNOME 3.0.<pre>gnome-session: symbol lookup error:
/opt/gnome/lib64/gtk-3.0/modules/libcanberra-gtk-module.so: undefined symbol: gtk_quit_add</pre><br />
This is <a href="https://bugs.freedesktop.org/show_bug.cgi?id=32839">bug 32839</a>. At quick glance this bug doesn't seem too difficult to work around - remove the offending line of code or roll back GTK+ 3.0 to the parent of <a href="http://git.gnome.org/browse/gtk+/commit/?id=7e7d8c4ccc5f269bc998dc59d8af4973fe567d1b">7e7d8c4</a>.Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0tag:blogger.com,1999:blog-7505317089641140556.post-58711722267272739692010-12-05T21:58:00.001+10:302010-12-05T21:59:39.637+10:30GTK+ 3.0 gtk-style-context has landed<p>GTK+ 3.0 <a href="http://git.gnome.org/browse/gtk+/log/?h=gtk-style-context">gtk-style-context branch</a> has been merged with master. This is an API change that causes a few modules to break in <a href="http://live.gnome.org/Jhbuild">JHBuild</a>:<br />
<ul><li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=606297">gnome-utils</a></li>
<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=636465">nautilus</a></li>
<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=636495">Evolution-Data-Server</a></li>
<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=636498">gnome-power-manager</a></li>
<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=636499">brasero</a></li>
<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=636500">empathy</a></li>
<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=636501">epiphany</a></li>
<li><a href="https://bugzilla.gnome.org/show_bug.cgi?id=636502">network-manager-applet</a></li>
</ul>I created a <a href="https://bugzilla.gnome.org/show_bug.cgi?id=636497">tracker bug</a> so developers can see how other modules adjust to the API change.</p><p>GNOME 3.0 isn't buildable... for now...</p>Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0tag:blogger.com,1999:blog-7505317089641140556.post-42843225543710208522010-12-04T15:52:00.000+10:302010-12-04T15:52:45.093+10:30JHBuild moduleset changesMatthias Clasen rearranged and tidied up the <a href="http://live.gnome.org/Jhbuild">JHBuild</a> modules. If your JHBuild reports an error:<br />
<pre>failed to parse gnome-3.0: [Errno 2] No such file or directory: 'gnome-3.0'</pre>An adjustment is required to moduleset within .jhbuildrc. Details within <a href="http://blogs.fedoraproject.org/wp/mclasen/2010/12/02/gnome-2-91-3-relaced/">Matthias' blog</a>.<br />
<br />
So, does the new gnome-suites-core-3.0 build? No.<br />
<ul><li>gnome-packagekit fails, <a href="https://bugzilla.gnome.org/show_bug.cgi?id=636361">bug 636361</a></li>
<li>tracker fails. It requires dbus >= 1.3.1, but JHBuild has dbus 1.2.24</li>
<li>WebKit fails, <a href="https://bugs.webkit.org/show_bug.cgi?id=50451">bug 50451</a>. Subsequently empathy, epiphany and yelp fail.</li>
</ul>Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0tag:blogger.com,1999:blog-7505317089641140556.post-84339415184624992462010-07-20T22:13:00.000+09:302010-07-20T22:13:10.535+09:30GtkNotebookPage, g_dbus_connection_signal_subscribe migrationThe API changes for the gnome-3.0 moduleset keep coming. <a href="http://library.gnome.org/devel/gtk/2.20/GtkNotebook.html#GtkNotebookPage">GtkNotebookPage</a> is no more and a number of modules no longer build. I filed a <a href="https://bugzilla.gnome.org/show_bug.cgi?id=624653">tracker bug</a> and <a href="http://www.0d.be/">Frédéric Péters</a> is also <a href="http://people.gnome.org/~fpeters/reports/gtknotebookpage.html">auto tracking</a>. <a href="http://library.gnome.org/devel/glib/">glib</a>'s GIO <a href="http://library.gnome.org/devel/gio/unstable/GDBusConnection.html#g-dbus-connection-signal-subscribe">g_dbus_connection_signal_subscribe</a> API has changed which is also affecting a number of modules. The change occurred 19-Jul-2010 (yesterday) in <a href="http://git.gnome.org/browse/glib/commit/?id=4a1c5a1b98aed12308361d7adb6089a9fb171583">commit 4a1c5a1b</a>. I did some searches - no bugs exist for this migration yet.Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0tag:blogger.com,1999:blog-7505317089641140556.post-77718818976788300362010-07-04T19:35:00.000+09:302010-07-04T19:35:46.087+09:30GdkRegion migration<p>The GDBusProxy <a href="http://gnomedeveloper.blogspot.com/2010/06/gdbusproxy-migration.html">problems I blogged about</a> were fixed quickly thanks to the hard work by Carlos Garcia Campos, Matthias Clasen and others. The GDBusProxy API changes are stable, see <a href="http://mail.gnome.org/archives/devel-announce-list/2010-June/msg00007.html">'API changes in GLib master'</a> by Matthias Clasen.</p><p>The gnome-3.0 module set is moving to GTK+ 3, and so begins the next round of build failures. GTK+ 3 has removed GdkRegion, to be replaced by <a href="http://cairographics.org">Cairo's</a> cairo_region_t. Software that hasn't migrated fails to build: <a href="https://bugzilla.gnome.org/show_bug.cgi?id=622285">metacity</a>, <a href="https://bugzilla.gnome.org/show_bug.cgi?id=623435">gucharmap</a> and <a href="https://bugzilla.gnome.org/show_bug.cgi?id=623445">gnome-control-center</a>. A few modules depend on metacity and gnome-control-center so I can't test GNOME for now.</p>Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0tag:blogger.com,1999:blog-7505317089641140556.post-65507492394610665422010-06-17T21:17:00.001+09:302010-06-17T21:18:33.072+09:30GDBusProxy migration<p>I am building GNOME with <a href="http://live.gnome.org/Jhbuild">JHBuild</a> using the gnome-3.0 module set. gnome-panel, nautilus and evince are failing to build due to an API change in glib's gio. glib's API change occurred in commit <a href="http://git.gnome.org/browse/glib/commit/?id=32f2e9a85beedeea36ac7623f68f6eb878465d44">32f2e9</a>. I raised bugs for each module and linked them to a <a href="https://bugzilla.gnome.org/show_bug.cgi?id=621874">tracker bug</a>. Is the new GDBusProxy API stable? If yes, API migration is a good way to get started in GNOME development. Not too difficult and appreciated by the developers.</p><p>If you too are building and testing GNOME 3.0 there may be some fun ahead!</p>Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0tag:blogger.com,1999:blog-7505317089641140556.post-5451232342493956372010-06-08T17:26:00.009+09:302010-06-09T22:06:28.262+09:30JHBuild and .jhbuildrcI am building GNOME using <a href="http://live.gnome.org/Jhbuild">JHBuild</a>. I've set-up a .jhbuildrc as per the <a href="http://library.gnome.org/devel/jhbuild/stable/">manual</a>. Here is my .jhbuildrc. It shows how I use JHBuild and how I work around some problems.<br />
<br />
I am attempting to build the next development version, GNOME 3.0.<br />
<pre>moduleset = ['gnome-3.0']</pre><br />
I checkout and build the sources within the gnome2 directory.<br />
<pre>checkoutroot = os.path.expanduser('~/gnome2')</pre><br />
I build using 'jhbuild tinderbox'. With the following setting, all build output will be stored within the output directory. I then browse the results in a web browser starting at ~/output/index.html. With tinderbox output, I can easily copy and paste output into bug reports.<br />
<pre>tinderbox_outputdir = os.path.expanduser('~/output')</pre><br />
I set nopoison. I don't want an erroneous commit to stop my build. The dependent packages will use the last JHBuild installed version. If there is no installed version, the package will fail but that's ok.<br />
<pre>nopoison = True</pre><br />
I adjust and make fixes to the moduleset files. Ask JHBuild to use local modulessets.<br />
<pre>use_local_modulesets = True</pre><br />
This causes verbose output when building. This allows me to see if CFLAGS or other environment variables that may cause the build to fail.<br />
<pre>makeargs='V=1'</pre><br />
Install GNOME to /opt/gnome2<br />
<pre>prefix = '/opt/gnome2'</pre><br />
Turn off compiler optimisation with -O0. It makes debugging easier. Sometimes with high optimisation settings, the current executed line jumps about in unexpected ways. Also enable debug symbols with -g.<br />
<pre>os.environ['CFLAGS'] = '-O0 -g'</pre><br />
After a successful build, there will be two versions of libraries on my system. The distribution provided libraries in /usr and JHBuild libraries in /opt/gnome2. Two common ways to set which libraries to use are:<br />
<ol><li>LD_LIBRARY_PATH. Set the environment variable LD_LIBRARY_PATH. JHBuild sets LD_LIBRARY_PATH automatically when building and for the 'jhbuild shell' and 'jhbuild run' commands.</li>
<li>rpath. With the rpath setting, the library path at /opt/gnome2 is hardcoded into executables. As JHBuild sets LD_LIBRARY_PATH, rpath isn't necessary but I use rpath to ensure the right libraries are used regardless of the environment. Sometimes I start executables from the debugger or via gnome-session so managing LD_LIBRARY_PATH isn't always simple.</li>
</ol><pre>os.environ['LDFLAGS'] = '-Wl,-rpath -Wl,' + prefix + '/lib64'</pre><br />
I don't build the documentation to speed up the build a little bit. I enable introspection as it is becoming an important part of GNOME 3.0 and language bindings.<br />
<pre>autogenargs='--disable-static --disable-gtk-doc --disable-documentation ' + \
'--disable-docs --enable-introspection'</pre><br />
The modules I don't build. I don't build Mozilla because GNOME is moving towards WebKit. I don't build mono as it's only used by Tomboy and I like gnote much better. I don't build nss nor nspr as they are a big pain - <a href="https://bugzilla.gnome.org/show_bug.cgi?id=596385">bug596385</a>, <a href="https://bugzilla.gnome.org/show_bug.cgi?id=618499">bug618499</a>, <a href="https://bugzilla.gnome.org/show_bug.cgi?id=619000">bug619000</a> etc. I use the distribution versions - package nspr-devel and nss-devel on Fedora. I don't build UPower, hal, polkit, PolicyKit, DeviceKit because they are system-level components. JHBuild versions won't work according to <a href="https://bugzilla.gnome.org/show_bug.cgi?id=581515">bug581515</a>.<br />
<pre>skip = ['mozilla', 'mono', 'gtk-sharp', 'gnome-sharp', 'gnome-desktop-sharp'
'samba4', 'libmapi', 'evolution-mapi', 'ndesk-dbus',
'ndesk-dbus-glib',
'mono-addins', 'tomboy', 'sabayon', 'gnome-desktop-sharp', 'ptlib',
'opal', 'ekiga', 'evolution-exchange',
'gdm', 'libgnomecups', 'nspr', 'nss',
'gtk-vnc', 'vinagre',
'speex', 'libsndfile', 'pulseaudio',
'UPower', 'libvolume_id', 'hal', 'polkit', 'PolicyKit',
'DeviceKit-power']</pre><br />
My module autogen arguments. Important ones are gtk+ with --with-xinput=yes. Some modules will not compile if gtk+ is built without xinput. The LDFLAGS=-ldl should no longer be necessary due to the fixed <a href="https://bugzilla.gnome.org/show_bug.cgi?id=620741">bug620741</a>. OpenGL modules need args for /usr/include/nvidia and /usr/lib64/nvidia for my Nvidia based Fedora system.<br />
<pre>module_autogenargs['clutter'] = 'CPPFLAGS=-I/usr/include/nvidia ' + \
'LDFLAGS=-L/usr/lib64/nvidia ' + autogenargs
module_autogenargs['clutter-gtk'] = 'CPPFLAGS=-I/usr/include/nvidia ' + \
'LDFLAGS=-L/usr/lib64/nvidia ' + autogenargs
module_autogenargs['dbus'] = autogenargs + \
' --with-dbus-user=dbus --enable-verbose-mode'
module_autogenargs['ekiga'] = autogenargs + ' --disable-ldap'
module_autogenargs['empathy'] = 'CPPFLAGS=-I/usr/include/nvidia ' + \
'LDFLAGS=-L/usr/lib64/nvidia ' + autogenargs
module_autogenargs['evolution'] = autogenargs + \
' --disable-nm --disable-exchange --disable-pst-import'
module_autogenargs['gnome-games'] = 'CPPFLAGS=-I/usr/include/nvidia ' + \
'LDFLAGS=-L/usr/lib64/nvidia ' + autogenargs + \
' --disable-tests ' + \
' --enable-omitgames=aisleriot'
module_autogenargs['gtk+'] = autogenargs + ' --with-xinput=yes'
module_autogenargs['libcanberra'] = autogenargs + ' --disable-oss'
module_autogenargs['libchamplain'] = 'CPPFLAGS=-I/usr/include/nvidia ' + \
'LDFLAGS=-L/usr/lib64/nvidia ' + autogenargs
module_autogenargs['libsndfile'] = 'LDFLAGS=-ldl ' + autogenargs
module_autogenargs['NetworkManager'] = autogenargs + \
' --with-dbus-sys-dir=' + prefix + '/etc/dbus-1/system.d' + \
' --with-udev-dir=' + prefix + '/lib/udev'
module_autogenargs['PackageKit'] = autogenargs + ' --enable-yum'
module_autogenargs['ptlib'] = autogenargs + ' --enable-samples'
module_autogenargs['sqlite3'] = 'LDFLAGS=-ldl ' + autogenargs
module_autogenargs['tracker'] = autogenargs + \
' --enable-evolution-miner=no '</pre><br />
Suggestions or improvements welcome.Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com2tag:blogger.com,1999:blog-7505317089641140556.post-16293911604331258352010-06-05T09:51:00.006+09:302010-06-05T12:30:17.410+09:30How to start GNOME development? The website does not make it easyWelcome to GNOME developer blog. This blog details my journey starting out as a GNOME developer.<br />
<br />
I use GNOME and I've decided I wish to contribute. I want to contribute as a developer. The steps I usually take when developing software are:<br />
<ol><li>Download</li>
<li>Build</li>
<li>Run</li>
<li>Learn</li>
<li>Edit</li>
</ol>For GNOME getting to step 1 is not easy.<br />
<table><tr> <td><br />
Where to start? I decide <a href="http://www.gnome.org/">gnome.org</a> is a good place to start. A 'Contribute' link is easy to find. Good work GNOME team.<br />
</td> <td><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWn4GepxFdNY0vr5sjvHwq0nSvIJ1Kphf_enKFiGUvj7mzX3wfGMxsYSHeNbVf92liY3IAKy1T9nsCwms03a5Y7U6scb_F8mMOFDO9IzBHLxbnej_2kKgaTNBkyaQxpmwZjwtXVq4qPH8/s1600/gnome.org.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWn4GepxFdNY0vr5sjvHwq0nSvIJ1Kphf_enKFiGUvj7mzX3wfGMxsYSHeNbVf92liY3IAKy1T9nsCwms03a5Y7U6scb_F8mMOFDO9IzBHLxbnej_2kKgaTNBkyaQxpmwZjwtXVq4qPH8/s320/gnome.org.png" /></a><br />
</td> </tr>
<tr> <td><br />
The 'Contribute' link takes me to a <a href="http://www.gnome.org/community/">community page</a>. I don't like this page. The page writes about news, reviews and user groups. I want to contribute code. Eventually I find what I am after. At the very bottom of the page is a <a href="http://live.gnome.org/JoinGnome">start contributing</a> link.<br />
</td> <td><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_WiH0W4FBJg9kzbuCJwdbBYA3CJLF5z3bbqaVssWlvojPmnCdQLl0tapQ06EPtBxd19rmnHqG2I9m8lE0cSumNiPOJcFtqqffJ9pll7Ns-YgeeFY0JfEUZ0bE4sOYGjHLAHdwk3w83Jk/s1600/GNOME_community.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_WiH0W4FBJg9kzbuCJwdbBYA3CJLF5z3bbqaVssWlvojPmnCdQLl0tapQ06EPtBxd19rmnHqG2I9m8lE0cSumNiPOJcFtqqffJ9pll7Ns-YgeeFY0JfEUZ0bE4sOYGjHLAHdwk3w83Jk/s320/GNOME_community.png" /></a><br />
</td> </tr>
<tr> <td><br />
Now I am at the 'Joining the GNOME Project...' page. The page layout is clear. I was able to quickly discover the correct section - Development. I followed the <a href="http://live.gnome.org/GnomeLove">GnomeLove</a> link. <br />
</td> <td><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwwbrhjLj2uVoziMVFFc8Gp8AVipyJlriOeVbSQhC68XA2uqQcvh7Q2pYL_E2t6IReRkyQ4AQ285LYhZko4JgHczu6fPDL6g5uhD8dudxng7db_zQMka0-PJuTzFbA1Fr3LHCkrYVlxZA/s1600/JoinGnome.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwwbrhjLj2uVoziMVFFc8Gp8AVipyJlriOeVbSQhC68XA2uqQcvh7Q2pYL_E2t6IReRkyQ4AQ285LYhZko4JgHczu6fPDL6g5uhD8dudxng7db_zQMka0-PJuTzFbA1Fr3LHCkrYVlxZA/s320/JoinGnome.png" /></a><br />
</td> </tr>
<tr> <td><br />
I visit the 'Getting started' section. 'How to Start Your GNOME journey' sounds exactly what I want. This page suggests submitting bug fixes. How do I test fix or test bugs before building GNOME? The page doesn't mention building GNOME.<br />
</td> <td><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw7KJJ3ejh16kztANssGSuz-kcsC24Iv08yLWJkA6LBOrajSs8Hm43UPvNB_3ZjiTOtH1ApADsIfFYNAHDqlktTLK5jD-9IZp3YJ_OY_qHBu08frOVewF7TMeMOj4w3QG2R7KwS1VnHfU/s1600/GnomeLove.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw7KJJ3ejh16kztANssGSuz-kcsC24Iv08yLWJkA6LBOrajSs8Hm43UPvNB_3ZjiTOtH1ApADsIfFYNAHDqlktTLK5jD-9IZp3YJ_OY_qHBu08frOVewF7TMeMOj4w3QG2R7KwS1VnHfU/s320/GnomeLove.png" /></a><br />
</td> </tr>
<tr> <td><br />
'Technical guides' seems promising - it mentions a guide on building. Alas, the guide is out of date. It details CVS which is no longer used and refers to GNOME servers that don't exist. However the guide indicates JHBuild may be what I am after.<br />
</td> <td><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQZmU_4_sc7rloLz_v9JCZ6-g8MzDump1nbKS7Q2dR6AbwDISCaKb9lUJfxnNz-2XYlNHfGnr3TJhRPrc8sGVJa-QJu9lHlUP2q0ssGA57SLeo7LQvrm8et-6Nny6OPMCUzjEksDyChvs/s1600/GnomeLove2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQZmU_4_sc7rloLz_v9JCZ6-g8MzDump1nbKS7Q2dR6AbwDISCaKb9lUJfxnNz-2XYlNHfGnr3TJhRPrc8sGVJa-QJu9lHlUP2q0ssGA57SLeo7LQvrm8et-6Nny6OPMCUzjEksDyChvs/s320/GnomeLove2.png" /></a><br />
</td> </tr>
<tr> <td><br />
Now I know about JHBuild, I find the JHbuild page. I set-up JHBuild and my GNOME development journey is away. That was too hard. Some developers may already be frustrated. Instructions on how to build GNOME should be more prominent on the GNOME website - not buried five steps below a Contribute link.<br />
</td> <td><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRubUdSiMnx8yGl2GwqBFARbom-haoGk3HiyYGYmdBcT1RSuxmPNKLIvqa3wYGBN11bauleLXT6406VxkX4GFh7eiGm0Q2JZl92Pddak3HNHaEeQJr3graQnfMYszLoLk_goJJdiMpb7E/s1600/JHBuild.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRubUdSiMnx8yGl2GwqBFARbom-haoGk3HiyYGYmdBcT1RSuxmPNKLIvqa3wYGBN11bauleLXT6406VxkX4GFh7eiGm0Q2JZl92Pddak3HNHaEeQJr3graQnfMYszLoLk_goJJdiMpb7E/s320/JHBuild.png" /></a><br />
</td> </tr>
</table>Craig Keoghhttp://www.blogger.com/profile/16153665876137563499noreply@blogger.com0