Rebuilding an LFS System

Bruce Dubbs

I have been building LFS for a long time. My first post to lfs-dev was in April 2001. That was somewhere around LFS 2.4. As I learned more and more about it, I found that none of the commercial distributions did what I wanted. I've been using LFS almost exclusively since then.

In 2005, I bought a new system. It was pretty high end for the time. It has an Intel P4 3.2 GHz CPU with 2G RAM and an 80G hard drive. These numbers look pretty anemic today, but it works well. I installed SVN-20051118 on it. That's some time around LFS 6.1. Xorg was version 5.8.2 and KDE was version 3.5.2. The kernel in 2005 was 2.6.18, but somewhere along the line I had upgraded it to 2.5.22.5.

Over the years, I improved the hardware. I added a second disk drive (250 GB) and a new video card (Nvidia GeForce 9800 GTX). This let me add two very nice 24 inch monitors. The video card actually required a power supply upgrade. Much later (2009), I purchased am x86_64 system just for LFS Development.

Over the years, I was improving the software, but only when I felt the need. Most of the time, the older software was just good enough. However, in some cases libc-2.3.6 was just too old.

Last month, I finally decided to bite the bullet and upgrade everything. This is a narrative of what I did.

Host System Requirements

The first thing I did was run the version-check.sh script. Oops. Almost nothing met the requirements. What to do? I could just add a commercial distro and build from there, but I didn't want to change my email setup and have limited access to history. So what's an LFSer to do. Why create an intermediate LFS system of course.

The first thing I did was upgrade the kernel. I decided that 2.6.30.1 would be a reasonable choice. I built that and updated the Nvidia proprietary drivers. The proprietary drivers give very good speed and uses an option, "TwinView" that makes the setup of multiple monitors very easy (after you read the documentation). :) I'll say more about Nvidia video drivers later.

I finally decided on LFS 6.6. I went to the museum: http://archive.linuxfromscratch.org/lfs-museum/ and got that. I then went to the historical files: http://anduin.linuxfromscratch.org/sources/LFS/lfs-packages/ and got all the sources. Finally, I reused an old 10G partition and ran jhalfs and built away.

As that completed, I had an epiphany. I didn't need to actually boot to LFS 6.6. I could just chroot into the newly built system and build the final SVN-20120610 from there!

Building LFS SVN-20120610

Building LFS from a chroot environment was remarkably easy with one exception: jhalfs didn't work. I didn't investigate why, but just decided to build manually.

First I created a new partition on the old host, Then I completed through Chapter 5. At this point the intermediate system is no longer needed, so exiting chroot and entering into the new one from the original host worked fine.

The next step was to make sure many of the configuration items I have used remained the same. The easy way to do that was to just copy many of the files in /etc from the host to the new system. These files include passwd, shadow, group, dircolors, vimrc, sudoers, inputrc, bashrc, profile, and the directory profile.d. Files from $HOME are not needed because the same partition is mounted as /home on the old system and the new. Other files that did need to be copied included those in /root: .bash_profile and .bashrc.

Initial BLFS Packages

One thing that is import to me is to keep a log of what I build in BLFS. To do this I keep all my BLFS sources on a separate partition mounted, strangely enough, on a mountpoint name /usr/src. Most packages are in separate directories, but some, like xorg and kde, are grouped together.

The utility script is in /usr/src/stats:


#!/bin/bash

function stats()
{
  log=$1
  tarball=$2
  b4=$3

  base_sbu=230

  free_now=`df -k /tmp | grep / | sed -e "s/ \{2,\}/ /g" | cut -d" " -f3`

  buildtime=`tail -n1 $log|cut -f1 -d" "`
  sbu=`echo "scale=3; $buildtime / $base_sbu" | bc`

  psizeK=`du -k $tarball | cut -f1`
  psizeM=`echo "scale=3; $psizeK / 1024"   | bc`

  bsizeK=`echo "$free_now - $b4"           | bc`
  bsizeM=`echo "scale=3; $bsizeK / 1024"   | bc`

  echo "SBU=$sbu"                                  | tee -a $log
  echo "$psizeK $tarball size ($psizeM MB)"        | tee -a $log
  echo "$bsizeK kilobytes build size ($bsizeM MB)" | tee -a $log
  (echo -n "md5sum : "; md5sum $tarball)           | tee -a $log
  (echo -n "sha1sum: "; sha1sum $tarball)          | tee -a $log

  echo "`date` $tarball" >> /usr/src/packages-$(lsb_release -r|cut -f2).log
}

TIMEFMT='%1R Elapsed Time - '
SUDO=sudo

This code is called by each file. For instance, I have a file, /usr/src/openssl/make-openssl-1.0.1c that is:


#!/bin/bash

source /usr/src/stats

#######################
# Installing openssl

DIR=`pwd`
PROGRAM=openssl-1.0.1c
LOG=$DIR/$PROGRAM.log
TITLE=$PROGRAM
TIMEFORMAT="$TIMEFMT $TITLE"

BUILDDIR=/tmp/openssl
#DEST=$BUILDDIR/install

rm -f  $LOG
rm -rf $BUILDDIR
mkdir  $BUILDDIR
cd     $BUILDDIR

before=`df -k / | grep / | sed -e "s/ \{2,\}/ /g" | cut -d' ' -f3`

tar -xf $DIR/$PROGRAM.tar.?z* || exit 1

cd $PROGRAM
{ time \
  {
    echo Making $TITLE
    date

    patch -Np1 -i $DIR/$PROGRAM-fix_manpages-1.patch  &&
    ./config --openssldir=${DEST}/etc/ssl \
             --prefix=${DEST}/usr         \
             shared                       \
             zlib-dynamic                             &&
    make                                              &&
    make test                                         &&
    #sed -i 's# libcrypto.a##;s# libssl.a##' Makefile  &&
    
    $SUDO make MANDIR=${DEST}/usr/share/man install          &&
    
    $SUDO cp -v -r certs      ${DEST}/etc/ssl                &&
    $SUDO install -v -d -m755 ${DEST}/usr/share/doc/$PROGRAM &&
    
    $SUDO cp -v -r doc/{HOWTO,README,*.{txt,html,gif}} \
                              ${DEST}/usr/share/doc/$PROGRAM &&
    
    :
  }
} 2>&1 | tee -a $LOG

if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;

stats $LOG $DIR/$PROGRAM.tar.?z* $before

exit 0

Note that I actually build the packages in /tmp. This makes it easy to go back and find the latest build source in case of problems. It also makes it easy to find the code when I want to delete it.

When creating a new make file, I generally only need to change the lines that start with PROGRAM and BUILDDIR and place the actual build instructions inside the time{} section after the date command. Sometimes it takes a little more when the package name is inconsistent with the directory tree inside the tarball.

This code captures all the output of the build into a log file and also appends a line to a separate log in /usr/src. In this case, the log file is /usr/src/packages-SVN-20120610.log. In order for this to work, the first packages that need to be built are bc, lsb_release, and sudo. After I built them I went back and built them a second time to insert the names in the package log:


Sat Jun 16 21:38:18 CDT 2012 /usr/src/bc/bc-1.06.95.tar.bz2
Sat Jun 16 21:47:24 CDT 2012 /usr/src/lsb-release/lsb-release-1.4.tar.gz
Sat Jun 16 21:59:04 CDT 2012 /usr/src/sudo/sudo-1.8.4p4.tar.gz

Note that I have not rebooted into the new system yet. I'm building in chroot by doing a --bind mount of /usr/src into the new system.

Early BLFS packages

Next, there are a few packages that I consider essential:


Sat Jun 16 22:25:30 CDT 2012 /usr/src/which/which-2.20.tar.gz
Sat Jun 16 23:52:31 CDT 2012 /usr/src/openssl/openssl-1.0.1c.tar.gz
Sat Jun 16 23:56:03 CDT 2012 /usr/src/openssh/openssh-6.0p1.tar.gz
Sun Jun 17 00:10:59 CDT 2012 /usr/src/wget/wget-1.13.4.tar.xz
Sun Jun 17 00:16:00 CDT 2012 /usr/src/ntp/ntp-4.2.6p4.tar.gz
Sun Jun 17 00:18:30 CDT 2012 /usr/src/pci-utils/pciutils-3.1.9.tar.xz
Sun Jun 17 00:24:07 CDT 2012 /usr/src/libusb/libusb-1.0.8.tar.bz2
Sun Jun 17 00:25:19 CDT 2012 /usr/src/usbutils/usbutils_005.orig.tar.gz
Sun Jun 17 00:28:37 CDT 2012 /usr/src/net-tools/net-tools-CVS_20101030.tar.gz

Xorg

The next thing is to get xorg up. I built xorg into /opt/xorg.. This will allow me to build a new version into another prefix and change to that version by changing a few environment variables such as PATH, XORG_PREFIX, and XORG_CONFIG. The progression here is to go through the xorg dependencies like a stack. Look at each package and drill down to a point where all the dependencies have been built and build that package. Then go back and check the previous package and repeat until you get to the top. My linear list of packages for xorg is:


Sun Jun 17 13:24:25 CDT 2012 /usr/src/check/check-0.9.8.tar.gz
Sun Jun 17 16:16:24 CDT 2012 /usr/src/xc/prot-headers/proto-7.7-1.wget
Sun Jun 17 16:24:04 CDT 2012 /usr/src/xc/makedepend/makedepend-1.0.4.tar.bz2
Sun Jun 17 16:35:03 CDT 2012 /usr/src/xc/libxau/libXau-1.0.7.tar.bz2
Sun Jun 17 16:37:33 CDT 2012 /usr/src/xc/libxdmcp/libXdmcp-1.1.1.tar.bz2
Sun Jun 17 16:40:08 CDT 2012 /usr/src/xc/libpthread-stubs/libpthread-stubs-0.3.tar.bz2
Sun Jun 17 16:59:28 CDT 2012 /usr/src/libffi/libffi-3.0.11.tar.gz
Sun Jun 17 17:07:48 CDT 2012 /usr/src/python/Python-2.7.3.tar.xz
Sun Jun 17 17:58:04 CDT 2012 /usr/src/libxml2/libxml2-2.7.8.tar.gz
Sun Jun 17 18:03:45 CDT 2012 /usr/src/xc/xcb-proto/xcb-proto-1.7.1.tar.bz2
Sun Jun 17 18:09:54 CDT 2012 /usr/src/libxslt/libxslt-1.1.26.tar.gz
Sun Jun 17 18:15:00 CDT 2012 /usr/src/xc/libxcb/libxcb-1.8.1.tar.bz2
Sun Jun 17 21:48:46 CDT 2012 /usr/src/freetype/freetype-2.4.9.tar.bz2
Sun Jun 17 21:51:54 CDT 2012 /usr/src/fontconfig/fontconfig-2.9.0.tar.gz
Sun Jun 17 22:12:04 CDT 2012 /usr/src/xc/xorg-libs/lib-7.7-1.wget
Sun Jun 17 22:15:04 CDT 2012 /usr/src/gperf/gperf-3.0.4.tar.gz
Sun Jun 17 22:16:34 CDT 2012 /usr/src/xc/xcb-util/xcb-util-0.3.8.tar.bz2
Sun Jun 17 22:19:41 CDT 2012 /usr/src/expat/expat-2.1.0.tar.gz
Sun Jun 17 22:22:20 CDT 2012 /usr/src/libdrm/libdrm-2.4.33.tar.bz2
Sun Jun 17 22:24:57 CDT 2012 /usr/src/talloc/talloc-2.0.7.tar.gz
Sun Jun 17 22:44:31 CDT 2012 /usr/src/mesa/MesaLib-8.0.3.tar.bz2
Sun Jun 17 22:47:07 CDT 2012 /usr/src/xc/xbitmaps/xbitmaps-1.1.1.tar.bz2
Sun Jun 17 22:52:04 CDT 2012 /usr/src/libpng/libpng-1.5.10.tar.xz
Sun Jun 17 23:01:20 CDT 2012 /usr/src/xc/xorg-apps/app-7.7-1.wget
Mon Jun 18 12:06:26 CDT 2012 /usr/src/xc/xcursor-themes/xcursor-themes-1.0.3.tar.bz2
Mon Jun 18 13:00:20 CDT 2012 /usr/src/xc/fonts/font-7.7-1.wget
Mon Jun 18 13:11:00 CDT 2012 /usr/src/intltool/intltool-0.50.0.tar.gz
Mon Jun 18 13:11:32 CDT 2012 /usr/src/xc/keyboard/xkeyboard-config-2.5.1.tar.bz2
Mon Jun 18 13:20:25 CDT 2012 /usr/src/xc/printproto/printproto-1.0.5.tar.bz2
Mon Jun 18 13:22:30 CDT 2012 /usr/src/xc/libXp/libXp-1.0.1.tar.bz2
Mon Jun 18 13:38:11 CDT 2012 /usr/src/pixman/pixman-0.26.0.tar.gz
Mon Jun 18 13:51:31 CDT 2012 /usr/src/xc/xorg-server/xorg-server-1.12.2.tar.bz2
Mon Jun 18 14:16:38 CDT 2012 /usr/src/xc/drivers/driver-7.7-1.wget
Mon Jun 18 14:18:53 CDT 2012 /usr/src/xc/twm/twm-1.0.7.tar.bz2
Mon Jun 18 14:22:21 CDT 2012 /usr/src/xc/xterm/xterm-279.tgz
Mon Jun 18 14:26:32 CDT 2012 /usr/src/xc/xclock/xclock-1.0.6.tar.bz2
Mon Jun 18 14:28:47 CDT 2012 /usr/src/xc/xinit/xinit-1.3.2.tar.bz2

At this point I also wanted to reboot, but I was going out of town for a week so I continued to build. I also wanted to be able to rebuild the LFS and BLFS books and use seamonkey in the new environment as soon as possible.


Mon Jun 18 14:35:00 CDT 2012 /usr/src/zip/zip30.tar.gz
Mon Jun 18 14:37:04 CDT 2012 /usr/src/unzip/unzip60.tar.gz
Mon Jun 18 14:39:58 CDT 2012 /usr/src/sharutils/sharutils-4.11.1.tar.bz2
Mon Jun 18 14:43:28 CDT 2012 /usr/src/lynx/lynx2.8.8dev.10.tar.bz2
Mon Jun 18 15:46:22 CDT 2012 /usr/src/alsa-libs/alsa-lib-1.0.25.tar.bz2
Mon Jun 18 15:49:22 CDT 2012 /usr/src/alsa-plugins/alsa-plugins-1.0.25.tar.bz2
Mon Jun 18 15:51:21 CDT 2012 /usr/src/alsa-utils/alsa-utils-1.0.25.tar.bz2
Mon Jun 18 15:55:40 CDT 2012 /usr/src/pcre/pcre-8.30.tar.bz2
Mon Jun 18 16:07:18 CDT 2012 /usr/src/glib/glib-2.32.3.tar.xz
Mon Jun 18 16:19:32 CDT 2012 /usr/src/cairo/cairo-1.12.2.tar.xz
Mon Jun 18 16:23:42 CDT 2012 /usr/src/pango/pango-1.30.1.tar.xz
Mon Jun 18 16:27:25 CDT 2012 /usr/src/atk/atk-2.4.0.tar.xz
Mon Jun 18 16:37:08 CDT 2012 /usr/src/gobject-introspection/gobject-introspection-1.32.1.tar.xz
Mon Jun 18 16:39:55 CDT 2012 /usr/src/libjpeg/jpegsrc.v8d.tar.gz
Mon Jun 18 16:44:21 CDT 2012 /usr/src/libtiff/tiff-4.0.1.tar.gz
Mon Jun 18 16:46:26 CDT 2012 /usr/src/gdk-pixbuf/gdk-pixbuf-2.26.1.tar.xz
Mon Jun 18 16:47:46 CDT 2012 /usr/src/hicolor-icon-theme/hicolor-icon-theme-0.12.tar.gz
Mon Jun 18 17:06:08 CDT 2012 /usr/src/pango/pango-1.30.1.tar.xz
Mon Jun 18 19:00:32 CDT 2012 /usr/src/atk/atk-2.4.0.tar.xz
Mon Jun 18 19:16:17 CDT 2012 /usr/src/gtk2/gtk+-2.24.10.tar.xz
Mon Jun 18 19:47:54 CDT 2012 /usr/src/yasm/yasm-1.2.0.tar.gz
Mon Jun 18 19:50:14 CDT 2012 /usr/src/libvpx/libvpx-v1.0.0.tar.bz2

When I got back from vacation, I rebooted into the new system and started xorg. Initially I used the NV drivers and used twm as a window manager. The system response was not very good. Everything seemed to lag in response to keyboard and mouse input. I then built the nouveau driver and the response was not much better. I used a crude benchmark of glxgears and only got 250 frames per second (FPS). This was not acceptable so I installed the Nvidia proprietary drivers and got about 8400 FPS. That's about a 34x speedup.

After this got straightened out, I built Seamonkey. All this took a few days and I didn't get seamonkey in the log due to some build errors and not wanting to rebuild just for the log. It was also a challenge to get the seamonkey-1.0.9 mail messages into the new seamonkey-2.10.1 as the automatic upgrade procedure did not work and I had to determine how to copy the files manually.

Now I am using twm and running seamonkey and xterms to build. I'm in the new system for good.

KDE

Now it's time to build KDE. There are a lot of dependencies:


Sat Jun 30 18:18:58 CDT 2012 /usr/src/sqlite/sqlite-autoconf-3071201.tar.gz
Sat Jun 30 18:25:51 CDT 2012 /usr/src/apr/apr-1.4.6.tar.bz2
Sat Jun 30 18:32:34 CDT 2012 /usr/src/libxml2/libxml2-2.8.0.tar.gz
Sat Jun 30 18:36:52 CDT 2012 /usr/src/neon/neon-0.29.6.tar.gz
Sat Jun 30 18:40:55 CDT 2012 /usr/src/apr-utils/apr-util-1.4.1.tar.bz2
Sat Jun 30 18:46:48 CDT 2012 /usr/src/subversion/subversion-1.7.4.tar.bz2
Sat Jun 30 18:59:19 CDT 2012 /usr/src/tidy/tidy-cvs_20101110.tar.bz2
Sat Jun 30 19:02:06 CDT 2012 /usr/src/sgml-common/sgml-common-0.6.3.tgz
Sat Jun 30 19:05:09 CDT 2012 /usr/src/docbook-sgml-dtd-3.1/docbk31.zip
Sat Jun 30 19:10:00 CDT 2012 /usr/src/docbook-dsssl-stylesheets/docbook-dsssl-1.79.tar.bz2
Sat Jun 30 19:13:20 CDT 2012 /usr/src/docbook45/docbook-4.5.zip
Sat Jun 30 19:16:10 CDT 2012 /usr/src/docbook-xsl-stylesheets/docbook-xsl-1.77.0.tar.bz2
Sat Jun 30 19:27:15 CDT 2012 /usr/src/docbook-xml-dtd/docbook-xml-4.5.zip
Sun Jul  1 12:00:12 CDT 2012 /usr/src/fcron/fcron-3.0.6.src.tar.gz
Sun Jul  1 15:32:02 CDT 2012 /usr/src/curl/curl-7.25.0.tar.bz2
Sun Jul  1 15:35:30 CDT 2012 /usr/src/nettle/nettle-2.4.tar.gz
Sun Jul  1 15:39:30 CDT 2012 /usr/src/libarchive/libarchive-3.0.3.tar.gz
Sun Jul  1 15:45:23 CDT 2012 /usr/src/dbus/dbus-1.6.2.tar.gz
Sun Jul  1 15:54:13 CDT 2012 /usr/src/libjpeg/jpegsrc.v8d.tar.gz
Sun Jul  1 15:58:35 CDT 2012 /usr/src/libtiff/tiff-4.0.1.tar.gz
Sun Jul  1 16:23:37 CDT 2012 /usr/src/lcms/lcms-1.19.tar.gz
Sun Jul  1 16:24:28 CDT 2012 /usr/src/libmng/libmng-1.0.10.tar.bz2
Sun Jul  1 16:26:40 CDT 2012 /usr/src/libpng/libpng-1.5.10.tar.xz
Sun Jul  1 16:40:46 CDT 2012 /usr/src/gsl/gsl-1.15.tar.gz
Sun Jul  1 16:55:35 CDT 2012 /usr/src/check/check-0.9.8.tar.gz
Sun Jul  1 17:12:42 CDT 2012 /usr/src/gstreamer/gstreamer-0.10.36.tar.xz
Sun Jul  1 17:33:21 CDT 2012 /usr/src/alsa-libs/alsa-lib-1.0.25.tar.bz2
Sun Jul  1 19:01:29 CDT 2012 /usr/src/libogg/libogg-1.3.0.tar.xz
Sun Jul  1 19:04:24 CDT 2012 /usr/src/libvorbis/libvorbis-1.3.2.tar.bz2
Sun Jul  1 19:11:17 CDT 2012 /usr/src/theora/libtheora-1.1.1.tar.bz2
Sun Jul  1 19:22:51 CDT 2012 /usr/src/gstreamer-base-plugins/gst-plugins-base-0.10.36.tar.xz
Sun Jul  1 19:28:54 CDT 2012 /usr/src/json/json-c-0.9.tar.gz
Sun Jul  1 19:33:17 CDT 2012 /usr/src/nasm/nasm-2.10.01.tar.bz2
Sun Jul  1 19:37:24 CDT 2012 /usr/src/flac/flac-1.2.1.tar.gz
Sun Jul  1 19:45:58 CDT 2012 /usr/src/libsndfile/libsndfile-1.0.25.tar.gz
Sun Jul  1 19:48:02 CDT 2012 /usr/src/speex/speex-1.2rc1.tar.gz
Sun Jul  1 19:52:55 CDT 2012 /usr/src/dbus-glib-bindings/dbus-glib-0.100.tar.gz
Sun Jul  1 19:57:14 CDT 2012 /usr/src/gconf/GConf-3.2.5.tar.xz
Sun Jul  1 20:06:33 CDT 2012 /usr/src/pulseaudio/pulseaudio-2.0.tar.xz
Mon Jul  2 00:51:50 CDT 2012 /usr/src/qt/qt-everywhere-opensource-src-4.8.2.tar.gz
Mon Jul  2 11:35:38 CDT 2012 /usr/src/cmake/cmake-2.8.7.tar.gz
Mon Jul  2 11:40:15 CDT 2012 /usr/src/automoc4/automoc4-0.9.88.tar.bz2
Mon Jul  2 11:44:29 CDT 2012 /usr/src/phonon/phonon-4.6.0.tar.xz
Mon Jul  2 12:04:38 CDT 2012 /usr/src/audiofile/audiofile-0.3.4.tar.xz
Mon Jul  2 12:20:10 CDT 2012 /usr/src/slang/slang-2.2.4.tar.bz2
Mon Jul  2 12:22:12 CDT 2012 /usr/src/aalib/aalib-1.4rc5.tar.gz
Mon Jul  2 12:24:22 CDT 2012 /usr/src/libusb/libusb-1.0.9.tar.bz2
Mon Jul  2 12:28:29 CDT 2012 /usr/src/pth/pth-2.0.7.tar.gz
Mon Jul  2 12:32:24 CDT 2012 /usr/src/sdl/SDL-1.2.15.tar.gz
Mon Jul  2 13:03:15 CDT 2012 /usr/src/libdv/libdv-1.0.0.tar.gz
Mon Jul  2 13:34:44 CDT 2012 /usr/src/taglib/taglib-1.7.2.tar.gz
Mon Jul  2 13:47:14 CDT 2012 /usr/src/gst-plugins-good/gst-plugins-good-0.10.31.tar.xz
Mon Jul  2 13:55:06 CDT 2012 /usr/src/libsamplerate/libsamplerate-0.1.8.tar.gz
Mon Jul  2 14:03:37 CDT 2012 /usr/src/libidn/libidn-1.25.tar.gz
Mon Jul  2 14:12:02 CDT 2012 /usr/src/curl/curl-7.25.0.tar.bz2
Mon Jul  2 14:15:44 CDT 2012 /usr/src/faac/faac-1.28.tar.gz
Mon Jul  2 14:20:05 CDT 2012 /usr/src/faad/faad2-2.7.tar.gz
Mon Jul  2 14:21:42 CDT 2012 /usr/src/alsa-plugins/alsa-plugins-1.0.25.tar.bz2
Mon Jul  2 14:23:38 CDT 2012 /usr/src/xmlto/xmlto-0.0.25.tar.bz2
Mon Jul  2 14:25:23 CDT 2012 /usr/src/alsa-utils/alsa-utils-1.0.25.tar.bz2
Mon Jul  2 14:41:04 CDT 2012 /usr/src/jasper/jasper-1.900.1.zip
Mon Jul  2 14:47:51 CDT 2012 /usr/src/musicbrainz/libmusicbrainz-2.1.5.tar.gz
Mon Jul  2 14:51:31 CDT 2012 /usr/src/musicbrainz/libcroco/libcroco-0.6.5.tar.xz
Mon Jul  2 14:54:39 CDT 2012 /usr/src/librsvg/librsvg-2.36.1.tar.xz
Mon Jul  2 14:58:33 CDT 2012 /usr/src/xvid/xvidcore-1.3.2.tar.gz
Mon Jul  2 15:06:34 CDT 2012 /usr/src/gst-plugins-bad/gst-plugins-bad-0.10.23.tar.xz
Mon Jul  2 15:15:32 CDT 2012 /usr/src/lame/lame-3.99.3.tar.gz
Mon Jul  2 15:19:06 CDT 2012 /usr/src/libdvdread/libdvdread-4.2.0.tar.bz2
Mon Jul  2 15:20:51 CDT 2012 /usr/src/libdvdnav/libdvdnav-4.2.0.tar.bz2
Mon Jul  2 15:26:54 CDT 2012 /usr/src/liba52/a52dec-0.7.4.tar.gz
Mon Jul  2 15:30:36 CDT 2012 /usr/src/libmad/libmad-0.15.1b.tar.gz
Mon Jul  2 15:34:22 CDT 2012 /usr/src/libmpeg2/libmpeg2-0.5.1.tar.gz
Mon Jul  2 15:45:23 CDT 2012 /usr/src/gst-plugins-ugly/gst-plugins-ugly-0.10.19.tar.xz
Mon Jul  2 15:57:31 CDT 2012 /usr/src/phonon-backend-gstreamer/phonon-backend-gstreamer-4.6.0.tar.xz
Mon Jul  2 17:43:05 CDT 2012 /usr/src/vlc/vlc-2.0.2.tar.xz
Mon Jul  2 17:49:14 CDT 2012 /usr/src/shared-mime-info/shared-mime-info-1.0.tar.xz
Mon Jul  2 17:55:41 CDT 2012 /usr/src/libexif/libexif-0.6.20.tar.bz2
Mon Jul  2 18:28:45 CDT 2012 /usr/src/imagemagik/ImageMagick-6.7.5-10.?z*
Mon Jul  2 20:04:33 CDT 2012 /usr/src/xine-lib/xine-lib-1.2.2.tar.xz
Mon Jul  2 20:09:07 CDT 2012 /usr/src/xine-ui/xine-ui-0.99.7.tar.xz
Mon Jul  2 20:12:28 CDT 2012 /usr/src/phonon-backend-vlc-0.5.0/phonon-backend-vlc-0.5.0.tar.xz
Mon Jul  2 20:19:06 CDT 2012 /usr/src/cdparanoia/cdparanoia-III-10.2.src.tgz
Mon Jul  2 20:24:41 CDT 2012 /usr/src/libdvdcss/libdvdcss-1.2.12.tar.bz2
Mon Jul  2 20:26:39 CDT 2012 /usr/src/giflib/giflib-4.1.6.tar.bz2
Mon Jul  2 20:28:35 CDT 2012 /usr/src/openjpeg/openjpeg-1.5.0.tar.gz
Mon Jul  2 20:34:13 CDT 2012 /usr/src/lzo/lzo-2.06.tar.gz
Mon Jul  2 20:38:22 CDT 2012 /usr/src/mpg/mpg123-1.14.1.tar.bz2
Mon Jul  2 21:01:16 CDT 2012 /usr/src/mplayer/MPlayer-1.1.tar.xz
Mon Jul  2 21:25:26 CDT 2012 /usr/src/sdl/SDL-1.2.15.tar.gz
Mon Jul  2 21:44:52 CDT 2012 /usr/src/mplayer/MPlayer-1.1.tar.xz
Mon Jul  2 22:06:11 CDT 2012 /usr/src/mplayer/MPlayer-1.1.tar.xz
Tue Jul  3 12:14:59 CDT 2012 /usr/src/boost/boost_1_49_0.tar.bz2
Tue Jul  3 12:19:39 CDT 2012 /usr/src/raptor/raptor2-2.0.8.tar.gz
Tue Jul  3 12:22:38 CDT 2012 /usr/src/rasqal/rasqal-0.9.29.tar.gz
Tue Jul  3 12:26:58 CDT 2012 /usr/src/libiodbc/libiodbc-3.52.7.tar.gz
Tue Jul  3 12:49:13 CDT 2012 /usr/src/virtuoso/virtuoso-opensource-6.1.5.tar.gz
Tue Jul  3 12:58:47 CDT 2012 /usr/src/redland/redland-1.0.15.tar.gz
Tue Jul  3 13:07:07 CDT 2012 /usr/src/soprano/soprano-2.8.0.tar.bz2
Tue Jul  3 13:16:14 CDT 2012 /usr/src/akonadi/akonadi-1.7.2.tar.bz2
Tue Jul  3 13:39:12 CDT 2012 /usr/src/attica/attica-0.4.0.tar.bz2
Tue Jul  3 13:41:55 CDT 2012 /usr/src/qimageblitz/qimageblitz-0.0.6.tar.bz2
Tue Jul  3 13:45:02 CDT 2012 /usr/src/shared-desktop-ontologies/shared-desktop-ontologies-0.10.0.tar.bz2
Tue Jul  3 13:50:09 CDT 2012 /usr/src/nspr/nspr-4.9.1.tar.gz
Tue Jul  3 14:04:10 CDT 2012 /usr/src/spidermonkey/js185-1.0.0.tar.gz
Tue Jul  3 15:37:30 CDT 2012 /usr/src/polkit/polkit-0.106.tar.gz
Tue Jul  3 15:56:16 CDT 2012 /usr/src/polkit-qt/polkit-qt-1-0.103.0.tar.bz2
Tue Jul  3 16:04:00 CDT 2012 /usr/src/oxygen-icons/oxygen-icons-4.8.3.tar.xz
Tue Jul  3 16:31:59 CDT 2012 /usr/src/attr/attr-2.4.46.src.tar.gz
Tue Jul  3 16:34:53 CDT 2012 /usr/src/acl/acl-2.2.51.src.tar.gz
Tue Jul  3 16:37:18 CDT 2012 /usr/src/gperf/gperf-3.0.4.tar.gz
Tue Jul  3 16:42:11 CDT 2012 /usr/src/udev/udev-182.tar.xz
Tue Jul  3 16:46:49 CDT 2012 /usr/src/libatasmart/libatasmart-0.18.tar.gz
Tue Jul  3 17:29:25 CDT 2012 /usr/src/lvm2/LVM2.2.02.95.tgz
Tue Jul  3 17:38:22 CDT 2012 /usr/src/parted/parted-3.1.tar.xz
Tue Jul  3 17:46:17 CDT 2012 /usr/src/sg3-utils/sg3_utils-1.33.tar.xz
Tue Jul  3 17:57:57 CDT 2012 /usr/src/python-modules/py2cairo-1.10.0.tar.bz2
Tue Jul  3 18:01:29 CDT 2012 /usr/src/python-modules/pygobject-2.28.6.tar.xz
Tue Jul  3 18:11:55 CDT 2012 /usr/src/dbus-bindings/dbus-python-1.1.1.tar.gz
Tue Jul  3 18:14:25 CDT 2012 /usr/src/udisks/udisks-1.0.4.tar.gz
Tue Jul  3 18:22:53 CDT 2012 /usr/src/libdaemon/libdaemon-0.14.tar.gz
Tue Jul  3 18:25:16 CDT 2012 /usr/src/libglade/libglade-2.6.4.tar.bz2
Tue Jul  3 18:30:32 CDT 2012 /usr/src/avahi/avahi-0.6.31.tar.gz
Tue Jul  3 18:46:39 CDT 2012 /usr/src/aspell/aspell-0.60.6.1.tar.gz
Tue Jul  3 19:59:04 CDT 2012 /usr/src/enchant/enchant-1.6.0.tar.gz
Tue Jul  3 21:06:47 CDT 2012 /usr/src/consolekit/ConsoleKit-0.4.5.tar.bz2
Tue Jul  3 21:55:20 CDT 2012 /usr/src/upower/upower-0.9.17.tar.xz
Tue Jul  3 22:13:20 CDT 2012 /usr/src/libdbusmenu-qt/libdbusmenu-qt-0.9.2.tar.bz2
Tue Jul  3 22:21:40 CDT 2012 /usr/src/qca/qca-2.0.3.tar.bz2
Tue Jul  3 22:32:12 CDT 2012 /usr/src/gamin/gamin-0.1.10.tar.gz
Tue Jul  3 22:38:37 CDT 2012 /usr/src/exiv2/exiv2-0.22.tar.gz
Wed Jul  4 11:18:55 CDT 2012 /usr/src/strigi/strigi_0.7.7.orig.tar.bz2
Wed Jul  4 11:59:59 CDT 2012 /usr/src/polkit-qt/polkit-qt-1-0.103.0.tar.bz2
Wed Jul  4 14:16:46 CDT 2012 /usr/src/kde4/kdelibs-4.8.3.tar.xz
Wed Jul  4 14:20:54 CDT 2012 /usr/src/libgpg-error/libgpg-error-1.10.tar.bz2
Wed Jul  4 14:24:00 CDT 2012 /usr/src/libassuan/libassuan-2.0.3.tar.bz2
Wed Jul  4 14:27:27 CDT 2012 /usr/src/libcap2/libcap2_2.22.orig.tar.gz
Wed Jul  4 14:31:10 CDT 2012 /usr/src/tcl/tcl8.5.11-src.tar.gz
Wed Jul  4 14:36:56 CDT 2012 /usr/src/tk/tk8.5.11-src.tar.gz
Wed Jul  4 14:38:23 CDT 2012 /usr/src/pinentry/pinentry-0.8.1.tar.gz
Wed Jul  4 18:47:22 CDT 2012 /usr/src/akonadi/akonadi-1.7.2.tar.bz2
Wed Jul  4 18:47:45 CDT 2012 /usr/src/shared-desktop-ontologies/shared-desktop-ontologies-0.10.0.tar.bz2
Wed Jul  4 18:49:51 CDT 2012 /usr/src/attica/attica-0.4.0.tar.bz2
Wed Jul  4 18:50:28 CDT 2012 /usr/src/qimageblitz/qimageblitz-0.0.6.tar.bz2
Wed Jul  4 20:03:32 CDT 2012 /usr/src/phonon-backend-vlc-0.5.0/phonon-backend-vlc-0.5.0.tar.xz
Wed Jul  4 20:13:18 CDT 2012 /usr/src/phonon-backend-gstreamer/phonon-backend-gstreamer-4.6.0.tar.xz
Wed Jul  4 20:18:39 CDT 2012 /usr/src/oxygen-icons/oxygen-icons-4.8.3.tar.xz
Wed Jul  4 20:33:02 CDT 2012 /usr/src/berkekey-db/db-5.3.21.tar.gz
Wed Jul  4 20:34:50 CDT 2012 /usr/src/cyrus-sasl/cyrus-sasl-2.1.25.tar.gz
Wed Jul  4 20:38:30 CDT 2012 /usr/src/libical/libical-0.48.tar.gz
Wed Jul  4 20:40:49 CDT 2012 /usr/src/libusb-compat/libusb-compat-0.1.4.tar.bz2
Wed Jul  4 20:44:10 CDT 2012 /usr/src/libksba/libksba-1.2.0.tar.bz2
Wed Jul  4 20:54:49 CDT 2012 /usr/src/libgcrypt/libgcrypt-1.5.0.tar.bz2
Wed Jul  4 21:00:21 CDT 2012 /usr/src/gnupg/gnupg-2.0.18.tar.bz2
Wed Jul  4 21:02:14 CDT 2012 /usr/src/gpgme/gpgme-1.3.2.tar.bz2
Wed Jul  4 21:29:41 CDT 2012 /usr/src/kde4/kdepimlibs-4.8.3.tar.xz
Thu Jul  5 11:13:16 CDT 2012 /usr/src/libtirpc/libtirpc-0.2.2.tar.bz2
Thu Jul  5 13:46:44 CDT 2012 /usr/src/libcanberra/libcanberra-0.28.tar.gz
Thu Jul  5 16:11:19 CDT 2012 /usr/src/kde4/kde-runtime-4.8.3.tar.xz
Thu Jul  5 16:33:09 CDT 2012 /usr/src/kde4/kde-baseapps-4.8.3.tar.xz
Thu Jul  5 16:37:09 CDT 2012 /usr/src/kde4/kactivities-4.8.3.tar.xz
Thu Jul  5 18:06:45 CDT 2012 /usr/src/kde4/kde-workspace-4.8.3.tar.xz
Thu Jul  5 18:10:43 CDT 2012 /usr/src/kde4/konsole-4.8.3.tar.xz
Thu Jul  5 18:43:49 CDT 2012 /usr/src/kde4/kdegames-4.8.3.tar.xz
Thu Jul  5 20:42:58 CDT 2012 /usr/src/kde4/kde-workspace-4.8.3.tar.xz

You may see some repeats above. I had a QTDIR set incorrectly and had to go back and rebuild. The nice thing about scripts is that it's just one line (and wait). :)

OK. Exit out of twm and start KDE. Problem! I can't get it to recognize the keyboard and the mouse is erratic. I tried several things, but I couldn't get it to work. Time to try something else.

XFCE

So I build XFCE:


Thu Jul  5 23:19:59 CDT 2012 /usr/src/xfce/libxfce4util-4.10.0.tar.bz2
Thu Jul  5 23:26:52 CDT 2012 /usr/src/xfce/xfconf-4.10.0.tar.bz2
Thu Jul  5 23:29:21 CDT 2012 /usr/src/xfce/libxfce4ui-4.10.0.tar.bz2
Thu Jul  5 23:32:51 CDT 2012 /usr/src/xfce/exo-0.8.0.tar.bz2
Thu Jul  5 23:34:29 CDT 2012 /usr/src/xfce/garcon-0.2.0.tar.bz2
Thu Jul  5 23:36:32 CDT 2012 /usr/src/xfce/xfconf-4.10.0.tar.bz2
Thu Jul  5 23:37:16 CDT 2012 /usr/src/xfce/gtk-xfce-engine-3.0.0.tar.bz2
Thu Jul  5 23:40:20 CDT 2012 /usr/src/xfce/libwnck-2.30.7.tar.xz
Thu Jul  5 23:42:43 CDT 2012 /usr/src/xfce/libxfcegui4-4.10.0.tar.bz2
Thu Jul  5 23:48:10 CDT 2012 /usr/src/xfce/Thunar-1.4.0.tar.bz2
Thu Jul  5 23:50:26 CDT 2012 /usr/src/xfce/thunar-volman-0.8.0.tar.bz2
Thu Jul  5 23:52:39 CDT 2012 /usr/src/xfce/tumbler-0.1.25.tar.bz2
Thu Jul  5 23:54:08 CDT 2012 /usr/src/xfce/xfce4-appfinder-4.10.0.tar.bz2
Thu Jul  5 23:57:58 CDT 2012 /usr/src/xfce/xfce4-panel-4.10.0.tar.bz2
Fri Jul  6 12:32:48 CDT 2012 /usr/src/gtk3/gtk+-3.4.3.tar.xz
Fri Jul  6 12:44:10 CDT 2012 /usr/src/libnotify/libnotify-0.7.5.tar.xz
Fri Jul  6 12:45:53 CDT 2012 /usr/src/xfce/xfce4-power-manager-1.2.0.tar.bz2
Fri Jul  6 12:49:02 CDT 2012 /usr/src/xfce/xfce4-settings-4.10.0.tar.bz2
Fri Jul  6 12:59:55 CDT 2012 /usr/src/xfce/xfdesktop-4.10.0.tar.bz2
Fri Jul  6 13:02:28 CDT 2012 /usr/src/xfce/xfwm4-4.10.0.tar.bz2
Fri Jul  6 13:05:27 CDT 2012 /usr/src/xfce/xfce4-session-4.10.0.tar.bz2

It works great! The keyboard and mouse are very responsive, Even the KDE apps run fine.

Finishing Up

Time to build some things to use. Some of these take a long time. LibreOffice was over 10 hours!


Fri Jul  6 13:44:45 CDT 2012 /usr/src/xeyes/xeyes-1.1.1.tar.gz
Fri Jul  6 14:23:15 CDT 2012 /usr/src/gtk-doc/gtk-doc-1.18.tar.xz
Fri Jul  6 15:42:37 CDT 2012 /usr/src/poppler/poppler-0.20.1.tar.gz
Fri Jul  6 15:52:26 CDT 2012 /usr/src/okular/okular-4.8.3.tar.xz
Fri Jul  6 22:21:33 CDT 2012 /usr/src/kde4/kruler-4.8.3.tar.xz
Sat Jul  7 18:39:32 CDT 2012 /usr/src/iso-codes/iso-codes-3.30.tar.bz2
Sun Jul  8 12:14:53 CDT 2012 /usr/src/upower/upower-0.9.17.tar.xz
Sun Jul  8 12:19:38 CDT 2012 /usr/src/udisks/udisks-1.0.4.tar.gz
Sun Jul  8 14:32:04 CDT 2012 /usr/src/cups/cups-1.5.0-source.tar.bz2
Sun Jul  8 14:38:16 CDT 2012 /usr/src/lcms/lcms2-2.3.tar.gz
Sun Jul  8 14:52:37 CDT 2012 /usr/src/ghostscript/ghostscript-9.05.tar.bz2
Sun Jul  8 15:13:05 CDT 2012 /usr/src/graphviz/graphviz-2.28.0.tar.gz
Sun Jul  8 15:44:54 CDT 2012 /usr/src/doxygen/doxygen-1.7.5.src.tar.gz
Sun Jul  8 16:10:15 CDT 2012 /usr/src/vala/vala-0.16.1.tar.xz
Sun Jul  8 16:17:28 CDT 2012 /usr/src/babl/babl-0.1.10.tar.bz2
Sun Jul  8 17:16:42 CDT 2012 /usr/src/gegl/gegl-0.2.0.tar.bz2
Sun Jul  8 17:29:39 CDT 2012 /usr/src/python-modules/pygtk-2.24.0.tar.bz2
Sun Jul  8 18:05:23 CDT 2012 /usr/src/gimp/gimp-2.8.0.tar.bz2
Sun Jul  8 18:52:59 CDT 2012 /usr/src/agg/agg-2.5.tar.gz
Sun Jul  8 19:10:55 CDT 2012 /usr/src/gst-ffmpeg/gst-ffmpeg-0.10.13.tar.bz2
Sun Jul  8 20:36:36 CDT 2012 /usr/src/speex/speex-1.2rc1.tar.gz
Mon Jul  9 10:09:36 CDT 2012 /usr/src/libreoffice/libreoffice-core-3.5.4.2.tar.xz
Mon Jul  9 12:00:10 CDT 2012 /usr/src/galculator/galculator-1.3.4.tar.bz2
Mon Jul  9 12:25:54 CDT 2012 /usr/src/ksnapshot/ksnapshot-4.8.3.tar.xz
Mon Jul  9 13:47:46 CDT 2012 /usr/src/a2ps/a2ps-4.14.tar.gz

Done for now. This is what my desktop looks like:

bdubbs desktop

I'm sure there will be some more things, but it's time to get back to fixing tickets in LFS and BLFS. I hope you find this useful.

-- Bruce