source: branches/2.2.0/tools/build2pkg @ 887

Last change on this file since 887 was 887, checked in by bruno, 13 years ago

Some final improvements for build with Qemu (problem with tar and path with ../..)

  • 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
10(
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 mindi-busybox mondo"
35else
36    if [ "$1" = "all" ]; then
37        c="mindi-kernel mondo-doc mindi mindi-busybox 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    PVER=`echo $pv | sed "s|^$p-||" | cut -d- -f1`
58
59    if [  _"$dtype" = _"rpm" ]; then
60        if [ _"$p" = _"mondo-doc" ]; then
61            ar="noarch"
62        else
63            ar=$ARCH
64        fi
65
66        log=$MONDOTMP/$p-rpm.log
67
68        if [ "$dfam" = "mandriva" ] || [ "$dfam" = "suse" ]; then
69            echo "Using bzip2 files ($dfam)"
70            ln -sf ${TOPDIR}/${VER}-$TAG/$pv.tar.bz2 SOURCES/
71        else
72            echo "Using gzip files ($dfam)"
73            ln -sf $src SOURCES/
74        fi
75        echo "Generating $p RPMS"
76        cd SPECS
77        tar xfz $src $p-${PVER}/distributions/${ddir}-$dver/$p.spec
78        mv $p-${PVER}/distributions/${ddir}-$dver/$p.spec .
79        rm -rf $p-${PVER}
80
81        rpmbuild -ba $p.spec 2>&1 | tee $log
82        if [ $? != 0 ]; then 
83            status=-1
84        else
85            export pkg1="`egrep '^Wrote:' $log | grep -v debuginfo | cut -d: -f2`"
86            if [ -f /usr/bin/rpmlint ]; then
87                /usr/bin/rpmlint $pkg1
88            else
89                echo "No rpmlint found, please install it"
90            fi
91            export pkg="$pkg `ls $pkg1 | grep -v src.rpm`"
92        fi
93        rm -rf ${TOPBUILDDIR}/BUILD/*
94        cd ..
95    elif [  _"$dtype" = _"ebuild" ]; then
96        tar xfz $src $p-${PVER}/distributions/${ddir}-$dver/$p-${PVER}.ebuild
97        if [ _"`grep $TOPBUILDDIR/portage /etc/make.conf`" = _"" ]; then
98            echo "Adding $TOPBUILDDIR/portage to /etc/make.conf"
99            echo "PORTDIR_OVERLAY=\"$TOPBUILDDIR/portage\"" >> /etc/make.conf
100        fi
101
102        mkdir -p ${TOPBUILDDIR}/portage/sys-apps/$p
103        mv $p-${PVER}/distributions/${ddir}-$dver/$p-${PVER}.ebuild ${TOPBUILDDIR}/portage/sys-apps/$p/$p-${PVER}.ebuild
104        rm -rf $p-${PVER}
105
106        cd ${TOPBUILDDIR}/portage/sys-apps/$p
107        ebuild $p-${PVER}.ebuild digest
108        if [ $? != 0 ]; then 
109            status=-1
110        fi
111        ebuild $p-${PVER}.ebuild package
112        if [ $? != 0 ]; then 
113            status=-1
114        fi
115    elif [  _"$dtype" = _"deb" ]; then
116        cd $TOPBUILDDIR
117        tar xfz $src
118        cd ${p}-${PVER}
119        # point to the right debian conf
120        ln -s distributions/${ddir}-$dver debian
121        dpkg-buildpackage -us -uc -rfakeroot
122        # Et voila !
123    else
124        echo "Unknown"
125    fi
126done
127echo "Packages handled : $pkg"
128
129rm -rf $MONDOTMP
130
131if [ $status = 0 ]; then
132    if [  _"$dtype" = _"rpm" ]; then
133        echo "Installing RPMS as root"
134        su - -c "$opt rpm -Uvh --force $pkg"
135    fi
136fi
137) 2>&1 | tee /tmp/build2pkg.log
Note: See TracBrowser for help on using the repository browser.