123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #! /bin/sh
- # This script takes the compiled tarball, makes an RPM package and
- # a patch against the latest released version, then uploads
- # everything over ssh and removes old snapshots.
- # Run this script in the directory where mc was built.
- # TODO:
- # build tarball, select level of testing
- # (dist, distcheck, warning checks)
- # $1 - file to upload, $2 - shell mask to erase
- upload() {
- echo "Uploading $1 to $SITE"
- name="`basename $1`"
- scp "$1" "$SITE:$DIR/.in.$name"
- ssh $SITE "rm -f $DIR/$2; mv $DIR/.in.$name $DIR/$name"
- }
- set -e
- # Version to make patches against.
- # The source tree should be available in uncompressed form
- BASE_VERSION="4.6.1"
- # Version of the snapshot
- MCVERSION=`date "+%Y-%m-%d-%H" --utc`
- # Local directories
- MC_BASE_DIR="$HOME/src/mc-$BASE_VERSION"
- MC_CVS_DIR="$HOME/src/mc"
- MC_BUILD_DIR="$HOME/src/mc.snap"
- RPM_SRC_DIR="$MC_BUILD_DIR/rpm"
- # Location of the snapshot directory
- SITE="login.ibiblio.org"
- DIR="/public/ftp/pub/Linux/utils/file/managers/mc/snapshots"
- # DIR="/public/html/mc/snapshots"
- # Command for building RPM
- RPMBUILD=lsb-rpm
- cd "$MC_CVS_DIR"
- cvs up -dPA
- test -d "$MC_BUILD_DIR" && chmod -R u+rwx "$MC_BUILD_DIR"
- rm -rf "$MC_BUILD_DIR"
- cp -a "$MC_CVS_DIR" "$MC_BUILD_DIR"
- cd "$MC_BUILD_DIR"
- # Sanity check
- if ! test -f ./autogen.sh || ! test -f src/screen.c; then
- echo "Not in the MC CVS working directory"
- exit 1
- fi
- # Remove old tarballs and build the new one
- rm -f "mc*.tar.gz"
- cp -f configure.ac configure.ac.cvs
- sed "s/AM_INIT_AUTOMAKE([^)]*)/AM_INIT_AUTOMAKE(mc, $MCVERSION)/" \
- configure.ac.cvs >configure.ac
- ./autogen.sh
- make all
- make distcheck
- # Make sure that the new tarball exists
- MCTARBALL="mc-$MCVERSION.tar.gz"
- if test ! -f "$MCTARBALL"; then
- echo "No tarball found!!!"
- exit 1
- fi
- # Make an RPM package
- rm -rf $RPM_SRC_DIR
- mkdir "$RPM_SRC_DIR"
- mkdir "$RPM_SRC_DIR/BUILD"
- mkdir "$RPM_SRC_DIR/RPMS"
- mkdir "$RPM_SRC_DIR/RPMS/i386"
- mkdir "$RPM_SRC_DIR/SPECS"
- $RPMBUILD -tb --define="_topdir $RPM_SRC_DIR" \
- --define="_with_included_slang 1" "$MCTARBALL"
- MC_RPM_VERSION=`echo $MCVERSION | sed s/-//g`
- MC_RPM=$RPM_SRC_DIR/RPMS/i386/mc-$MC_RPM_VERSION-1.i386.rpm
- if test ! -f $MC_RPM; then
- echo "Failed to compile package!!!"
- exit 1
- fi
- # Make a patch against the latest released version
- MC_PATCH="mc-$BASE_VERSION-$MCVERSION.diff"
- MC_PATCH_BZ2="$MC_PATCH.bz2"
- if test ! -d $MC_BASE_DIR; then
- echo "Cannot find unpacked base version!!!"
- exit 1
- fi
- rm -f $MC_PATCH $MC_PATCH_BZ2
- rm -rf mc-$MCVERSION
- gzip -cd $MCTARBALL | tar xf -
- # GNU diff should return 0 or 1. 2 means failure or incomplete diff.
- diff -urN -x '*.gmo' -x pc $MC_BASE_DIR mc-$MCVERSION/ >$MC_PATCH || test $? = 1
- bzip2 $MC_PATCH
- upload "$MCTARBALL" "mc*.tar.gz"
- upload "$MC_RPM" "mc*.i386.rpm"
- upload "$MC_PATCH_BZ2" "mc*.diff.bz2"
- echo "Done"
|