summaryrefslogtreecommitdiffstats
path: root/encap
diff options
context:
space:
mode:
authorDaniel Joseph Barnhart Clark <dclark@pobox.com>2006-07-09 20:39:58 +0000
committerDaniel Joseph Barnhart Clark <dclark@pobox.com>2006-07-09 20:39:58 +0000
commita2c95fd54ba85609df061ea917af82f6b62e41ab (patch)
treea5c0d03a84b4491ca93bbf30af4e55670c39a5b2 /encap
parent9390a1f22db576e24b788496e965cdeada5392f6 (diff)
downloadbcfg2-a2c95fd54ba85609df061ea917af82f6b62e41ab.tar.gz
bcfg2-a2c95fd54ba85609df061ea917af82f6b62e41ab.tar.bz2
bcfg2-a2c95fd54ba85609df061ea917af82f6b62e41ab.zip
Initial checkin of bcfg2-encap-boostrap code to mcs svn.
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1917 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'encap')
-rw-r--r--encap/Makefile112
-rw-r--r--encap/README101
-rw-r--r--encap/bcfg2-0.8.2pre6.profile104
-rw-r--r--encap/bcfg2-gettext-0.14.5.profile69
-rwxr-xr-xencap/bcfg2-libgcc-0.1.sh34
-rw-r--r--encap/bcfg2-libiconv-1.9.2.profile69
-rwxr-xr-xencap/bcfg2-libstdc++-0.1.sh34
-rw-r--r--encap/bcfg2-libxml2-2.6.26.profile77
-rw-r--r--encap/bcfg2-libxslt-1.1.17.profile82
-rw-r--r--encap/bcfg2-lxml-1.0.1.profile87
-rw-r--r--encap/bcfg2-openssl-0.9.8b.profile75
-rw-r--r--encap/bcfg2-pkg-config-0.20.profile70
-rw-r--r--encap/bcfg2-pyopenssl-0.6.profile84
-rw-r--r--encap/bcfg2-pyrex-0.9.4.1.profile83
-rw-r--r--encap/bcfg2-python-2.4.3.profile80
-rw-r--r--encap/bcfg2-zlib-1.2.3.profile73
-rwxr-xr-xencap/m4-1.4.4.sh66
17 files changed, 1300 insertions, 0 deletions
diff --git a/encap/Makefile b/encap/Makefile
new file mode 100644
index 000000000..515fe81b1
--- /dev/null
+++ b/encap/Makefile
@@ -0,0 +1,112 @@
+# $Id$
+
+.PHONY : all install clean uninstall encaps rename
+.SUFFIXES :
+.SUFFIXES : .profile .sh .e .ep
+
+BASEDIR = /usr/local
+ENCAPDIR = ${BASEDIR}/encap
+export ENCAPDIR
+EPKG = ${BASEDIR}/bin/epkg
+export EPKG
+MKENCAP = ${BASEDIR}/bin/mkencap
+export MKENCAP
+
+M4 = m4-1.4.4
+ZLIB = bcfg2-zlib-1.2.3
+LIBICONV = bcfg2-libiconv-1.9.2
+GETTEXT = bcfg2-gettext-0.14.5
+PKG-CONFIG = bcfg2-pkg-config-0.20
+OPENSSL = bcfg2-openssl-0.9.8b
+LIBSTDCXX = bcfg2-libstdc++-0.1
+LIBGCC = bcfg2-libgcc-0.1
+PYTHON = bcfg2-python-2.4.3
+PYREX = bcfg2-pyrex-0.9.4.1
+PYOPENSSL = bcfg2-pyopenssl-0.6
+LIBXML2 = bcfg2-libxml2-2.6.26
+LIBXSLT = bcfg2-libxslt-1.1.17
+LXML = bcfg2-lxml-1.0.1
+BCFG2 = bcfg2-0.8.2pre6
+
+.profile.e : # Clean, compile and install an encap package
+ @printf "***** START .profile.e for |$*| ***** \n"
+ ( ${EPKG} -q -r ${ENCAPDIR}/$* || true )
+ ( rm -rf ${ENCAPDIR}/$* || true )
+ ( ${MKENCAP} -m /usr/local/bin/m4 -b -DUP $*.profile || true ) > $*.log 2>&1
+ ( ${MKENCAP} -m /usr/local/bin/m4 -b -T $*.profile || true ) >> $*.log 2>&1
+ ( ${MKENCAP} -m /usr/local/bin/m4 -b -CBI $*.profile ) >> $*.log 2>&1
+ ${EPKG} -q -i ${ENCAPDIR}/$*
+ test -h ${BASEDIR}/var/encap/$*
+ touch $*.e
+ @printf "***** STOP .profile.e for |$*| ***** \n"
+
+.sh.e : # Create and install a "fake" encap package
+ @printf "***** START .sh.e for |$*| ***** \n"
+ ( ${EPKG} -q -r ${ENCAPDIR}/$* || true )
+ ( rm -rf ${ENCAPDIR}/$* || true )
+ ./$*.sh
+ ${EPKG} -q -i ${ENCAPDIR}/$*
+ test -h ${BASEDIR}/var/encap/$*
+ touch $*.e
+ @printf "***** STOP .sh.e for |$*| ***** \n"
+
+.e.ep : # Create .tar.gz encap packages for distribution to other machines
+ @printf "***** START .e.ep for |$*| ***** \n"
+ ( rm ${ENCAPDIR}/$*-*.tar.gz || true )
+ ( cd ${ENCAPDIR} && ${MKENCAP} -e $* || true )
+ cd ${ENCAPDIR} && ${MKENCAP} -c $*
+ mv ${ENCAPDIR}/$*-encap-*.tar.gz .
+ touch $*.ep
+ @printf "***** STOP .e.ep for |$*| ***** \n"
+
+all :
+ ( $(MAKE) install > make.log 2>&1 && $(MAKE) encaps >> make.log 2>&1 ) &
+
+install : ${EPKG} ${MKENCAP} ${BCFG2}.e
+
+encaps : ${EPKG} ${MKENCAP} ${BCFG2}.ep
+
+rename : encaps
+ test "$${OS}x" != "x"
+ for EARCHIVE in `ls *-encap-*.tar.gz`; do \
+ mv $${EARCHIVE} `printf $${EARCHIVE} | awk -F- '{$$NF = "OSDIST.tar.gz" ; print}' | sed s:\ :-:g | sed s:OSDIST:\$${OS}:g` ; \
+ done
+
+clean :
+ ( rm *.log || true )
+ ( rm *.ep || true )
+ ( rm *.gz || true )
+
+uninstall : clean
+ ( rm *.e || true )
+ ( ${EPKG} -q -r ${ENCAPDIR}/bcfg2-* || true )
+ ( rm -rf ${ENCAPDIR}/bcfg2-* || true )
+ ( rm -rf ${BASEDIR}/lib/bcfg2 || true )
+
+${ZLIB}.e : ${M4}.e
+${LIBICONV}.e : ${ZLIB}.e
+${GETTEXT}.e : ${LIBICONV}.e
+${PKG-CONFIG}.e : ${GETTEXT}.e
+${OPENSSL}.e : ${PKG-CONFIG}.e
+${LIBSTDCXX}.e : ${OPENSSL}.e
+${LIBGCC}.e : ${LIBSTDCXX}.e
+${PYTHON}.e : ${LIBGCC}.e
+${PYREX}.e : ${PYTHON}.e
+${PYOPENSSL}.e : ${PYREX}.e
+${LIBXML2}.e : ${PYOPENSSL}.e
+${LIBXSLT}.e : ${LIBXML2}.e
+${LXML}.e : ${LIBXSLT}.e
+${BCFG2}.e : ${LXML}.e
+
+${LIBICONV}.ep : ${ZLIB}.ep
+${GETTEXT}.ep : ${LIBICONV}.ep
+${OPENSSL}.ep : ${GETTEXT}.ep
+${LIBSTDCXX}.ep : ${OPENSSL}.ep
+${LIBGCC}.ep : ${LIBSTDCXX}.ep
+${PYTHON}.ep : ${LIBGCC}.ep
+${PYOPENSSL}.ep : ${PYTHON}.ep
+${LIBXML2}.ep : ${PYOPENSSL}.ep
+${LIBXSLT}.ep : ${LIBXML2}.ep
+${LXML}.ep : ${LIBXSLT}.ep
+${BCFG2}.ep : ${LXML}.ep
+
diff --git a/encap/README b/encap/README
new file mode 100644
index 000000000..0e9f49e78
--- /dev/null
+++ b/encap/README
@@ -0,0 +1,101 @@
+= Encap based bootstrap for bcfg2 and complete bcfg2 client toolchain =
+
+The bcfg2-encap-bootstrap package is a method for getting bcfg2 (as a
+client), including all dependencies, up and running on a new platform as
+quickly as possible.
+
+It is available from:
+ * http://www.pobox.com/users/dclark/bcfg2/bcfg2-encap-bootstrap
+
+Using the encap package manager it automatically downloads, builds and
+creates encap packages for bcfg2 and dependencies to `/usr/local/encap`, and
+installs symbolic links to these packages from `/usr/local` (the usual encap
+thing).
+
+It attempts to be as self contained as possible; everything gets linked to
+under `/usr/local/lib/bcfg2`, except for bcfg2 itself and some dependent
+software, which is prefixed by `b2` (`b2openssl`, `b2python` etc.).
+
+Note that to run the bcfg2 server, you also need to install gamin, which
+supports a subset of the platforms bcfg2 client will work on, including
+GNU/Linux and FreeBSD.
+
+== Building and installing everything ==
+ 1. Make sure all of the Prerequisites (see below) are installed.
+ 1. The build user needs write access to the encap source and build
+ directories. By default, these are `/usr/local/encap` and
+ `/usr/local/src`. If you like to live dangerously, you can also just do
+ the builds as `root`.
+ 1. Run `make`. This will kick off and background the entire build process.
+ Make output will be redirected to `make.log`, and package build output
+ will go to individual log files.
+ 1. If everything goes well, try running "`bcfg2-repo-validate`". This should
+ not generate a python traceback :-)
+ 1. You now have *-encap-*.tar.gz encap packages you can distribute to other
+ machines. If you don't like the OS name encap uses automatically (esp.
+ on GNU/Linux these can be too generic), do `make rename OS=somestring`.
+
+== Prerequisites ==
+ * GNU gcc and GNU g++
+ * GNU make (make sure "gmake" links to GNU make on non-GNU platforms)
+ * epkg from http://www.encap.org/epkg/
+ * If built from source, first need all recommended libraries from web page
+
+You will need binaries of the GNU tools. For GNU and BSD based operating
+systems, you should be able to get these via the operating system's package
+system. For commercial operating systems, these can be obtained from:
+
+ AIX::
+ * UCLA's Public Domain Software Library for AIX at
+ http://aixpdslib.seas.ucla.edu/aixpdslib.html
+ (These are trivial to convert into encap packages)
+ * Bull AIX Freeware at http://www.bullfreeware.com/
+
+ Solaris::
+ * Freeware for Solaris at http://www.sunfreeware.com/
+ * Community Software for Solaris at http://www.blastwave.org/packages.php
+
+== Supported Platforms ==
+Below is a table of platforms that have been successfully bootstrapped using
+this code.
+
+|| OS || Vendor || Version || Arch || GCC || By ||
+|| AIX || IBM || 5.3 || POWER || 4.1.0 || dc ||
+|| GNU/Linux || Debian || Sarge || i386 || 3.3.5 || dc ||
+|| GNU/Linux || Debian || Sid || i386 || 4.1.2 || dc ||
+
+dc: "Daniel Clark" <mailto:dclark@member.fsf.org>
+
+If you bootstrap a platform not listed above, please send email to Daniel
+Clark <mailto:dclark@member.fsf.org> so that platform can be added to the
+list. If you modified any of the files in this package to be able to
+bootstrap the new platform, please include either diffs or a tarball of your
+modified version so your changes can be incorporated into a new release. Any
+other notes, such as where you got the GNU binaries or any issues people
+should be aware of, would be appreciated.
+
+You may want to scan all of the bootstrapped binaries and libraries with
+`ldd` (or equivalent) to make sure there are no dependencies on libraries
+other than those included with the base operating system and the libraries
+built as part of the bootstrap process.
+
+On non-GNU operating systems, libgcc and libstdc++ are a run-time
+requirement. These libraries are usually distributed with gcc/g++, so the
+bootstrap system attempts to create encap packages containing those
+libraries by copying them from the build machine. To test that this worked,
+you'll want to either temporarily remove gcc/g++ from the build machine and
+make sure everything still works, or install the bcfg2-*.tar.gz encap
+packages on a "clean" machine (without a gcc/g++ install) and test on that
+machine.
+
+Note that the doc for the encap profile format is in "man 5 encap_profile".
+
+== Release Notes ==
+ 0.1::
+ * Initial Released Version
+ * Work needs to be done to minimize size of distribution. In 0.1
+ libraries and binaries are not stripped, and there is a lot of
+ pruning that can be done of individual packages.
+
+== Documentation Version ==
+$Id$
diff --git a/encap/bcfg2-0.8.2pre6.profile b/encap/bcfg2-0.8.2pre6.profile
new file mode 100644
index 000000000..ee1139f38
--- /dev/null
+++ b/encap/bcfg2-0.8.2pre6.profile
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-0.8.2pre6"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+url="ftp://ftp.mcs.anl.gov/pub/bcfg/bcfg2-0.8.2pre6.tar.gz"
+>
+
+<configure>
+:
+</configure>
+
+<build>
+/usr/local/lib/bcfg2/bin/python setup.py build \
+--build-base=${builddir}/build
+</build>
+
+<install>
+/usr/local/lib/bcfg2/bin/python setup.py install \
+--prefix=${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2
+</install>
+
+<clean>
+/usr/local/lib/bcfg2/bin/python setup.py clean
+</clean>
+
+</source>
+
+<prepackage type="set"><![CDATA[
+mkdir bin 2>/dev/null || exit 0
+ln -sf ../lib/bcfg2/bin/GenerateHostInfo bin/
+ln -sf ../lib/bcfg2/bin/StatReports bin/
+ln -sf ../lib/bcfg2/bin/bcfg2 bin/
+ln -sf ../lib/bcfg2/bin/bcfg2-info bin/
+ln -sf ../lib/bcfg2/bin/bcfg2-repo-validate bin/
+ln -sf ../lib/bcfg2/bin/bcfg2-server bin/
+mkdir share 2>/dev/null || exit 0
+mkdir share/bcfg2 2>/dev/null || exit 0
+cp ${builddir}/doc/manual.pdf share/bcfg2/
+cp -r ${builddir}/examples share/bcfg2/
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+]]></prepackage>
+
+<encapinfo>
+description Bcfg2 - Provides a declarative interface to system configuration
+prereq pkgspec >= bcfg2-zlib-1.2.3
+prereq pkgspec >= bcfg2-libiconv-1.9.2
+prereq pkgspec >= bcfg2-gettext-0.14.5
+prereq pkgspec >= bcfg2-openssl-0.9.8b
+prereq pkgspec >= bcfg2-libstdc++-0.1
+prereq pkgspec >= bcfg2-libgcc-0.1
+prereq pkgspec >= bcfg2-python-2.4.3
+prereq pkgspec >= bcfg2-pyopenssl-0.6
+prereq pkgspec >= bcfg2-libxml2-2.6.26
+prereq pkgspec >= bcfg2-libxslt-1.1.17
+prereq pkgspec >= bcfg2-lxml-1.0.1
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-gettext-0.14.5.profile b/encap/bcfg2-gettext-0.14.5.profile
new file mode 100644
index 000000000..925aa42fc
--- /dev/null
+++ b/encap/bcfg2-gettext-0.14.5.profile
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-gettext-0.14.5"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+ url="http://ftp.gnu.org/pub/gnu/gettext/gettext-0.14.5.tar.gz"
+>
+
+<configure>
+./configure \
+ --prefix="${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2"
+</configure>
+
+</source>
+
+<prepackage type="set">
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description Gettext - Tools to produce multi-lingual messages
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-libgcc-0.1.sh b/encap/bcfg2-libgcc-0.1.sh
new file mode 100755
index 000000000..d6de6c471
--- /dev/null
+++ b/encap/bcfg2-libgcc-0.1.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+# $Id$
+
+# Creates encap of libgcc libraries from build machine so other machines
+# don't need to have gcc installed, or in the case of GNU/Linux so we're
+# using a consistant libgcc version everywhere.
+
+ENCAP_SOURCE=${ENCAPDIR}
+ENCAP_PKGNAME=bcfg2-libgcc-0.1
+PATH=$PATH:/usr/local/bin
+export PATH
+
+if [ "${ENCAP_SOURCE}x" = "x" ]; then
+ printf "Error in ${ENCAP_PKGNAME}.sh : ENCAPDIR not set, exiting...\n"
+ exit 1
+fi
+
+umask 022
+
+CXXBASE=`which gcc | xargs dirname | xargs dirname`
+for LIB in `cd ${CXXBASE} && find lib | grep libgcc`; do
+ cd ${CXXBASE}
+ LIBDIR=`dirname ${LIB}`
+ NEWDIR=${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2/${LIBDIR}
+ if [ ! -d ${NEWDIR} ]; then mkdir -p ${NEWDIR}; fi
+ cp -p ${LIB} ${NEWDIR}
+done
+
+SDIR=${ENCAP_SOURCE}/${ENCAP_PKGNAME}/var/encap
+mkdir -p ${SDIR}
+touch ${SDIR}/${ENCAP_PKGNAME}
+
+exit 0
+
diff --git a/encap/bcfg2-libiconv-1.9.2.profile b/encap/bcfg2-libiconv-1.9.2.profile
new file mode 100644
index 000000000..d34f6512c
--- /dev/null
+++ b/encap/bcfg2-libiconv-1.9.2.profile
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-libiconv-1.9.2"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+ url="http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz"
+>
+
+<configure>
+./configure \
+ --prefix="${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2"
+</configure>
+
+</source>
+
+<prepackage type="set">
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description Libiconv - Converts between character encodings
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-libstdc++-0.1.sh b/encap/bcfg2-libstdc++-0.1.sh
new file mode 100755
index 000000000..6b3fe4a98
--- /dev/null
+++ b/encap/bcfg2-libstdc++-0.1.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+# $Id$
+
+# Creates encap of libstdc++ libraries from build machine so other machines
+# don't need to have g++ installed, or in the case of GNU/Linux so we're
+# using a consistant libstdc++ version everywhere.
+
+ENCAP_SOURCE=${ENCAPDIR}
+ENCAP_PKGNAME=bcfg2-libstdc++-0.1
+PATH=$PATH:/usr/local/bin
+export PATH
+
+if [ "${ENCAP_SOURCE}x" = "x" ]; then
+ printf "Error in ${ENCAP_PKGNAME}.sh : ENCAPDIR not set, exiting...\n"
+ exit 1
+fi
+
+umask 022
+
+CXXBASE=`which g++ | xargs dirname | xargs dirname`
+for LIB in `cd ${CXXBASE} && find lib | grep libstdc++`; do
+ cd ${CXXBASE}
+ LIBDIR=`dirname ${LIB}`
+ NEWDIR=${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2/${LIBDIR}
+ if [ ! -d ${NEWDIR} ]; then mkdir -p ${NEWDIR}; fi
+ cp -p ${LIB} ${NEWDIR}
+done
+
+SDIR=${ENCAP_SOURCE}/${ENCAP_PKGNAME}/var/encap
+mkdir -p ${SDIR}
+touch ${SDIR}/${ENCAP_PKGNAME}
+
+exit 0
+
diff --git a/encap/bcfg2-libxml2-2.6.26.profile b/encap/bcfg2-libxml2-2.6.26.profile
new file mode 100644
index 000000000..0321f30df
--- /dev/null
+++ b/encap/bcfg2-libxml2-2.6.26.profile
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-libxml2-2.6.26"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+ url="ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.26.tar.gz"
+ subdir="libxml2-2.6.26"
+>
+
+<configure>
+./configure \
+ --prefix="${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2" \
+PLATFORM_IF_MATCH(aix)
+PLATFORM_ELSE
+ --enable-shared \
+PLATFORM_ENDIF
+ --enable-ipv6=no \
+ --with-python=/usr/local/lib/bcfg2 \
+ --with-zlib=/usr/local/lib/bcfg2
+</configure>
+
+</source>
+
+<prepackage type="set">
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description Libxml2 - XML C library for the Gnome project
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-libxslt-1.1.17.profile b/encap/bcfg2-libxslt-1.1.17.profile
new file mode 100644
index 000000000..4c321d77d
--- /dev/null
+++ b/encap/bcfg2-libxslt-1.1.17.profile
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-libxslt-1.1.17"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+ url="ftp://xmlsoft.org/libxml2/libxslt-1.1.17.tar.gz"
+>
+
+<configure>
+./configure \
+ --prefix="${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2" \
+PLATFORM_IF_MATCH(aix)
+PLATFORM_ELSE
+ --enable-shared \
+PLATFORM_ENDIF
+ --with-crypto=no \
+ --with-libxml-prefix=/usr/local/lib/bcfg2 \
+ --with-libxml-include-prefix=/usr/local/lib/bcfg2/include \
+ --with-libxml-libs-prefix=/usr/local/lib/bcfg2/lib \
+ --enable-ipv6=no \
+ --with-python=/usr/local/lib/bcfg2 \
+ --with-zlib=/usr/local/lib/bcfg2
+</configure>
+
+</source>
+
+<prepackage type="set">
+mv lib/bcfg2/lib/lib/python2.4 lib/bcfg2/lib
+rmdir lib/bcfg2/lib/lib
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description Libxml2 - XML C library for the Gnome project
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-lxml-1.0.1.profile b/encap/bcfg2-lxml-1.0.1.profile
new file mode 100644
index 000000000..a78e14b75
--- /dev/null
+++ b/encap/bcfg2-lxml-1.0.1.profile
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-lxml-1.0.1"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -lexslt -L/usr/local/lib/bcfg2/lib/python2.4/site-packages -Wl,-rpath,/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib/python2.4/site-packages"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -lexslt -L/usr/local/lib/bcfg2/lib/python2.4/site-packages -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/local/lib/bcfg2/lib/python2.4/site-packages:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+url="http://codespeak.net/lxml/lxml-1.0.1.tgz"
+>
+
+<configure>
+/usr/local/lib/bcfg2/bin/python setup.py build_ext \
+-I/usr/local/lib/bcfg2/include \
+-L/usr/local/lib/bcfg2/lib \
+-lexslt \
+-L/usr/local/lib/bcfg2/lib/python2.4/site-packages
+</configure>
+
+<build>
+/usr/local/lib/bcfg2/bin/python setup.py build \
+--build-base=${builddir}/build
+</build>
+
+<install>
+/usr/local/lib/bcfg2/bin/python setup.py install \
+--prefix=${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2
+</install>
+
+<clean>
+/usr/local/lib/bcfg2/bin/python setup.py clean
+make clean
+</clean>
+
+</source>
+
+<prepackage type="set">
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description lxml - A Pythonic binding for the libxml2 and libxslt libraries
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-openssl-0.9.8b.profile b/encap/bcfg2-openssl-0.9.8b.profile
new file mode 100644
index 000000000..9c00b8960
--- /dev/null
+++ b/encap/bcfg2-openssl-0.9.8b.profile
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-openssl-0.9.8b"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+ url="http://www.openssl.org/source/openssl-0.9.8b.tar.gz"
+ use_objdir="no"
+>
+
+<configure>
+./config \
+ --prefix="${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2" \
+ zlib-dynamic shared \
+ -L/usr/local/lib/bcfg2/lib \
+ -I/usr/local/lib/bcfg2/include
+</configure>
+
+</source>
+
+<prepackage>
+mkdir bin 2>/dev/null || exit 0
+ln -sf ../lib/bcfg2/bin/openssl bin/b2openssl
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description SSL encryption tool and library
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-pkg-config-0.20.profile b/encap/bcfg2-pkg-config-0.20.profile
new file mode 100644
index 000000000..cc028069d
--- /dev/null
+++ b/encap/bcfg2-pkg-config-0.20.profile
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-pkg-config-0.20"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+url="http://pkgconfig.freedesktop.org/releases/pkg-config-0.20.tar.gz"
+>
+
+<configure>
+./configure \
+ --prefix="${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2" \
+ --with-pc-path=/usr/local/lib/bcfg2/lib/pkgconfig
+</configure>
+
+</source>
+
+<prepackage type="set">
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description pkg-config - application and library compilation helper tool
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-pyopenssl-0.6.profile b/encap/bcfg2-pyopenssl-0.6.profile
new file mode 100644
index 000000000..d8f486e46
--- /dev/null
+++ b/encap/bcfg2-pyopenssl-0.6.profile
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-pyopenssl-0.6"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+url="http://umn.dl.sourceforge.net/sourceforge/pyopenssl/pyOpenSSL-0.6.tar.gz"
+>
+
+<configure>
+/usr/local/lib/bcfg2/bin/python setup.py build_ext \
+-I/usr/local/lib/bcfg2/include/openssl \
+-L/usr/local/lib/bcfg2/lib/
+</configure>
+
+<build>
+/usr/local/lib/bcfg2/bin/python setup.py build \
+--build-base=${builddir}/build
+</build>
+
+<install>
+/usr/local/lib/bcfg2/bin/python setup.py install \
+--prefix=${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2
+</install>
+
+<clean>
+/usr/local/lib/bcfg2/bin/python setup.py clean
+</clean>
+
+</source>
+
+<prepackage type="set">
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description pyOpenSSL - Python interface to the OpenSSL library
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-pyrex-0.9.4.1.profile b/encap/bcfg2-pyrex-0.9.4.1.profile
new file mode 100644
index 000000000..f28dabc5d
--- /dev/null
+++ b/encap/bcfg2-pyrex-0.9.4.1.profile
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-pyrex-0.9.4.1"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+url="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/Pyrex-0.9.4.1.tar.gz"
+>
+
+<configure>
+:
+</configure>
+
+<build>
+/usr/local/lib/bcfg2/bin/python setup.py build \
+--build-base=${builddir}/build
+</build>
+
+<install>
+/usr/local/lib/bcfg2/bin/python setup.py install \
+--prefix=${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2 \
+</install>
+
+<clean>
+/usr/local/lib/bcfg2/bin/python setup.py clean
+</clean>
+
+</source>
+
+<prepackage type="set">
+chmod -R o+r lib/bcfg2
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description Pyrex - a Language for Writing Python Extension Modules
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-python-2.4.3.profile b/encap/bcfg2-python-2.4.3.profile
new file mode 100644
index 000000000..8e30777d3
--- /dev/null
+++ b/encap/bcfg2-python-2.4.3.profile
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-python-2.4.3"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/lib/bcfg2/bin:/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+ url="http://www.python.org/ftp/python/2.4.3/Python-2.4.3.tgz"
+>
+
+<configure>
+./configure \
+ --prefix="${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2" \
+PLATFORM_IF_MATCH(aix)
+ --with-gcc \
+ --with-cxx=g++ \
+PLATFORM_ENDIF
+ --enable-shared=yes \
+ --disable-ipv6
+</configure>
+
+</source>
+
+<prepackage><![CDATA[
+echo /usr/local/lib/bcfg2/lib/python2.4/site-packages > lib/bcfg2/lib/python2.4/site-packages/usr-local-lib-bcfg2.pth
+mkdir bin 2>/dev/null || exit 0
+ln -sf ../lib/bcfg2/bin/idle bin/b2idle
+ln -sf ../lib/bcfg2/bin/pydoc bin/b2pydoc
+ln -sf ../lib/bcfg2/bin/python bin/b2python
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+]]></prepackage>
+
+<encapinfo>
+description Python - Scripting language
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/bcfg2-zlib-1.2.3.profile b/encap/bcfg2-zlib-1.2.3.profile
new file mode 100644
index 000000000..50eaed255
--- /dev/null
+++ b/encap/bcfg2-zlib-1.2.3.profile
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="bcfg2-zlib-1.2.3"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/bin:"
+ type="prepend"
+/>
+
+PLATFORM_IF_MATCH(linux)
+PLATFORM_ELSE
+<environment
+ variable="MAKE"
+ value="gmake"
+ type="set"
+/>
+PLATFORM_ENDIF
+
+<environment
+ variable="LDFLAGS"
+PLATFORM_IF_MATCH(linux)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-rpath,/usr/local/lib/bcfg2/lib"
+PLATFORM_ELSE_IF_MATCH(aix)
+ value="-L/usr/local/lib/bcfg2/lib -Wl,-blibpath:/usr/local/lib/bcfg2/lib:/usr/lib"
+PLATFORM_ELSE
+PLATFORM_ENDIF
+ type="set"
+/>
+
+<environment
+ variable="CPPFLAGS"
+ value="-I/usr/local/lib/bcfg2/include"
+ type="set"
+/>
+
+<source
+ url="http://www.zlib.net/zlib-1.2.3.tar.gz"
+>
+
+<configure>
+./configure \
+PLATFORM_IF_MATCH(aix)
+PLATFORM_ELSE
+ --shared \
+PLATFORM_ENDIF
+ --prefix="${ENCAP_SOURCE}/${ENCAP_PKGNAME}/lib/bcfg2"
+</configure>
+
+</source>
+
+<prepackage type="set">
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description Zlib compression library
+</encapinfo>
+
+</encap_profile>
diff --git a/encap/m4-1.4.4.sh b/encap/m4-1.4.4.sh
new file mode 100755
index 000000000..4373319fa
--- /dev/null
+++ b/encap/m4-1.4.4.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+# $Id$
+
+ENCAP_PKGNAME=m4-1.4.4
+PATH=$PATH:/usr/local/bin
+export PATH
+
+cat > ${ENCAP_PKGNAME}.profile << EOF
+<?xml version="1.0"?>
+
+<encap_profile
+ profile_ver="1.0"
+ pkgspec="m4-1.4.4"
+>
+
+<environment
+ variable="CC"
+ value="gcc"
+ type="set"
+/>
+
+<environment
+ variable="PATH"
+ value="/usr/local/bin:"
+ type="prepend"
+/>
+
+<source
+ url="http://ftp.gnu.org/gnu/m4/m4-1.4.4.tar.gz"
+>
+
+</source>
+
+<prepackage type="set">
+mkdir var 2>/dev/null || exit 0
+mkdir var/encap 2>/dev/null || exit 0
+touch var/encap/${ENCAP_PKGNAME}
+</prepackage>
+
+<encapinfo>
+description m4 - GNU implementation of the traditional Unix macro processor
+</encapinfo>
+
+</encap_profile>
+EOF
+
+cat > m4-fake << EOF
+#!/bin/sh
+cat \$4
+EOF
+
+chmod 755 m4-fake
+
+( ${MKENCAP} -m ${PWD}/m4-fake -b -DUP ${ENCAP_PKGNAME}.profile || true ) \
+ > ${ENCAP_PKGNAME}.log 2>&1
+
+( ${MKENCAP} -m ${PWD}/m4-fake -b -T ${ENCAP_PKGNAME}.profile || true ) \
+ >> ${ENCAP_PKGNAME}.log 2>&1
+
+( ${MKENCAP} -m ${PWD}/m4-fake -b -CBI ${ENCAP_PKGNAME}.profile ) \
+ >> ${ENCAP_PKGNAME}.log 2>&1
+
+rm m4-fake
+rm ${ENCAP_PKGNAME}.profile
+
+exit 0