source: branches/stable/tools/svn2build @ 651

Last change on this file since 651 was 651, checked in by bcornec, 13 years ago

Lots of bug fixes on delivery process
Addition of mkannounce to generate announces of new versions automatically

  • Property svn:executable set to *
File size: 3.7 KB
Line 
1#!/bin/bash
2#
3# Creates build environment and files for packages creation from SVN repository
4#
5# $Id$
6#
7
8dname=`dirname $0`
9prem=`echo $dname |cut -c1`
10if [ ${prem} == "/" ]; then
11        export TOOLHOME=$dname
12else
13        export TOOLHOME=${PWD}/$dname
14fi
15
16cd $TOOLHOME
17. ./common-env
18. ./svn-env
19
20DEST=${TOPDIR}/${VER}-$TAG
21mkdir -p $DEST
22
23if [ "$1" = "" ]; then
24        c="mondo-doc mindi mondo"
25else
26    if [ "$1" = "all" ]; then
27            c="mindi-kernel mondo-doc mindi mondo"
28    else
29        c=$1
30    fi
31fi
32
33# Make it safe for SVN commands
34cd ${BASE}/svn
35
36for p in $c; do
37    v=`cat ${SVNBRANCH}/$p/VERSION`
38    echo "Management of $p $v-$REVISION"
39    dest="$p-$v-$TAG"
40    rm -fr $dest
41    svn export ${SVNBRANCH}/$p $dest
42    echo "$REVISION" > $dest/REVISION
43    echo "Generating SVN log file ..."
44    svn log -v ${SVNBRANCH}/$p > $dest/svn.log
45
46    for d in `cat ${TOOLHOME}/DISTROS`; do
47        export ddir=`echo $d | cut -d_ -f1`
48        export dver=`echo $d | cut -d_ -f2`
49        echo "Generating build files for $ddir ($dver)"
50        . $TOOLHOME/distro-env
51
52        # Create conf file dir
53        mkdir -p ${BUILDDIR}
54
55        ddd=`LANG=C ; date '+%Y-%m-%d'`
56        cat > $TMP/mondorescue.mc << EOF
57define(\`TTT', ${TAG})dnl
58define(\`RRR', ${TAG}${suf})dnl
59define(\`VVV', ${v})dnl
60define(\`DDD', ${ddd})dnl
61EOF
62
63        mkdir -p $dest/distributions/$ddir $dest/distributions/${ddir}-$dver
64        if [ "$dtype" = "rpm" ]; then
65            if [ -f $dest/distributions/$ddir/spec.m4 ]; then
66                inc=$dest/distributions/$ddir/spec.m4
67            elif [ -f $dest/distributions/$dfam/spec.m4 ]; then
68                inc=$dest/distributions/$dfam/spec.m4
69            else
70                echo "Unable to build the RPM specfile for this distro. Please report to authors"
71                exit -1
72            fi
73            echo "Using $inc customization to build SPEC file"
74            m4 $TMP/mondorescue.mc $inc $dest/distributions/rpm/$p.spec > $dest/distributions/${ddir}-$dver/$p.spec
75
76            $TOOLHOME/mkchangelog.pl $dtype $p $TMP/$p.spec
77            if [ $? -ne 0 ]; then
78                echo "Unable to create changelog for ${ddir}-$dver/$p.spec"
79                exit -1
80            fi
81            cat $TMP/$p.spec >> $dest/distributions/${ddir}-$dver/$p.spec
82            rm -f $TMP/$p.spec
83        elif [ "$dtype" = "ebuild" ]; then
84            m4 $TMP/mondorescue.mc $dest/distributions/$dfam/$p.ebuild > $dest/distributions/${ddir}-$dver/$p-$v-r$TAG.ebuild
85        elif [ "$dtype" = "deb" ]; then
86            # To be developped
87            m4 $TMP/mondorescue.mc $dest/distributions/$dfam/$p > /dev/null
88        else
89            echo "Unknown Build"
90        fi
91    done
92
93    if [ _"`echo $p | grep mondo-doc`" != _"" ]; then
94        cd $dest
95        for f in mondorescue-howto.sgml *8; do
96            m4 $TMP/mondorescue.mc $f > ${f}.new
97            mv ${f}.new $f
98        done
99        make -f Makefile.howto
100        if [ $? != 0 ]; then
101            exit -1
102        fi
103        make -f Makefile.man
104        if [ $? != 0 ]; then
105            exit -1
106        fi
107        cd ..
108    fi
109
110    if [ _"`echo $p | grep -v kernel | grep mindi`" != _"" ]; then
111        v1=`cat ${SVNBRANCH}/mondo-doc/VERSION`
112        if [ ! -d mondo-doc-$v1-$TAG ]; then
113            echo "mondo-doc should be created before $p"
114            exit -1
115        fi
116        (cd mondo-doc-$v1-$TAG ; make -f Makefile.man install-$p INSTALLDIR=../$dest)
117        rm -f $dest/rootfs/sbin/parted2fdisk-ia64
118    fi
119    if [ "`echo $p | grep -v doc | grep  mondo`" != "" ]; then
120        v1=`cat ${SVNBRANCH}/mondo-doc/VERSION`
121        if [ ! -d mondo-doc-$v1-$TAG ]; then
122            echo "mondo-doc should be created before $p"
123            exit -1
124        fi
125        (cd mondo-doc-$v1-$TAG ; make -f Makefile.howto install INSTALLDIR=../$dest/docs/en ; make -f Makefile.man install-$p INSTALLDIR=../$dest/docs/man)
126        (cd $dest ; echo "Bootstraping mondo ... " ; ./bootstrap)
127    fi
128
129    # Finally creates the tar files
130    echo "Creating $p tar files"
131    tar cfhz ${DEST}/$p-$v-$TAG.tar.gz $dest
132    #gzip -cd ${DEST}/$p-$v-$TAG.tar.gz | bzip2 -c3 > ${DEST}/$p-$v-$TAG.tar.bz2
133    #tar cfhj ${DEST}/$p-$v-$TAG.tar.bz2 $dest
134done
135
136rm -f $TMP/mondorescue.mc
137
138echo "Version delivered :"
139echo "-------------------"
140echo "${VER}-$TAG"
141echo "-------------------"
142echo "${VER}-$TAG" > ${TOPDIR}/LAST
143exit 0
Note: See TracBrowser for help on using the repository browser.