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
 }

Reply via email to