view package @ 64:2c6040b6e8f8

packaging for Fedora (#434727)
author Carl Byington <carl@five-ten-sg.com>
date Tue, 26 Feb 2008 17:06:33 -0800
parents b4f025d95441
children
line wrap: on
line source

#!/bin/bash

find . -name '*~' | while read a; do rm -f "$a"; done

# setup environment
T=`grep AC_INIT configure.in | cut -d'(' -f2`
NAME=`echo $T | cut -d, -f1`
VER=`echo $T | cut -d, -f2`
BALL=$NAME-$VER.tar.gz
web=/home/httpd/html/510sg/$NAME
distlog=/tmp/distcheck
repo=/usr/hg-repository/$NAME
oldone=$web/packages/$BALL

if [ -f $oldone ]; then
    echo "$oldone already exists, did you update the version in configure.in?"
    exit 0
fi

# check for uncommitted changes
a=$(hg status)
if [ -n "$a" ]; then
    hg status
    echo "fix those first with 'hg commit'"
    exit 0
fi

# check for changesets pending push to global repository
hg outgoing $repo | grep 'no changes found' >/dev/null
if [ $? -ne 0 ]; then
    hg outgoing $repo
    echo "fix those first with 'hg push $repo'"
    exit 0
fi

# get a new clean copy from source control
orig=$(pwd)
pack=$orig/../$NAME-package
[ -d "$pack" ] && rm -rf "$pack"
mkdir "$pack"
cd "$pack"
hg clone $repo
cd $NAME

# build the package
mkdir -p $web
chown --recursive root:root *
make -f *cvs
./configure >/dev/null
(cd xml; make; make distclean)
cp -a html/*html $web
make distcheck >$distlog 2>&1

if [ $? -eq 0 ]; then
    if [ -f $BALL ]; then
        # expand locally to see the tarball
        rm -rf junk
        mkdir junk
        cd junk
            tar xfz ../$BALL
            cd $NAME-$VER
                ./configure >/dev/null
                make >/dev/null
            cd ..
        cd ..

        # build rpm on target
        target5=pmg2
        scp $BALL $target5:/tmp
        ssh $target5 "cd /tmp; rpmbuild -ta $BALL"

        # build rpm on target
        target4=host62
        scp $BALL $target4:/tmp
        ssh $target4 "cd /tmp; rpmbuild -ta $BALL"

        # add packages to the web site
        wp=$web/packages
        wp4=$wp/centos4
        wp5=$wp/centos5
        mkdir -p $wp4 $wp5
        rp=/usr/src/redhat
        mv -f $BALL $wp
        scp $target4:$rp/SRPMS/$NAME-$VER*rpm $wp
        scp $target4:$rp/RPMS/i386/$NAME-$VER*rpm $wp4
        scp $target5:$rp/RPMS/i386/$NAME-$VER*rpm $wp5
        (cd $web; chown --recursive web:web *; ls -alR)
        rpm -ql -p $wp4/$NAME-$VER*6.rpm
        rpm -ql -p $wp5/$NAME-$VER*6.rpm
    fi
else
    tail -10 $distlog
fi

# throw away the packaging directory
cd "$pack/.."
rm -rf $NAME-package
cd "$orig"