summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-05-31 18:49:47 (EDT)
committer P. J. McDermott <pjm@nac.net>2013-05-31 18:49:47 (EDT)
commit2dcc387183d786267b1e89ca6bacfaffb08bedd3 (patch)
tree4feadef0c7e8585fd2fade1f3c6883ab17a86222
parent14d460fb0c79d2244b20e1d0c959becc1c6d0ee9 (diff)
Move package preparation into a new script.
-rwxr-xr-xbootstrap-main.sh52
-rwxr-xr-xbootstrap-prepare.sh108
2 files changed, 109 insertions, 51 deletions
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 "${@}"