source: branches/stable/tools/svn2build @ 553

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

Build process in 3 steps:

svn2build creates tar files from SVN (works mostly)
build2pkg creates packages from tar files (works mostly)
build2qemu (has to be created from mkqemu) will create packages for all supported virtuel machines

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