#!/bin/zsh DO=$0 main() { args build_dir fstab arch! sabotage_url clone-depend sabotage-checkout sabotage_url: eval $(getvars) local sabotage_conf sabotage_conf=( '## set your arch, or try `uname -m`' 'export A='${(q)arch} 'export ARCH=$A' '' '## set the compiler environment' 'export CC=gcc' 'export HOSTCC=gcc' '' '## set your core count for faster builds, this is passed as -jXXX to make' '## stage0 builds in less than 2minutes using -j9 on an AMD 8core' 'export MAKE_THREADS='$(grep $'^processor[ \t]*:' /proc/cpuinfo | wc -l) ': ${MAKE_THREADS:=1}' '' '# internal paths' '# you should leave these all as-is, this is the intended way.' '# K is the directory where patches and configs are kept' '# C is the directory to place the downloaded tarballs' '# S is the directory to extract tarballs and place sources for building stage0' '# R is the directory underwhich the new filesystem will be created' '# LOGPATH is the directory to place logfiles of builds' '' '# needed to inherit $PWD from toplevel buildscript' '[ -z "$H" ] && H="$PWD"' '' '## set path to builddir (where you want your chroot).' 'export SABOTAGE_BUILDDIR=$(realpath "$H/..")' '' 'export K="$H"/KEEP' '#export C="$H"/tarballs' 'export C='${(q)DO:h:a}/downloads/sabotage-tarballs 'export R="$SABOTAGE_BUILDDIR"' 'export S="$R"/src' 'export LOGPATH="$S"/logs' '' 'export BUTCH_BUILD_TEMPLATE="$K"/butch_build_template.txt' 'export BUTCH_DOWNLOAD_TEMPLATE="$K"/butch_download_template.txt' '' '# this is needed so packages can detect from which stage they'\''re called' 'export STAGE=0' ) printf '%s\n' $sabotage_conf >$build_dir/src/config \ || die "failed to set up config" printf '%s\n' '#!/bin/sh' 'exec true' \ >$build_dir/src/utils/update-chroot.sh || die (cd $build_dir/src && ./build-stage0) \ || die "failed to build stage0" rm -rf $build_dir/src/{build,logs} \ || die "failed to remove temporary files" } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4