From 2dcc387183d786267b1e89ca6bacfaffb08bedd3 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Fri, 31 May 2013 18:49:47 -0400 Subject: Move package preparation into a new script. --- diff --git a/bootstrap-main.sh b/bootstrap-main.sh index 88289cf..be14830 100755 --- a/bootstrap-main.sh +++ b/bootstrap-main.sh @@ -10,7 +10,7 @@ main() { SCRIPT_DIR="$(cd "${0%/*}" && pwd)" setup_arch_plat - prepare_packages + "${SCRIPT_DIR}/bootstrap-prepare.sh" stage1 } @@ -20,56 +20,6 @@ setup_arch_plat() PLAT="$(cat /etc/proteanos_plat)" } -prepare_packages() -{ - local repo pkg src_opk path dir - - [ -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 - 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 - - for pkg in mpc mpfr; do - 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 - - for dir in */; do - 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 .. -} - stage1() { local dir opk elf_interp zlib_upstream_ver diff --git a/bootstrap-prepare.sh b/bootstrap-prepare.sh new file mode 100755 index 0000000..858d6a1 --- /dev/null +++ b/bootstrap-prepare.sh @@ -0,0 +1,108 @@ +#!/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 "${@}" -- cgit v0.9.1