From: Heikki Levanto Date: Tue, 29 Sep 2015 12:36:14 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/git-tools X-Git-Url: http://git.indexdata.com/?p=git-tools-moved-to-github.git;a=commitdiff_plain;h=4d1d642b47e16e1a45b712b8bf6484f853fbdd50;hp=ada6661f32cabd6131194e90280d3ed5bba2d635 Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/git-tools --- diff --git a/id-deb-build/id-mk-deb-changelog.sh b/id-deb-build/id-mk-deb-changelog.sh new file mode 100755 index 0000000..6b16884 --- /dev/null +++ b/id-deb-build/id-mk-deb-changelog.sh @@ -0,0 +1,26 @@ +#!/bin/sh +if test ! -f debian/control; then + echo "No debian/control" + exit 1 +fi +if test ! -f IDMETA; then + echo "No IDMETA" + exit 1 +fi +. ./IDMETA +DNAME=`awk '/Source:/ {print $2}' debian/control` +if test "$NAME" -a "$NAME" != "$DNAME"; then + echo "NAME in IDMETA ($NAME) does not match debian/control ($DNAME)" + exit 1 +fi + +DCH=debian/changelog +if ! git ls-files $DCH --error-unmatch >/dev/null 2>&1; then + rm -f $DCH + echo "${DNAME} (${VERSION}-1.indexdata) unstable; urgency=medium" >$DCH + echo '' >>$DCH + echo ' * Upstream.' >>$DCH + echo '' >>$DCH + echo " -- `git config --get user.name` <`git config --get user.email`> `date -R`" >>$DCH + echo '' >>$DCH +fi diff --git a/id-deb-build/id-mk-deb-src.sh b/id-deb-build/id-mk-deb-src.sh index c63e772..3fe1759 100755 --- a/id-deb-build/id-mk-deb-src.sh +++ b/id-deb-build/id-mk-deb-src.sh @@ -14,11 +14,8 @@ fi l=`head -1 $DEBCHANGELOG` PROD=`echo $l|sed 's/ .*//g'` VERSION=`echo $l|sed 's/.*(//g'|sed 's/).*//g'` -echo "VERSION=$VERSION" MAJOR=`echo $VERSION|sed 's/-.*//g'` -echo "MAJOR=$MAJOR" MINOR=`echo $VERSION|sed 's/.*-//g'` -echo "MINOR=$MINOR" TAR=${PROD}-${MAJOR}.tar.gz if test ! -f ${TAR}; then echo "$0: ${TAR} missing" @@ -27,8 +24,6 @@ fi set -e mkdir -p deb-src ORIG=${PROD}_${MAJOR}.orig.tar.gz -echo "TAR=$TAR" -echo "ORIG=$ORIG" cp ${TAR} deb-src/${ORIG} cd deb-src tar xf ${ORIG} diff --git a/id-deb-build/id-mk-dist.sh b/id-deb-build/id-mk-dist.sh deleted file mode 100755 index 02d91a4..0000000 --- a/id-deb-build/id-mk-dist.sh +++ /dev/null @@ -1,31 +0,0 @@ -echo "id-mk-dist.sh is deprecated -- use mkdist.sh instead" -exit 1 - -#!/bin/sh -if test ! -f debian/changelog; then - echo "debian/changelog not found" - exit 1 -fi -PRODUCT=`head -1 debian/changelog |awk '{print $1}'` -if test ! -f IDMETA; then - echo "IDMETA not found in current directory" - exit 1 -fi -. ./IDMETA -for f in debian/*; do - if test -d $f; then - echo "Removing $f" - rm -r $f - fi -done -git log >ChangeLog -rm -f dist.tar ${PRODUCT}-*.tar.gz ${PRODUCT}-${VERSION} -tar cv --exclude='*~' --exclude='.*' -f dist.tar * -mkdir $PRODUCT-$VERSION -(cd $PRODUCT-$VERSION; tar xf ../dist.tar) -for f in .gitignore debian; do - (cd $PRODUCT-$VERSION; rm -fr $f) -done -tar zcvf $PRODUCT-$VERSION.tar.gz $PRODUCT-$VERSION -rm -fr $PRODUCT-$VERSION dist.tar - diff --git a/id-deb-build/id-pbuild-root.sh b/id-deb-build/id-pbuild-root.sh index 1707786..e0d1e14 100755 --- a/id-deb-build/id-pbuild-root.sh +++ b/id-deb-build/id-pbuild-root.sh @@ -1,69 +1,87 @@ #!/bin/sh - usage() { cat <&2 fi -rm -fr ${dist}-${arch} - -if test ! -f $HOME/.pbuilderrc; then - echo "$HOME/.pbuilderrc missing" +if test -z "$DIST"; then + echo "id-pbuild-root.sh: missing --dist" exit 1 fi -if test "$dsc"; then - if test ! -f /var/cache/pbuilder/${dist}-${arch}-base.tgz; then - DIST=$dist ARCH=$arch $PBUILDER --create - fi - DIST=$dist ARCH=$arch $PBUILDER --update --override-config - DIST=$dist ARCH=$arch $PBUILDER --build $dsc +if test -z "$ARCH"; then + echo "id-pbuild-root.sh: missing --arch" + exit 1 fi +if test -z "$DSC"; then + echo "id-pbuild-root.sh: missing --dsc" + exit 1 +fi +if test ! -x /usr/bin/lxc-attach; then + echo "No lxc-attach. Probably not running on mochi!!" + exit 1 +fi +export DIST ARCH # export for pbuilder to see +echo "$DIST-$ARCH begin" +if $update; then + if ! lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${DIST}-${ARCH}.log 2>&1; then + if ! lxc-attach -n pbuilder -- pbuilder --create >create-${DIST}-${ARCH}.log 2>&1; then + echo "$DIST-$ARCH failed. Inspect deb-src/create-${DIST}-${ARCH}.log" + exit 2 + fi + if ! lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${DIST}-${ARCH}.log 2>&1; then + echo "$DIST-$ARCH failed. Inspect deb-src/update-${DIST}-${ARCH}.log" + exit 2 + fi + fi +fi +if ! lxc-attach -n pbuilder -- pbuilder --build $DSC >build-${DIST}-${ARCH}.log 2>&1; then + echo "$DIST-$ARCH failed. Inspect deb-src/build-${DIST}-${ARCH}.log" + exit 3 +fi +echo "$DIST-$ARCH done" +exit 0 # Local Variables: # mode:shell-script -# sh-indentation: 2 +# sh-indentation: 4 # sh-basic-offset: 4 # End: + diff --git a/id-deb-build/id-pbuild.sh b/id-deb-build/id-pbuild.sh index 75916cd..e72f052 100755 --- a/id-deb-build/id-pbuild.sh +++ b/id-deb-build/id-pbuild.sh @@ -1,307 +1,269 @@ #!/bin/sh -# This script builds Debian packages for one or more distributions -# in i386/amd64 architectures. It uses pbuilder. pbuilder requires root -# privilege and so this script should be invoked with sudo. - usage() { cat <&2 +fi +if test ! -x /usr/bin/lxc-attach; then + echo "No lxc-attach. Probably not running on mochi!!" + exit 1 +fi +if test -f IDMETA; then + . ./IDMETA +else + echo "IDMETA missing" + exit 1 +fi +UPLOAD_HOST=${UPLOAD_HOST:=ftp.indexdata.dk} +UPLOAD_PATH=${UPLOAD_PATH:=/home/ftp/pub} if test "$DEBIAN_DIST_A" -o "$UBUNTU_DIST_A" -o "$CENTOS_DIST_A"; then DEBIAN_DIST=$DEBIAN_DIST_A UBUNTU_DIST=$UBUNTU_DIST_A CENTOS_DIST=$CENTOS_DIST_A fi - -if test "$do_help" = "yes"; then - usage 1 1>&2 -fi - if test "$DEBIAN_DIST" -o "$UBUNTU_DIST"; then debian=true + DNAME=`awk '/Source:/ {print $2}' debian/control` + if test "$NAME" -a "$NAME" != "$DNAME"; then + echo "NAME in IDMETA ($NAME) does not match debian/control ($DNAME)" + exit 1 + fi + PRODUCT=$DNAME else debian=false fi - -D0=`dirname $0` -ID_DEB_BUILD=`cd $D0; pwd` -PBUILDROOT=${ID_DEB_BUILD}/id-pbuild-root.sh -if test ! -x $PBUILDROOT; then - echo "$PBUILDROOT not found" - exit 1 -fi - if test "$CENTOS_DIST"; then + centos=true RNAME=`awk '/Name:/ {print $2}' *.spec` - echo "RNAME=$RNAME" if test "$NAME" -a "$NAME" != "$RNAME"; then echo "NAME in IDMETA ($NAME) does not match RPM spec NAME ($RNAME)" exit 1 fi PRODUCT=$RNAME -fi -if $debian; then - DNAME=`awk '/Source:/ {print $2}' debian/control` - if test "$NAME" -a "$NAME" != "$DNAME"; then - echo "NAME in IDMETA ($NAME) does not match debian/control ($DNAME)" - exit 1 + if test ! -d ~/rpmbuild; then + echo "Creating ~/rpmbuild" + mkdir -p ~/pmbuild/BUILD + mkdir -p ~/rpmbuild/RPMS/noarch + mkdir -p ~/rpmbuild/RPMS/x86_64 + mkdir -p ~/rpmbuild/SOURCES + mkdir -p ~/rpmbuild/SPECS + mkdir -p ~/rpmbuild/SRPMS fi - PRODUCT=$DNAME - if ! $upload; then - MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh - if test ! -x $MKDEBSRC; then - echo "$MKDEBSRC not found" - exit 1 - fi - DCH=debian/changelog - if ! git ls-files $DCH --error-unmatch >/dev/null 2>&1; then - rm -f $DCH - echo "${DNAME} (${VERSION}-1.indexdata) unstable; urgency=medium" >$DCH - echo '' >>$DCH - echo ' * Upstream.' >>$DCH - echo '' >>$DCH - echo " -- `git config --get user.name` <`git config --get user.email`> `date -R`" >>$DCH - echo '' >>$DCH - fi - if test "${SUDO_USER}"; then - if test ! -d deb-src; then - $MKDEBSRC - fi - else - if test -d deb-src; then - rm -f deb-src/*.gz - if test $? -ne 0; then - echo "deb-src could not be removed. Remove deb-src manually" - exit 1 - fi - rm -f deb-src/*.dsc - fi - $MKDEBSRC - fi + if test ! -f ~/.rpmmacros; then + echo "Creating ~/.rpmmacros" + echo "%_topdir $HOME/rpmbuild" >~/.rpmmacros + echo "%_source_filedigest_algorithm 0" >>~/.rpmmacros + echo "%_binary_filedigest_algorithm 0" >>~/.rpmmacros fi else - mkdir -p deb-src + centos=false fi +TAR=${PRODUCT}-${VERSION}.tar.gz -cd deb-src - -if $debian; then - for f in *.dsc; do - if test -f "$f"; then - PKG=$f +if $upload; then + UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${PRODUCT} + echo "Uploading to ${UPLOAD_URI}" + if $centos; then + pkg_names=`sudo lxc-attach -n mockbuild -- rpm -q --specfile ~/rpmbuild/SPECS/${PRODUCT}.spec --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n"` + for dist in ${CENTOS_DIST}; do + case $dist in + centos5) + ftpdir=centos/5.5 + r=id-epel-5-x86_64 ;; + centos6) + ftpdir=centos/6 + r=id-epel-6-x86_64 ;; + centos7) + ftpdir=centos/7 + r=id-epel-7-x86_64 ;; + *) + ftpdir=centos/$dist + r=$dist ;; + esac + echo "$r" + for pkg in ${pkg_names}; do + ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/${ftpdir}/SRPMS" + if test -f ~/rpmbuild/SRPMS/${pkg}.src.rpm; then + scp ~/rpmbuild/SRPMS/${pkg}.src.rpm ${UPLOAD_URI}/redhat/${ftpdir}/SRPMS + fi + for arch in x86_64 noarch; do + if test -f ~/rpmbuild/$r/${pkg}.${arch}.rpm; then + ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/redhat/${ftpdir}/RPMS/${arch}" + scp ~/rpmbuild/$r/${pkg}.${arch}.rpm ${UPLOAD_URI}/redhat/${ftpdir}/RPMS/${arch} + fi + done + done + done + if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-yum-archive.sh" >~/rpmbuild/yum-update.log 2>&1; then + echo "update-yum-archive.sh failed. Inspect ~/rpmbuild/yum-update.log" + exit 1 fi - done - if test -z "$PKG"; then - echo "Specify .dsc file" - exit 1 - fi - if test ! -e "$PKG"; then - echo "${PKG} does not exist" - exit 1 fi - if grep "Architecture: all" $PKG >/dev/null; then - USE_ARCHS=i386 - else - USE_ARCHS=$ARCHS - fi -fi - -echo "Product: $PRODUCT" -echo "Ubuntu distros: $UBUNTU_DIST" -echo "Debian distros: $DEBIAN_DIST" -echo "Centos distros: $CENTOS_DIST" -if $debian; then - if test "${SUDO_USER}"; then - echo "Running as sudo." - echo "Tip: You can avoid it by adding the following in /etc/sudoers" - echo "${SUDO_USER} ALL=NOPASSWD: ${ID_DEB_BUILD}/id-pbuild-root.sh" - HOME_EXPORT=/home/${SUDO_USER} - else - sudo -k - HOME_EXPORT=$HOME - fi - if test ! -f ${HOME_EXPORT}/.pbuilderrc; then - echo "${HOME_EXPORT}/.pbuilderrc missing" - echo "You may need to run: ln -s ~/proj/git-tools/id-deb-build/pbuilderrc ~/.pbuilderrc" - exit 1 + if $debian; then + cd deb-src + if test -n "${UBUNTU_DIST}"; then + for dist in ${UBUNTU_DIST}; do + ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/ubuntu/${dist}" + if ! scp ${dist}-*/* ${UPLOAD_URI}/ubuntu/${dist}; then + echo "Upload failed for $dist" + exit 1 + fi + done + fi + if test -n "${DEBIAN_DIST}"; then + for dist in ${DEBIAN_DIST}; do + ssh ${UPLOAD_HOST} "mkdir -p ${UPLOAD_PATH}/${PRODUCT}/debian/${dist}" + if ! scp ${dist}-*/* ${UPLOAD_URI}/debian/${dist}; then + echo "Upload failed for $dist" + exit 1 + fi + done + fi + if ! ssh ${UPLOAD_HOST} "sudo -n /home/indexdata/proj/git-tools/update-archive/update-archive.sh --ubuntu=\"${UBUNTU_DIST}\" --debian=\"${DEBIAN_DIST}\""; then + echo "update-archive.sh failed" + exit 1 + fi fi + echo "Upload successful - we hope" + exit 0 fi -if $upload; then +if $centos; then + SPEC=${PRODUCT}.spec + cp ${TAR} ~/rpmbuild/SOURCES + cat ${SPEC}|sed "s/%define idmetaversion.*/%define idmetaversion ${VERSION}/" >~/rpmbuild/SPECS/${SPEC} + sudo lxc-attach -n mockbuild -- rpmbuild -bs ~/rpmbuild/SPECS/${SPEC} for dist in ${CENTOS_DIST}; do - arch=amd64 - prodver=${PRODUCT}-${VERSION} - if ! scp ${ID_DEB_BUILD}/../id-rpm-build/upload-rpms.sh ${dist}:rpmbuild/SOURCES/${prodver}/; then - echo "Copy of upload-rpms.sh to $dist failed" - exit 1 - fi - if ssh $dist "cd rpmbuild/SOURCES/${prodver} && chmod +x upload-rpms.sh && ./upload-rpms.sh ${PRODUCT}.spec"; then - : + case $dist in + centos5) + r=id-epel-5-x86_64 ;; + centos6) + r=id-epel-6-x86_64 ;; + centos7) + r=id-epel-7-x86_64 ;; + *) + r=$dist ;; + esac + echo -n "$r" + mkdir -p ~/rpmbuild/$r + if sudo lxc-attach -n mockbuild -- mock -q --resultdir=~/rpmbuild/$r -r $r ~/rpmbuild/SRPMS/${PRODUCT}-${VERSION}*src.rpm; then + echo " done" else - echo "Upload failed for $dist" + echo " failed. Inspect ~/rpmbuild/$r/build.log" exit 1 fi done - for dist in ${UBUNTU_DIST}; do - ssh ftp.indexdata.dk "mkdir -p /home/ftp/pub/${PRODUCT}/ubuntu/${dist}" - if ! scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist}; then - echo "Upload failed for $dist" - exit 1 - fi - done - for dist in ${DEBIAN_DIST}; do - ssh ftp.indexdata.dk "mkdir -p /home/ftp/pub/${PRODUCT}/debian/${dist}" - if ! scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/debian/${dist}; then - echo "Upload failed for $dist" - exit 1 - fi - done - if test "${CENTOS_DIST}"; then - if ! ssh ftp.indexdata.dk "sudo -n /home/indexdata/proj/git-tools/update-archive/update-yum-archive.sh"; then - echo "update-yum-archive.sh failed" - exit 1 - fi - fi - if test "${UBUNTU_DIST}" -o "${DEBIAN_DIST}"; then - if ! ssh ftp.indexdata.dk "sudo -n /home/indexdata/proj/git-tools/update-archive/update-archive.sh --ubuntu=\"${UBUNTU_DIST}\" --debian=\"${DEBIAN_DIST}\""; then - echo "update-archive.sh failed" - exit 1 - fi - fi - echo "Upload successful - we hope" - exit 0 fi - -rm -f *.log - -# copy tars to centos build hosts -for dist in ${CENTOS_DIST}; do - arch=amd64 - prodver=${PRODUCT}-${VERSION} - tarname=${prodver}.tar.gz - if test ! -f ../${tarname}; then - echo "$tarname: missing" +if $debian; then + sudo rm -fr deb-src + MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh + if test ! -x $MKDEBSRC; then + echo "$MKDEBSRC not found" exit 1 fi - - if ssh $dist "test -f .rpmmacros && test -d rpmbuild/SOURCES && test -d rpmbuild/RPMS && test -d rpmbuild/SRPMS"; then - : - else - echo "Host $dist does not seem to be prepared with rpmbuild directories" - exit 1 + if ! ${ID_DEB_BUILD}/id-mk-deb-changelog.sh; then + echo "id-mk-deb-changelog.sh failed" fi - - if scp ../${tarname} $dist:rpmbuild/SOURCES/ ; then - : - else - echo "Could not copy $tarname to $dist" + if ! ${MKDEBSRC}; then + echo "id-mk-deb-src.sh failed" + fi + cd deb-src + for f in *.dsc; do + if test -f "$f"; then + DSC=$f + fi + done + if test -z "$DSC"; then + echo "${DSC}does not exist" exit 1 fi - if ssh $dist "cd rpmbuild/SOURCES && rm -fr $prodver && tar zxf $tarname && cd ${prodver} && rpmbuild -ba ${PRODUCT}.spec" >${dist}-${arch}.log 2>&1; then - : + if grep "Architecture: all" $DSC >/dev/null; then + USE_ARCHS=i386 else - echo "FAILED: See ${dist}-${arch}.log" - exit 1 + USE_ARCHS=$ARCHS fi -done - -# call our privileged wrapper to clean the directories, no --dsc option -for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do - for arch in ${USE_ARCHS}; do - sudo -n $PBUILDROOT --home=${HOME_EXPORT} --dist=$dist --arch=$arch - if test $? -ne 0; then - echo "FAILED" - echo "Run id-pbuild.sh using sudo or add yourself to /etc/sudoers:" - echo "${USER} ALL=NOPASSWD: ${ID_DEB_BUILD}/id-pbuild-root.sh" - exit 1 - fi + rm -f ~/.pbuilderrc + i=0 + cat ${ID_DEB_BUILD}/pbuilderrc > ~/.pbuilderrc + for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do + for arch in ${USE_ARCHS}; do + sudo ${ID_DEB_BUILD}/id-pbuild-root.sh --update=$update --dsc=$DSC --arch=$arch --dist=$dist & + i=`expr $i + 1` + if test $i -ge $concurrency; then + i=0 + wait + if ! test -f ${dist}-${arch}/*.dsc; then + echo "FAILED: No .dsc file for ${dist}-${arch}" + exit 1 + fi + fi + done done -done - -# call our privileged wrapper to do the real work, with --dsc option -i=0 -date -for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do - for arch in ${USE_ARCHS}; do - sudo -n $PBUILDROOT --home=${HOME_EXPORT} \ - --dist=$dist --arch=$arch --dsc=$PKG >${dist}-${arch}.log 2>&1 & - i=`expr $i + 1` - if test $i -eq $concurrency; then - i=0 - wait - if test -f ${dist}-${arch}/*.dsc; then - : - else + wait + for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do + for arch in ${USE_ARCHS}; do + if ! test -f ${dist}-${arch}/*.dsc; then echo "FAILED: No .dsc file for ${dist}-${arch}" exit 1 fi - fi + done done -done -wait -for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do - for arch in ${USE_ARCHS}; do - if test -f ${dist}-${arch}/*.dsc; then - : - else - echo "FAILED: No .dsc file for ${dist}-${arch}" - exit 1 - fi - done -done +fi -date -echo "Done" # Local Variables: # mode:shell-script -# sh-indentation: 2 +# sh-indentation: 4 # sh-basic-offset: 4 # End: + diff --git a/id-deb-build/pbuilderrc b/id-deb-build/pbuilderrc index 25e2150..0772d4d 100644 --- a/id-deb-build/pbuilderrc +++ b/id-deb-build/pbuilderrc @@ -3,8 +3,8 @@ # https://wiki.ubuntu.com/PbuilderHowto #DIST=`dpkg-parsechangelog | awk '/^Distribution: / {print $2}'` -: ${DIST:=$(lsb_release --short --codename)} -: ${ARCH:=$(dpkg --print-architecture)} +# : ${DIST:=$(lsb_release --short --codename)} +# : ${ARCH:=$(dpkg --print-architecture)} NAME="$DIST-$ARCH" DISTRIBUTION="$DIST" # We avoid keyring in assignment below. bug 4122 @@ -23,7 +23,7 @@ USENETWORK=yes case "$DIST" in vivid|utopic|trusty|saucy|raring|quantal|precise|oneiric|natty|maverick|lucid|karmic) # ubuntu specific # MIRRORSITE="http://ftp.df.lth.se/ubuntu/" - MIRRORSITE="http://mirrors.dotsrc.org/ubuntu/" + MIRRORSITE="http://mirror.one.com/ubuntu/" # MIRRORSITE="http://mirrors.kernel.org/ubuntu/" COMPONENTS="main restricted universe multiverse" OTHERMIRROR="deb http://ftp.indexdata.dk/ubuntu $DIST main" diff --git a/id-release b/id-release index fd71ce8..22035f8 100755 --- a/id-release +++ b/id-release @@ -1,10 +1,11 @@ #!/bin/sh -# Copyright (c) 2011 IndexData ApS. http://indexdata.com +# Copyright (c) 2011-2015 IndexData ApS. http://indexdata.com # Author: Wolfram Schneider # # id-release - a helper script to build a release & packaging for debian + redhat # # see http://twiki.indexdata.dk/cgi-bin/twiki/view/ID/IDSoftwareRelease +# https://twiki.indexdata.com/twiki/bin/view/ID/AdamsReleaseProcedure # die early set -e @@ -15,17 +16,38 @@ usage () { exit 1 } +branch_check () { + if ! git branch | egrep -q '^\* master$'; then + ( echo ">>> Warning: you are not running on the master branch <<<" + git branch; echo ) 1>&2 + fi +} + ###################################################################### +branch_check + case $1 in [0-9]* ) version=$1 ;; * ) usage ;; esac -echo "Did you updated the news log file?" + + +cat < mvn-versions.log fi if $perl; then - echo "check perl version numbers" - find . -name '*.pm' -print0 | xargs -0 egrep -H '\$VERSION.*=.*[0-9]' | egrep -v '^\./deb-src/' + echo "# check perl version numbers" + find . -name '*.pm' -print0 | xargs -0 egrep -H '\$VERSION.*=.*[0-9]' | + egrep -v '^\./deb-src/' | perl -npe 's,^,# ,' fi # update debian version file @@ -72,16 +95,12 @@ perl -i.bak -npe "\$. == 1 && s,\(.*?\),($version)," debian/changelog perl -i.bak -npe "s,^Version: \d+.*,Version: $version," $spec - ###################################################################### -echo "" echo "# Please commit the version updates now" echo "git commit -a -m'new release v$version'" echo "" -echo "# Please run now" -echo "git push" +echo "# Please tag now (we will push later to origin)" echo "git tag v$version" -echo "git push origin tag v$version" if $java; then echo "mvn versions:set -DnewVersion=$version-SNAPSHOT" @@ -89,32 +108,15 @@ fi ###################################################################### echo "" -echo "# On RedHat or centos, please run the commands" -echo "sudo date # ask for password early" -echo "git pull" -echo "\$HOME/proj/git-tools/id-deb-build/mkdist.sh" -echo "sudo cp $package-$version.tar.gz /usr/src/redhat/SOURCES/" -echo "sudo rpmbuild -ba $spec" -echo "# if successfully, scp the package to ftp.indexdata.dk (kebab)" -echo "\$HOME/proj/git-tools/id-rpm-build/upload-rpms.sh $spec" -echo "" -echo "# on kebab run: sudo su" -echo "# cd $HOME/proj/git-tools/update-archive && ./update-yum-archive.sh" - - -###################################################################### -echo "" -echo "# On debian or ubuntu, please run the commands" -echo "sudo rm -rf deb-src" -echo "git pull" +echo "# On mochi, please run the commands" echo "\$HOME/proj/git-tools/id-deb-build/mkdist.sh" -echo "\$HOME/proj/git-tools/id-deb-build/id-mk-deb-src.sh" -echo "sudo \$HOME/proj/git-tools/id-deb-build/id-pbuild.sh" -echo "# if successfully, scp the package to ftp.indexdata.dk (kebab)" +echo "\$HOME/proj/git-tools/id-deb-build/id-pbuild.sh" echo "\$HOME/proj/git-tools/id-deb-build/id-pbuild.sh --upload" echo "" -echo "# on kebab run: sudo su" -echo "# cd $HOME/proj/git-tools/update-archive && ./update-archive.sh" -echo "" +echo "# if successfully, don't forget to push to origin" +echo "git push origin master" +echo "git push origin tag v$version" + +# EOF diff --git a/id-rpm-build/id-setup-rpmbuild.sh b/id-rpm-build/id-setup-rpmbuild.sh deleted file mode 100755 index 0cba257..0000000 --- a/id-rpm-build/id-setup-rpmbuild.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# Thie script will create an .rpmmacros file that will allow rpmbuild -# as non-root. Results will be put in in rpmbuild of your home directory -cd $HOME -if test -f .rpmmacros; then - echo ".rpmmacros already exist" -else - echo "creating .rpmmacros" - echo "%_topdir $HOME/rpmbuild" >.rpmmacros -fi -if test ! -d rpmbuild; then - mkdir -p rpmbuild/BUILD - mkdir -p rpmbuild/RPMS/noarch - mkdir -p rpmbuild/RPMS/x86_64 - mkdir -p rpmbuild/SOURCES - mkdir -p rpmbuild/SPECS - mkdir -p rpmbuild/SRPMS -fi diff --git a/id-rpm-build/upload-rpms.sh b/id-rpm-build/upload-rpms.sh deleted file mode 100755 index 2585586..0000000 --- a/id-rpm-build/upload-rpms.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -PWD=`pwd` -UPLOAD_PATH=${UPLOAD_PATH:=/home/ftp/pub} -UPLOAD_HOST=${UPLOAD_HOST:=ftp.indexdata.dk} -specfile=$1 -if test ! -f "${specfile}"; then - echo "Missing .spec file argument." - exit 1 -fi -if test ! -x /bin/rpm; then - echo "$0: /bin/rpm missing. Install rpm" - exit 1 -fi -if test ! -f /etc/redhat-release; then - echo "/etc/redhat-release missing" - exit 1 -fi -if test -z "$DISTRO"; then - if grep 'release 6' /etc/redhat-release >/dev/null; then - DISTRO="centos/6" - else - DISTRO="centos/5.5" - fi -fi -topdir=`rpm --eval "%{_topdir}"` -BUILD_DIR=${BUILD_DIR:=${topdir}} -pkg_names=`rpm -q --specfile ${specfile} --queryformat "%{NAME}-%{VERSION}-%{RELEASE}\n"` -pkg_short=`rpm -q --specfile ${specfile} --queryformat "%{NAME};" | cut -d ";" -f1` - -UPLOAD_DIR=${UPLOAD_DIR:=${pkg_short}} -UPLOAD_URI=${UPLOAD_HOST}:${UPLOAD_PATH}/${UPLOAD_DIR} -echo "Uploading to ${UPLOAD_URI}..." -inc_src=true -if test ! -d ${BUILD_DIR}/SRPMS; then - echo "No SRPMS dir under ${BUILD_DIR}" - inc_src=false -fi -inc_bin=true -if test ! -d ${BUILD_DIR}/RPMS; then - echo "No RPMS dir under ${BUILD_DIR}" - inc_bin=false -fi - -for pkg in ${pkg_names}; do - copy=false - if $inc_src; then - if test -f ${BUILD_DIR}/SRPMS/${pkg}.src.rpm; then - scp ${BUILD_DIR}/SRPMS/${pkg}.src.rpm ${UPLOAD_URI}/redhat/${DISTRO}/SRPMS/ - copy=true - fi - fi - if $inc_bin; then - for dir in ${BUILD_DIR}/RPMS/*; do - arch=`basename ${dir}` - if test -f ${dir}/${pkg}.${arch}.rpm; then - copy=true - scp ${dir}/${pkg}.${arch}.rpm ${UPLOAD_URI}/redhat/${DISTRO}/RPMS/${arch}/ - fi - done - if ! $copy; then - echo "FAILED: No RPM copied for: ${pkg}" - exit 1 - fi - fi -done diff --git a/update-archive/update-yum-archive.sh b/update-archive/update-yum-archive.sh index 6297ce5..34ab5dc 100755 --- a/update-archive/update-yum-archive.sh +++ b/update-archive/update-yum-archive.sh @@ -31,7 +31,7 @@ signage=8000 confdir=`pwd` architectures="i386 x86_64" dirs_to_upd="" -for vdist in centos/5.5 rhel/5.5 centos/6; do +for vdist in centos/5.5 rhel/5.5 centos/6 centos/7; do dist=`basename $vdist` vendor=`dirname $vdist` ftpdir=/home/ftp/pub/yum/$vendor/$dist