source: branches/stable/tools/svn2build @ 555

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

Add new tag variable in spec and corresponding TTT macro in m4 files for filename correct handling during build

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