Sunday, July 13, 2008

Gnome from scratch

Gnome core packages was installed with jhalfs using the custom-tools approach. The first attempt was using the blfs tool of jhalfs to get its suggestion of packages and build order. The build failed and stopped at several places, so refinements had to be made to the build plan. There were instances where a package was built but was not built with features that another package desired. If pango got built without a cairo backend then the build of gtk+-2 would fail. If pango got built without an XFT backend then the build of metacity would fail. If libxml2 wasn't built after python then the Gnome panel build would fail.

Then there were more subtle build-order computations that would not surface until the system was built and Gnome was running. Gnome-cd would complain "No URI handler for cdda" unless cdparanoia was installed before installing gst-plugins-base.

One king of tiny nuisances that has many questions on google, but no good answer given is that after adding a new desktop file in /usr/share/applications, the Gnome menu doesn't get updated until the user logs off and the logs back in. The common answer is "killall gnome-panel". That works, but is clunky. The other answer given is "it's a distro bug."
But by hammering at it from LFS, I found another answer that works real good:
Install gamin-0.1.7.tar.gz before installing these:
- gnome-vfs-2.14.2
- gnome-session-2.14.3
- gnome-menus-2.14.3

This was a basic Gnome installation that doesn't have very much to do on the menu, but the gnome-cd player works and the menus get new options as soon as they are added to /usr/share/applications desktop files.

Here is the plan for the next time I build it this way.

After the base system has built, I will build from this
startup order list

Once those have been built, I will build from this
general order list.

Once those have been built, I will build from this
gnome order list

This is a conglomeration of the "config" files for the
startup files

This is a conglomeration of the "config" files for the
general list.

This is a conglomeration of the "config" files for the
gnome list.

I will probably make a rsync snapshots style backup of the base system before and/or after the general list before I start installing other stuff that I might not want (like maybe gnome). I'll try that from this conglomeration of config files for a backup list

I will use a script like this sed-awk-split.sh
==================
#!/bin/sh
if [ "$1" == "" ]; then
echo "Usage: $0 filename"
exit
fi
awk 'NR>1{print $0 > "tmp-"++i".tmp"}' RS="#::::::::::\n" $1
for i in tmp-*.tmp; do mv $i $(sed -e '1,1 s/# //;1q' $i);done
=================

to extract the conglomerations into files which I will put into the /jhalfs/custom/config directory.

Or just do the commands by hand in the numbered order.
If everything doesn't build cleanly then some of the build plan will need refinement.

The build of gnome took 12 hours on a P3-800 which is about the same amount of time it took to build the LFS base system. This gnome build log of the first attempt shows about how long each step took and where problems were encountered. The above build plan hopefully will not encounter those same problems.

For comparison, the build of xfce4 took half an hour as seen in this xfce build log. Of course, that is excluding the build of the general list and seamonkey.

I did a serious investigation of installing gnome using garnome but it appeared that unless fedora or ubuntu were installed, the dependency whirlpool would present a larger challenge than I wished to undertake.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

Click blog title for the latest post