source: MondoRescue/branches/stable/tools/build2pkg@ 659

Last change on this file since 659 was 659, checked in by bcornec, 18 years ago

changelog are now generated from mindi's and mondo's main ChangeLog files
new tool to create automatically announces for new version-tag
news.shtml and latest-news.html are now generated from a DB of announce (SQLite)
announce DB added (SQLite v3)
Build process improved for Debian

  • Property svn:executable set to *
File size: 3.0 KB
Line 
1#!/bin/bash
2#
3# Creates packages from build repository
4#
5# $Id$
6#
7# Syntax: build2pkg [version-tag [pkg list]]
8#
9
10umask 022
11dname=`dirname $0`
12prem=`echo $dname |cut -c1`
13if [ ${prem} == "/" ]; then
14 export TOOLHOME=$dname
15else
16 export TOOLHOME=${PWD}/$dname
17fi
18
19. $TOOLHOME/common-env
20. $TOOLHOME/distro-env
21
22# We need to get $VER and $TAG
23if [ "$1" = "" ]; then
24 LAST=`cat ${TOPDIR}/LAST`
25else
26 LAST=$1
27 shift
28fi
29VER=`echo $LAST | cut -d- -f1`
30TAG=`echo $LAST | cut -d- -f2`
31echo "Working on ${VER}-$TAG"
32
33if [ "$1" = "" ]; then
34 c="mondo-doc mindi mondo"
35else
36 if [ "$1" = "all" ]; then
37 c="mindi-kernel mondo-doc mindi mondo"
38 else
39 c=$1
40 fi
41fi
42
43status=0
44
45#
46# Define on which distro we are to generate the right packages
47#
48
49export pkg=""
50echo "Working under $TOPBUILDDIR"
51cd $TOPBUILDDIR
52
53for p in $c; do
54 # s= stable; t = trunk; 1-9 = official version
55 src=${TOPDIR}/${VER}-$TAG/$p-[1-9st]*.tar.gz
56 pv=`basename $src .tar.gz`
57
58 if [ _"$dtype" = _"rpm" ]; then
59 if [ _"$p" = _"mondo-doc" ]; then
60 ar="noarch"
61 else
62 ar=$ARCH
63 fi
64 pkg1="${TOPBUILDDIR}/RPMS/${ar}/$pv${suf}.${ar}.rpm"
65 #rm -f $pkg1
66
67 pkg="$pkg $pkg1"
68
69 log=$TMP/$p-rpm.log
70
71 if [ "$dfam" = "mandriva" ]; then
72 echo "Generating bzip2 files (mandriva)"
73 gzip -cd $src | bzip2 -c3 > SOURCES/$pv.tar.bz2
74 else
75 ln -sf $src SOURCES/
76 fi
77 echo "Generating $p RPMS"
78 cd SPECS
79 tar xfz $src $pv/distributions/${ddir}-$dver/$p.spec
80 mv $pv/distributions/${ddir}-$dver/$p.spec .
81 rm -rf $pv
82
83 rpmbuild -ba $p.spec 2> $log 1> $log
84 if [ $? != 0 ]; then
85 cat $log
86 status=-1
87 fi
88 egrep '^Wrote:' $log
89 rm -rf ${TOPBUILDDIR}/BUILD/*
90 cd ..
91 elif [ _"$dtype" = _"ebuild" ]; then
92 log=$TMP/$p-gentoo.log
93 ln -sf $src .
94 tar xfz $src $pv/distributions/${ddir}-$dver/$p-${VER}-r$TAG.ebuild
95 if [ _"`grep $TOPBUILDDIR/portage /etc/make.conf`" = _"" ]; then
96 echo "Adding $TOPBUILDDIR/portage to /etc/make.conf"
97 echo "PORTDIR_OVERLAY=\"$TOPBUILDDIR/portage\"" >> /etc/make.conf
98 fi
99
100 mkdir -p ${TOPBUILDDIR}/portage/sys-apps/$p
101 mv $pv/distributions/${ddir}-$dver/$p-${VER}-r$TAG.ebuild ${TOPBUILDDIR}/portage/sys-apps/$p
102 rm -rf $pv
103
104 cd ${TOPBUILDDIR}/portage/sys-apps/$p
105 ebuild $p-${VER}-r$TAG.ebuild digest 2> $log 1> $log
106 if [ $? != 0 ]; then
107 cat $log
108 status=-1
109 fi
110 ebuild $p-${VER}-r$TAG.ebuild unpack 2>> $log 1>> $log
111 if [ $? != 0 ]; then
112 cat $log
113 status=-1
114 fi
115 ebuild $p-${VER}-r$TAG.ebuild compile 2>> $log 1>> $log
116 if [ $? != 0 ]; then
117 cat $log
118 status=-1
119 fi
120 #ebuild $p-${VER}-r$TAG.ebuild install 2>> $log 1>> $log
121 if [ $? != 0 ]; then
122 cat $log
123 status=-1
124 fi
125 elif [ _"$dtype" = _"deb" ]; then
126 log=$TMP/$p-deb.log
127 cd $TOPBUILDDIR
128 tar xfz $src
129 cd ${pv}*
130 # point to the right debian conf
131 ln -s distributions/${ddir}-$dver debian
132 dpkg-buildpackage -us -uc -rfakeroot
133 # Et voila !
134 else
135 echo "Unknown"
136 fi
137done
138echo "Packages handled : $pkg"
139
140rm -rf $TMP
141
142if [ $status = 0 ]; then
143 if [ _"$dtype" = _"rpm" ]; then
144 echo "Installing RPMS as root"
145 su - -c "$opt rpm -Uvh --force $pkg"
146 fi
147fi
Note: See TracBrowser for help on using the repository browser.