#!/bin/sh set -e SCRIPT_DIR= ARCH= main() { SCRIPT_DIR="$(cd "${0%/*}" && pwd)" ARCH="$(cat /etc/proteanos_arch)" cat <<-EOF Preparing packages for bootstrap... =================================== EOF prepare_packages_from_git prepare_packages_from_ftp patch_packages } log() { local msg i msg="$(printf "${@}")" printf '\n%s\n' "${msg}" i=0 while [ ${i} -lt ${#msg} ]; do printf '-' i=$(($i + 1)) done printf '\n\n' } prepare_packages_from_git() { local repo [ -d pkg ] || mkdir pkg cd pkg for repo in zlib toolchains/binutils linux-libre eglibc \ gmp toolchains/gcc-4.7 toolchains/gcc-defaults \ busybox gmake; do log 'Preparing package %s...' "${repo##*/}" if [ ! -d "${repo##*/}" ]; then git clone --depth 1 \ "git://git.proteanos.com/pkg/${repo}.git" fi cd "${repo##*/}" git pull origin master if [ -x config ]; then ./config clean PKG_TARGETS="${ARCH}" ./config fi if [ -f source.mk -a ! -f "${repo##*/}"*.orig.tar* ]; then opkbuild -bCT source fi opkbuild -SC cd .. done cd .. } prepare_packages_from_ftp() { local pkg src_opk path cd pkg for pkg in mpc mpfr; do log 'Preparing package %s...' "${pkg}" if [ ! -d "${pkg}" ]; then src_opk="src-${pkg}_*_src_all.opk" path="pub/pkg/${pkg}/${src_opk}" wget "ftp://files.proteanos.com/${path}" tar -xzOf ${src_opk} data.tar.gz | tar -xz mv "usr/src/${pkg}_"* "${pkg}" fi done [ -d usr/src ] && rmdir usr/src [ -d usr ] && rmdir usr cd .. } patch_packages() { local dir patch cd pkg for dir in */; do log 'Patching package %s...' "${dir%/}" if [ -d "${SCRIPT_DIR}/patches/${dir}" ]; then for patch in "${SCRIPT_DIR}/patches/${dir}"*; do patch -N -p 1 -u -d "${dir}" -i "${patch}" done fi done cd .. } main "${@}"