source: MondoRescue/branches/stable/tools/svn2build@ 651

Last change on this file since 651 was 651, checked in by bcornec, 18 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
RevLine 
[388]1#!/bin/bash
2#
[550]3# Creates build environment and files for packages creation from SVN repository
[388]4#
5# $Id$
6#
7
[549]8dname=`dirname $0`
9prem=`echo $dname |cut -c1`
10if [ ${prem} == "/" ]; then
11 export TOOLHOME=$dname
[388]12else
[549]13 export TOOLHOME=${PWD}/$dname
[388]14fi
15
[549]16cd $TOOLHOME
17. ./common-env
18. ./svn-env
[388]19
[553]20DEST=${TOPDIR}/${VER}-$TAG
21mkdir -p $DEST
[549]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
[553]33# Make it safe for SVN commands
[549]34cd ${BASE}/svn
35
[550]36for p in $c; do
37 v=`cat ${SVNBRANCH}/$p/VERSION`
38 echo "Management of $p $v-$REVISION"
[553]39 dest="$p-$v-$TAG"
40 rm -fr $dest
41 svn export ${SVNBRANCH}/$p $dest
42 echo "$REVISION" > $dest/REVISION
[550]43 echo "Generating SVN log file ..."
[553]44 svn log -v ${SVNBRANCH}/$p > $dest/svn.log
[550]45
46 for d in `cat ${TOOLHOME}/DISTROS`; do
[553]47 export ddir=`echo $d | cut -d_ -f1`
48 export dver=`echo $d | cut -d_ -f2`
[550]49 echo "Generating build files for $ddir ($dver)"
[553]50 . $TOOLHOME/distro-env
[550]51
52 # Create conf file dir
53 mkdir -p ${BUILDDIR}
54
[551]55 ddd=`LANG=C ; date '+%Y-%m-%d'`
[651]56 cat > $TMP/mondorescue.mc << EOF
[554]57define(\`TTT', ${TAG})dnl
[551]58define(\`RRR', ${TAG}${suf})dnl
59define(\`VVV', ${v})dnl
60define(\`DDD', ${ddd})dnl
61EOF
62
[596]63 mkdir -p $dest/distributions/$ddir $dest/distributions/${ddir}-$dver
[553]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
[550]69 else
70 echo "Unable to build the RPM specfile for this distro. Please report to authors"
[549]71 exit -1
72 fi
[550]73 echo "Using $inc customization to build SPEC file"
[651]74 m4 $TMP/mondorescue.mc $inc $dest/distributions/rpm/$p.spec > $dest/distributions/${ddir}-$dver/$p.spec
[550]75
[651]76 $TOOLHOME/mkchangelog.pl $dtype $p $TMP/$p.spec
[636]77 if [ $? -ne 0 ]; then
78 echo "Unable to create changelog for ${ddir}-$dver/$p.spec"
[549]79 exit -1
80 fi
[651]81 cat $TMP/$p.spec >> $dest/distributions/${ddir}-$dver/$p.spec
82 rm -f $TMP/$p.spec
[553]83 elif [ "$dtype" = "ebuild" ]; then
[651]84 m4 $TMP/mondorescue.mc $dest/distributions/$dfam/$p.ebuild > $dest/distributions/${ddir}-$dver/$p-$v-r$TAG.ebuild
[578]85 elif [ "$dtype" = "deb" ]; then
86 # To be developped
[651]87 m4 $TMP/mondorescue.mc $dest/distributions/$dfam/$p > /dev/null
[550]88 else
[551]89 echo "Unknown Build"
[549]90 fi
91 done
[550]92
93 if [ _"`echo $p | grep mondo-doc`" != _"" ]; then
[553]94 cd $dest
[550]95 for f in mondorescue-howto.sgml *8; do
[651]96 m4 $TMP/mondorescue.mc $f > ${f}.new
[550]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`
[578]112 if [ ! -d mondo-doc-$v1-$TAG ]; then
[550]113 echo "mondo-doc should be created before $p"
114 exit -1
115 fi
[578]116 (cd mondo-doc-$v1-$TAG ; make -f Makefile.man install-$p INSTALLDIR=../$dest)
[553]117 rm -f $dest/rootfs/sbin/parted2fdisk-ia64
[550]118 fi
119 if [ "`echo $p | grep -v doc | grep mondo`" != "" ]; then
120 v1=`cat ${SVNBRANCH}/mondo-doc/VERSION`
[578]121 if [ ! -d mondo-doc-$v1-$TAG ]; then
[550]122 echo "mondo-doc should be created before $p"
123 exit -1
124 fi
[578]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)
[553]126 (cd $dest ; echo "Bootstraping mondo ... " ; ./bootstrap)
[550]127 fi
128
129 # Finally creates the tar files
130 echo "Creating $p tar files"
[553]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
[549]134done
[550]135
[651]136rm -f $TMP/mondorescue.mc
[553]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.