Re: How do you hack on the bleeding edge of Gnome?



Hello Federico,

On 18/04/12 23:55, Federico Mena Quintero wrote:
I've been having a terrible time trying to get something tested on top
of Gnome 3.4, all because I can't get 3.4 built from jhbuild.  I'm too
old to build from tarballs, and my distro doesn't carry 3.4 yet.

Disclaimer: I've not build 3.4 either.

I wonder how people who hack on "core Gnome" do it on a day to day
basis.

I think "core" developers are likely to have less problems generally because their dependencies are lesser. For Tracker, I've experienced many issues over the years trying to get Tracker to build with jhbuild and not from its direct dependencies but random crap in the moduleset that is available with the deps I need.

Here are the results of a little poll/brainstorm on Twitter:
https://live.gnome.org/BuildMeHarder

Great list there, I completely concur on all accounts.

As a quick summary, the problems we have with jhbuild are:

1. "Build everything before you can contribute" is a *HUGE* brick wall
for contributors both regular and sporadic.

2. Jhbuild is unreliable for obscure reasons.  People don't have the
time or skills to fix every little autotools problem that comes up -
these seem to happen all the time ("what do you mean libtool macros not
found!?  I already built 20 modules that use libtool!").  GISCAN fails
regularly with unknown symbols.  Etcetera.

3. Packages fail to build due to missing external dependencies, but you
don't get notifid until the package fails to build.  It's not nice to
get a failure in NetworkManager, after half a day of building, just
because I didn't have the distro's ppp-devel package installed.  It
would be nicer to get notified in advance.

This one really irritates me.

4. You ask on IRC, and more often than not the best answer is, "wipe
everything and try again".

I don't want to blame jhbuild; this is a larger problem with how we have
structured the development of Gnome.  I'm happy that (e.g.) Colin
Walters is working on ostree
( http://git.gnome.org/browse/ostree/tree/README.md ), but while it
seems like a truly fantastic way to install prebuilt binaries without
disrupting your system, it doesn't solve the problem of building those
binaries in the first place - correct me if I'm wrong!

So this mail is about:  how do *you* hack on Gnome on an everyday basis?

I don't use jhbuild unless I need a *serious* number of dependencies to build my projects. For example, if the Evolution miner in Tracker fails because of new API requirements in the Evolution development libraries. This is horrific. It take a *lot* of energy to get a full build working.

When talking about it internally at Lanedo in the past, I would often hear the guys say they create their own modulesets because the standard ones are too big and never fully build either. I have ended up hacking moduleset deps to avoid building stuff I don't want to build (if I can) OR completely ignoring errors for some libraries and only coming back to those where that vetoes the project I need to use in my project.

Do people get their source trees built only up to the modules they hack
on, and ignore the rest (been there, done that)?

I try not to, but more and more I do these days because of the energy required to get a full build working. You might think it's not much energy, but I have yet to build a FULL moduleset without issue since I started using jhbuild. Most of the time, this is dependency or system autotools issues. Less occasionally it's some build issue for a particular project.

Do people wait until a
distro carries packages for development versions (too late in the game;
been there, done that)?  How would *you* make Gnome score higher on the
Joel Test?

With Tracker, we try to keep dependency version requirements down to what the next big distros are shipping, so if I am using Ubuntu Oneiric and we have a patch to fix our libgrss use to the new 0.5 API, we will check what Natty and F17 are shipping to avoid pain for other developers wanting to build Tracker. There are cases where you can't do this (e.g. requiring the latest Vala that's not been released because of some crash). But we (as a project) try to make things easier.

We certainly don't depend on new libraries because they exist. We only depend on libraries if we need that version for some API requirement.

(Side thoughts:  how many people have *actually* tested a full 3.4
install?)

Not me.

--
Regards,
Martyn

Founder and CEO of Lanedo GmbH.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]