X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=DoKernelOrg;h=16a3468641cdf372a40c3e681b66bad5c42e4ba4;hb=a59237f5655878be68ea518ce44a8a54f18b25e3;hp=80457f4e5be5938fcb4ee5a061543d1a8a2cb286;hpb=259480fc8ee4c040f10d2c5bb72e5e5c2bd753af;p=git.git diff --git a/DoKernelOrg b/DoKernelOrg index 80457f4e..16a34686 100755 --- a/DoKernelOrg +++ b/DoKernelOrg @@ -1,46 +1,81 @@ #!/bin/sh -J= -# J='-l 4 -j' -nodo=echo +J='-l 4 -j' +G=/pub/software/scm/git && cd $HOME/git && -make clean && +make clean >/dev/null 2>&1 && git reset --hard && -make clean && +make clean >/dev/null 2>&1 && git checkout master && git pull . origin && -make clean && +make clean >/dev/null 2>&1 && case "$1" in '') - make $J install && - make test && - make clean && - git checkout pu && - make $J clean && - make test clean + echo "* Building all" + branches='naster master maint' + + # Make sure naster is between master and pu if exists + if naster=`git rev-parse --verify refs/heads/naster 2>/dev/null` + then + master=`git rev-parse --verify refs/heads/master` && + pu=`git rev-parse --verify refs/heads/pu` && + MBM=`git merge-base --all $naster $master` && + MBN=`git merge-base --all $naster $pu` && + case ",$MBM,$MBN," in + ",$master,$naster,") ;; + *) echo >&2 "naster is not between master and pu" + exit 1 ;; + esac + # If naster is the same as pu, no point rebuilding pu. + case ",$naster,$pu," in + ",$pu,$naster,") ;; + *) branches="$branches pu" ;; + esac + fi + + { + nstalled=install + for branch in $branches + do + if git-rev-parse --verify refs/heads/$branch 2>/dev/null + then + echo "** $branch **" && + git checkout $branch && + make $J $nstalled && + make test && + make clean && + nstalled=all || exit $? + else + echo + echo "* NO $branch" + echo + fi + done + } >:all.log 2>&1 ;; maint | master) - G=/pub/software/scm/git && + mkdir -p $G/RPMS/i386 $G/RPMS/SRPMS && + echo "* Building $1" git checkout "$1" && - make rpm && - make $J git && - V=$(./git --version | sed -e 's/git version //') && - $nodo ln git-$V.tar.gz $G/. && - D=`pwd` && - M="git-man-pages-$V" && - rm -rf "$M" && - rm -f "$M".tar.gz && - make man1="$D/$M/man1" man7="$D/$M/man7" -C Documentation install && - $nodo tar zcf "$G/$M".tar.gz "$M" && - rm -fr "$M" && + make rpm >./:rpm.log 2>&1 && + make $J git >>./:rpm.log 2>&1 && + V=`./git --version | sed -e 's/git version //'` && + ln git-$V.tar.gz $G/. && + ln $HOME/rpms/RPMS/i386/git*-$V-* $G/RPMS/i386/. && + ln $HOME/rpms/SRPMS/git-$V-* $G/RPMS/SRPMS/. && + { + # I do not know how it exits, and I do not care much. + /usr/local/bin/yummy $G/RPMS/i386 + /usr/local/bin/yummy $G/RPMS/SRPMS + : + } && + rm -fr ./:rpm.log && make clean && - $nodo ln $HOME/rpms/RPMS/i386/git*-$V-* $G/RPMS/i386/. && - $nodo ln $HOME/rpms/SRPMS/git-$V-* $G/RPMS/SRPMS/. - ;; + : ;; esac || exit $? git checkout master