| #!/bin/bash |
| debug="" |
| |
| branches=( "master" "f32" "f31" ) |
| releases=( "fc33" "fc32" "fc31" ) |
| regexps=( "fc33" "\|fc32" "\|fc31" ) |
| bodhi_enabled=( "0" "1" "1" ) |
| |
| |
| branches_index=0 |
| release_index=0 |
| regexp_index=0 |
| bodhi_enabled_index=0 |
| done_build=0 |
| releases_regexp="${regexps[@]: regexp_index: 1}" |
| let "regexp_index+=1" |
| |
| cd `dirname $0` |
| LANG=C |
| SPEC=vim.spec |
| CHANGES=1 |
| force=0 |
| |
| if [ "x$1" == "x--force" ]; then |
| force=1 |
| fi |
| |
| DATE=`date +"%a %b %d %Y"` |
| $debug fedpkg switch-branch "${branches[@]: $branches_index: 1}" |
| |
| |
| if [ $? -ne 0 ]; then |
| echo "Error with switching branch" |
| exit 1 |
| fi |
| |
| MAJORVERSION=`grep "define baseversion" vim.spec | cut -d ' ' -f 3` |
| MAJORVERDIR=$(echo $MAJORVERSION | sed -e 's/\.//') |
| EPOCH=`grep "Epoch:" vim.spec | cut -d ':' -f 2` |
| PACKAGER=`rpmdev-packager` |
| ORIGPL=`grep "define patchlevel" vim.spec | cut -d ' ' -f 3 | sed -e "s/^0*//g"` |
| ORIGPLFILLED=`printf "%03d" $ORIGPL` |
| |
| if [ ! -d vim-upstream ]; then |
| git clone https://github.com/vim/vim.git vim-upstream |
| else |
| pushd vim-upstream |
| git pull |
| popd |
| fi |
| |
| pushd vim-upstream |
| |
| |
| LASTTAG=$(git describe --tags $(git rev-list --tags --max-count=1)) |
| |
| |
| UPSTREAMMAJOR=$(echo $LASTTAG | sed -e 's/v\([0-9]*\.[0-9]*\).*/\1/') |
| UPSTREAMMAJORDIR=$(echo $UPSTREAMMAJOR | sed -e 's/\.//') |
| LASTPL=`echo $LASTTAG| sed -e 's/.*\.//;s/^0*//'` |
| LASTPLFILLED=`printf "%03d" $LASTPL` |
| if [ $force -ne 1 -a "$ORIGPLFILLED" == "$LASTPLFILLED" ]; then |
| echo "No new patchlevel available" |
| CHANGES=0 |
| fi |
| rm -rf dist/* 2>/dev/null |
| make unixall |
| |
| |
| mv dist/vim-${UPSTREAMMAJOR}.tar.bz2 dist/vim-${UPSTREAMMAJOR}-${LASTPLFILLED}.tar.bz2 |
| |
| |
| |
| popd |
| |
| cp -f vim-upstream/dist/vim-${UPSTREAMMAJOR}-${LASTPLFILLED}.tar.bz2 . |
| |
| |
| if [ $CHANGES -ne 0 ]; then |
| CHLOG="* $DATE $PACKAGER -$EPOCH:$UPSTREAMMAJOR" |
| $debug sed -i -e "/Release: /cRelease: 1%{?dist}" $SPEC |
| if [ "x$MAJORVERSION" != "x$UPSTREAMMAJOR" ]; then |
| $debug sed -i -s "s/define baseversion $MAJORVERSION/define baseversion $UPSTREAMMAJOR/" $SPEC |
| $debug sed -i -s "s/define vimdir vim$MAJORVERDIR/define vimdir vim$UPSTREAMMAJORDIR/" $SPEC |
| fi |
| $debug sed -i -e "s/define patchlevel $ORIGPLFILLED/define patchlevel $LASTPLFILLED/" $SPEC |
| $debug sed -i -e "/\%changelog/a$CHLOG.$LASTPLFILLED-1\n- patchlevel $LASTPLFILLED\n" $SPEC |
| $debug fedpkg new-sources vim-${UPSTREAMMAJOR}-${LASTPLFILLED}.tar.bz2 |
| $debug git add vim.spec |
| $debug git commit -m "- patchlevel $LASTPL" |
| |
| |
| $debug fedpkg mockbuild |
| if [ $? -ne 0 ]; then |
| echo "Error: fedpkg mockbuild" |
| exit 1 |
| fi |
| |
| |
| $debug fedpkg push |
| if [ $? -ne 0 ]; then |
| echo "Error: fedpkg push" |
| exit 1 |
| fi |
| |
| |
| |
| pending_update=`bodhi updates query --packages vim --status pending \ |
| | grep $releases_regexp` |
| testing_update=`bodhi updates query --packages vim --status testing \ |
| | grep $releases_regexp` |
| |
| if [ "$pending_update" == "" ] && [ "$testing_update" == "" ]; then |
| $debug fedpkg build |
| if [ $? -eq 0 ]; then |
| done_build=1 |
| else |
| echo "Error when building package in $branch" |
| exit 1 |
| fi |
| else |
| echo "There are pending/testing updates, do not build package." |
| fi |
| |
| let "release_index+=1" |
| let "bodhi_enabled_index+=1" |
| |
| for branch in "${branches[@]:(1)}"; |
| do |
| |
| $debug fedpkg switch-branch $branch |
| |
| |
| $debug bash -c "git merge ${branches[@]: $branches_index: 1} <<<':x'" |
| if [ $? -ne 0 ]; then |
| echo "Error: git merge ${branches[@]: $branches_index: 1}" |
| exit 1 |
| fi |
| |
| |
| $debug fedpkg mockbuild |
| if [ $? -ne 0 ]; then |
| echo "Error: fedpkg mockbuild failed" |
| exit 1 |
| fi |
| |
| |
| $debug fedpkg push |
| if [ $? -ne 0 ]; then |
| echo "Error: fedpkg push" |
| exit 1 |
| fi |
| |
| |
| |
| |
| releases_regexp="$releases_regexp${regexps[@]: regexp_index: 1}" |
| |
| |
| |
| |
| |
| |
| testing_update=`bodhi updates query --packages vim --status testing \ |
| | grep $releases_regexp` |
| if [ "$testing_update" == "" ] && [ $done_build -eq 1 ]; then |
| $debug fedpkg build |
| if [ $? -eq 0 ]; then |
| |
| if [ $branch != "master" ] || [ ${bodhi_enabled[@]: $bodhi_enabled_index: 1} -eq 1 ]; then |
| $debug bodhi updates new --user zdohnal --type enhancement --notes "The newest upstream commit" --request testing --autotime --autokarma --stable-karma 3 --unstable-karma -3 vim-${UPSTREAMMAJOR}.${LASTPLFILLED}-1.${releases[@]: $release_index: 1} |
| fi |
| else |
| echo "Error when building package for $branch" |
| exit 1 |
| fi |
| else |
| done_build=0 |
| fi |
| |
| |
| let "branches_index+=1" |
| let "release_index+=1" |
| let "regexp_index+=1" |
| let "bodhi_enabled_index+=1" |
| done |
| |
| |
| |
| |
| |
| |
| |
| |
| fi |
| |
| |
| $debug fedpkg switch-branch master |
| |
| exit 0 |