source: branches/stable/tools/build2pkg @ 659

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