source: MondoRescue/branches/2.2.0/tools/build2pkg@ 887

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