source: branches/stable/tools/svn2build @ 636

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

First attempt to automize changelog generation for packages from the std ChangeLogs? files from mindi/mondo

  • Property svn:executable set to *
File size: 3.9 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 $dest/distributions/${ddir}-$dver/$p.spec
77            if [ $? -ne 0 ]; then
78                echo "Unable to create changelog for ${ddir}-$dver/$p.spec"
79                exit -1
80            fi
81
82            ddate=`LANG=C ; date "+%a %b %d %Y"`
83            cat > $dest/distributions/${ddir}-$dver/$p.changelog.new << EOF
84* $ddate Bruno Cornec <bruno@mondorescue.org> VVV-RRR
85- Updated to VVV-r${REVISION}
86
87EOF
88        elif [ "$dtype" = "ebuild" ]; then
89            m4 /tmp/mondorescue.mc $dest/distributions/$dfam/$p.ebuild > $dest/distributions/${ddir}-$dver/$p-$v-r$TAG.ebuild
90        elif [ "$dtype" = "deb" ]; then
91            # To be developped
92            m4 /tmp/mondorescue.mc $dest/distributions/$dfam/$p > /dev/null
93        else
94            echo "Unknown Build"
95        fi
96    done
97
98    if [ _"`echo $p | grep mondo-doc`" != _"" ]; then
99        cd $dest
100        for f in mondorescue-howto.sgml *8; do
101            m4 /tmp/mondorescue.mc $f > ${f}.new
102            mv ${f}.new $f
103        done
104        make -f Makefile.howto
105        if [ $? != 0 ]; then
106            exit -1
107        fi
108        make -f Makefile.man
109        if [ $? != 0 ]; then
110            exit -1
111        fi
112        cd ..
113    fi
114
115    if [ _"`echo $p | grep -v kernel | grep mindi`" != _"" ]; then
116        v1=`cat ${SVNBRANCH}/mondo-doc/VERSION`
117        if [ ! -d mondo-doc-$v1-$TAG ]; then
118            echo "mondo-doc should be created before $p"
119            exit -1
120        fi
121        (cd mondo-doc-$v1-$TAG ; make -f Makefile.man install-$p INSTALLDIR=../$dest)
122        rm -f $dest/rootfs/sbin/parted2fdisk-ia64
123    fi
124    if [ "`echo $p | grep -v doc | grep  mondo`" != "" ]; then
125        v1=`cat ${SVNBRANCH}/mondo-doc/VERSION`
126        if [ ! -d mondo-doc-$v1-$TAG ]; then
127            echo "mondo-doc should be created before $p"
128            exit -1
129        fi
130        (cd mondo-doc-$v1-$TAG ; make -f Makefile.howto install INSTALLDIR=../$dest/docs/en ; make -f Makefile.man install-$p INSTALLDIR=../$dest/docs/man)
131        (cd $dest ; echo "Bootstraping mondo ... " ; ./bootstrap)
132    fi
133
134    # Finally creates the tar files
135    echo "Creating $p tar files"
136    tar cfhz ${DEST}/$p-$v-$TAG.tar.gz $dest
137    #gzip -cd ${DEST}/$p-$v-$TAG.tar.gz | bzip2 -c3 > ${DEST}/$p-$v-$TAG.tar.bz2
138    #tar cfhj ${DEST}/$p-$v-$TAG.tar.bz2 $dest
139done
140
141rm -f /tmp/mondorescue.mc
142
143echo "Version delivered :"
144echo "-------------------"
145echo "${VER}-$TAG"
146echo "-------------------"
147echo "${VER}-$TAG" > ${TOPDIR}/LAST
148exit 0
Note: See TracBrowser for help on using the repository browser.