slashpackage-foreign

I install non-slashpackage packages in subdirectories of /package/misc/spf, which I have registered for this purpose in the slashpackage registry. This system, called spf for short, is discussed on the spf list. Of course, there is some overlap with the slashpackage list as well.

Although all packages are installed under /package/misc/spf, they need not all be stored on the same filesystem. See this page for details.

spftools

While many of the ideas here remain intact, the code is being rewritten. spftools is a work in progress, so if you've been using sp-foreign, you probably shouldn't stop right now, but eventually spftools will supersede sp-foreign. sp-foreign will only be updated for some new package versions now; all new development focuses on spftools.

Caveats

Warning: Installing packages in these non-default locations solves some problems (easy, reliable upgrading and uninstallation; multiple simultaneously-installed versions for testing; etc.) and creates others (other software expecting to find these packages in their respective default locations will fail, etc.). Read this page and this page and make sure you understand the burden you are bringing on yourself before using spf. Consider setting up symlinks in the default locations pointing to the package's files via the current-version symlink. sp-foreign does this for you in some cases. Do not ask package authors to automatically look for dependencies in spf locations; making this work is our problem, not theirs.

Also, a general warning for building a system completely from source: you might not be binary-compatible with, say, RedHat, so you would not be able to install RedHat's binary RPMs. You'll be limited to software that you can compile yourself.

Scope

This project is intended to provide a more-or-less complete OS distribution. (Though you should also be able to use it to install individual packages on traditional systems; e.g., I've used it to install openssh and its dependencies on Solaris.) spf happens to not repackage the original sources; it consists only of the additional scripting needed to install packages in this style. This project will almost certainly never be as full-featured as other OSes: ideally, the packages' authors would convert their packages to slashpackage before we do, and packages that are distributed in slashpackage style are not included in this project. This does not mean that they are not considered useful, but this project is only concerned with the "leftover" pieces that are needed to make a working system.

Feel free to ask authors to distribute their packages in slashpackage style themselves, but be warned that you will likely meet with resistance. Possibly the best approach to bring slashpackage to the world would be to add functionality to the GNU autotools to make it easy to produce both slashpackage and non-slashpackage tarballs. Then other packages will have a much easier time converting, and can continue to distribute traditional-style tarballs as well.

Eventually, I will clean up my boot loader configuration, boot/shutdown scripts, etc., and publish them either as part of this project or separately. If you're planning to install a complete spf system, you'll have to fill in the gaps yourself for now. Some of the missing pieces are available here and here.

Aside from a few patches below, I do not provide updates for security-related or other problems in particular packages. The packages' own maintainers are responsible for their quality. You can read bugtraq yourself. If someone else wants to take on the task of releasing patched sources in a more timely fashion than the packages' own maintainers do, then that is a project that would cooperate well with spf (and with other distributions; factoring is good design). Of course, the Right Way is to get the packages' own maintainers to release updates more promptly.

I do not provide binaries. If someone else wants to take on that task, then that is a project that would cooperate well with spf. Some binaries are available at http://spf.relaxism.com/.

My own systems are completely spf. If you'd like to set up your systems the same way, but you need packages that are not included in spf, you can request that they be included. I don't promise that I will include every request, but I will try to make spf a generally useful system.

Configuration

These tools use environment variables to configure certain parameters.

gcc wrapper

If you install your C library or gcc with spf, you'll need a wrapper for gcc to find libc and libgcc.so when compiling other packages. This will be needed in order to build any package including C code, not just spf packages (for libc, anyway; not all packages need libgcc.so). If no libc is found in $SPF_PREFIX, the wrapper will not modify the gcc invocation to find different libc files, and gcc will therefore use the libc files found in the traditional places: /lib, /usr/lib, and /usr/include. For now, you can install the wrapper manually as /package/misc/spf/spf/wrapper/gcc and make a symlink to it in /command. It should be found first in $PATH by the names gcc, g++, c++, cc, cpp, g77, gcj, and the corresponding target-specific names (i686-pc-linux-gnu-*, etc.). I don't know whether any wrapping is needed for other programs. The wrapper notices certain environment variables, in addition to the two described above:

sp-foreign

The sp-foreign program (compressed) builds and installs particular packages. The packages' sources and a few patches are mirrored here. For now, you can install it manually as /package/misc/spf/spf/command/sp-foreign and make a symlink to it in /command.

Building a complete spf system

You can use sp-foreign to install just individual packages, or to install/replace a complete system. To install a complete spf system over an existing system, start by installing binutils. (You may have to install m4, bison, and flex first if the system doesn't already have them.) Do not use the gcc wrapper yet, or if you do, remember to set $SPF_GCC to the path to your existing gcc installation prefix. As you install each package, set the current-version symlink (e.g., with sp-version), make symlinks to its commands in /command (e.g., with sp-links), and make sure /command occurs before other systemwide directories in your $PATH. Next, install gcc. Once this gcc is installed, you can arrange for the wrapper to be found first in $PATH, and you can skip setting $SPF_GCC when installing further packages, unless you specifically want to use a different gcc installation. Next install linux-libc-headers and tzdata, and then glibc. Now the gcc wrapper script will find this glibc, so install new copies of the packages you've installed so far other than glibc (setting $SPF_BUILD to create new installations instead of overwriting the old installations), to have them linked to your new glibc, starting with gcc and then binutils. Continue on with whichever packages you want.

Installing a new spf system

Eventually, I might provide more automated first-time installation tools, but for now, to install spf on a new system, it helps to install a different system first, just as with Linux from Scratch. (Another approach would be to boot the new system from a floppy and copy binaries from an existing spf system.)

If you want the root filesystem to be, say, ReiserFS, but the first system (I'll call it the "bootstrap" system) installer doesn't allow you to create and boot from that kind of filesystem, I suggest putting the bootstrap system on a different filesystem from the one that will later be the spf root filesystem. For example, I just set up a new system doing this. I planned to have four filesystems: one for root, one for packages, one for logs/queues/etc., and one for home directories. I organize my filesystems using /fs. First I installed Red Hat; I set up the partitions the way I want them on the spf system, but I installed Red Hat on the home filesystem instead of root. Then, on the home filesystem, I created a /fs hierarchy containing the following entries: spf-root, pkgs, and logs. I set up symlinks in the Red Hat root directory pointing to directories on the other filesystems: command and package pointing into the pkgs filesystem, and slash pointing into the spf-root filesystem. Then I installed packages normally. When I had enough installed in the spf system, I rebooted into it, using the spf root as the root filesystem. Then I remade the home filesystem as ReiserFS, overwriting the Red Hat system.

Versions of major packages

The versions you choose for basic development tools are important. Major upgrades often do not keep binary compatibility. glibc should be built by approximately the same versions of gcc and binutils that you will use for everything else; that is why you should install gcc and binutils first. But gcc assumes to some degree (via fixincludes, if nothing else) that it will build software using the same libc that it was built with; that is why gcc should be reinstalled first after glibc. And presumably, you will delete your old glibc (and everything else) after you've installed a complete spf system; that is why you should reinstall everything after installing glibc.

Upgrading major packages

It is possible to upgrade a whole system to new major versions of the basic development tools without any interruption of service, by manipulating the per-package spf/* symlinks in the old packages to point to specific versions of all dependencies. (sp-freeze can help with that.) Then the new packages can be installed, starting with binutils/gcc/glibc/gcc/binutils again. The current-version symlinks will be updated as each new package is installed, but the old copies of other packages will still use the old versions of their dependencies. After all packages have been reinstalled, the old copies can be removed.

Remaining traditional files

After you install a complete system in /package, you can remove your old system components. My systems have just a few files left in the traditional locations. /bin and /sbin exist for compatibility as symlinks to /command. /usr is a symlink to /. /local (normally accessed via the /usr symlink) contains bin and sbin as symlinks to /command. The following files remain as in a traditional GNU/Linux system: /dev, /etc/fstab (or not), /etc/group, /etc/leapsecs.dat, /etc/modules.conf for kernel 2.4 systems (which includes /package/misc/spf/linux/modules.conf), /etc/mtab (a symlink to /proc/mounts), /etc/nsswitch.conf, /etc/passwd, /etc/protocols (a symlink to a file from iana-etc), /etc/resolv.conf, /etc/services (a symlink to a file from iana-etc), /etc/shadow, /etc/shells, /home, /proc (sort of), /tmp, /var/log/wtmp, and /var/run/utmp.

Using sp-foreign

Example use: sp-foreign gcc 2.95.3 --enable-languages=c,c++

The first two arguments are the package name and version, used to construct the installation prefix and find the source directory. The remaining arguments, if any, are passed to the package's build system in some way specific to the package. The interpretation of those remaining arguments may change in the future on a per-package basis; this is not entirely stable yet. You may want to save a copy of this page for reference along with the script itself. $CPPFLAGS, $CFLAGS, and $LDFLAGS are passed to each package's build system, when possible, along with the flags sp-foreign itself provides. The intent is that the flags you specify should override those provided by sp-foreign.

sp-foreign will look for the package sources in the directory that the package's tarball unpacks into (typically "./<package>-<version>") and install the package in $SPF_PREFIX/<package>-<version>$SPF_BUILD. $SPF_BUILD must be used to differentiate between different installations of the same version, if you have more than one such installation at the same time (e.g., with different compile-time configurations); you cannot generally reinstall over an existing installation. The source directory is expected to be clean: possibly patched, but not yet built. The installation prefix is expected to be empty or nonexistent.

Although $SPF_PREFIX will probably be owned by root, you can install most packages as a non-root user by creating the package's directory as root and changing its ownership to the non-root user before running sp-foreign. Afterwards, you can change the ownership of the whole package back to root. Beware that programs which are normally setuid root may be installed with or without the setuid bit if installed as a non-root user.

sp-foreign notices certain environment variables. If $SPF_BARE is set, then some stripping-down configuration options are used for certain packages, noted below. If $SPF_NO_NLS is set, then NLS support is disabled in packages that support it. If $SPF_COMPAT is set to "n", then sp-foreign will not create compatibility symlinks such as /var/qmail or /usr/local/bglibs.

When package X-1.0 uses absolute compile-time paths to find files belonging to package Y, a symlink is created as $SPF_PREFIX/X-1.0/spf/Y pointing to $SPF_PREFIX/Y (unless such a symlink already exists), and X is configured to use Y via the symlink in its spf directory. You can change this symlink even after installation if you want to make X use a different installation of Y. If you want to use an installation of Y somewhere other than $SPF_PREFIX, you can create a symlink in $SPF_PREFIX/X-1.0/conf/ pointing to Y's installed prefix, before running sp-foreign, so sp-foreign can find it when installing X. (This is an exception to the expectation that the installation prefix directory should be initially empty.)

If you set $SP_IGNORE_TEST_FAIL=y and the package's tests fail, then sp-foreign will print a warning but exit successfully. (Normally, sp-foreign would exit nonzero to indicate failure.) This is useful when scripting a large number of package installations, and you want to abort for installation errors but not test failures.

This table shows the package versions that sp-foreign was developed for. (If you know of newer versions, please let me know. I subscribe to announcement lists when they exist, but sometimes they don't.) Hopefully, future versions won't break sp-foreign, but they might. Before using this script, you should probably review the configuration options it uses, in case you want to use different options. There may also be preliminary/untested support for some packages not listed here. Others have also written build scripts for sp-foreign:

To install packages whose build scripts are not included directly in sp-foreign, set $SP_FOREIGN_DIR to a directory containing the extra scripts.

Package name Tested versions Notes
a52dec 0.7.4 Extra arguments are passed to ./configure.
acpid 1.0.4, 1.0.3 Extra arguments are passed to make.
agrep 2.04 Extra arguments are passed to make.
alsa-lib 1.0.9, 1.0.8, 1.0.7, 1.0.6, 1.0.5, 1.0.4, 1.0.2, 1.0.1, 0.9.6 Extra arguments are passed to ./configure.
alsa-utils 1.0.9, 1.0.8, 1.0.7, 1.0.6, 1.0.5, 1.0.4, 1.0.2, 1.0.1, 0.9.6 Extra arguments are passed to ./configure. Requires alsa-lib and ncurses.
antiword 0.36.1, 0.35, 0.33 Extra arguments are passed to make.
atk 1.10.1, 1.8.0, 1.6.1, 1.6.0, 1.2.4 Extra arguments are passed to ./configure. Requires glib.
audiofile 0.2.6, 0.2.4 Extra arguments are passed to ./configure.
aumix 2.8 Extra arguments are passed to ./configure. Requires ncurses. Uses gpm if it is installed.
autoconf 2.60, 2.59, 2.58, 2.57, 2.54, 2.53, 2.52 Extra arguments are passed to ./configure.
automake 1.9.6, 1.9.5, 1.9.4, 1.9.3, 1.9.2, 1.9.1, 1.9, 1.8.5, 1.8.4, 1.8.3, 1.8.2, 1.8, 1.7.9, 1.7.8, 1.7.7, 1.7.6, 1.7.5, 1.7.4, 1.7.3, 1.7.2, 1.7.1, 1.7, 1.5 Extra arguments are passed to ./configure.
autotrace 0.31.1 Extra arguments are passed to ./configure. Requires imagemagick, libpng, xfree86, and zlib.
bash 3.1, 3.0, 2.05b Extra arguments are passed to ./configure. Requires ncurses and readline.
bc 1.06 Extra arguments are passed to ./configure. Requires flex 2.5.4a for compilation. Uses ncurses and readline if available.
bglibs 1.041, 1.040, 1.031, 1.028, 1.027, 1.026, 1.024, 1.023, 1.022, 1.021, 1.020, 1.019, 1.018, 1.017, 1.016, 1.015, 1.011, 1.010, 1.009, 1.008, 1.006, 1.005, 1.002 Extra arguments are ignored.
bin86 0.16.17, 0.16.16, 0.16.13, 0.16.10, 0.16.5 Extra arguments are passed to make.
bincimap 1.2.13final, 1.2.12final, 1.2.11final, 1.2.10final, 1.2.9final, 1.2.8final, 1.2.7final, 1.2.5, 1.2.3 Extra arguments are passed to ./configure. Requires zlib. Uses openssl if it is installed.
binutils 2.17, 2.16.1, 2.16, 2.15, 2.14, 2.13.2.1, 2.13 Extra arguments are passed to ./configure. Requires flex for installation.
bison 2.3, 2.2, 2.1, 2.0, 1.875b, 1.875, 1.50, 1.35 Extra arguments are passed to ./configure. Requires m4 and possibly flex for installation.
bochs 2.1.1, 2.1 Extra arguments are passed to ./configure. Requires xfree86. Uses ncurses, readline, and zlib if they are installed.
bochs-tools 1.6.4 Extra arguments are passed to make.
bzip2 1.0.2 If the first extra argument is shared, shared libraries will be built. Further extra arguments are ignored.
cabextract 1.1, 1.0, 0.6 Extra arguments are passed to ./configure.
cdb 0.75 Extra arguments are ignored.
cdparanoia 3-alpha9.8 Extra arguments are passed to ./configure.
cdrtools 2.01, 2.00.3, 2.0, 1.10 Extra arguments are ignored. Requires smake for compilation.
check 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.4 Extra arguments are passed to ./configure.
checkpassword 0.90 Extra arguments are ignored.
clamav 0.88.4, 0.88.3, 0.88.2, 0.88.1, 0.88, 0.87.1, 0.87, 0.86.2, 0.86.1, 0.86, 0.85.1, 0.85, 0.84, 0.83, 0.82, 0.81, 0.80, 0.75.1, 0.75, 0.74, 0.73, 0.72, 0.71, 0.70 Extra arguments are passed to ./configure. Requires zlib. Uses bzip2 if it is installed.
clockspeed 0.62 Extra arguments are ignored.
compface 1.5.1, 1.4 Extra arguments are passed to ./configure.
coreutils 5.97, 5.96, 5.95, 5.94, 5.93, 5.92, 5.2.1, 5.2.0 Extra arguments are passed to ./configure.
courier-imap 3.0.8, 3.0.7, 3.0.6, 3.0.5, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.2.1, 2.2.0, 2.1.2, 2.1.1, 2.1.0, 2.0.0, 1.7.3, 1.7.1 Extra arguments are passed to ./configure. Requires gdbm and openssl.
cpio 2.6, 2.5 Extra arguments are passed to ./configure.
cups 1.1.23, 1.1.22, 1.1.21, 1.1.20 Extra arguments are passed to ./configure. Uses jpeg, libpng, openssl, tiff, and zlib.
curl 7.15.1, 7.14.0, 7.13.2, 7.13.1, 7.13.0, 7.12.3, 7.12.2, 7.12.1, 7.12.0, 7.11.2, 7.11.1, 7.11.0, 7.10.8, 7.10.3, 7.9.2 Extra arguments are passed to ./configure. Requires openssl and zlib.
cvm 0.76, 0.75, 0.71, 0.60, 0.50, 0.33, 0.32, 0.31, 0.30, 0.20, 0.18, 0.17, 0.16, 0.15 Extra arguments are ignored.
cvs 1.11.20, 1.11.19, 1.11.18, 1.11.17, 1.11.16, 1.11.15, 1.11.14, 1.11.13, 1.11.12, 1.11.11, 1.11.10, 1.11.9, 1.11.8, 1.11.7, 1.11.6, 1.11.5, 1.11.4 Extra arguments are passed to ./configure.
cyrus-sasl 2.1.22, 2.1.21, 2.1.19, 2.1.18, 2.1.17, 2.1.15, 2.1.14, 2.1.13, 2.1.12 Extra arguments are passed to ./configure. Requires db and openssl.
db 4.4.20, 4.4.16, 4.3.29, 4.3.28, 4.3.27, 4.3.21, 4.2.52, 4.1.25, 4.0.14, 3.3.11 Extra arguments are passed to ./configure.
dd-rescue 1.11, 1.10 Extra arguments are passed to make.
device-mapper 1.01.01, 1.01.00, 1.00.19 Extra arguments are passed to ./configure.
dhcp 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0pl2 Extra arguments are appended to site.conf.
dhcpcd 1.3.22-pl4, 1.3.22-pl1 Extra arguments are passed to ./configure.
dietlibc 0.28, 0.27, 0.25, 0.24, 0.23, 0.22, 0.21, 0.17 Extra arguments are passed to make. CFLAGS, etc., are not handled. I don't use dietlibc because it doesn't allow the system clock to be TAI, and it delberately breaks compatibility by requiring extra link arguments such as -lcompat that are not needed with other libcs.
diffstat 1.38, 1.37, 1.34 Extra arguments are passed to ./configure.
diffutils 2.8.1, 2.8 Extra arguments are passed to ./configure.
distcc 2.18.3, 2.18.2, 2.18, 2.17, 2.14, 2.13, 2.12.1, 2.12, 2.11.2 Extra arguments are passed to ./configure. Requires popt.
djbdns 1.05 Extra arguments are ignored.
dosfstools 2.10, 2.8 Extra arguments are passed to make.
e2fsprogs 1.38, 1.37, 1.36 Extra arguments are passed to ./configure.
ed 0.2 Extra arguments are passed to ./configure.
egd 0.9 Extra arguments are passed to Makefile.PL.
elvis 2.1_4 Extra arguments are passed to ./configure. Requires ncurses.
emacs 21.4 (leim 21.3), 21.3, 21.2 Extra arguments are passed to ./configure. On some system other than GNU/Linux, $LDFLAGS may be used for linking both with gcc and with ld directly. Requires jpeg, libpng, libungif, ncurses, tiff, xfree86, and zlib.
ettercap 0.6.b Extra arguments are passed to ./configure. Uses atk, glib, gtk+, ncurses, openssl, pango, and xfree86 if they are installed.
expat 2.0.0, 1.95.8 Extra arguments are passed to ./configure. Requires check if you want to run the tests.
expect 5.39.0 Extra arguments are passed to ./configure. Requires tcl, tk, and xfree86.
ezmlm-idx ezmlm 0.53 (idx 0.443, 0.442, 0.441, 0.440, 0.435, 0.434, 0.421, 0.40) Extra arguments are passed to make. Requires qmail. Sources are found in ./ezmlm-0.53/ and ./ezmlm-idx-<version>/.
fam 2.6.10 Extra arguments are passed to ./configure.
fftw 3.1.2, 3.1.1, 3.1, 3.0.1, 2.1.5 Extra arguments are passed to ./configure.
file 4.16, 4.13, 4.12, 4.10, 4.09, 4.08, 4.07, 4.05 Extra arguments are passed to ./configure. Uses zlib if it is installed.
fileutils   fileutils has been subsumed by coreutils.
findutils 4.2.28, 4.2.27, 4.2.26, 4.2.25, 4.2.23, 4.2.20, 4.2.18, 4.2.15, 4.1.20, 4.1.7, 4.1 Extra arguments are passed to ./configure.
firefox 1.5.0.6 1.5.0.5, 1.0.6, 1.0.3, 1.0.2, 1.0.1, 1.0, 1.0rc1, 0.10.1 Extra arguments are passed to ./configure. Sources are found in ./mozilla. Requires glib, gtk+, jpeg, libidl, libpng, xfree86, and zlib. If you use gtk+ 2.*, then atk and pango are also required, and fontconfig and freetype are used if they are installed. So far, firefox always crashes at startup for me.
flac 1.1.0 Extra arguments are passed to ./configure. Uses libogg if it is installed.
flash-player 7.0.25.0 Extra arguments are ignored. To make the plugin visible to Mozilla, create symlinks in $SPF_PREFIX/mozilla-data/lib/spf-current/plugins/ pointing to the files in $SPF_PREFIX/flash-player/plugins/.
flex 2.5.31, 2.5.4a Extra arguments are passed to ./configure. Requires bison for installation.
fltk 1.1.7, 1.1.6, 1.1.5, 1.1.4 Extra arguments are passed to ./configure. Requires xfree86. Uses jpeg, libpng, and zlib if they are installed.
fluxbox 0.9.15.1, 0.9.14, 0.9.13, 0.9.11, 0.9.10, 0.1.14 Extra arguments are passed to ./configure. Requires xfree86.
fluxter 0.1.0 Extra arguments are passed to ./configure. Requires xfree86.
fnord 1.9, 1.8, 1.7, 1.5 Extra arguments are passed to make. dietlibc is not used by default; set SPF_LIBC=dietlibc to use it.
fontconfig 2.3.2, 2.2.3, 2.2.2, 2.2.1 Extra arguments are passed to ./configure. Requires expat and freetype, as well as zlib if freetype was built with zlib.
fontforge 20040703 Extra arguments are passed to ./configure. Uses jpeg, freetype, libungif, libpng, libxml2, tiff, xfree86, and zlib if they are installed.
freetype 2.1.10, 2.1.9, 2.1.7, 2.1.5 Extra arguments are passed to ./configure. Uses zlib if it is installed. There were some API changes after 2.1.5 that some dependent packages have not yet caught up with, so I still use 2.1.5.
gaim 1.0.0, 0.82.1, 0.81, 0.79 0.78, 0.76, 0.74 Extra arguments are passed to ./configure. Requires atk, freetype, fontconfig, glib, gtk+, jpeg, libpng, pango, tiff, xfree86, and zlib. Uses audiofile, gnutls, libao, and libgcrypt if they are installed.
gawk 3.1.5, 3.1.4, 3.1.3, 3.1.2, 3.1.1 Extra arguments are passed to ./configure.
gcc 4.1.1, 4.0.3, 4.0.2, 4.0.1, 4.0.0, 3.4.6, 3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1, 3.4.0, 3.3.6, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1, 3.2.3, 3.1.1, 2.95.3 Extra arguments are passed to ./configure. Sources are found in ./gcc-<version>/, but built in ./gcc-<version>-build/ (which must not exist previously). Uses binutils if it is installed. I use the latest version for most purposes, and 2.95.3 for building the kernel. Note that C++ programs and libraries must all be built with approximately the same compiler version to work together. Recent versions of gcc require GNU make for compilation. After installing gcc in /package/misc/spf, you'll also need the gcc wrapper script in order to use your new gcc installation.
gd 2.0.28, 2.0.15 Extra arguments are passed to ./configure. Requires jpeg, libpng, and zlib. Uses xfree86 if it is installed.
gdb 6.5, 6.4, 6.3, 6.2.1, 6.2, 6.1.1, 6.1, 6.0, 5.3 Extra arguments are passed to ./configure. Requires ncurses.
gdbm 1.8.3, 1.8.0 Extra arguments are passed to ./configure.
getmail 4.6.3, 4.6.2, 4.6.1, 4.6.0, 4.5.4, 4.5.3, 4.5.2, 4.5.1, 4.5.0, 4.4.4, 4.4.3, 4.4.2, 4.4.1, 4.4.0, 4.3.14, 4.3.13, 4.3.12, 4.3.11, 4.3.10, 4.3.9, 4.3.8, 4.3.6, 4.3.5, 4.3.4, 4.3.3, 4.3.2, 4.3.1, 4.3.0, 4.2.6, 4.2.5, 4.2.4, 4.2.3, 4.2.2, 4.2.1, 4.2.0 Extra arguments are ignored.
gettext 0.14.4, 0.14.1, 0.13.1, 0.13, 0.12.1, 0.12 Extra arguments are passed to ./configure. Uses expat if it is installed.
ghostscript 8.31, 8.15, 8.14, 8.13, 8.12, 8.11 Extra arguments are passed to ./configure. Requires ghostscript-fonts, jpeg, libpng, and zlib. Uses xfree86 if it is installed.
ghostscript-fonts 8.11-6.0, 6.0-6.0 Extra arguments are ignored. Files are found in ./fonts/. Each spf version is a combination of one "std" version together with one "other" version.
ghostview 1.5 Extra arguments are passed to make.
glib 2.6.5, 2.6.3, 2.4.8, 2.4.6, 2.4.5, 2.4.0, 2.2.3, 2.2.2, 1.2.10 Extra arguments are passed to ./configure. Some other packages require version 1.2.10.
glibc 2.3.6 (libidn, linuxthreads), 2.3.5 (libidn, linuxthreads), 2.3.4 (libidn, linuxthreads), 2.3.3 (linuxthreads), 2.3.2 Extra arguments are passed to ./configure. Requires linux-libc-headers, or for pre-2.5 kernels, linux at compile time. Requires tzdata. After the first installation, you should fix the $SPF_PREFIX/glibc-data/etc/localtime symlink to point to your correct time zone. To compile and link programs using this glibc, you'll also need the gcc wrapper script; the script also requires that you first install gcc in /package/misc/spf.
gmp 4.2, 4.1.4, 4.1.3, 4.1.2 Extra arguments are passed to ./configure.
gnus 5.10.6, 5.10.1 Extra arguments are passed to ./configure. Uses w3 if it is installed.
gnuplot 4.0.0 Extra arguments are passed to ./configure. Requires zlib. Uses freetype, gd, libpng, ncurses, readline, and xfree86 if they are installed.
gnutls 1.4.1, 1.4.0, 1.2.10, 1.2.9, 1.2.8, 1.2.7, 1.2.6, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.0.23, 1.0.21, 1.0.20, 1.0.19, 1.0.16, 1.0.14 Extra arguments are passed to ./configure. Requires libcfg+, libgcrypt, libgpg-error, opencdk, and zlib. Uses libtasn1 and lzo if they are installed.
gperf 3.0.1 Extra arguments are passed to ./configure.
gpm 1.20.1 Extra arguments are passed to ./configure. Uses ncurses if it is installed.
grep 2.5.1 Extra arguments are passed to ./configure.
groff 1.19.1, 1.19, 1.18.1, 1.18 Extra arguments are passed to ./configure. 1.18 and later versions use terminal escape sequences; add -R to $LESS to make man pages readable.
grub 0.97, 0.96, 0.95, 0.94 Extra arguments are passed to ./configure. Uses ncurses if it is installed.
gtk+ 2.6.9, 2.6.4, 2.4.14, 2.4.10, 2.4.9, 2.4.4, 2.4.0, 2.2.4, 2.2.2, 1.2.10 Extra arguments are passed to ./configure. Requires glib and xfree86. Versions newer than 1.2.10 also require atk, jpeg, libpng, pango, tiff, and zlib, and use fontconfig and freetype if they are installed. Some other packages require version 1.2.10.
guile 1.8.0, 1.6.8, 1.6.7, 1.6.6, 1.6.5, 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0, 1.4.1 Extra arguments are passed to ./configure. Uses ncurses and readline if they are installed.
gv 3.6.1, 3.6.0 Extra arguments are passed to ./configure. Requires xfree86.
gzip 1.3.5 (gzipped, uncompressed) Extra arguments are passed to ./configure.
hdparm 5.9, 5.8, 5.7, 5.6, 5.5, 5.4, 5.3 Extra arguments are passed to make.
help2man 1.35.1, 1.33.1 Extra arguments are passed to ./configure.
iana-etc 1.04, 1.03, 1.02, 1.01 Extra arguments are passed to make.
imagemagick 6.2.3-6, 6.1.4-4, 6.0.8-1, 6.0.1-3, 6.0.0-4 Extra arguments are passed to ./configure. Sources are found in ./ImageMagick-<version>. Requires bzip2, ghostscript-fonts, jpeg, libpng, libxml2, tiff, xfree86, and zlib.
inetutils 1.4.2 Extra arguments are passed to ./configure. Requires ncurses and zlib.
intlfonts 1.2.1, 1.2 Extra arguments are passed to ./configure.
iptables 1.3.5, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0 Extra arguments are passed to make.
iptraf 2.7.0 Extra arguments are passed to make. Requires ncurses.
jabberd 2.0s4 Extra arguments are passed to ./configure. Uses cyrus-sasl, libidn, openldap, and openssl if they are installed.
jbigkit 1.6, 1.4 Extra arguments are passed to make.
jfsutils 1.1.7, 1.1.4 Extra arguments are passed to ./configure. Requires e2fsprogs.
jmk-x11-fonts 3.0 Extra arguments are ignored.
joe 3.2, 3.1, 3.0, 2.9.8 Extra arguments are passed to ./configure. Requires ncurses.
jpeg 6b Extra arguments are passed to ./configure.
kbd 1.12, 1.11 Extra arguments are passed to make.
lame 3.96.1, 3.95.1, 3.93.1, 3.93 Extra arguments are passed to ./configure. Building with gcc 3.0 is not recommended. Uses glib, gtk+, ncurses, and xfree86 if they are installed.
less 382, 381, 378, 358 Extra arguments are passed to ./configure. Requires ncurses.
lesspipe 1.44, 1.43, 1.42, 1.41, 1.37 Extra arguments are passed to ./configure.
lesstif 0.94.4, 0.94.0, 0.93.97, 0.93.96, 0.93.94 Extra arguments are passed to ./configure. Requires flex and xfree86. Uses freetype, fontconfig, and zlib if they are installed.
lftp 3.2.1, 3.2.0, 3.1.4, 3.1.3, 3.1.2, 3.1.1, 3.1.0, 3.0.13, 3.0.12, 3.0.11, 3.0.9, 3.0.8, 3.0.7, 3.0.5, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.6.12, 2.6.11, 2.6.10, 2.6.9, 2.6.8 Extra arguments are passed to ./configure. Requires ncurses, openssl, and readline.
libao 0.8.6, 0.8.5, 0.8.4 Extra arguments are passed to ./configure.
libcap 1.10 Extra arguments are passed to make.
libcfg+ 0.6.2 Extra arguments are passed to ./configure.
libdockapp 0.5.0 Extra arguments are passed to ./configure. Requires xfree86.
libdvdcss 1.2.8, 1.2.5, 1.2.4, 1.2.2 Extra arguments are passed to ./configure.
libdvdnav 0.1.10 Extra arguments are passed to ./configure.
libdvdread 0.9.5, 0.9.4 Extra arguments are passed to ./configure.
libgcrypt 1.2.2, 1.2.1, 1.2.0, 1.1.94, 1.1.91 Extra arguments are passed to ./configure. Requires libgpg-error.
libglade 2.4.2, 2.4.1, 2.4.0, 2.3.6 Extra arguments are passed to ./configure. Requires atk, glib, gtk+, libxml2, pango, and zlib.
libgpg-error 1.3, 1.2, 0.7, 0.6 Extra arguments are passed to ./configure.
libid3tag 0.15.1b, 0.15.0b Extra arguments are passed to ./configure. Requires zlib.
libidl 0.8.6, 0.8.5, 0.8.4, 0.8.3, 0.8.2, 0.6.8 Extra arguments are passed to ./configure. Sources are found in ./libIDL-<version>. Requires flex and glib.
libidn 0.6.0, 0.5.19, 0.5.15, 0.5.13, 0.5.12, 0.5.11, 0.5.10, 0.5.8 Extra arguments are passed to ./configure.
libmad 0.15.1b, 0.15.0b Extra arguments are passed to ./configure.
libogg 1.1.2, 1.1, 1.0 Extra arguments are passed to ./configure.
libpcap 0.9.4, 0.8.3, 0.8.1, 0.7.1 Extra arguments are passed to ./configure.
libpng 1.2.8, 1.2.7, 1.2.6, 1.2.5 The first extra arguments identifies the makefile to use, defaulting to a guess based on your system type, or std. Further arguments are passed to make. Requires zlib.
libtasn1 0.3.4, 0.2.18, 0.2.17, 0.2.14, 0.2.13, 0.2.10, 0.2.7, 0.2.6 Extra arguments are passed to ./configure.
libtool 1.5.22, 1.5.20, 1.5.18, 1.5.16, 1.5.12, 1.5.10, 1.5.8, 1.5.6, 1.5.4, 1.5.2, 1.5, 1.4.3, 1.4.2 Extra arguments are passed to ./configure.
libungif 4.1.4, 4.1.3 Extra arguments are passed to ./configure.
libvorbis 1.1.1, 1.0.1, 1.0 Extra arguments are passed to ./configure. Requires libogg.
libxml2 2.6.23, 2.6.20, 2.6.17, 2.6.16, 2.6.15, 2.6.14, 2.6.13, 2.6.11, 2.6.10, 2.6.9, 2.6.7, 2.6.6, 2.6.4, 2.5.1, 2.4.28, 2.4.24 Extra arguments are passed to ./configure. Requires ncurses, readline, and zlib.
lilo 22.7.1, 22.7, 22.6.1, 22.6, 22.5.9, 22.5.8, 22.5.7.2, 22.5.7, 22.5.6, 22.5.5, 22.5.4, 22.5.3, 22.5.2, 22.5.1, 22.5 Extra arguments are passed to make. Requires bin86 and nasm for compilation. Cannot be built with gcc 3 up to 3.2; use 2.95.3 or 3.2.1 or newer.
lilypond 2.2.6, 2.2.5, 2.0.1, 2.0.0, 1.8.2, 1.8.1, 1.8.0 Extra arguments are passed to ./configure. Requires flex 2.5.31, guile, mftrace (including its runtime dependencies), python, and tetex.
links 2.1pre15, 2.1pre14, 2.1pre13, 2.1pre7, 2.1pre3 Extra arguments are passed to ./configure. Requires libpng, jpeg, tiff, openssl, xfree86, and zlib.
linux 2.6.17.10, 2.6.17.9, 2.6.17.8, 2.6.17.7, 2.6.17.6, 2.6.17.1, 2.6.16.20, 2.6.15.6, 2.6.15.5, 2.6.15.4, 2.6.15.3, 2.6.15.2, 2.6.15.1, 2.6.15, 2.6.14.5, 2.6.14.4, 2.6.14.3, 2.6.14.2, 2.6.14.1, 2.6.14, 2.6.13.4, 2.6.13.3, 2.6.13.2, 2.6.13.1, 2.6.13, 2.6.12.6, 2.6.12.5, 2.6.12.4, 2.6.12.3, 2.6.12.2, 2.6.12.1, 2.6.12, 2.6.11.12, 2.6.11.11, 2.6.11.10, 2.6.11.9, 2.6.11.8, 2.6.11.7, 2.6.11.6 2.6.11.5, 2.6.11.4, 2.6.11.3, 2.6.11.2, 2.6.11.1, 2.6.11 2.6.10, 2.6.9, 2.6.8.1, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.4.31, 2.4.30, 2.4.29, 2.4.28, 2.4.27, 2.4.26, 2.4.25, 2.4.24, 2.4.23, 2.4.22, 2.4.21, 2.4.20, 2.4.19 The first extra argument should be one of config, oldconfig, menuconfig, or xconfig, and defaults to oldconfig. Further extra arguments are passed to make. The *config step is interactive, except for oldconfig when you already have a .config file which is complete for the current kernel version. If there is no .config file initially, but $SPF_PREFIX/linux-data/.config-<version> or $SPF_PREFIX/linux-data/.config exists, then that file is copied to the build directory before make is called. CFLAGS, etc., are not handled. menuconfig requires ncurses. 2.4.* versions require modutils; later versions require module-init-tools. Also for later versions, you can build a user-mode linux binary by setting ARCH=um in the environment when running sp-foreign. If you add kernel modules to the installation later, you can update the module dependency information by running update-modules in $SPF_PREFIX/linux-<version>/. For 2.4.*, to make the dependency information visible to modprobe, add this line to /etc/modules.conf:
include /package/misc/spf/linux/modules.conf
Machine-specific, version-independent module options go in /etc/modules.conf. $SPF_PREFIX/linux/modules.conf should contain only version-specific dependency information. For later versions, module-init-tools is configured at compile time to find the dependency information in the current-version kernel package. I set the current-version symlink according to the currently running kernel in my boot script.
linux-libc-headers 2.6.12.0, 2.6.11.2, 2.6.11.0, 2.6.10.0, 2.6.9.1, 2.6.8.1, 2.6.8.0, 2.6.7.0 Extra arguments are ignored.
lsof 4.77, 4.76, 4.75, 4.74, 4.73, 4.72, 4.71, 4.70 Extra arguments are passed to make.
lvm 2.01.09, 2.01.06, 2.01.04, 2.01.03, 2.00.32, 2.00.29, 2.00.25, 2.00.24, 2.00.20, 2.00.19, 1.0.8, 1.0.7 Extra arguments are passed to ./configure. Version 1 looks for kernel sources in $SPF_PREFIX/src/linux, but does not seem to require them. Version 2 requires device-mapper and uses ncurses and readline if they are installed.
lynx 2-8-5 Extra arguments are passed to ./configure. Requires ncurses, openssl, and zlib.
lzo 2.01, 1.08 Extra arguments are passed to ./configure. Uses zlib if it is installed.
lzop 1.01 Extra arguments are passed to ./configure. Requires lzo.
m4 1.4.6, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4 Extra arguments are passed to ./configure.
maildirsync 1.1, 1.0, 0.6 Extra arguments are ignored.
maildrop 1.8.0, 1.7.0, 1.6.3 Extra arguments are passed to ./configure. Uses qmail and gdbm if they are installed.
make 3.81, 3.80, 3.79.1 Extra arguments are passed to ./configure.
man 1.6d, 1.6c, 1.6b, 1.6a, 1.6, 1.5o, 1.5m2, 1.5l, 1.5k, 1.5j Extra arguments are ignored.
mess822 0.58 Extra arguments are ignored. Requires qmail.
mftrace 1.0.34, 1.0.33, 1.0.19 Extra arguments are passed to ./configure. To run mftrace, you need python, t1utils, tetex, and either autotrace or potrace. fontforge is also recommended.
mktemp 1.5 Extra arguments are passed to ./configure.
module-init-tools 3.2.2, 3.2.1, 3.1, 3.0 Extra arguments are passed to ./configure. Requires linux.
modutils 2.4.27, 2.4.26, 2.4.25, 2.4.24, 2.4.22, 2.4.20, 2.4.19, 2.4.16 Extra arguments are passed to ./configure. Requires flex version 2.5.4a for installation.
mozilla 1.7.6, 1.7.5, 1.7.3, 1.7.1, 1.7 Extra arguments are passed to ./configure. Sources are found in ./mozilla. Requires glib, gtk+, jpeg, libidl, libpng, xfree86, and zlib. If you use gtk+ 2.*, then atk and pango are also required, and fontconfig and freetype are used if they are installed.
mpage 2.5.4, 2.5.3, 2.5.2 Extra arguments are passed to make.
mpg123 0.59r The first extra argument specifies the make target, and defaults to a guess of your system type, or "generic". Further arguments are ignored. $CFLAGS, etc., are not handled.
mpg321 0.2.10 Extra arguments are passed to ./configure. Requires libao, libid3tag, libmad, and zlib.
mplayer 1.0pre8, 1.0pre7, 1.0pre6, 1.0pre5try2, 1.0pre5 Extra arguments are passed to ./configure. Requires xfree86. Uses cdparanoia, jpeg, lame, libdvdnav, libdvdread, libogg, libpng, libungif, libvorbis, libmad, sdl, and zlib if they are installed.
multimedia 2.1 Extra arguments are passed to make.
multitee 3.0 Extra arguments are ignored.
mutella 0.4.5 Extra arguments are passed to ./configure. Requires ncurses, readline, and zlib.
mutt 1.4.2.2, 1.4.2.1, 1.4.2, 1.4.1 Extra arguments are passed to ./configure. Requires ncurses.
naim 0.11.8.2, 0.11.8.1, 0.11.8, 0.11.7.3.1, 0.11.7.2, 0.11.7.1, 0.11.7, 0.11.6.7, 0.11.6.6, 0.11.6.5, 0.11.6.4, 0.11.6.3 Extra arguments are passed to ./configure. Requires ncurses.
nasm 0.98.39, 0.98.38, 0.98.35, 0.98.34 Extra arguments are passed to ./configure.
ncurses 5.5, 5.4, 5.3 Extra arguments are passed to ./configure. Uses gpm if it is installed.
net-tools 1.60 (patch) Extra arguments are ignored.
netpbm 10.25, 10.24, 10.18.17 Extra arguments are appended to Makefile.config. Requires jpeg, libpng, tiff, and zlib.
normalize 0.7.6 Extra arguments are passed to ./configure. Uses audiofile, flac, glib, gtk+, lame, and libmad if they are installed.
nullmailer 1.01, 1.00, 1.00RC7 Extra arguments are passed to ./configure.
octave 2.1.57, 2.1.52, 2.1.51 Extra arguments are passed to ./configure. Requires readline and ncurses. Uses fftw if it is installed.
ogle 0.9.2, 0.9.1, 0.8.5 Extra arguments are passed to ./configure. Requires a52dec, jpeg, libdvdcss, libdvdread, libxml2, libmad, xfree86, and zlib.
opencdk 0.5.8, 0.5.7, 0.5.5, 0.5.4, 0.5.3 Extra arguments are passed to ./configure. Requires libgcrypt. Uses zlib if it is installed.
openldap 2.3.27, 2.3.24, 2.3.20, 2.3.19, 2.3.17, 2.3.11, 2.2.30, 2.2.26, 2.2.24, 2.2.23, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.15, 2.1.30, 2.1.29, 2.1.28, 2.1.27, 2.1.25, 2.1.24, 2.1.23, 2.1.22, 2.1.21, 2.1.20, 2.1.19, 2.1.17, 2.1.16 Extra arguments are passed to ./configure. Requires db, cyrus-sasl, openssl, readline, and ncurses.
openssh 4.3p2, 4.3p1, 4.2p1, 4.1p1, 4.0p1, 3.9p1, 3.8.1p1, 3.8p1, 3.7.1p2, 3.7.1p1, 3.6.1p2, 3.6.1p1, 3.6p1 Extra arguments are passed to ./configure. If $SPF_BARE is set, some stripping-down arguments are passed to ./configure. Requires openssl and zlib.
openssl 0.9.7j, 0.9.7i, 0.9.7h, 0.9.7g, 0.9.7f, 0.9.7e, 0.9.7d, 0.9.7c, 0.9.7b, 0.9.7a, 0.9.7 Extra arguments are passed to ./config.
pango 1.8.2, 1.8.1, 1.6.0, 1.4.0, 1.2.5, 1.2.3 Extra arguments are passed to ./configure. Requires glib and xfree86. Uses fontconfig, freetype, and zlib if they are installed.
parted 1.7.1, 1.7.0, 1.6.23, 1.6.22, 1.6.21, 1.6.15, 1.6.12, 1.6.11, 1.6.9, 1.6.6, 1.6.5, 1.6.4, 1.6.3, 1.4.24 Extra arguments are passed to ./configure. Requires e2fsprogs, ncurses, and readline.
patch 2.5.8, 2.5.4 Extra arguments are passed to ./configure.
pciutils 2.1.11 Extra arguments are passed to make.
pcre 6.5, 6.4, 5.0, 4.5, 4.4 Extra arguments are passed to ./configure.
pcmcia-cs 3.2.6, 3.2.4 Extra arguments are passed to ./Configure. Requires kernel sources in $SPF_PREFIX/src/linux.
pcmciautils 011, 010 Extra arguments are passed to make. Requires sysfsutils.
pdksh 5.2.14 (patch) Extra arguments are passed to ./configure. Requires perl, built with the same libc, for compilation.
pdksh-sh 5.2.14 (patch) Extra arguments are passed to ./configure. This is the same as pdksh, except that it also passes --enable-shell=sh to ./configure and adds "-static" to $LDFLAGS. Sources are still found in pdksh-<version>, not pdksh-sh-<version>. Requires perl, built with the same libc, for compilation.
perl 5.8.7, 5.8.6, 5.8.5, 5.8.4, 5.8.3, 5.8.2, 5.8.0 Extra arguments are passed to ./Configure. Requires gdbm.
pkgconfig 0.15.0, 0.12.0 Extra arguments are passed to ./configure.
plotutils 2.4.1 Extra arguments are passed to ./configure. Requires xfree86. Uses flex, libpng, and zlib if they are installed.
polipo 0.9.8, 0.9.7, 0.9.6, 0.9.5, 0.9.4, 0.9.3, 0.9.2, 0.9.1 Extra arguments are passed to make.
popt 1.9, 1.7, 1.6.4 Extra arguments are passed to ./configure. Requires gettext for compilation.
potrace 1.7, 1.5 Extra arguments are passed to ./configure. Requires zlib.
ppp 2.4.2 Extra arguments are passed to make. $LDFLAGS is not handled.
procps 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.1.15, 3.1.14 Extra arguments are ignored. Requires ncurses.
psmisc 21.5, 21.4, 21.3, 21.2, 20.2 Extra arguments are passed to ./configure. Requires ncurses.
ptyget 0.50 (GNU/Linux patch) Extra arguments are ignored.
publicfile 0.52 Extra arguments are ignored.
pymsgauth 2.1.0 Extra arguments are ignored.
python 2.4.3, 2.4.2, 2.4.1, 2.4, 2.3.4, 2.3.3, 2.3.2, 2.3.1, 2.3, 2.2.3, 2.2.2, 2.2.1 Extra arguments are passed to ./configure. Sources are found in ./Python-<version>. Requires db, gdbm, ncurses, openssl, readline, and zlib. $CFLAGS, etc., are not handled consistently.
qmail 1.03 Extra arguments are ignored. You must create the user and group accounts before installing.
qmailanalog 0.70 Extra arguments are ignored.
qtools 0.56 Extra arguments are ignored. Requires ezmlm-idx and qmail.
readline 5.1, 5.0, 4.3 Extra arguments are passed to ./configure. Requires ncurses.
reiserfsprogs 3.6.19, 3.6.18, 3.6.17, 3.6.16 Extra arguments are passed to ./configure. Uses e2fsprogs if it is installed.
rpm 4.0.3 Extra arguments are passed to ./configure. Requires bzip2, popt, and zlib.
rsync 2.6.8, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.7, 2.5.6 Extra arguments are passed to ./configure. Requires popt.
safecat 1.12, 1.11 Extra arguments are ignored.
samba 3.0.23b, 3.0.23a, 3.023, 3.0.21c, 3.0.21b, 3.0.21a, 3.0.21, 3.0.20b, 3.0.20a, 3.0.20, 3.0.14a, 3.0.13, 3.0.12, 3.0.11, 3.0.10, 3.0.9, 3.0.8, 3.0.7, 3.0.6, 3.0.5, 3.0.4, 3.0.3, 3.0.2a, 3.0.2, 3.0.1, 3.0.0, 2.2.12, 2.2.11, 2.2.9, 2.2.8a, 2.2.8, 2.2.7a, 2.2.7, 2.2.6 Extra arguments are passed to ./configure. Requires ncurses, openssl, popt, and readline.
screen 4.0.2, 3.9.15 Extra arguments are passed to ./configure. Requires ncurses.
sdl 1.2.11, 1.2.10, 1.2.9, 1.2.8, 1.2.7, 1.2.6 Extra arguments are passed to ./configure. Requires xfree86. Sources are found in ./SDL-<version>.
sed 4.1.4, 4.1.2, 4.1.1, 4.1, 4.0.9, 4.0.7, 4.0.6, 4.0.5, 4.0, 3.02a Extra arguments are passed to ./configure.
serialmail 0.75 Extra arguments are ignored. Requires qmail.
setserial 2.17 Extra arguments are passed to ./configure.
sh-utils   sh-utils has been subsumed by coreutils.
shadow 4.0.7, 4.0.6, 4.0.5, 4.0.4.1 Extra arguments are passed to ./configure.
sharutils 4.6, 4.5, 4.3.78, 4.3.77, 4.2.1 Extra arguments are passed to ./configure.
shttpd 0.53 Extra arguments are ignored.
slang 1.4.9 Extra arguments are passed to ./configure. Uses ncurses if it is installed.
smake 1.2a23, 1.2a22, 1.2a21, 1.2a20 Extra arguments are ignored.
smartmontools 5.33, 5.32, 5.31, 5.30, 5.29, 5.26 Extra arguments are passed to ./configure.
sox 12.18.1, 12.17.9, 12.17.8, 12.17.7, 12.17.6, 12.17.5, 12.17.4, 12.17.3 Extra arguments are passed to ./configure. Uses alsa-lib, lame, libmad, libogg and libvorbis if they are installed.
spamassassin 2.63 The first extra argument is used as the administrative contact URL/email address. Further extra arguments are passed to Makefile.PL. Requires perl.
splay 0.9.5.2 Extra arguments are passed to ./configure.
strace 4.5.14, 4.5.9, 4.5.8, 4.5.6, 4.5.3, 4.5.1 Extra arguments are passed to ./configure.
stunnel 4.14, 4.12, 4.11, 4.10, 4.09, 4.08, 4.07, 4.06, 4.05 Extra arguments are passed to ./configure. Requires openssl.
sudo 1.6.8p12, 1.6.8p11, 1.6.8p9, 1.6.8p8, 1.6.8p7, 1.6.8p6, 1.6.8p5, 1.6.8p4, 1.6.8p2, 1.6.8p1, 1.6.8, 1.6.7p5 Extra arguments are passed to ./configure.
sysfsutils 1.3.0 Extra arguments are passed to ./configure.
t1lib 5.1.0, 5.0.2, 5.0.0, 1.3.1 Extra arguments are passed to ./configure. You will have to set up the configuration file after installing, in $SPF_PREFIX/t1lib-data/share/t1lib/t1lib.config. Requires xfree86.
t1utils 1.32, 1.28 Extra arguments are passed to ./configure.
tar 1.15.1, 1.14, 1.13.92, 1.13.25 Extra arguments are passed to ./configure.
tcl 8.4.9, 8.4.7, 8.4.6, 8.4.2, 8.4.1 Extra arguments are passed to ./configure. Source is found in ./tcl<version>. During installation, /tmp must not be on a filesystem mounted noexec. If you are also installing tk, don't delete the tcl sources until both packages are installed.
tcp-wrappers 7.6-ipv6.4, 7.6-ipv6.2 Extra arguments are passed to make.
tcpdump 3.9.4, 3.8.3, 3.8.1, 3.7.1 Extra arguments are passed to ./configure. Requires openssl and libpcap.
tcsh 6.13.00, 6.12.00, 6.11.00 Extra arguments are passed to ./configure. Requires ncurses.
tetex 2.0.2 (texmf) Extra arguments are passed to ./configure. Requires libpng, ncurses, t1lib, tetex-texmf, xfree86, and zlib. Requires flex 2.5.4a for compilation. Before installing tetex, unpack the texmf tarball in $SPF_PREFIX/tetex-texmf-<version>.
texinfo 4.8, 4.7, 4.6, 4.5, 4.4, 4.3, 4.2 Extra arguments are passed to ./configure. Requires ncurses.
textutils   textutils has been subsumed by coreutils.
tiff 3.8.0, 3.7.3, 3.7.2, 3.7.1, 3.7.0, 3.6.1 Extra arguments are appended to config.site. Source is found in ./tiff-v<version>. Requires jpeg and zlib.
tightvnc 1.2.9 Extra arguments are ignored. Source is found in ./vnc_unixsrc. Requires jpeg, xfree86, and zlib. $CFLAGS is not handled.
time 1.7 Extra arguments are passed to ./configure.
timidity++ 2.13.0 Extra arguments are passed to ./configure. You'll probably also want freepats unpacked in $SPF_PREFIX/timidity++/share/timidity.
tk 8.4.9, 8.4.7, 8.4.6, 8.4.2, 8.4.1 Extra arguments are passed to ./configure. Source is found in ./tk<version>. Already-built tcl source, of the same version, is found in ./tcl<version>. If the tcl source directory was renamed before tcl was built, the tcl directory must be available by both the original and new names for tk to find it (unless you specify the path to the tcl source with --with-tcl). Requires xfree86.
tkeca 4.0.2, 3.2.1, 3.2.0 Extra arguments are ignored.
tla 1.2.1, 1.2 Extra arguments are ignored. $CFLAGS, etc., are not handled.
tnef 1.3.4, 1.3.3, 1.3.2, 1.2.3.1, 1.2.1 Extra arguments are passed to ./configure.
traceroute 1.4a12 Extra arguments are passed to ./configure.
tzdata 2005q, 2005k, 2005i, 2005h, 2005f, 2005e, 2005c, 2005b, 2005a, 2004g, 2004e, 2004d, 2004b, 2004a Extra arguments are ignored.
ucspi-proxy 0.96 Extra arguments are ignored. Note that "ucspi-proxy" is equivalent to "multitee 0:7e6 6:1e0".
ucspi-tcp 0.88 Extra arguments are ignored.
uml-utilities 20040406, 20040114 Extra arguments are passed to make. Requires ncurses and readline.
unzip 5.52, 5.51, 5.50, 5.42 The first extra argument specifies the system type, defaulting to "generic". Further extra arguments are passed to make.
url 4.0pre.47 Extra arguments are passed to ./configure. Uses gnus if it is installed. url releases are packaged with w3; this entry is provided for those installing from CVS.
util-linux 2.12q, 2.12j, 2.12i, 2.12b, 2.12a, 2.12 Extra arguments are passed to make. Uses ncurses, zlib, and in versions 2.12i and later, e2fsprogs if they are installed.
uudeview 0.5.20, 0.5.18 Extra arguments are passed to ./configure. Requires tcl, with already-build sources in ./tcl<version>, and tk, with already-built sources in ./tk<version>.
vorbis-tools 1.1.1, 1.0.1, 1.0 Extra arguments are passed to ./configure. Requires libao, libogg, libvorbis, curl, openssl, and zlib.
w3 4.0pre.47 Extra arguments are passed to ./configure. Requires url (if installed from CVS). Uses gnus if it is installed.
webalizer 2.01-10 Extra arguments are passed to ./configure. Requires gd, libpng, and zlib.
wget 1.10.2, 1.10.1, 1.10, 1.9.1, 1.8.2 Extra arguments are passed to ./configure. Uses openssl if it is installed.
which 2.16, 2.14, 2.13 Extra arguments are passed to ./configure.
wireless-tools 28, 27, 26 Extra arguments are passed to make.
worker 2.9.0, 2.8.5, 2.8.4, 2.8.3, 2.8.1 Extra arguments are passed to ./configure. Requires xfree86. Uses bzip2 and zlib if they are installed.
wmix 3.1, 3.0 Extra arguments are passed to make. Requires xfree86.
xcdroast xcdroast-0.98alpha15 Extra arguments are passed to ./configure. Requires cdrtools, expat, glib, gtk+, pcre, xfree86. If you use gtk+ 2.*, atk and pango are also required.
xfree86 6.9.0, 6.8.2, 4.4.0, 4.3.0, Xaw3d Extra arguments are added to config/cf/host.def as macro definitions. Sources are found in ./xc. Requires expat, flex 2.5.4a, fontconfig, freetype, libpng, libxml2, ncurses, and zlib. Requires bison for compilation. If /bin/sh was pdksh, I would get a segfault during the 4.3.0 build, so I temporarily switched /bin/sh to point to bash. Although “xfree86” is used as the name of this package, only versions up to 4.4.0 come from xfree86.org; later versions come from x.org. Only the X.org versions can be built with glibc 2.3.4 or later.
xpdf 3.01 (anti-DRM patch), 3.00, 2.03 Extra arguments are passed to ./configure. Requires lesstif, t1lib, and xfree86. Uses freetype if it is installed.
zip 2.31, 2.3 The first extra argument specifies the system type, defaulting to "generic". Further extra arguments are passed to make.
zlib 1.2.3, 1.2.2, 1.2.1, 1.1.4 Extra arguments are ignored.