OakHeart

Welcome to OakHeart!

I like the ease with which you can fix your system if you build it by hand as in LFS, but cut and pasting commands one by one is a waste of time after the first few builds. Since the LFS project is not willing to make saving that time a priority, I started this project. I also want to achieve a more unified project through responsiveness to user and developer needs, a much more inclusive feature acceptance policy, a frequent and responsive release schedule, high technical quality, and full credit for all contributors.

This is a development preview release. Various things, including the documentation, aren't complete and others can be expected to change so jump in and help!

Documentation

This work is in the development stages. Infrastructure is in place for building an assortment of packages. Commands for building an install from the ground up are not yet in complete.

Understanding OakHeart

The instructions.xml file and all the files under the instructions/ directory form one big XML document which contains both shell commands for building both packages and Linux systems as well as documentation. (You're reading that documentation right now.)

That XML document can be quickly transformed into other formats for printing or reading using a few simple commands. You're probably reading something produced that way. This example won't work until you've read further, but the following command creates a single html file called instructions.html:

./oakheart --html
    

Specific parts, like the shell commands, can also be extracted so you don't have to run them by hand. Again, this won't work yet, but the following example would download cpio to the current directory, build it and install it under /usr.

./oakheart --download cpio | make -f -
./oakheart --commands cpio | sh
    

Unless you're adding or updating instructions (which you're encouraged to do), everything is designed so you shouldn't need to modify anything under the instructions/ directory. However, for each machine you build on, there are some things that must be done differently. Hostname settings and such are obvious examples.

For that purpose, the instructions pull in some information from things in the config/ directory.

Preparation

The config/ Directory

To start, you'll need a config/config.xml file and a config/config/ directory. The following commands will use the defaults.

ln -s default.xml config/config.xml
ln -s default config/config
      

If you want to change the defaults for a specific machine, you should copy config/default.xml and config/default/ to a different name and link there instead.

The sudo Command

The generated scripts need to run make install and such as root. By default, they use sudo to do so. See config/config.xml if that won't work for you.

To be used, sudo must be configured using visudo. The following sample config will work although you might want to set timeouts shorter than the forever given in the example.

You'll need to change <user> to the user you use.

# timeouts are in minutes
Defaults:<user> timestamp_timeout=-1, passwd_timeout=0, \
    passprompt="%u's Password: "
<user> ALL=(root) ALL  # a shell as root is a shell as anyone
      

Now the above examples will work.

The Command Line Interface

Many of the following commands take one or more "option"s as arguments. Rather than try to explain both the commands and how options work at the same time, options will be covered later.

Rendered Versions

Regenerating these may be useful if you've changed var elements in config.xml or such.

instructions.html
HTML format. Regenerate with ./oakheart --html

For now, the HTML is all there is, unfortunately. Chunked HTML, text, XSL:FO, Docbook, and who knows what else would be nice. Temporarily, links -dump instructions.html >instructions.txt will probably produce decent text and you might get acceptable PS/PDF from your (*ix) web browser's print to file function and ps2pdf.

Script Generation

./oakheart --commands [<option> ...]
Prints build commands shell script.
./oakheart --download [<option> ...]
Prints download commands makefile.

Release Watching

./oakheart --distpoint [<option> ...]
Fetches fresh copies of download pages.
./oakheart --distpoint-test <n> [<option> ...]
Shows the URL list produced by the nth level of distpoint processing. Fetches if the source hasn't already been fetched. Distpoint processing, URL lists, and such are explained later.
./oakheart --hot <n> [<option> ...]
Lists tarlists that: are not yet fetched, are changed, or errored out.
./oakheart --show <n> [<option> ...]
Shows tarlist.
./oakheart --diff <n> [<option> ...]
Shows differences between tarlist now and when last marked seen. (See next command.)
./oakheart --mark <n> [<option> ...]
Marks tarlist differences seen.

XML Format

If they are ever to be selected by a frontend, all commands, download, tarlist, and distpoint elements need a selector element. If they contain child selector elements, the first is taken; otherwise, each parent element is considered in turn and the first child selector element in the first parent element to contain one is used.

The selector elements must have a mode attribute which must have one of the values any or all. Any selector elements lacking a correct mode attribute will be ignored. If the mode attribute is set to all, all of the selector element's children must succeed for the selector element to succeed. If it is set to any, then the selector element will succeed if any of its children do. All selector elements may contain an arbitrary mix of other selector elements, not elements, and option elements.

The not elements may contain the same children as selector elements except that they should have only one child. If a not element's child succeeds, the element fails; if its child fails, it succeeds.

The option elements contain a string of characters. They succeed if their contents match one of the option strings passed to the frontend and fail if not. The option elements' contents should be all lower case, should start with a letter, and should contain nothing but letters, dashes, and underscores. When adapting a string that contains other characters to an option string, the other characters should simply be removed, not replaced with something, except for spaces which should be replaced with dashes.

The commands elements contain shell code for building the package.

The download elements contain shell code for downloading a file, checking its md5sum, and recompressing it if necessary. (All files, other than single compressed image files and such, are converted to bzip2 compressed tar files to save space.) WARNING: the shell code in a download element is copied into a Makefile so cd commands only apply to the rest of the (possibly backslash continued) line on which they appear! Each download element must have a file attribute which gives the name of the file it produces.

Both tarlist and distpoint elements must have a name which they get from a name element which is found in the same manner as selector elements are found. The contents of name elements is similar to that of option elements.

Also, both tarlist and distpoint elements may filter HTML code into a list. For this purpose they may contain one prefilter element and one filter element. These elements contain code for sed -nr (-n: no automatic print; -r: extended regex syntax). If omitted, either one defaults to p which simply passes the content unchanged. The prefilter is a first pass used to add line breaks where needed while the filter is a second pass and does the primary work.

The distpoint elements are used to get pages off the net that list downloadable files for packages. They must have a url attribute which contains the URL of the first, and often only, page to download. If the list is stored in a directory tree or similar instead of a single page, the distpoint element may contain a depth attribute which specifies how far down to descend. A value of 1 fetches only one page. A value of 2 filters the first page to get a list of URLs which it then downloads. Higher values repeat this process. Because of its complexity, and therefore fragility, this feature should be used only where needed.

The tarlist elements are used to filter the pages fetched by a distpoint element into a list of downloadable files for a package. They may have a distpoint attribute which contains the name of the distpoint from which they get pages to filter. The distpoint attribute defaults to the tarlist element's name.

Hacking

If you find a set of instructions useful, you're willing to maintain them, and no one has a better way or can find anything truly broken about them, then they can be added. If that means there are multiple ways to do the same thing in here, so be it. Same with alternate instructions for building from CVS and such.

Uninstall

Simplisticly, one would think that uninstall would be a simple matter of tracking installed files and deleting them. It isn't. It is more like reverting a change from many revisions ago in a source tree. This is non-trivial. The most trustworthy solution is to not uninstall or upgrade in place but to build fresh installs whenever you can.

Installed File Tracking

Adding installed file tracking should be no problem. touch $stampfile && make install && find / -cnewer $stampfile should get you started.

Dependencies

If generating a build script for several packages at once is going to work, packages must be listed in an order that satisfies dependencies. And the reasons for that order must be documented else experience shows that they will have to be worked out time and time again.

How far beyond that we go depends.... If we go too far, we've just reinvented Gentoo which is unlikely to be wise. Also, most any dependency system will duplicate the dependency information in configure scripts and duplicating information is also unlikely to be wise although it is difficult to figure which is the redundant copy in this case. (Changing configure scripts to export dependency information in a machine readable form is another, and interesting, project in itself.)

On the other hand, it is tempting to support generating a script that builds a package and all its dependencies. And of course such a script shouldn't needlessly reinstall things, which leads to some sort of system database, which leads quite directly to reinventing Gentoo. It is a very slippery slope, but.... One of the nice things about LFS is that you know every package on the system because you installed each one yourself and that is something we shouldn't sacrifice, even for apparent convenience. Especially since Gentoo already does so.

Functions

One would think that it would be simplest to support instructions like: <build package="foo" version="1.0"/> and so I tried it several years ago. It isn't simpler. The savings in instructions size are vastly outweighed by the size and complexity of the code to support them. Same thing with downloading.

XML Shell Syntax

There are some attractive advantages to expressing commands in XML instead of shell scripts but experience with nALFS proves the approach fraught with source code readability issues and all the problems inherent in reinventing wheels.

TODO
  • usr-src-linux var
  • create news element
  • <download> element TODO

    This needs simplification, I think.

    • mirror support. I think we'll need to have a set of regions and download elements will list which url goes with which region. Region(s) selection will be manual (automatic would be good if it could be done and done visibly and simply).
    • alternate command support
    • alternate location support
    • local alternate command
    • local alternate location (it is probably okay if locals always take precedence)

    A site specific, OakHeart created, archive would be a separate function from net fetching because fetching from the site archive is as simple as appending the @file content to the site fetch command.

    That doesn't cover the instance where the site archive isn't complete and the local machine has independent net access. If that is a common enough scenario, merging it with the standard net fetch should be simple enough.

  • --extract --home --file
  • <filter> marcros/vars/whatever Current code is a cut'n'paste mess of sed. (It's no longer as bad as when I wrote that....)
  • Throw fits if an item named on the command line or in the config isn't found
  • Environment check script to see that the required things are present. This might do basic compilation checks later, too.
  • Output to docbook for tldp.org and such
  • Output to chunked html
  • Formatting conventions doc and editor modelines
  • XML Schema or Relax-NG (libxml now handles these)
  • grep -r XXX: . | grep -v '/\.svn/'
Other Projects

A number of other projects suggest themselves during work on OakHeart:

Many packages, including nearly all those associated with the GNU project, don't include man pages of a quality that compares with other Unix like systems such as FreeBSD. There are existing projects to address this and work might be done in cooperation with them. Any successful effort would need considerable automated tracking of changes in the documented project, an thorough commitment to detailed quality, and a strong connection with users including those who are highly competent. Familiarity with and reference to existing high quality Unix documentation, such as the FreeBSD man pages would likely be very helpful.

Various small projects are unmaintained or crying out to be forked by a maintainer who is responsive and has respect for current standards. Instead of merely patching such projects, perhaps with patches from Gentoo or Debian, it would be nice to find someone with some expertice in the project's field who could assume maintainership.

If you're interested by these possibilities, I recommend gaining thorough competence with autoconf, automake, libtool, diff, and man page writing. These skills will serve you well no matter what you do. Unix embodies three decades of experience in system design and it is well to understand it before endeavoring to fix it. While nothing can replace actually working with the system, reading The Art of Unix Programming may be useful so long as you don't take it as gospel, and Advanced Programming in the UNIX Environment is widely recommended.

Side Tools

Sometimes you want to upgrade by installing over. It's always risky, rarely wise, but sometimes you do it anyway. And sometimes, usually when GCC ABIs change badly, you can't do it anyway because the libc install will hose the very tools it is using to do the install somewhere partway through the process. These commands are for that time.

An understanding of LFS 5.1.1 is useful when trying to figure out what side does and how it works.

Commands
### Selected by all of options (any of side-env, side-binutils-static, side-gcc-static, side-linux-libc-headers, side-linux-headers, side-glibc, side-binutils-chlib, side-specs, side-rm-fixed, side or all) and (not: no-side-env)

    
set +h
export PATH=/side/bin":$PATH"
export LC_ALL=POSIX
  
Commands
### Selected by all of options (any of side-init, side or all) and (not: no-side-init)

    
sudo rm -rf /side
sudo install -d /side
  
Commands
### Selected by any of options side-binutils-static, side or all

    
rm -rf binutils-build binutils-2.14
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/binutils-2.14.tar.bz2
mkdir binutils-build
pushd binutils-build
../binutils-2.14/configure --prefix=/side --disable-nls
make configure-host
make LDFLAGS="-all-static"
sudo make install
make -C ld clean
make -C ld LDFLAGS="-all-static" LIB_PATH=/side/lib
popd
  
Commands
### Selected by any of options side-gcc-static, side or all

    
rm -rf gcc-3.3.3 gcc-build
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/gcc-core-3.3.3.tar.bz2
mkdir gcc-build
pushd gcc-build
../gcc-3.3.3/configure \
    --prefix=/side --with-local-prefix=/side \
    --disable-nls --enable-shared --enable-languages=c
make BOOT_LDFLAGS="-static" bootstrap
sudo make install
sudo ln -s gcc /side/bin/cc
popd
rm -rf gcc-3.3.3 gcc-build
  
Commands
### Selected by any of options side-linux-libc-headers, side or all

    
rm -rf linux-libc-headers-2.6.11.2
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/linux-libc-headers-2.6.11.2.tar.bz2
pushd linux-libc-headers-2.6.11.2
  
Commands
### Selected by all of options (any of i586-pc-linux-gnu) and (any of side-linux-libc-headers, side or all)

    
mv include/asm-i386 include/asm
  
Commands
### Selected by all of options powerpc-unknown-linux-gnu and (any of side-linux-libc-headers, side or all)

    
mv include/asm-ppc include/asm
  
Commands
### Selected by any of options side-linux-libc-headers, side or all

    
sudo make -f - SRC='include/asm include/linux' \
    DEST=/side <<'EOF'
DIRS  := $(shell find $(SRC) -follow -type d)
FILES := $(shell find $(SRC) -follow -type f)
all: $(DIRS) $(FILES)
$(DIRS)::  ; install -d $(DEST)/$@
$(FILES):: ; install -m 644 $@ $(DEST)/$@
EOF
popd
rm -rf linux-libc-headers-2.6.11.2
  
Commands
### Selected by any of options side-glibc, side or all

    
rm -rf glibc-build glibc-2.3.3-lfs-5.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/glibc-2.3.3-lfs-5.1.tar.bz2
mkdir glibc-build
pushd glibc-build
../glibc-2.3.3-lfs-5.1/configure --prefix=/side \
    --disable-profile --enable-add-ons=linuxthreads \
    --with-binutils=/side/bin \
    --with-headers=/side/include \
    --without-gd --without-cvs
make AUTOCONF=no
sudo install -d /side/etc
sudo install -m 644 /dev/null /side/etc/ld.so.conf
sudo make install
popd
rm -rf glibc-build glibc-2.3.3-lfs-5.1
  
Commands
### Selected by any of options side-binutils-chlib, side or all

    
pushd binutils-build
sudo make -C ld install
popd
rm -rf binutils-build binutils-2.14
  
Commands
### Selected by any of options side-specs, side or all

    
pushd /side/lib/gcc-lib/powerpc-unknown-linux-gnu/3.3.3
sudo cp specs specs.orig
sed -r 's@ (/lib/ld\.so\.1)@ '/side'\1@g' specs.orig \
| sudo tee specs >/dev/null
diff -u specs.orig specs
popd
  
Commands
### Selected by all of options (any of i586-pc-linux-gnu) and (any of side-specs, side-rm-fixed, side or all)

    
pushd /side/lib/gcc-lib/i586-pc-linux-gnu/3.3.3
  
Commands
### Selected by all of options (any of powerpc-unknown-linux-gnu) and (any of side-specs, side-rm-fixed, side or all)

    
pushd /side/lib/gcc-lib/powerpc-unknown-linux-gnu/3.3.3
  
Commands
### Selected by any of options side-specs, side or all

    
sudo cp specs specs.orig
sed -r 's@ (/lib/ld\.so\.1)@ '/side'\1@g' specs.orig \
| sudo tee specs >/dev/null
diff -u specs.orig specs
popd
  

This is how LFS cleans out "fixed" headers. A bit of grep will actually remove them all but we'll stick with this for now because it is somewhat more tested.

Commands
### Selected by any of options side-rm-fixed, side or all

    
sudo rm -vf pthread.h bits/sigthread.h
popd
  

FIX: There should be some compiler testing at this point.

LFS Method

This section contains commands for building a base install from an existing install based on the method used by LFS 5.1.1. This section is only just begun although I have more in a scratch file. If you want to finish it, let me know and I'll be happy to help and to apply your patches. That said, let's get to it:

These instructions leave a few things to be done by hand. To start with, you'll need to mount the target partition on the temporary mount point that you've specified in config/config.xml in the variable mnttmp. As of when this was generated, it was set to /mnt/tmp. You'll also need to delete any existing build on the partition. The following commands might be what you need to accomplish all this:

cfdisk /dev/hdb
mke2fs -j /dev/hdb1
mkswap /dev/hdb2
swapon /dev/hdb2
install -d /mnt/tmp
mount /dev/hdb1 /mnt/tmp
install -d /mnt/tmp/usr/src
cd /mnt/tmp/usr/src
oakheart --download lfs
  
Commands
### Selected by any of options lfs or all

    
sudo install -d /mnt/tmp/mnt/tmp/tools
sudo ln -sf `echo /mnt/tmp/tools | sed 's@^/*@@'` /mnt/tmp/tools

  

PreBoot

This section is currently incomplete but growing. Feel free to pitch in and help.

Commands
### Selected by any of options preboot or all

    
umask 0022
unset LD_LIBRARY_PATH || true
unset LD_PRELOAD || true
export PATH=/mnt/tmp/tools/sbin:/mnt/tmp/tools/bin:"$PATH"
export LC_ALL=POSIX
set +h

sudo rm -rf /mnt/tmp/*

sudo install -d /mnt/tmp/mnt/tmp/tools
sudo ln -sf `echo /mnt/tmp/tools | sed 's@^/*@@'` /mnt/tmp/tools

sudo sh -ev <<'EOC'
cd /mnt/tmp
install -d bin
install -d boot
install -d dev
install -d etc
echo 'root:x:0:0:Super User:/root:/bin/bash' >etc/passwd
echo 'root:x:0:root' >etc/group
echo 'root::12072:0:99999:7:::' >etc/shadow
chmod 640 etc/shadow
install -d lib
install -d mnt
install -d mnt/tmp
install -d proc
install -d sbin
install -d -m 1777 tmp
install -d usr
install -d usr/bin
install -d usr/include
install -d usr/lib
install -d usr/sbin
install -d usr/share
install -d usr/share/man
install -d usr/share/info
install -d usr/share/doc
install -d usr/share/misc
install -d usr/src
install -d var
install -d var/cache
install -d var/lib
install -d var/lib/misc
install -d var/lock
install -d var/log
touch var/log/lastlog
touch var/log/messages
touch var/log/wtmp
touch var/log/btmp
install -d var/run
touch var/run/utmp
install -d var/spool
install -d var/mail
install -d -m 1777 var/tmp
install -d home
install -d root
EOC

rm -rf glibc-kernheaders-2.4-8.44
tar --no-same-owner -xvjf \
    "$OAKHEART_IPWD"/glibc-kernheaders-2.4-8.44.src.tar.bz2
pushd glibc-kernheaders-2.4-8.44
sudo tar --no-same-owner -xvjf glibc-kernheaders.tar.bz2 \
    -C /mnt/tmp usr/include/{asm-i386,linux}/'*'
sudo mv /mnt/tmp/usr/include/{asm-i386,asm}
sudo install -d /mnt/tmp/tools/include
sudo cp -a /mnt/tmp/usr/include/{asm,linux} /mnt/tmp/tools/include
popd
rm -rf glibc-kernheaders-2.4-8.44

rm -rf binutils-build binutils-2.14
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/binutils-2.14.tar.bz2
mkdir binutils-build
pushd binutils-build
../binutils-2.14/configure --prefix=/mnt/tmp/tools --disable-nls
make configure-host
make LDFLAGS="-all-static"
sudo make install

cd ld
make clean
make LDFLAGS="-all-static" LIB_PATH=/mnt/tmp/tools/lib
popd


type ld | grep /mnt/tmp/tools
file /mnt/tmp/tools/bin/ld | grep static

rm -rf gcc-3.3.2 gcc-build
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/gcc-3.3.2.tar.bz2
mkdir gcc-build
pushd gcc-build
../gcc-3.3.2/configure --prefix=/mnt/tmp/tools \
    --with-local-prefix=/mnt/tmp/tools \
    --enable-languages=c --disable-nls --enable-shared
make BOOT_LDFLAGS="-static" bootstrap
sudo make install
popd
rm -r gcc-3.3.2 gcc-build
sudo ln -sf gcc /mnt/tmp/tools/bin/cc

file /mnt/tmp/tools/bin/gcc | grep static

rm -rf glibc-2.3.2 glibc-build
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/glibc-2.3.2.tar.bz2
tar --no-same-owner -C glibc-2.3.2 -xvjf \
    "$OAKHEART_IPWD"/glibc-linuxthreads-2.3.2.tar.bz2
patch -p0 -i "$OAKHEART_IPWD"/glibc-2.3.2-sscanf-1.patch
mkdir glibc-build
pushd glibc-build
../glibc-2.3.2/configure --prefix=/mnt/tmp/tools \
    --disable-profile --enable-add-ons --without-gd \
    --with-headers=/mnt/tmp/tools/include \
    --with-binutils=/mnt/tmp/tools/bin
make
sudo install -d /mnt/tmp/tools/etc
sudo touch /mnt/tmp/etc/ld.so.conf
sudo chmod 644 /mnt/tmp/etc/ld.so.conf
sudo make install
sudo make localedata/install-locales
popd
rm -rf glibc-2.3.2 glibc-build
sudo sh -ev <<'EOC'
cat >/mnt/tmp/etc/nsswitch.conf <<'OAKHEART_EOT'
passwd:    files
group:     files
shadow:    files
publickey: files
hosts:     files dns
networks:  files
protocols: files
services:  files
ethers:    files
rpc:       files
netgroup:  files
OAKHEART_EOT
chmod 644 /mnt/tmp/etc/nsswitch.conf
EOC
sudo cp /mnt/tmp{/usr/share/zoneinfo/US/Eastern,/etc/localtime}

readelf -l /mnt/tmp/tools/bin/locale | grep -e interpreter -e tools

pushd binutils-build/ld
sudo make install-data-local
popd
rm -rf binutils-2.14 binutils-build

pushd /mnt/tmp/tools/lib/gcc-lib/i586-pc-linux-gnu/3.3.2/
sudo sh -ev <<'EOC'
cp specs specs.orig
sed 's@ \(/lib/ld-linux.so.2\)@ /mnt/tmp/tools\1@g' specs.orig >specs
diff -u specs{.orig,} && exit 1 || true
grep -rl 'auto-edited by fixincludes' . | xargs -r rm -v
EOC
popd

echo 'main(){}' | gcc -x c - -o oakheart-test
readelf -l oakheart-test | grep -e interpreter -e tools
rm oakheart-test

# XXX: instead of gcc libiberty patch
# i don't know why we use the one from binutils. lfs-dev prolly does
# lfs isn't currently using this at this point....
# cd gcc-v.v.v/libiberty && sed -r 's/^(install:) [^ ]+(.*)/\1\2/' Makefile.in

rm -rf gcc-3.3.2 gcc-build
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/gcc-3.3.2.tar.bz2
pushd gcc-3.3.2/gcc
cp Makefile.in Makefile.in.orig
grep -v ' ./fixinc.sh ' Makefile.in.orig >Makefile.in
diff -u Makefile{.orig,} && exit 1 || true
popd
pushd gcc-3.3.2/gcc/config/i386
cp linux.h linux.h.orig
sed 's@ \(/lib/ld-linux.so.2\)@ /mnt/tmp/tools\1@g' linux.h.orig >linux.h
diff -u linux.h{.orig,} && exit 1 || true
popd
cat >>gcc-3.3.2/gcc/config/linux.h <<'EOT'
/* Remove /usr/include from the end of the include search path.  */
#undef STANDARD_INCLUDE_DIR
#define STANDARD_INCLUDE_DIR 0
EOT
mkdir gcc-build
pushd gcc-build
../gcc-3.3.2/configure --prefix=/mnt/tmp/tools \
    --with-local-prefix=/mnt/tmp/tools \
    --enable-clocale=gnu --enable-shared --enable-threads=posix \
    --enable-__cxa_atexit --enable-languages=c,c++
make
sudo make install
popd
rm -r gcc-3.3.2 gcc-build

echo 'main(){}' | gcc -x c - -o oakheart-test
readelf -l oakheart-test | grep -e interpreter -e tools
rm oakheart-test

rm -rf binutils-build binutils-2.14
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/binutils-2.14.tar.bz2
mkdir binutils-build
pushd binutils-build
../binutils-2.14/configure --prefix=/mnt/tmp/tools \
    --enable-shared --with-lib-path=/mnt/tmp/tools/lib
make
sudo make install

cd ld
make clean
make  LIB_PATH=/usr/lib:/lib
popd

echo 'main(){}' | gcc -x c - -o oakheart-test
readelf -l oakheart-test | grep -e interpreter -e tools
rm oakheart-test

rm -rf gawk-3.1.3
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/gawk-3.1.3.tar.bz2
pushd gawk-3.1.3
./configure --prefix=/mnt/tmp/tools
make 
sudo make install
popd
rm -rf gawk-3.1.3

# XXX: posix ver patch
rm -rf coreutils-5.0
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/coreutils-5.0.tar.bz2
pushd coreutils-5.0
pushd src
cp Makefile.in Makefile.in.orig
sed -r '/^bin_PROGRAMS = /,/[^\\]$/s/(hostname|kill)[^ ]* //g' \
    Makefile.in.orig >Makefile.in
diff -u Makefile.in{.orig,} && exit
popd
pushd man
cp Makefile.in Makefile.in.orig
sed -r '/^dist_man_MANS = /,/[^\\]$/s/(hostname|kill)[^ ]* //g' \
    Makefile.in.orig >Makefile.in
diff -u Makefile.in{.orig,} && exit
popd
./configure --prefix=/mnt/tmp/tools
make 
sudo make install
sudo mv -v /mnt/tmp/tools/usr/bin/{cat,chgrp,chmod} \
    /mnt/tmp/tools/usr/bin/{chown,cp,date,dd,df,echo,false,ln,ls} \
    /mnt/tmp/tools/usr/bin/{mkdir,mknod,mv,pwd,rm,rmdir,stty,su} \
    /mnt/tmp/tools/usr/bin/{true,uname} \
    /mnt/tmp/tools/bin
sudo mv -v /mnt/tmp/tools/usr/bin/chroot \
    /mnt/tmp/tools/usr/sbin/
sudo ln -vsf test /mnt/tmp/tools/usr/bin/[
popd
rm -rf coreutils-5.0

# bzip2

# diffutils (really?)

# make

# grep

# sed

# gettext (really?)

# ncurses (for texinfo, iirc)

# tar

# texinfo
# ./confi...
# make prefix=/mnt/tmp/usr TEXMF=/usr/share/texmf install install-tex

# bash and sh symlink

# util-linux 
# make -C lib
# make -C mount
# install mount/{u,}mount /mnt/tmp/bin

exit

# ed

# modutils

# devfsd (really?)
# make KERNEL_DIR=/usr/src/linux-benh
# make PREFIX=/mnt/tmp install
# echo "include /etc/modules.conf" > /mnt/tmp/etc/modules.devfs

# need kernel modules and kernel and boot loader
  

World

The title of this section is a reference to the BSD make world.

The subsections are organized by dependencies. Everything in a subsection should be in alphabetical order and shouldn't rely on anything in its section or later sections. The section names are more of a memorable tag than an indication of the section's content although they do tend to match up fairly well.

Brave New World

The binutils Package

home: http://sources.redhat.com/binutils/

fm: http://freshmeat.net/projects/binutils/

binutils requires itself and goes before gcc because many build processes use that order.

Commands
### Selected by any of options binutils, binutils-hjl or all

rm -rf binutils-build binutils-2.15.91.0.2
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/binutils-2.15.91.0.2.tar.bz2
mkdir binutils-build
pushd binutils-build
../binutils-2.15.91.0.2/configure --prefix=/usr
make
sudo make install
popd
rm -rf binutils-build binutils-2.15.91.0.2
  
Download binutils-2.15.91.0.2.tar.bz2
### Selected by any of options binutils, binutils-hjl or all

wget http://ftp.kernel.org/pub/linux/devel/binutils/binutils-2.15.91.0.2.tar.bz2
md5sum binutils-2.15.91.0.2.tar.bz2
echo '41983069bef07af4f1350c6d30666b2d  binutils-2.15.91.0.2.tar.bz2' \
    | md5sum -c
  
Tarlist binutils-hjl
### Selected by any of options binutils, binutils-hjl or all
### Distpoint: binutils-hjl

    binutils-hjl
    
# Filter

s/.*href="(binutils-[^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint binutils-hjl
### Selected by any of options binutils, binutils-hjl or all
### URL: http://ftp.kernel.org/pub/linux/devel/binutils/
### Depth: 1

    binutils-hjl
  
Download binutils-2.15.tar.bz2
### Selected by any of options binutils-gnu or all

    
wget http://ftp.gnu.org/gnu/binutils/binutils-2.15.tar.bz2
md5sum binutils-2.15.tar.bz2
echo '624e6b74983ac6b2960edaf2d522ca58  binutils-2.15.tar.bz2' | md5sum -c
  
Tarlist binutils-gnu
### Selected by any of options binutils-gnu, side-binutils, side-binutils-static, side-binutils-chlib, side or all
### Distpoint: binutils-gnu

    binutils-gnu
    
    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint binutils-gnu
### Selected by any of options binutils-gnu, side-binutils, side-binutils-static, side-binutils-chlib, side or all
### URL: http://ftp.gnu.org/gnu/binutils/
### Depth: 1

    binutils-gnu
    
  
Download binutils-2.14.tar.bz2
### Selected by any of options side-binutils, side-binutils-static, side-binutils-chlib, side or all

    
wget http://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.bz2
md5sum binutils-2.14.tar.bz2
echo '2da8def15d28af3ec6af0982709ae90a  binutils-2.14.tar.bz2' | md5sum -c
  
The gcc Package

home: http://gcc.gnu.org/

fm: http://freshmeat.net/projects/gcc/

Download gcc-3.4.2.tar.bz2
### Selected by any of options gcc or all

    
wget http://ftp.gnu.org/gnu/gcc/gcc-3.4.2/gcc-3.4.2.tar.bz2
md5sum gcc-3.4.2.tar.bz2
echo '2fada3a3effd2fd791df09df1f1534b3  gcc-3.4.2.tar.bz2' | md5sum -c
  
Download gcc-core-3.3.3.tar.bz2
### Selected by any of options side-gcc-static, side or all

    
wget ftp://ftp.linuxfromscratch.org/pub/lfs/lfs-packages/conglomeration/gcc/gcc-core-3.3.3.tar.bz2
md5sum gcc-core-3.3.3.tar.bz2
echo 'f878a455b14b3830aaf2da0a17f003c0  gcc-core-3.3.3.tar.bz2' | md5sum -c
  
Download gcc-3.3.2.tar.bz2
### Selected by any of options preboot or all

    
wget http://ftp.gnu.org/gnu/gcc/gcc-3.3.2/gcc-3.3.2.tar.bz2
md5sum gcc-3.3.2.tar.bz2
echo '65999f654102f5438ac8562d13a6eced  gcc-3.3.2.tar.bz2' | md5sum -c
  
Download gcc-2.95.3.tar.bz2
### Selected by any of options gcc-2 or all

    
wget http://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-2.95.3.tar.bz2
md5sum gcc-2.95.3.tar.bz2
echo '87ee083a830683e2aaa57463940a0c3c  gcc-2.95.3.tar.bz2' | md5sum -c
  
Tarlist gcc
### Selected by any of options gcc, gcc-2, side-gcc-static, side, preboot or all
### Distpoint: gcc

    
    
# Filter

s/.*href="(gcc-[^"]*)\/".*/\1/ip
    
  
Distpoint gcc
### Selected by any of options gcc, gcc-2, side-gcc-static, side, preboot or all
### URL: http://ftp.gnu.org/gnu/gcc/
### Depth: 1

    
  
The linux-libc-headers Package

home: http://ep09.pld-linux.org/~mmazur/linux-libc-headers/

fm: NONE (2005-MAR-15)

Download linux-libc-headers-2.6.11.2.tar.bz2
### Selected by all of options (any of linux-libc-headers, side-linux-libc-headers, side or all) and (not: side-linux-headers)

    
wget http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-2.6.11.2.tar.bz2
md5sum linux-libc-headers-2.6.11.2.tar.bz2
echo '2d21d8e7ff641da74272b114c786464e  linux-libc-headers-2.6.11.2.tar.bz2' \
    | md5sum -c
  
Tarlist linux-libc-headers
### Selected by all of options (any of linux-libc-headers, side-linux-libc-headers, side or all) and (not: side-linux-headers)
### Distpoint: linux-libc-headers

    
    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint linux-libc-headers
### Selected by all of options (any of linux-libc-headers, side-linux-libc-headers, side or all) and (not: side-linux-headers)
### URL: http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
### Depth: 1

    
  
The glibc Package

home: http://www.gnu.org/software/libc/

fm: http://freshmeat.net/projects/glibc/

Download glibc-2.3.3.tar.bz2
### Selected by any of options glibc or all

wget http://ftp.gnu.org/gnu/glibc/glibc-2.3.3.tar.bz2
md5sum glibc-2.3.3.tar.bz2
# echo '' | md5sum -c
  
Download glibc-linuxthreads-2.3.3.tar.bz2
### Selected by any of options glibc or all

wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.3.tar.bz2
md5sum glibc-linuxthreads-2.3.3.tar.bz2
# echo '' | md5sum -c
  
Download glibc-2.3.3-sscanf-1.patch
### Selected by any of options glibc or all

wget http://www.linuxfromscratch.org/patches/lfs/5.0/glibc-2.3.3-sscanf-1.patch
md5sum glibc-2.3.3-sscanf-1.patch
# echo '' | md5sum -c
  
Tarlist glibc
### Selected by any of options glibc, side-glibc, side or all
### Distpoint: glibc

    
    
# Filter

s/.*href="(glibc-[^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint glibc
### Selected by any of options glibc, side-glibc, side or all
### URL: http://ftp.gnu.org/gnu/glibc/
### Depth: 1

    
  
Download glibc-2.3.3-lfs-5.1.tar.bz2
### Selected by any of options side-glibc, side or all

    
wget ftp://ftp.linuxfromscratch.org/pub/lfs/lfs-packages/conglomeration/glibc/glibc-2.3.3-lfs-5.1.tar.bz2
md5sum glibc-2.3.3-lfs-5.1.tar.bz2
echo 'cd11fabdf5162ad68329e7b28b308278  glibc-2.3.3-lfs-5.1.tar.bz2' | md5sum -c
  

System

This is a bit of a misc section. It should probably go away.

The linux Package

home: http://www.kernel.org/

fm: http://freshmeat.net/projects/linux/

Docs
  • linux-2.6.11/Documentation/Changes
  • linux-2.6.11/README
  • make help

Note that these commands do not remove the built source tree. This is a feature. They are also interactive so piping them to a shell won't work.

Commands
### Selected by any of options linux or all

    
rm -rf linux-2.6.11
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/linux-2.6.11.tar.bz2
pushd linux-2.6.11
make mrproper
make menuconfig
make 
sudo make modules_install
sudo make install
popd
  
Commands
### Selected by any of options linux-2.6.10-2.6.11 or all

    
rm -rf linux-2.6.11
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/linux-2.6.11.tar.bz2
pushd linux-2.6.11
make mrproper
cp ../linux-2.6.10/.config .
make oldconfig
make 
sudo make modules_install
sudo make install
popd
  
Commands
### Selected by any of options linux-reconfig or all

    
pushd linux-2.6.11
cp .config .config.bak
# it is advisable to set "Local version" under "General setup"
make menuconfig
make 
sudo make modules_install
sudo make install
popd
  
Commands
### Selected by any of options linux-patch-2.6.4-2.6.5 or all

    
rm -rf linux-2.6.4-2.6.5
mkdir linux-2.6.4-2.6.5
pushd linux-2.6.4-2.6.5
wget http://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.5.bz2
md5sum patch-2.6.5.bz2
echo 'b5c6c41d718c298a7342e6765a7fd017  patch-2.6.5.bz2' | md5sum -c
bunzip2 patch-2.6.5.bz2
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/linux-2.6.4.tar.bz2
pushd linux-2.6.4
patch -p1 -i ../patch-2.6.5
popd
mv linux-2.6.4 linux-2.6.5
tar --owner=root --group=root -cvjf \
    "$OAKHEART_IPWD"/linux-2.6.5.tar.bz2 linux-2.6.5
popd
rm -rf linux-2.6.4-2.6.5
  
Download linux-2.6.11.tar.bz2
### Selected by any of options linux or all

wget http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2
md5sum linux-2.6.11.tar.bz2 
# echo '' | md5sum -c
  
Commands
### Selected by any of options linux-2.4 or all

    
rm -rf linux-2.4.26
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/linux-2.4.26.tar.bz2
pushd linux-2.4.26
make mrproper
make menuconfig
make dep
make bzImage
sudo make modules_install
popd
  
Download linux-2.4.26.tar.bz2
### Selected by any of options linux or all

wget http://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.26.tar.bz2
md5sum linux-2.4.26.tar.bz2 
echo '88d7aefa03c92739cb70298a0b486e2c  linux-2.4.26.tar.bz2' | md5sum -c
  
Tarlist linux
### Selected by any of options linux or all
### Distpoint: linux

    
# Filter

/\.tar\.bz2"/!b
s/.*href="(linux-[^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint linux
### Selected by any of options linux or all
### URL: http://ftp.kernel.org/pub/linux/kernel/
### Depth: 2

    
# Filter

s/.*<base[ \t]+href="([^"]*)">.*/\1/i
T notbase
x
b
:notbase

/href="v1\./b
s/.*href="(v[^"]*\/)".*/\1/i
T
G
s/(.*)\n(.*)/\2\1/p
    
  

home: http://www.penguinppc.org/kernel/

Commands
### Selected by any of options linux-rsync, powerpc-unknown-linux-gnu or all

    
pushd linux-ppc
cp .config ../linux-ppc.config
# should be the new way...
# rsync -avz --delete source.mvista.com::linuxppc-2.5 linux
rsync -avz --delete rsync.penguinppc.org::linux-2.4-benh .
make mrproper
tar --owner=root --group=root -cvjf \
    "$OAKHEART_IPWD"/linux-benh-2.4-`date +%Y.%m.%d`.tar.bz2 -C .. linux-ppc
cp ../linux-ppc.config .config
  
The yaboot Package

home: http://www.penguinppc.org/projects/yaboot/

fm: NONE

News Docs
  • bootstrap(8)
  • mkofboot(8)
  • ofpath(8)
  • yaboot(8)
  • yaboot.conf(5)
  • yabootconfig(8)
  • ybin(8)
Commands
### Selected by any of options yaboot or all

rm -rf yaboot-1.3.12
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/yaboot-1.3.12.tar.bz2
pushd yaboot-1.3.12
make PREFIX=usr MANDIR=share/man
sudo make PREFIX=usr MANDIR=share/man install
popd
rm -rf yaboot-1.3.12
  
Download yaboot-1.3.12.tar.bz2
### Selected by any of options yaboot or all

wget http://www.penguinppc.org/projects/yaboot/yaboot-1.3.12.tar.gz
md5sum yaboot-1.3.12.tar.gz
echo '85cf685c1dc5873c2a5124ba4524b2d2  yaboot-1.3.12.tar.gz' | md5sum -c
gunzip yaboot-1.3.12.tar.gz
bzip2 yaboot-1.3.12.tar
  
Tarlist yaboot
### Selected by any of options yaboot or all
### Distpoint: yaboot

    
# Filter

/binary/b
s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint yaboot
### Selected by any of options yaboot or all
### URL: http://www.penguinppc.org/projects/yaboot/
### Depth: 1
The module-init-tools Package

home: http://www.kernel.org/pub/linux/kernel/people/rusty/modules/

fm: NONE

Commands
### Selected by any of options module-init-tools or all

rm -rf module-init-tools-3.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/module-init-tools-3.1.tar.bz2
pushd module-init-tools-3.1
find | xargs touch  # don't regen man pages from docbook
./configure --prefix=""
make 
[ -f /sbin/lsmod.old ] || sudo make moveold
sudo make install
popd
rm -rf module-init-tools-3.1
  
Download module-init-tools-3.1.tar.bz2
### Selected by any of options module-init-tools or all

wget http://www.kernel.org/pub/linux/kernel/people/rusty/modules/module-init-tools-3.1.tar.bz2
md5sum module-init-tools-3.1.tar.bz2
echo '8ddecbcf0e56aef8617f67a3906faf3e  module-init-tools-3.1.tar.bz2' | md5sum -c
  
Tarlist module-init-tools
### Selected by any of options module-init-tools or all
### Distpoint: module-init-tools

    
# Filter

s/.*href="(module-init-tools-[0-9][^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint module-init-tools
### Selected by any of options module-init-tools or all
### URL: http://www.kernel.org/pub/linux/kernel/people/rusty/modules/
### Depth: 1
The rpm2targz Package

Fails silently if cpio isn't available.

Commands
### Selected by any of options rpm2targz or all

rm -rf rpm2targz
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/rpm2targz.tar.bz2
pushd rpm2targz
gcc -o rpmoffset rpmoffset.c
sudo install rpm2targz rpmoffset /usr/bin
popd
rm -rf rpm2targz
  
Download rpm2targz.tar.bz2
### Selected by any of options rpm2targz or all

wget http://www.linuxfromscratch.org/~tushar/downloads/rpm2targz.tar.bz2
md5sum rpm2targz.tar.bz2
echo '857bd279d1594e54a51dc08d014beb55  rpm2targz.tar.bz2' | md5sum -c
  

This tarlist is rather useless since the watched filename doesn't include a version number.

Tarlist rpm2targz
### Selected by any of options rpm2targz or all
### Distpoint: rpm2targz

    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint rpm2targz
### Selected by any of options rpm2targz or all
### URL: http://www.linuxfromscratch.org/~tushar/downloads/
### Depth: 1
The glibc-kernheaders Package

Don't upgrade these unless upgrading glibc right after. (And, of course, don't upgrade glibc on production installs. Instead, build and test a new install.)

Commands
### Selected by any of options glibc-kernheaders or all

rm -rf glibc-kernheaders-2.4-8.46
tar --no-same-owner -xvjf \
    "$OAKHEART_IPWD"/glibc-kernheaders-2.4-8.46.src.tar.bz2
pushd glibc-kernheaders-2.4-8.46
sudo tar --no-same-owner -xvjf glibc-kernheaders.tar.bz2 \
    -C / usr/include/{asm-i386,linux}/'*'
sudo mv /usr/include/{asm-i386,asm}
popd
rm -rf glibc-kernheaders-2.4-8.46
  
Download glibc-kernheaders-2.4-8.46.src.tar.bz2
### Selected by any of options glibc-kernheaders or all

wget http://mirrors.kernel.org/fedora/core/development/SRPMS/glibc-kernheaders-2.4-8.46.src.rpm
md5sum glibc-kernheaders-2.4-8.46.src.rpm
echo '24c8e06f9fa047b5dca727f8a56abf66  glibc-kernheaders-2.4-8.46.src.rpm' | md5sum -c
rpm2targz glibc-kernheaders-2.4-8.46.src.rpm
gunzip glibc-kernheaders-2.4-8.46.src.tar.gz
bzip2 glibc-kernheaders-2.4-8.46.src.tar
rm glibc-kernheaders-2.4-8.46.src.rpm
  
Tarlist glibc-kernheaders
### Selected by any of options glibc-kernheaders or all
### Distpoint: glibc-kernheaders

    
# Filter

/glibc-kernheaders-/!b  # optimize
s/.*href="(glibc-kernheaders-[^"]*\.src\.rpm)".*/\1/ip
    
  
Distpoint glibc-kernheaders
### Selected by any of options glibc-kernheaders or all
### URL: http://mirrors.kernel.org/fedora/core/development/SRPMS/
### Depth: 1

Recursive Dependencies

These package require themselves to build in one way or another.

The bzip2 Package

home: http://sources.redhat.com/bzip2/

fm: http://freshmeat.net/projects/bzip2/

News Docs
  • bzip2(1)

Bzip2 requires itself unless you have a non-bzip2ed source tarball. It is wise to be careful when messing with it.

If you have a use for the shared library, building it is simple enough; feel free to contribute the commands. However, /bin/bzip2 should remain static by default both for reliability and performance (see bzip2-1.0.2/README).

Commands
### Selected by any of options bzip2 or all

rm -rf bzip2-1.0.2
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/bzip2-1.0.2.tar.bz2
pushd bzip2-1.0.2
make
sudo sh -ev <<'EOC'
install -d /bin /usr/{bin,lib,share/man/man1,include}
install bzip2 /bin
ln -f /bin/{bzip2,bunzip2}
ln -f /bin/{bzip2,bzcat}
ln -sf ../../bin/bzip2 /usr/bin
ln -sf ../../bin/bunzip2 /usr/bin
ln -sf ../../bin/bzcat /usr/bin
install bzip2recover bzgrep bzmore bzdiff /usr/bin
ln -f /usr/bin/{bzgrep,bzegrep}
ln -f /usr/bin/{bzgrep,bzfgrep}
ln -f /usr/bin/{bzmore,bzless}
ln -f /usr/bin/{bzdiff,bzcmp}
install -m 644 bzip2.1 bzgrep.1 bzmore.1 bzdiff.1 /usr/share/man/man1
echo ".so man1/bzgrep.1" > /usr/share/man/man1/bzegrep.1
echo ".so man1/bzgrep.1" > /usr/share/man/man1/bzfgrep.1
echo ".so man1/bzmore.1" > /usr/share/man/man1/bzless.1
echo ".so man1/bzdiff.1" > /usr/share/man/man1/bzcmp.1
chmod 644 /usr/share/man/man1/{bzegrep,bzfgrep,bzless,bzcmp}.1
install -m 644 bzlib.h /usr/include
install -m 644 libbz2.a /usr/lib
EOC
popd
rm -rf bzip2-1.0.2
  
Download bzip2-1.0.2.tar.bz2
### Selected by any of options bzip2 or all

wget ftp://sources.redhat.com/pub/bzip2/v102/bzip2-1.0.2.tar.gz
md5sum bzip2-1.0.2.tar.gz
# echo '' | md5sum -c
gunzip bzip2-1.0.2.tar.gz
bzip2 bzip2-1.0.2.tar
  
Tarlist bzip2
### Selected by any of options bzip2 or all
### Distpoint: bzip2

    
# Filter

s/.*href="(v[^"]*)".*/\1/ip
    
  
Distpoint bzip2
### Selected by any of options bzip2 or all
### URL: ftp://sources.redhat.com/pub/bzip2/
### Depth: 1
The coreutils Package

home: http://www.gnu.org/software/coreutils/

fm: http://freshmeat.net/projects/coreutils/

News
  • coreutils-5.2.1/NEWS
Commands
### Selected by any of options coreutils or all

rm -rf coreutils-5.2.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/coreutils-5.2.1.tar.bz2
pushd coreutils-5.2.1
pushd src
cp Makefile.in Makefile.in.orig
sed -r '/^bin_PROGRAMS = /,/[^\\]$/s/(hostname|kill)[^ ]* //g' \
    Makefile.in.orig >Makefile.in
diff -u Makefile.in.orig Makefile.in && exit 1 || true
popd
pushd man
cp Makefile.in Makefile.in.orig
sed -r '/^dist_man_MANS = /,/[^\\]$/s/(hostname|kill)[^ ]* //g' \
    Makefile.in.orig >Makefile.in
diff -u Makefile.in.orig Makefile.in && exit 1 || true
popd
./configure --prefix=/usr
make 
sudo make install
sudo mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} \
    /usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm,rmdir,stty,su,true,uname} /bin
sudo mv -v /usr/bin/chroot /usr/sbin/
sudo ln -vsf test /usr/bin/[
popd
rm -rf coreutils-5.2.1
  
Download coreutils-5.2.1.tar.bz2
### Selected by any of options coreutils or all

wget http://ftp.gnu.org/gnu/coreutils/coreutils-5.2.1.tar.bz2
md5sum coreutils-5.2.1.tar.bz2
echo '172ee3c315af93d3385ddfbeb843c53f  coreutils-5.2.1.tar.bz2' | md5sum -c
  
Tarlist coreutils
### Selected by any of options coreutils or all
### Distpoint: coreutils

    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint coreutils
### Selected by any of options coreutils or all
### URL: http://ftp.gnu.org/gnu/coreutils/
### Depth: 1
The diffutils Package

home: http://www.gnu.org/software/diffutils/

fm: http://freshmeat.net/projects/diffutils/

Commands
### Selected by any of options diffutils or all

rm -rf diffutils-2.8.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/diffutils-2.8.1.tar.bz2
pushd diffutils-2.8.1
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf diffutils-2.8.1
  
Download diffutils-2.8.1.tar.bz2
### Selected by any of options diffutils or all

wget http://ftp.gnu.org/gnu/diffutils/diffutils-2.8.1.tar.gz
md5sum diffutils-2.8.1.tar.gz
# echo  | md5sum -c
gunzip diffutils-2.8.1.tar.gz
bzip2 diffutils-2.8.1.tar
  
Tarlist diffutils
### Selected by any of options diffutils or all
### Distpoint: diffutils

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint diffutils
### Selected by any of options diffutils or all
### URL: http://ftp.gnu.org/gnu/diffutils/
### Depth: 1
The gawk Package

home: http://www.gnu.org/software/gawk/

fm: http://freshmeat.net/projects/gnuawk/

News
  • gawk-3.1.4/NEWS
Docs
  • gawk(1)
  • info gawk
Commands
### Selected by any of options gawk or all

rm -rf gawk-3.1.4
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/gawk-3.1.4.tar.bz2
pushd gawk-3.1.4
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf gawk-3.1.4
  
Download gawk-3.1.4.tar.bz2
### Selected by any of options gawk or all

wget http://ftp.gnu.org/gnu/gawk/gawk-3.1.4.tar.bz2
md5sum gawk-3.1.4.tar.bz2
echo 'b8b532beaf02350e69d2d5dc98cb1e37  gawk-3.1.4.tar.bz2' | md5sum -c
  
Tarlist gawk
### Selected by any of options gawk or all
### Distpoint: gawk

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint gawk
### Selected by any of options gawk or all
### URL: http://ftp.gnu.org/gnu/gawk/
### Depth: 1
The gettext Package

home: http://www.gnu.org/software/gettext/

fm: http://freshmeat.net/projects/gettext/

Commands
### Selected by any of options gettext or all

rm -rf gettext-0.14.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/gettext-0.14.1.tar.bz2
pushd gettext-0.14.1
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf gettext-0.14.1
  
Download gettext-0.14.1.tar.bz2
### Selected by any of options gettext or all

wget http://ftp.gnu.org/gnu/gettext/gettext-0.14.1.tar.gz
md5sum gettext-0.14.1.tar.gz
# echo '' | md5sum -c
gunzip gettext-0.14.1.tar.gz
bzip2 gettext-0.14.1.tar
  
Tarlist gettext
### Selected by any of options gettext or all
### Distpoint: gettext

    
# Filter

s/.*href="([^"]*)\.tar\.(gz|bz2)".*/\1/ip
    
  
Distpoint gettext
### Selected by any of options gettext or all
### URL: http://ftp.gnu.org/gnu/gettext/
### Depth: 1
The grep Package

home: http://www.gnu.org/software/grep/grep.html

fm: http://freshmeat.net/projects/grep/

Grep installation requires grep.

News
  • grep-2.5.1/NEWS
Commands
### Selected by any of options grep or all

rm -rf grep-2.5.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/grep-2.5.1.tar.bz2
pushd grep-2.5.1
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf grep-2.5.1
  
Download grep-2.5.1.tar.bz2
### Selected by any of options grep or all

# gnu is still broken after breakin
# wget http://ftp.gnu.org/gnu/grep/grep-2.5.1.tar.bz2
wget http://ftp.club.cc.cmu.edu/pub/gnu/grep/grep-2.5.1.tar.bz2
md5sum grep-2.5.1.tar.bz2
echo 'ddd99e2d5d4f4611357e31e97f080cf2  grep-2.5.1.tar.bz2' | md5sum -c
  
Tarlist grep
### Selected by any of options grep or all
### Distpoint: grep

    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint grep
### Selected by any of options grep or all
### URL: http://ftp.gnu.org/gnu/grep/
### Depth: 1
The make Package

home: http://make.paulandlesley.org/

fm: http://freshmeat.net/projects/gnumake/

Commands
### Selected by any of options make or all

rm -rf make-3.80
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/make-3.80.tar.bz2
pushd make-3.80
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf make-3.80
  
Download make-3.80.tar.bz2
### Selected by any of options make or all

wget http://ftp.gnu.org/gnu/make/make-3.80.tar.bz2
md5sum make-3.80.tar.bz2
echo '0bbd1df101bc0294d440471e50feca71  make-3.80.tar.bz2' | md5sum -c
  
Tarlist make
### Selected by any of options make or all
### Distpoint: make

    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint make
### Selected by any of options make or all
### URL: http://ftp.gnu.org/gnu/make/
### Depth: 1
The ncurses Package

home: http://invisible-island.net/ncurses/

fm: http://freshmeat.net/projects/ncurses/

News
  • ncurses-5.4/NEWS
Commands
### Selected by any of options ncurses or all

rm -rf ncurses-5.4
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/ncurses-5.4.tar.bz2
pushd ncurses-5.4
./configure --prefix=/usr --with-shared --without-debug \
    --with-fallbacks=linux,vt100
make 
sudo make install
sudo mv -v /usr/lib/lib{,n}curses.so* /lib
popd
rm -rf ncurses-5.4
  
Download ncurses-5.4.tar.bz2
### Selected by any of options ncurses or all

wget ftp://invisible-island.net/ncurses/ncurses-5.4.tar.gz
md5sum ncurses-5.4.tar.gz
# echo '' | md5sum -c
gunzip ncurses-5.4.tar.gz
bzip2 ncurses-5.4.tar
  
Tarlist ncurses
### Selected by any of options ncurses or all
### Distpoint: ncurses

    
# Filter

s/.*href="(ncurses-[^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint ncurses
### Selected by any of options ncurses or all
### URL: ftp://invisible-island.net/ncurses/
### Depth: 1
The sed Package

home: http://www.gnu.org/software/sed/sed.html

fm: http://freshmeat.net/projects/sed/

Sed installation requires sed.

Docs
  • sed(1)
  • info sed
Commands
### Selected by any of options sed or all

rm -rf sed-4.0.9
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/sed-4.0.9.tar.bz2
pushd sed-4.0.9
./configure --prefix=/usr
make 
sudo make install
sudo mv /usr/bin/sed /bin
popd
rm -rf sed-4.0.9
  
Download sed-4.0.9.tar.bz2
### Selected by any of options sed or all

wget http://ftp.gnu.org/gnu/sed/sed-4.0.9.tar.gz
md5sum sed-4.0.9.tar.gz
# echo '' | md5sum -c
gunzip sed-4.0.9.tar.gz
bzip2 sed-4.0.9.tar
  
Tarlist sed
### Selected by any of options sed or all
### Distpoint: sed

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint sed
### Selected by any of options sed or all
### URL: http://ftp.gnu.org/gnu/sed/
### Depth: 1
The tar Package

home: http://www.gnu.org/software/tar/tar.html

fm: http://freshmeat.net/projects/tar/

tar-1.13.93 is out but has conflicts with iconv in glibc-2.2.5 systems. 1.13.94 is also out but I'm not upgrading yet given that the automake ChangeLog recommends using 1.13.25 with automake 1.8.x.

News
  • tar-1.13.25/NEWS
Commands
### Selected by any of options tar or all

    
rm -rf tar-1.13.25
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/tar-1.13.25.tar.bz2
pushd tar-1.13.25
./configure --prefix=/usr
make
sudo make install
sudo mv -v /usr/bin/tar /bin
popd
rm -rf tar-1.13.25
  

These commands can be used to upgrade if the system tar doesn't support --no-same-owner and -j.

Commands
### Selected by any of options tar-fromold or all

    
bzip2 -dc "$OAKHEART_IPWD"/tar-1.13.25.tar.bz2 | tar xvf -
pushd tar-1.13.25
./configure --prefix=/usr
make
sudo make install
sudo mv -v /usr/bin/tar /bin
popd
rm -rf tar-1.13.25
  
Download tar-1.13.25.tar.bz2
### Selected by any of options tar, tar-fromold or all

wget ftp://alpha.gnu.org/gnu/tar/tar-1.13.25.tar.gz
md5sum tar-1.13.25.tar.gz
# echo '' | md5sum -c
gunzip tar-1.13.25.tar.gz
bzip2 tar-1.13.25.tar
 
Tarlist tar
### Selected by any of options tar or all
### Distpoint: tar

    
    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Tarlist tar-alpha
### Selected by any of options tar-alpha or all
### Distpoint: tar-alpha

    tar-alpha
    
    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint tar
### Selected by any of options tar or all
### URL: http://ftp.gnu.org/gnu/tar/
### Depth: 1

    
  
Distpoint tar-alpha
### Selected by any of options tar-alpha or all
### URL: ftp://alpha.gnu.org/gnu/tar/
### Depth: 1

    tar-alpha
    
  

The perl Package

home: http://www.perl.org/

fm: http://freshmeat.net/projects/perl/

News
Commands
### Selected by any of options perl or all

rm -rf perl-5.8.4
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/perl-5.8.4.tar.bz2
pushd perl-5.8.4
./configure.gnu --prefix=/usr -Dpager="/bin/less -isR"
make 
sudo make install
popd
rm -rf perl-5.8.4
  
Download perl-5.8.4.tar.bz2
### Selected by any of options perl or all

wget ftp://ftp.cpan.org/pub/CPAN/src/perl-5.8.4.tar.bz2
md5sum perl-5.8.4.tar.bz2
echo '3eb135afd0114f4e1acdd4ad6b8fd947  perl-5.8.4.tar.bz2' | md5sum -c
  
Tarlist perl
### Selected by any of options perl or all
### Distpoint: perl

    
# Filter

/perl-5\.8\.0/b
s/.*href="(perl-[^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint perl
### Selected by any of options perl or all
### URL: ftp://ftp.cpan.org/pub/CPAN/src/
### Depth: 1

Build Tools

The autoconf Package

home: http://www.gnu.org/software/autoconf/

fm: http://freshmeat.net/projects/autoconf/

News
  • autoconf-2.59/NEWS
Commands
### Selected by any of options autoconf or all

rm -rf autoconf-2.59
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/autoconf-2.59.tar.bz2
pushd autoconf-2.59
./configure --prefix=/usr
make
sudo make install
popd
rm -rf autoconf-2.59
  
Download autoconf-2.59.tar.bz2
### Selected by any of options autoconf or all

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2
md5sum autoconf-2.59.tar.bz2
echo '1ee40f7a676b3cfdc0e3f7cd81551b5f  autoconf-2.59.tar.bz2' | md5sum -c
  
Tarlist autoconf
### Selected by any of options autoconf or all
### Distpoint: autoconf

    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint autoconf
### Selected by any of options autoconf or all
### URL: http://ftp.gnu.org/gnu/autoconf/
### Depth: 1
The automake Package

home: http://sources.redhat.com/automake/

fm: http://freshmeat.net/projects/automake/

News
  • automake-1.9.1/NEWS
Docs
  • info automake
Commands
### Selected by any of options automake or all

rm -rf automake-1.9.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/automake-1.9.1.tar.bz2
pushd automake-1.9.1
./configure --prefix=/usr
sudo make install
popd
rm -rf automake-1.9.1
  
Download automake-1.9.1.tar.bz2
### Selected by any of options automake or all

wget http://ftp.gnu.org/gnu/automake/automake-1.9.1.tar.bz2
md5sum automake-1.9.1.tar.bz2
echo '65143af82931c2c4d703d3a17c1c9d15  automake-1.9.1.tar.bz2' | md5sum -c
  
Tarlist automake
### Selected by any of options automake or all
### Distpoint: automake

    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint automake
### Selected by any of options automake or all
### URL: http://ftp.gnu.org/gnu/automake/
### Depth: 1
The libtool Package

home: http://www.gnu.org/software/libtool/

fm: http://freshmeat.net/projects/libtool/

News
  • libtool-1.5.8/NEWS
Commands
### Selected by any of options libtool or all

rm -rf libtool-1.5.8
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/libtool-1.5.8.tar.bz2
pushd libtool-1.5.8
./configure --prefix=/usr
make
sudo make install
popd
rm -rf libtool-1.5.8
  
Download libtool-1.5.8.tar.bz2
### Selected by any of options libtool or all

wget http://ftp.gnu.org/gnu/libtool/libtool-1.5.8.tar.gz
md5sum libtool-1.5.8.tar.gz
echo 'ed04093bc9d88faa3e476ac6f4db8d50  libtool-1.5.8.tar.gz' | md5sum -c
gunzip libtool-1.5.8.tar.gz
bzip2 libtool-1.5.8.tar
  
Tarlist libtool
### Selected by any of options libtool or all
### Distpoint: libtool

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint libtool
### Selected by any of options libtool or all
### URL: http://ftp.gnu.org/gnu/libtool/
### Depth: 1
The openssl Package

home: http://www.openssl.org/

fm: http://freshmeat.net/projects/openssl/

News
  • openssl-0.9.7e/NEWS
Commands
### Selected by any of options openssl or all

rm -rf openssl-0.9.7e
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/openssl-0.9.7e.tar.bz2
pushd openssl-0.9.7e
# XXX: needs more fixing to put things like man pages in the right place
./config --prefix=/usr --openssldir=/usr/share/openssl shared
make 
sudo make install
popd
rm -rf openssl-0.9.7e
  
Download openssl-0.9.7e.tar.bz2
### Selected by any of options openssl or all

wget http://www.openssl.org/source/openssl-0.9.7e.tar.gz
md5sum openssl-0.9.7e.tar.gz
echo 'a8777164bca38d84e5eb2b1535223474  openssl-0.9.7e.tar.gz' | md5sum -c
gunzip openssl-0.9.7e.tar.gz
bzip2 openssl-0.9.7e.tar
  
Tarlist openssl
### Selected by any of options openssl or all
### Distpoint: openssl

    
# Filter

/engine/b
s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint openssl
### Selected by any of options openssl or all
### URL: http://www.openssl.org/source/
### Depth: 1
The pkgconfig Package

home: http://www.freedesktop.org/software/pkgconfig/

fm: http://freshmeat.net/projects/pkgconfig/

Commands
### Selected by any of options pkgconfig or all

rm -rf pkgconfig-0.15.0
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/pkgconfig-0.15.0.tar.bz2
pushd pkgconfig-0.15.0
./configure --prefix=/usr
make
sudo make install
popd
rm -rf pkgconfig-0.15.0
  
Download pkgconfig-0.15.0.tar.bz2
### Selected by any of options pkgconfig or all

wget http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz
md5sum pkgconfig-0.15.0.tar.gz
# echo '' | md5sum -c
gunzip pkgconfig-0.15.0.tar.gz
bzip2 pkgconfig-0.15.0.tar
  
Tarlist pkgconfig
### Selected by any of options pkgconfig or all
### Distpoint: pkgconfig

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint pkgconfig
### Selected by any of options pkgconfig or all
### URL: http://www.freedesktop.org/software/pkgconfig/releases/
### Depth: 1
The readline Package

home: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html

fm: http://freshmeat.net/projects/gnureadline/

News
Commands
### Selected by any of options readline or all

rm -rf readline-4.3
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/readline-4.3.tar.bz2
pushd readline-4.3
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf readline-4.3
  
Download readline-4.3.tar.bz2
### Selected by any of options readline or all

wget http://ftp.gnu.org/gnu/readline/readline-4.3.tar.gz
md5sum readline-4.3.tar.gz
# echo '' | md5sum -c
gunzip readline-4.3.tar.gz
bzip2 readline-4.3.tar
  
Tarlist readline
### Selected by any of options readline or all
### Distpoint: readline

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint readline
### Selected by any of options readline or all
### URL: http://ftp.gnu.org/gnu/readline/
### Depth: 1
The util-linux Package

home: NONE (2004-03-26)

fm: http://freshmeat.net/projects/util-linux/

News
  • util-linux-2.12/HISTORY
Commands
### Selected by any of options util-linux or all

rm -rf util-linux-2.12
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/util-linux-2.12.tar.bz2
pushd util-linux-2.12
./configure
make HAVE_SLN=yes HAVE_KILL=yes
sudo make HAVE_SLN=yes HAVE_KILL=yes install
popd
rm -rf util-linux-2.12
  
Download util-linux-2.12.tar.bz2
### Selected by any of options util-linux or all

wget http://ftp.cwi.nl/aeb/util-linux/util-linux-2.12.tar.gz
md5sum util-linux-2.12.tar.gz
echo '997adf78b98d9d1c5db4f37ea982acff  util-linux-2.12.tar.gz' | md5sum -c
gunzip util-linux-2.12.tar.gz
bzip2 util-linux-2.12.tar
  
Tarlist util-linux
### Selected by any of options util-linux or all
### Distpoint: util-linux

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint util-linux
### Selected by any of options util-linux or all
### URL: http://ftp.cwi.nl/aeb/util-linux/
### Depth: 1
The which Package

home: http://www.xs4all.nl/~carlo17/which/

fm: http://freshmeat.net/projects/which/

News
Commands
### Selected by any of options which or all

rm -rf which-2.16
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/which-2.16.tar.bz2
pushd which-2.16
./configure --prefix=/usr --disable-dependency-tracking
make 
sudo make install
popd
rm -rf which-2.16
  
Download which-2.16.tar.bz2
### Selected by any of options which or all

wget http://www.xs4all.nl/~carlo17/which/which-2.16.tar.gz
md5sum which-2.16.tar.gz
echo '830b83af48347a9a3520f561e47cbc9b  which-2.16.tar.gz' | md5sum -c
gunzip which-2.16.tar.gz
bzip2 which-2.16.tar
  
Tarlist which
### Selected by any of options which or all
### Distpoint: which

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint which
### Selected by any of options which or all
### URL: http://www.xs4all.nl/~carlo17/which/
### Depth: 1
The zlib Package

home: http://www.gzip.org/zlib/

fm: http://freshmeat.net/projects/zlib/

News
Commands
### Selected by any of options zlib or all

rm -rf zlib-1.2.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/zlib-1.2.1.tar.bz2
pushd zlib-1.2.1
./configure --prefix=/usr
make 
sudo make install
make clean
./configure --prefix=/usr --shared
make 
sudo make install
sudo cp -va /usr/lib/libz.so* /lib
sudo ldconfig || true
popd
rm -rf zlib-1.2.1
  
Download zlib-1.2.1.tar.bz2
### Selected by any of options zlib or all

wget http://www.zlib.net/zlib-1.2.1.tar.bz2
md5sum zlib-1.2.1.tar.bz2
echo '8106069990476a3c5187301465bd7a60  zlib-1.2.1.tar.bz2' | md5sum -c
  
Tarlist zlib
### Selected by any of options zlib or all
### Distpoint: zlib

    
# Filter

s/.*href="[^"]*\/(zlib-[^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint zlib
### Selected by any of options zlib or all
### URL: http://www.gzip.org/zlib/
### Depth: 1

Libraries

The enscript Package

home: http://www.iki.fi/mtr/genscript/

fm: http://freshmeat.net/projects/enscript/

News
  • enscript-1.6.4/NEWS
Commands
### Selected by any of options enscript or all

rm -rf enscript-1.6.4
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/enscript-1.6.4.tar.bz2
pushd enscript-1.6.4
./configure --prefix=/usr --with-media=Letter
make 
sudo make install
popd
rm -rf enscript-1.6.4
  
Download enscript-1.6.4.tar.bz2
### Selected by any of options enscript or all

wget http://www.iki.fi/mtr/genscript/enscript-1.6.4.tar.gz
md5sum enscript-1.6.4.tar.gz
echo 'b5174b59e4a050fb462af5dbf28ebba3  enscript-1.6.4.tar.gz' | md5sum -c
gunzip enscript-1.6.4.tar.gz
bzip2 enscript-1.6.4.tar
  
Tarlist enscript
### Selected by any of options enscript or all
### Distpoint: enscript

    
# Filter

s/.*href="([^\/]*\/)*(enscript-[^"]*\.tar\.(gz|bz2))".*/\2/ip
    
  
Distpoint enscript
### Selected by any of options enscript or all
### URL: http://people.ssh.fi/mtr/genscript/
### Depth: 1
The freetype2 Package

home: http://www.freetype.org/

fm: http://freshmeat.net/projects/freetype/

Freetype-2.1.7 through 2.1.8 are out but they breaks many builds with a weird header inclusion requirement. Will wait for more updates in other packages.

News
  • freetype-2.1.5/docs/CHANGES
Commands
### Selected by any of options freetype2 or all

rm -rf freetype-2.1.5
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/freetype-2.1.5.tar.bz2
pushd freetype-2.1.5

# keithp says the bytecode interpreter is needed if using sup-pixel
pushd include/freetype/config/
cp ftoption.h ftoption.h.orig
sed 's/.*\(#define  TT_CONFIG_OPTION_BYTECODE_INTERPRETER\).*/\1/' \
    ftoption.h.orig >ftoption.h
diff -u ftoption.h.orig ftoption.h && exit 1 || true
popd

./configure --prefix=/usr
make 
sudo make install
popd
rm -rf freetype-2.1.5
  
Download freetype-2.1.5.tar.bz2
### Selected by any of options freetype2 or all

wget http://unc.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.5.tar.bz2
md5sum freetype-2.1.5.tar.bz2
echo '54537b518b84d04190a1eccd393a29df  freetype-2.1.5.tar.bz2' | md5sum -c
  
Tarlist freetype2
### Selected by any of options freetype2 or all
### Distpoint: freetype

    
# Prefilter

s/<a/\n\0/igp
    
    
# Filter

s/.*href="([^"\/]*\/)*(freetype-[^"\/]*\.tar\.bz2)\?download".*/\2/i
T
/^freetype-1\./b
p
    
  
The imlib2 Package

home: http://www.enlightenment.org/pages/imlib2.html

fm: http://freshmeat.net/projects/imlib2/

Commands
### Selected by any of options imlib2 or all

rm -rf imlib2-1.1.0
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/imlib2-1.1.0.tar.bz2
pushd imlib2-1.1.0
./configure --prefix=/usr
make
sudo make install
popd
rm -rf imlib2-1.1.0
  
Download imlib2-1.1.0.tar.bz2
### Selected by any of options imlib2 or all

wget http://unc.dl.sourceforge.net/sourceforge/enlightenment/imlib2-1.1.0.tar.gz
md5sum imlib2-1.1.0.tar.gz
# echo '' | md5sum -c
gunzip imlib2-1.1.0.tar.gz
bzip2 imlib2-1.1.0.tar
  
Tarlist imlib2
### Selected by any of options imlib2 or all
### Distpoint: imlib2

    
# Prefilter

s/<a/\n\0/igp
    
    
# Filter

s/.*href="([^"\/]*\/)*(imlib2-[^"\/]*\.tar\.(gz|bz2))\?download".*/\2/ip
    
  
Distpoint imlib2
### Selected by any of options imlib2 or all
### URL: http://sourceforge.net/project/showfiles.php?group_id=2
### Depth: 1
The libraw1394 Package

home: http://www.linux1394.org/

fm: http://freshmeat.net/projects/libraw1394/

The NEWS file wasn't updated for version 0.10.1.

News
  • libraw1394-0.10.1/NEWS
Commands
### Selected by any of options libraw1394 or all

rm -rf libraw1394-0.10.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/libraw1394-0.10.1.tar.bz2
pushd libraw1394-0.10.1
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf libraw1394-0.10.1
  
Download libraw1394-0.10.1.tar.bz2
### Selected by any of options libraw1394 or all

wget http://www.linux1394.org/files/libraw1394/libraw1394-0.10.1.tar.bz2
md5sum libraw1394-0.10.1.tar.bz2
echo '7fe835b825d3c1d17b09a882d3c3da87  libraw1394-0.10.1.tar.bz2' | md5sum -c
  
Tarlist libraw1394
### Selected by any of options libraw1394 or all
### Distpoint: libraw1394

    
# Filter

s/.*href="([^"]*\.tar\.bz2)".*/\1/ip
    
  
Distpoint libraw1394
### Selected by any of options libraw1394 or all
### URL: http://www.linux1394.org/files/libraw1394/
### Depth: 1
The libdc1394 Package

home: http://sourceforge.net/projects/libdc1394/

fm: http://freshmeat.net/projects/1394-baseddigitalcameracontrollibrary/

News
Commands
### Selected by any of options libdc1394 or all

rm -rf libdc1394-0.9.3
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/libdc1394-0.9.3.tar.bz2
pushd libdc1394-0.9.3
patch -p0 -i "$OAKHEART_IPWD"/libdc1394-0.9.3-c89.patch
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf libdc1394-0.9.3
  
Download libdc1394-0.9.3.tar.bz2
### Selected by any of options libdc1394 or all

wget http://unc.dl.sourceforge.net/sourceforge/libdc1394/libdc1394-0.9.3.tar.gz
md5sum libdc1394-0.9.3.tar.gz
echo 'c6461e1d354240bc49a931d8b7440bd6  libdc1394-0.9.3.tar.gz' | md5sum -c
gunzip libdc1394-0.9.3.tar.gz
bzip2 libdc1394-0.9.3.tar
  

Fix for C89 compliance. Has been reported upstream, see http://sourceforge.net/tracker/index.php?func=detail&atid=108157&aid=902810&group_id=8157.

Download libdc1394-0.9.3-c89.patch
### Selected by any of options libdc1394 or all

wget http://www.sethwklein.net/projects/oakheart/downloads/libdc1394-0.9.3-c89.patch
md5sum libdc1394-0.9.3-c89.patch 
echo '71dc32a8eae00ab10c17c8e090f17814  libdc1394-0.9.3-c89.patch' | md5sum -c
  
Tarlist libdc1394
### Selected by any of options libdc1394 or all
### Distpoint: libdc1394

    
# Prefilter

s/<a/\n\0/igp
    
    
# Filter

s/.*href="([^"\/]*\/)*([^"\/]*\.tar\.(gz|bz2))\?download".*/\2/ip
    
  
Distpoint libdc1394
### Selected by any of options libdc1394 or all
### URL: http://sourceforge.net/project/showfiles.php?group_id=8157
### Depth: 1
The libpcap Package

home: http://www.tcpdump.org/

fm: http://freshmeat.net/projects/libpcap/

News
Commands
### Selected by any of options libpcap or all

rm -rf libpcap-0.8.3
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/libpcap-0.8.3.tar.bz2
pushd libpcap-0.8.3
./configure --prefix=/usr
make 
sudo make install
# ppp needs a net/bpf.h and this one seems to work
sudo install -d /usr/include/net
sudo ln -sf ../pcap-bpf.h /usr/include/net/bpf.h
popd
rm -rf libpcap-0.8.3
  
Download libpcap-0.8.3.tar.bz2
### Selected by any of options libpcap or all

wget http://www.tcpdump.org/release/libpcap-0.8.3.tar.gz
md5sum libpcap-0.8.3.tar.gz
echo '56a9d4615d8354fcfe8cff8c8443c77b  libpcap-0.8.3.tar.gz' | md5sum -c
gunzip libpcap-0.8.3.tar.gz
bzip2 libpcap-0.8.3.tar
  
Tarlist libpcap
### Selected by any of options libpcap or all
### Distpoint: libpcap

    
# Filter

s/.*href="(libpcap-[^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint libpcap
### Selected by any of options libpcap or all
### URL: http://www.tcpdump.org/release/
### Depth: 1
The libxml Package

home: http://xmlsoft.org/

fm: http://freshmeat.net/projects/libxml/

News
Commands
### Selected by any of options libxml or all

rm -rf libxml2-2.6.13
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/libxml2-2.6.13.tar.bz2
pushd libxml2-2.6.13
./configure --prefix=/usr --with-history
make
sudo make install
popd
rm -rf libxml2-2.6.13
  
Download libxml2-2.6.13.tar.bz2
### Selected by any of options libxml or all

wget ftp://xmlsoft.org/libxml2-2.6.13.tar.gz
md5sum libxml2-2.6.13.tar.gz
echo '23e9a2cfcd700fd4ff70996fd7c632c0  libxml2-2.6.13.tar.gz' | md5sum -c
gunzip libxml2-2.6.13.tar.gz
bzip2 libxml2-2.6.13.tar
  
Tarlist libxml
### Selected by any of options libxml or all
### Distpoint: libxml

    
# Filter

s/.*href="(libxml2-[^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint libxml
### Selected by any of options libxml, libxslt or all
### URL: ftp://xmlsoft.org/
### Depth: 1

    
  
The libxslt Package

home: http://xmlsoft.org/XSLT/

fm: http://freshmeat.net/projects/libxslt/

News
Commands
### Selected by any of options libxslt or all

rm -rf libxslt-1.1.10
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/libxslt-1.1.10.tar.bz2
pushd libxslt-1.1.10
./configure --prefix=/usr
make
sudo make install
popd
rm -rf libxslt-1.1.10
  
Download libxslt-1.1.10.tar.bz2
### Selected by any of options libxslt or all

wget ftp://xmlsoft.org/libxslt-1.1.10.tar.gz
md5sum libxslt-1.1.10.tar.gz
echo '9839e6a309c7c97ffd260c8a2aa03cf5  libxslt-1.1.10.tar.gz' | md5sum -c
gunzip libxslt-1.1.10.tar.gz
bzip2 libxslt-1.1.10.tar
  
Tarlist libxslt
### Selected by any of options libxslt or all
### Distpoint: libxml

    
# Filter

s/.*href="(libxslt-[^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
The mktemp Package

home: http://www.mktemp.org/mktemp/

fm: http://freshmeat.net/projects/mktemp/

News
  • mktemp-1.5/RELEASE_NOTES
Docs
  • mktemp(1)
Commands
### Selected by any of options mktemp or all

rm -rf mktemp-1.5
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/mktemp-1.5.tar.bz2
pushd mktemp-1.5
./configure --prefix=/usr --with-libc
make 
sudo make install
popd
rm -rf mktemp-1.5
  
Download mktemp-1.5.tar.bz2
### Selected by any of options mktemp or all

wget ftp://ftp.mktemp.org/pub/mktemp/mktemp-1.5.tar.gz
md5sum mktemp-1.5.tar.gz
# echo '' | md5sum -c
gunzip mktemp-1.5.tar.gz
bzip2 mktemp-1.5.tar
  
Tarlist mktemp
### Selected by any of options mktemp or all
### Distpoint: mktemp

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint mktemp
### Selected by any of options mktemp or all
### URL: http://www.mktemp.org/dist/
### Depth: 1
The pango Package

home: http://www.pango.org/

fm: http://freshmeat.net/projects/pango/

News
  • pango-1.2.5/NEWS
Commands
### Selected by any of options pango or all

rm -rf pango-1.2.5
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/pango-1.2.5.tar.bz2
pushd pango-1.2.5
PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig \
    ./configure --prefix=/usr
make 
sudo make install
popd
rm -rf pango-1.2.5
  
Download pango-1.2.5.tar.bz2
### Selected by any of options pango or all

wget ftp://ftp.gtk.org/pub/gtk/v2.2/pango-1.2.5.tar.bz2
md5sum pango-1.2.5.tar.bz2
echo 'df00fe3e71cd297010f24f439b6c8ee6  pango-1.2.5.tar.bz2' | md5sum -c
  
Tarlist pango
### Selected by any of options pango or all
### Distpoint: gtk

    
# Filter

s/.*href="(pango-[^"]*\.tar\.bz2)".*/\1/ip
    
  
The python Package

home: http://www.python.org/

fm: http://freshmeat.net/projects/python/

Commands
### Selected by any of options python or all

rm -rf Python-2.3.4
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/Python-2.3.4.tar.bz2
pushd Python-2.3.4
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf Python-2.3.4
  
Download Python-2.3.4.tar.bz2
### Selected by any of options python or all

wget http://www.python.org/ftp/python/2.3.4/Python-2.3.4.tgz
md5sum Python-2.3.4.tgz
echo 'b6cf0b19226861a38689d2fabd0931b3  Python-2.3.4.tgz' | md5sum -c
gunzip Python-2.3.4.tgz
bzip2 Python-2.3.4.tar
  
Tarlist python
### Selected by any of options python or all
### Distpoint: python

    
# Filter

s/.*href="([Pp]ython-[^"]+\.tar\.bz2)".*/\1/ip
    
  
Distpoint python
### Selected by any of options python or all
### URL: http://www.python.org/ftp/python/
### Depth: 2

    
# Filter

s/.*<base[ \t]+href="([^"]*)">.*/\1/i
T notbase
x
b
:notbase

s/.*href="([0-9]+(\.[0-9]+)+\/)".*/\1/i
T
G
s/(.*)\n(.*)/\2\1/p
    
  
The sdl Package

home: http://www.libsdl.org/

fm: http://freshmeat.net/projects/sdl/

News

SDL works with no dependencies except the framebuffer console but uses many more if it finds them.

Commands
### Selected by any of options sdl or all

rm -rf SDL-1.2.7
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/SDL-1.2.7.tar.bz2
pushd SDL-1.2.7
./configure --prefix=/usr
make
sudo make install
popd
rm -rf SDL-1.2.7
  
Download SDL-1.2.7.tar.bz2
### Selected by any of options sdl or all

wget http://www.libsdl.org/release/SDL-1.2.7.tar.gz
md5sum SDL-1.2.7.tar.gz
# echo '' | md5sum -c
gunzip SDL-1.2.7.tar.gz
bzip2 SDL-1.2.7.tar
  
Tarlist sdl
### Selected by any of options sdl or all
### Distpoint: sdl

    
# Filter

/<img /b
s/.*href='(SDL-[0-9.]+\.tar\.(gz|bz2))'.*/\1/ip
    
  
Distpoint sdl
### Selected by any of options sdl or all
### URL: http://www.libsdl.org/release/
### Depth: 1
The sdl_image Package

home: http://www.libsdl.org/projects/SDL_image/

fm: http://freshmeat.net/projects/sdl_image/

Commands
### Selected by any of options sdl_image or all

rm -rf SDL_image-1.2.3
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/SDL_image-1.2.3.tar.bz2
pushd SDL_image-1.2.3
./configure --prefix=/usr
make
sudo make install
popd
rm -rf SDL_image-1.2.3
  
Download SDL_image-1.2.3.tar.bz2
### Selected by any of options sdl_image or all

wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.3.tar.gz
md5sum SDL_image-1.2.3.tar.gz
# echo '' | md5sum -c
gunzip SDL_image-1.2.3.tar.gz
bzip2 SDL_image-1.2.3.tar
  
Tarlist sdl_image
### Selected by any of options sdl_image or all
### Distpoint: sdl_image

    
# Filter

/<img /b
s/.*href='(SDL_image-[0-9.]+\.tar\.(gz|bz2))'.*/\1/ip
    
  
Distpoint sdl_image
### Selected by any of options sdl_image or all
### URL: http://www.libsdl.org/projects/SDL_image/release/
### Depth: 1
The sdl_mixer Package

home: http://www.libsdl.org/projects/SDL_mixer/

fm: http://freshmeat.net/projects/sdl_mixer/

News
  • NONE (1.2.5)
Commands
### Selected by any of options sdl_mixer or all

rm -rf SDL_mixer-1.2.5
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/SDL_mixer-1.2.5.tar.bz2
pushd SDL_mixer-1.2.5
./configure --prefix=/usr
make
sudo make install
popd
rm -rf SDL_mixer-1.2.5
  
Download SDL_mixer-1.2.5.tar.bz2
### Selected by any of options sdl_mixer or all

wget http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.5.tar.gz
md5sum SDL_mixer-1.2.5.tar.gz
# echo '' | md5sum -c
gunzip SDL_mixer-1.2.5.tar.gz
bzip2 SDL_mixer-1.2.5.tar
  
Tarlist sdl_mixer
### Selected by any of options sdl_mixer or all
### Distpoint: sdl_mixer

    
# Filter

/<img /b
s/.*href='(SDL_mixer-[0-9.]+\.tar\.(gz|bz2))'.*/\1/ip
    
  
Distpoint sdl_mixer
### Selected by any of options sdl_mixer or all
### URL: http://www.libsdl.org/projects/SDL_mixer/release/
### Depth: 1
The sdl_net Package

home: http://www.libsdl.org/projects/SDL_net/

fm: http://freshmeat.net/projects/sdl_net/

Commands
### Selected by any of options sdl_net or all

rm -rf SDL_net-1.2.5
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/SDL_net-1.2.5.tar.bz2
pushd SDL_net-1.2.5
./configure --prefix=/usr
make
sudo make install
popd
rm -rf SDL_net-1.2.5
  
Download SDL_net-1.2.5.tar.bz2
### Selected by any of options sdl_net or all

wget http://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.5.tar.gz
md5sum SDL_net-1.2.5.tar.gz
# echo '' | md5sum -c
gunzip SDL_net-1.2.5.tar.gz
bzip2 SDL_net-1.2.5.tar
  
Tarlist sdl_net
### Selected by any of options sdl_net or all
### Distpoint: sdl_net

    
# Filter

/<img /b
s/.*href='(SDL_net-[0-9.]+\.tar\.(gz|bz2))'.*/\1/ip
    
  
Distpoint sdl_net
### Selected by any of options sdl_net or all
### URL: http://www.libsdl.org/projects/SDL_net/release/
### Depth: 1
The sdl_ttf Package

home: http://www.libsdl.org/projects/SDL_ttf/

fm: http://freshmeat.net/projects/sdl_ttf/

Commands
### Selected by any of options sdl_ttf or all

rm -rf SDL_ttf-2.0.3
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/SDL_ttf-2.0.3.tar.bz2
pushd SDL_ttf-2.0.3
./configure --prefix=/usr
make
sudo make install
popd
rm -rf SDL_ttf-2.0.3
  
Download SDL_ttf-2.0.3.tar.bz2
### Selected by any of options sdl_ttf or all

wget http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.3.tar.gz
md5sum SDL_ttf-2.0.3.tar.gz
# echo '' | md5sum -c
gunzip SDL_ttf-2.0.3.tar.gz
bzip2 SDL_ttf-2.0.3.tar
  
Tarlist sdl_ttf
### Selected by any of options sdl_ttf or all
### Distpoint: sdl_ttf

    
# Filter

/<img /b
s/.*href='(SDL_ttf-[0-9.]+\.tar\.(gz|bz2))'.*/\1/ip
    
  
Distpoint sdl_ttf
### Selected by any of options sdl_ttf or all
### URL: http://www.libsdl.org/projects/SDL_ttf/release/
### Depth: 1
The wget Package

home: http://wget.sunsite.dk/

fm: http://freshmeat.net/projects/wget/

News
  • wget-1.9.1/NEWS
Commands
### Selected by any of options wget or all

rm -rf wget-1.9.1
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/wget-1.9.1.tar.bz2
pushd wget-1.9.1
./configure --prefix=/usr
make 
sudo make install
popd
rm -rf wget-1.9.1
  
Download wget-1.9.1.tar.bz2
### Selected by any of options wget or all

wget http://ftp.gnu.org/gnu/wget/wget-1.9.1.tar.gz
md5sum wget-1.9.1.tar.gz
echo 'e6051f1e1487ec0ebfdbda72bedc70ad  wget-1.9.1.tar.gz' | md5sum -c
gunzip wget-1.9.1.tar.gz
bzip2 wget-1.9.1.tar
  
Tarlist wget
### Selected by any of options wget or all
### Distpoint: wget

    
# Filter

s/.*href="([^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint wget
### Selected by any of options wget or all
### URL: http://ftp.gnu.org/gnu/wget/
### Depth: 1
The zip Package

home: http://www.info-zip.org/pub/infozip/Zip.html

fm: http://freshmeat.net/projects/zip/

News
Commands
### Selected by any of options zip or all

rm -rf zip-2.3
tar --no-same-owner -xvjf "$OAKHEART_IPWD"/zip23.tar.bz2
pushd zip-2.3
ln -s unix/Makefile
make generic_gcc
sudo make install
popd
rm -rf zip-2.3
  
Download zip23.tar.bz2
### Selected by any of options zip or all

wget ftp://ftp.info-zip.org/pub/infozip/src/zip23.tar.gz
md5sum zip23.tar.gz
# echo '' | md5sum -c
gunzip zip23.tar.gz
bzip2 zip23.tar
  
Tarlist zip
### Selected by any of options zip or all
### Distpoint: zip

    
# Filter

s/.*href="(zip[^"]*\.tar\.(gz|bz2))".*/\1/ip
    
  
Distpoint zip
### Selected by any of options zip or all
### URL: ftp://ftp.info-zip.org/pub/infozip/src/
### Depth: 1