General tips on resolving CVS build issues

Trying to build gnome from cvs is occasionally hairy. It is sometimes impossible to tell what recent changes will cause builds to fail. Knowledge of the following are what I have found most helpful in solving build problems (probably in this order):

Depending on your experience and patience, you might not attempt all those various things. If you make sure that your problem is not due to an issue on your end (such as missing development libraries), and that another bug has not already been filed in Bugzilla, you can simply file a bug against the appropriate product instead. These bugs, assuming they affect a general audience and are not specific to your setup, tend to get resolved quickly since they block testing and development.

However, most problems can be solved by the easier steps or just ignored altogether by skipping the given module if it is not needed (in particular, Gnomemeeting has never successfully built for me and I have always just skipped it and moved on to the next module). Most the time that I run across a problem with jhbuild, someone else has already come across it and solved it. Because of this, I can often find a patch or instructions on how to work around the problem in Gnome Bugzilla.

Most build failures for those who are building Gnome from source for the first time are due to missing development packages. In this case apt-cache's search (or perhaps yum, but I still use apt from and rpm's query come in very handy although finding the right package names can still be guesswork sometimes. I have even run across one problem that I solved by removing a package (I guess having the package removed made the module decide to not do the certain part of the build which it was having problems completing).

Next, I find that some build failures are due to packages or header files not being where the build expects them. locate (or find) comes in handy here. In the rare case that the source code is missing an important #include statement, going to /usr/include and using grep (or perhaps going to some of the other downloading gnome packages and using grep) seems to solve the problem for me.

Next, I find that using cvs helps a lot. If I have problems building the most recent version, I may revert to the most recent stable version instead, e.g.:

Other useful cvs commands include

Sometimes, you just have to follow the steps of Makefiles and shell scripts down to the offending line, and then figure out how to change it.

Sometimes you may have to look at the source to get around your problem.

Other random tips:

The next section contains some specific examples of dealing with issues that have arisen at various times when I have built from CVS. They provide some concrete examples of applying some of the guidelines listed in this section.