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

Last change on this file since 553 was 553, checked in by bcornec, 18 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.