#!/bin/bash ############################ #### CATALYST VARIABLES #### ver=hardened-2.6 arch=amd64 profile=hardened/amd64 rel_type=hardened ######################### #### STAGE VARIABLES #### export CHOST="x86_64-pc-linux-gnu" export CFLAGS="-O2 -pipe" export CXXFLAGS="${CFLAGS}" #export CC=gcc #export CXX=g++ ##################### ### SCRIPT EXTRAS ### # clean out the temp dir between catalyst runs # useful for systems which are low on space clean=0 # name of the seed tarball (no .tar.bz2) ... # put it into the builds dir of catalyst #seed=stage3-amd64-pie_ssp-20040807 #seed=stage3-amd64-hardened-20050125 seed=stage3-amd64-hardened-20050204 ################# #### TODO :) #### #- automatically e-mail when something finishes/fails ##################################################### #### SHOULDNT NEED TO MODIFY ANYTHING BELOW HERE #### if [ ! -x /usr/bin/time ] ; then echo "Please 'emerge sys-apps/time'" exit 1 fi cdir="$(source /etc/catalyst/catalyst.conf ; echo ${storedir:-/var/tmp/catalyst})" tmpdir="${cdir}/tmp" snapdir="${cdir}/snapshots" builddir="${cdir}/builds" stagedir="${builddir}/${rel_type}" unset PORTDIR_OVERLAY mkdir -p "${stagedir}" cd /etc/catalyst docatalyst() { echo if [ "${clean}" != "0" ] ; then if [ -d "${tmpdir}" ] ; then echo "* Cleaning temp dir" rm -rf "${tmpdir}" fi fi echo "* Building $3" local basetarget="${1}/${2}.tar.bz2" if [ -f "${basetarget}" ] ; then echo "* $3 is cached at ${1}/${2}.tar.bz2" return fi if [ "${3}" == "snapshot" ] ; then catalyst -C \ version_stamp="${ver}" \ target="${3}" \ || exit 1 return fi if [ ! -f "${builddir}/${4}.tar.bz2" ] ; then echo "* $3 lacks the source tarball '${4}.tar.bz2:" echo "* Could not find it in ${builddir}" exit 1 fi /usr/bin/time \ --output="${basetarget}.time" \ catalyst -C \ version_stamp="${ver}" \ snapshot="${ver}" \ subarch="${arch}" \ profile="${profile}" \ rel_type="${rel_type}" \ target="${3}" \ source_subpath="${4}" \ || exit 2 cd $(dirname "${basetarget}") md5sum $(basename "${basetarget}") > "${basetarget}.digests" sha1sum $(basename "${basetarget}") >> "${basetarget}.digests" tar -tjf "${basetarget}" > "${basetarget}.CONTENTS" } stage_name="${arch}-${ver}" docatalyst "${snapdir}" "portage-${ver}" snapshot docatalyst "${stagedir}" "stage1-${stage_name}" stage1 "${seed}" docatalyst "${stagedir}" "stage2-${stage_name}" stage2 "${rel_type}/stage1-${stage_name}" docatalyst "${stagedir}" "stage3-${stage_name}" stage3 "${rel_type}/stage2-${stage_name}"