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

Last change on this file since 721 was 721, checked in by Bruno Cornec, 18 years ago

TAG removed from source tar ball (was an error)
Debian build working for the first time. Needs probably more work but is encouraging

  • Property svn:executable set to *
File size: 3.9 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"
[721]39 dest="$p-$v"
[553]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"
74
[651]75 $TOOLHOME/mkchangelog.pl $dtype $p $TMP/$p.spec
[636]76 if [ $? -ne 0 ]; then
77 echo "Unable to create changelog for ${ddir}-$dver/$p.spec"
[549]78 exit -1
79 fi
[710]80 m4 $TMP/mondorescue.mc $inc $dest/distributions/rpm/$p.spec $TMP/$p.spec > $dest/distributions/${ddir}-$dver/$p.spec
81
[651]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
[659]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
[550]94 else
[551]95 echo "Unknown Build"
[549]96 fi
97 done
[550]98
99 if [ _"`echo $p | grep mondo-doc`" != _"" ]; then
[553]100 cd $dest
[550]101 for f in mondorescue-howto.sgml *8; do
[651]102 m4 $TMP/mondorescue.mc $f > ${f}.new
[550]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`
[721]118 if [ ! -d mondo-doc-$v1 ]; then
[550]119 echo "mondo-doc should be created before $p"
120 exit -1
121 fi
[721]122 (cd mondo-doc-$v1 ; make -f Makefile.man install-$p INSTALLDIR=../$dest)
[553]123 rm -f $dest/rootfs/sbin/parted2fdisk-ia64
[550]124 fi
125 if [ "`echo $p | grep -v doc | grep mondo`" != "" ]; then
126 v1=`cat ${SVNBRANCH}/mondo-doc/VERSION`
[721]127 if [ ! -d mondo-doc-$v1 ]; then
[550]128 echo "mondo-doc should be created before $p"
129 exit -1
130 fi
[721]131 (cd mondo-doc-$v1 ; make -f Makefile.howto install INSTALLDIR=../$dest/docs/en ; make -f Makefile.man install-$p INSTALLDIR=../$dest/docs/man)
[553]132 (cd $dest ; echo "Bootstraping mondo ... " ; ./bootstrap)
[550]133 fi
134
135 # Finally creates the tar files
136 echo "Creating $p tar files"
[553]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
[549]140done
[550]141
[659]142rm -rf $TMP
[553]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.