commit: 0ed14e747f220c560f1ac5a0b90f88a23366cb69 Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org> AuthorDate: Tue Aug 12 15:06:35 2014 +0000 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org> CommitDate: Tue Aug 12 15:06:35 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/releng.git;a=commit;h=0ed14e74
tools-uclibc: pull out common code in run scripts and add parallel builds --- tools-uclibc/{run.sh => common.sh} | 62 ++------------------------------ tools-uclibc/run-armv7a.sh | 61 +++---------------------------- tools-uclibc/run-mips32r2.sh | 61 +++---------------------------- tools-uclibc/run-mipsel3.sh | 61 +++---------------------------- tools-uclibc/run.sh | 73 +++++--------------------------------- 5 files changed, 22 insertions(+), 296 deletions(-) diff --git a/tools-uclibc/run.sh b/tools-uclibc/common.sh old mode 100755 new mode 100644 similarity index 52% copy from tools-uclibc/run.sh copy to tools-uclibc/common.sh index b1b8211..d1350d2 --- a/tools-uclibc/run.sh +++ b/tools-uclibc/common.sh @@ -4,6 +4,7 @@ source /etc/catalyst/catalyst.conf mydate=`date +%Y%m%d` + undo_grsec() { [[ -d /proc/sys/kernel/grsecurity ]] || return for i in /proc/sys/kernel/grsecurity/chroot_* ; do @@ -11,37 +12,6 @@ undo_grsec() { done } -prepare_confs() { - local arch=$1 - local flavor=$2 - - for s in 1 2 3; do - - local cstage=stage${s} - local p=$(( s - 1 )) - [[ $p == 0 ]] && p=3 - local pstage=stage${p} - - local parch="${arch}" - [[ "${arch}" == "i686" ]] && parch="x86" - - local tarch="${arch}" - [[ "${arch}" == "amd64" ]] && tarch="x86_64" - - cat stage-all.conf.template | \ - sed -e "s:\(^version_stamp.*$\):\1-${mydate}:" \ - -e "s:CSTAGE:${cstage}:g" \ - -e "s:PSTAGE:${pstage}:g" \ - -e "s:SARCH:${arch}:g" \ - -e "s:PARCH:${parch}:g" \ - -e "s:TARCH:${tarch}:g" \ - -e "s:FLAVOR:${flavor}:g" \ - -e "s:MYCATALYST:$(pwd):g" \ - > stage${s}-${arch}-uclibc-${flavor}.conf - done - - sed -i "/^chost/d" stage3-${arch}-uclibc-${flavor}.conf -} banner() { cat << EOF | tee -a zzz.log > stage$1-$2-uclibc-$3.log @@ -65,7 +35,7 @@ do_stages() { if [[ ! -f "${tgpath}/${tglink}" ]]; then touch stage${s}-${arch}-uclibc-${flavor}.log - echo "!!! ${target} at ${tgpath} doesn't exit" \ + echo "!!! ${tglink} at ${tgpath} doesn't exist" \ | tee -a zzz.log \ > stage${s}-${arch}-uclibc-${flavor}.err return 1 @@ -90,31 +60,3 @@ do_stages() { return 0 } - - -main() { - >zzz.log - - undo_grsec - - catalyst -s current | tee -a zzz.log >snapshot.log 2>snapshot.err - - for arch in amd64 i686; do - for flavor in hardened vanilla; do - prepare_confs ${arch} ${flavor} - done - done - - for arch in amd64 i686; do - for flavor in hardened vanilla; do - do_stages ${arch} ${flavor} - ret=$? - if [[ $? == 1 ]]; then - echo "FAILURE at ${arch} ${flavor} " | tee zzz.log - return 1 - fi - done - done -} - -main $1 & diff --git a/tools-uclibc/run-armv7a.sh b/tools-uclibc/run-armv7a.sh index 7a248f5..13b684f 100755 --- a/tools-uclibc/run-armv7a.sh +++ b/tools-uclibc/run-armv7a.sh @@ -1,8 +1,6 @@ #!/bin/bash -source /etc/catalyst/catalyst.conf - -mydate=`date +%Y%m%d` +source common.sh prepare_confs() { local arch=$1 @@ -42,54 +40,6 @@ prepare_confs() { sed -i "/^chost/d" stage3-${arch}-uclibc-${flavor}.conf } -banner() { -cat << EOF | tee -a zzz.log > stage$1-$2-uclibc-$3.log - -************************************************************************ -* stage$1-$2-uclibc-$3 -************************************************************************" - -EOF -} - - -do_stages() { - local arch=$1 - local flavor=$2 - - for s in 1 2 3; do - local tgpath="${storedir}/builds/uclibc/${flavor}/${arch}" - local target="stage${s}-${arch}-uclibc-${flavor}-${mydate}.tar.bz2" - local tglink="stage${s}-${arch}-uclibc-${flavor}.tar.bz2" - - if [[ ! -f "${tgpath}/${tglink}" ]]; then - touch stage${s}-${arch}-uclibc-${flavor}.log - echo "!!! ${target} at ${tgpath} doesn't exit" \ - | tee -a zzz.log \ - > stage${s}-${arch}-uclibc-${flavor}.err - return 1 - fi - - banner ${s} ${arch} ${flavor} - catalyst -f stage${s}-${arch}-uclibc-${flavor}.conf \ - | tee -a zzz.log \ - > stage${s}-${arch}-uclibc-${flavor}.log \ - 2> stage${s}-${arch}-uclibc-${flavor}.err - - if [[ -f "${tgpath}/${target}" ]]; then - rm -f "${tgpath}/${tglink}" - ln -s ${target} "${tgpath}/${tglink}" - else - echo "!!! ${target} was not generated" \ - | tee -a zzz.log \ - >stage${s}-${arch}-uclibc-${flavor}.err - return 1 - fi - done - - return 0 -} - main() { >zzz.log @@ -101,15 +51,12 @@ main() { prepare_confs ${arch} ${flavor} done done - + + # No parallelization for arm. Its too hard on the cpu! for arch in armv7a_hardfp armv7a; do for flavor in hardened vanilla; do do_stages ${arch} ${flavor} - ret=$? - if [[ $? == 1 ]]; then - echo "FAILURE at ${arch} ${flavor} " | tee zzz.log - return 1 - fi + [[ $? == 1 ]] && echo "FAILURE at ${arch} ${flavor} " | tee zzz.log done done } diff --git a/tools-uclibc/run-mips32r2.sh b/tools-uclibc/run-mips32r2.sh index 8829b3d..3655549 100755 --- a/tools-uclibc/run-mips32r2.sh +++ b/tools-uclibc/run-mips32r2.sh @@ -1,8 +1,6 @@ #!/bin/bash -source /etc/catalyst/catalyst.conf - -mydate=`date +%Y%m%d` +source common.sh prepare_confs() { local arch=$1 @@ -32,54 +30,6 @@ prepare_confs() { sed -i "/^chost/d" stage3-${arch}-uclibc-${flavor}.conf } -banner() { -cat << EOF | tee -a zzz.log > stage$1-$2-uclibc-$3.log - -************************************************************************ -* stage$1-$2-uclibc-$3 -************************************************************************" - -EOF -} - - -do_stages() { - local arch=$1 - local flavor=$2 - - for s in 1 2 3; do - local tgpath="${storedir}/builds/uclibc/${flavor}/${arch}" - local target="stage${s}-${arch}-uclibc-${flavor}-${mydate}.tar.bz2" - local tglink="stage${s}-${arch}-uclibc-${flavor}.tar.bz2" - - if [[ ! -f "${tgpath}/${tglink}" ]]; then - touch stage${s}-${arch}-uclibc-${flavor}.log - echo "!!! ${target} at ${tgpath} doesn't exit" \ - | tee -a zzz.log \ - > stage${s}-${arch}-uclibc-${flavor}.err - return 1 - fi - - banner ${s} ${arch} ${flavor} - catalyst -f stage${s}-${arch}-uclibc-${flavor}.conf \ - | tee -a zzz.log \ - > stage${s}-${arch}-uclibc-${flavor}.log \ - 2> stage${s}-${arch}-uclibc-${flavor}.err - - if [[ -f "${tgpath}/${target}" ]]; then - rm -f "${tgpath}/${tglink}" - ln -s ${target} "${tgpath}/${tglink}" - else - echo "!!! ${target} was not generated" \ - | tee -a zzz.log \ - >stage${s}-${arch}-uclibc-${flavor}.err - return 1 - fi - done - - return 0 -} - main() { >zzz.log @@ -91,15 +41,12 @@ main() { prepare_confs ${arch} ${flavor} done done - + + # No parallelization for mips. Its too hard on the cpu! for arch in mips32r2; do for flavor in hardened vanilla; do do_stages ${arch} ${flavor} - ret=$? - if [[ $? == 1 ]]; then - echo "FAILURE at ${arch} ${flavor} " | tee zzz.log - return 1 - fi + [[ $? == 1 ]] && echo "FAILURE at ${arch} ${flavor} " | tee zzz.log done done } diff --git a/tools-uclibc/run-mipsel3.sh b/tools-uclibc/run-mipsel3.sh index 510639c..4b70bed 100755 --- a/tools-uclibc/run-mipsel3.sh +++ b/tools-uclibc/run-mipsel3.sh @@ -1,8 +1,6 @@ #!/bin/bash -source /etc/catalyst/catalyst.conf - -mydate=`date +%Y%m%d` +source common.sh prepare_confs() { local arch=$1 @@ -32,54 +30,6 @@ prepare_confs() { sed -i "/^chost/d" stage3-${arch}-uclibc-${flavor}.conf } -banner() { -cat << EOF | tee -a zzz.log > stage$1-$2-uclibc-$3.log - -************************************************************************ -* stage$1-$2-uclibc-$3 -************************************************************************" - -EOF -} - - -do_stages() { - local arch=$1 - local flavor=$2 - - for s in 1 2 3; do - local tgpath="${storedir}/builds/uclibc/${flavor}/${arch}" - local target="stage${s}-${arch}-uclibc-${flavor}-${mydate}.tar.bz2" - local tglink="stage${s}-${arch}-uclibc-${flavor}.tar.bz2" - - if [[ ! -f "${tgpath}/${tglink}" ]]; then - touch stage${s}-${arch}-uclibc-${flavor}.log - echo "!!! ${target} at ${tgpath} doesn't exit" \ - | tee -a zzz.log \ - > stage${s}-${arch}-uclibc-${flavor}.err - return 1 - fi - - banner ${s} ${arch} ${flavor} - catalyst -f stage${s}-${arch}-uclibc-${flavor}.conf \ - | tee -a zzz.log \ - > stage${s}-${arch}-uclibc-${flavor}.log \ - 2> stage${s}-${arch}-uclibc-${flavor}.err - - if [[ -f "${tgpath}/${target}" ]]; then - rm -f "${tgpath}/${tglink}" - ln -s ${target} "${tgpath}/${tglink}" - else - echo "!!! ${target} was not generated" \ - | tee -a zzz.log \ - >stage${s}-${arch}-uclibc-${flavor}.err - return 1 - fi - done - - return 0 -} - main() { >zzz.log @@ -91,15 +41,12 @@ main() { prepare_confs ${arch} ${flavor} done done - + + # No parallelization for mips. Its too hard on the cpu! for arch in mipsel3; do for flavor in hardened vanilla; do do_stages ${arch} ${flavor} - ret=$? - if [[ $? == 1 ]]; then - echo "FAILURE at ${arch} ${flavor} " | tee zzz.log - return 1 - fi + [[ $? == 1 ]] && echo "FAILURE at ${arch} ${flavor} " | tee zzz.log done done } diff --git a/tools-uclibc/run.sh b/tools-uclibc/run.sh index b1b8211..ed0a14f 100755 --- a/tools-uclibc/run.sh +++ b/tools-uclibc/run.sh @@ -1,15 +1,6 @@ #!/bin/bash -source /etc/catalyst/catalyst.conf - -mydate=`date +%Y%m%d` - -undo_grsec() { - [[ -d /proc/sys/kernel/grsecurity ]] || return - for i in /proc/sys/kernel/grsecurity/chroot_* ; do - echo 0 > $i - done -} +source common.sh prepare_confs() { local arch=$1 @@ -43,54 +34,6 @@ prepare_confs() { sed -i "/^chost/d" stage3-${arch}-uclibc-${flavor}.conf } -banner() { -cat << EOF | tee -a zzz.log > stage$1-$2-uclibc-$3.log - -************************************************************************ -* stage$1-$2-uclibc-$3 -************************************************************************" - -EOF -} - - -do_stages() { - local arch=$1 - local flavor=$2 - - for s in 1 2 3; do - local tgpath="${storedir}/builds/uclibc/${flavor}/${arch}" - local target="stage${s}-${arch}-uclibc-${flavor}-${mydate}.tar.bz2" - local tglink="stage${s}-${arch}-uclibc-${flavor}.tar.bz2" - - if [[ ! -f "${tgpath}/${tglink}" ]]; then - touch stage${s}-${arch}-uclibc-${flavor}.log - echo "!!! ${target} at ${tgpath} doesn't exit" \ - | tee -a zzz.log \ - > stage${s}-${arch}-uclibc-${flavor}.err - return 1 - fi - - banner ${s} ${arch} ${flavor} - catalyst -f stage${s}-${arch}-uclibc-${flavor}.conf \ - | tee -a zzz.log \ - > stage${s}-${arch}-uclibc-${flavor}.log \ - 2> stage${s}-${arch}-uclibc-${flavor}.err - - if [[ -f "${tgpath}/${target}" ]]; then - rm -f "${tgpath}/${tglink}" - ln -s ${target} "${tgpath}/${tglink}" - else - echo "!!! ${target} was not generated" \ - | tee -a zzz.log \ - >stage${s}-${arch}-uclibc-${flavor}.err - return 1 - fi - done - - return 0 -} - main() { >zzz.log @@ -104,15 +47,15 @@ main() { prepare_confs ${arch} ${flavor} done done - + + # The parallelization `( do_stages ... ) &` doesn't work here + # if catalyst is using snapcache, bug #519656 for arch in amd64 i686; do for flavor in hardened vanilla; do - do_stages ${arch} ${flavor} - ret=$? - if [[ $? == 1 ]]; then - echo "FAILURE at ${arch} ${flavor} " | tee zzz.log - return 1 - fi + ( + do_stages ${arch} ${flavor} + [[ $? == 1 ]] && echo "FAILURE at ${arch} ${flavor} " | tee zzz.log + ) & done done }