source: branches/stable/tools/svn2build @ 659

Last change on this file since 659 was 659, checked in by bcornec, 14 years ago

changelog are now generated from mindi's and mondo's main ChangeLog? files
new tool to create automatically announces for new version-tag
news.shtml and latest-news.html are now generated from a DB of announce (SQLite)
announce DB added (SQLite v3)
Build process improved for Debian

  • Property svn:executable set to *
File size: 4.0 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            cp -a $dest/distributions/$ddir/* $dest/distributions/${ddir}-$dver
89            $TOOLHOME/mkchangelog.pl $dtype $p $dest/distributions/${ddir}-$dver/changelog
90            if [ $? -ne 0 ]; then
91                echo "Unable to create changelog for ${ddir}-$dver/changelog"
92                exit -1
93            fi
94        else
95            echo "Unknown Build"
96        fi
97    done
98
99    if [ _"`echo $p | grep mondo-doc`" != _"" ]; then
100        cd $dest
101        for f in mondorescue-howto.sgml *8; do
102            m4 $TMP/mondorescue.mc $f > ${f}.new
103            mv ${f}.new $f
104        done
105        make -f Makefile.howto
106        if [ $? != 0 ]; then
107            exit -1
108        fi
109        make -f Makefile.man
110        if [ $? != 0 ]; then
111            exit -1
112        fi
113        cd ..
114    fi
115
116    if [ _"`echo $p | grep -v kernel | grep mindi`" != _"" ]; then
117        v1=`cat ${SVNBRANCH}/mondo-doc/VERSION`
118        if [ ! -d mondo-doc-$v1-$TAG ]; then
119            echo "mondo-doc should be created before $p"
120            exit -1
121        fi
122        (cd mondo-doc-$v1-$TAG ; make -f Makefile.man install-$p INSTALLDIR=../$dest)
123        rm -f $dest/rootfs/sbin/parted2fdisk-ia64
124    fi
125    if [ "`echo $p | grep -v doc | grep  mondo`" != "" ]; then
126        v1=`cat ${SVNBRANCH}/mondo-doc/VERSION`
127        if [ ! -d mondo-doc-$v1-$TAG ]; then
128            echo "mondo-doc should be created before $p"
129            exit -1
130        fi
131        (cd mondo-doc-$v1-$TAG ; make -f Makefile.howto install INSTALLDIR=../$dest/docs/en ; make -f Makefile.man install-$p INSTALLDIR=../$dest/docs/man)
132        (cd $dest ; echo "Bootstraping mondo ... " ; ./bootstrap)
133    fi
134
135    # Finally creates the tar files
136    echo "Creating $p tar files"
137    tar cfhz ${DEST}/$p-$v-$TAG.tar.gz $dest
138    #gzip -cd ${DEST}/$p-$v-$TAG.tar.gz | bzip2 -c3 > ${DEST}/$p-$v-$TAG.tar.bz2
139    #tar cfhj ${DEST}/$p-$v-$TAG.tar.bz2 $dest
140done
141
142rm -rf $TMP
143
144echo "Version delivered :"
145echo "-------------------"
146echo "${VER}-$TAG"
147echo "-------------------"
148echo "${VER}-$TAG" > ${TOPDIR}/LAST
149exit 0
Note: See TracBrowser for help on using the repository browser.