-
Notifications
You must be signed in to change notification settings - Fork 14
/
build-debs-all
executable file
·100 lines (89 loc) · 2.26 KB
/
build-debs-all
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/bin/bash
###########
#
# This script call make<package>deb and create the deb packages
# for xCAT
#
# Author: Arif Ali <[email protected]>
#
# Original Work taken from the xcat-core repo done by Leonardo
#
# Input:
#
# $1 is the xCAT_genesis_build directory path
# $2 is the xCAT_genesis_base rpm path
#
# the build target path is ../../debs, this path can not changed, because the build-ubuntu script will use this fix path
#
############
function pingusage()
{
printf "Usage: [BUILDPKGS=\"pkgname1 pkgname2 ...\"] %s <xCAT_genesis_build directory path> <xCAT_genesis_base rpm path>] \n" $(basename $0) >&2
}
function makedeb {
SRC_ROOT=$1
#
# Make DEBs
#
# build perl-xCAT - deps are libsoap-lite-perl, libdigest-sha1-perl, libdbi-perl
#
find $SRC_ROOT -maxdepth 2 -name make_deb.sh -type f | while read DEBIAN_SCRIPT
do
DIR=`echo ${DEBIAN_SCRIPT} | sed -e 's/[/]make_deb.sh$//'`
cd ${DIR}
chmod a+x make_deb.sh
./make_deb.sh
cd -
RC=$?
if [ ${RC} -gt 0 ]
then
echo "Warning: ${DIR} failed exit code ${RC}"
fi
done
}
#check parameters
if [ $# -lt 2 ];then
pingusage
exit 2
fi
old_pwd=`pwd`
curdir=`dirname $0`
#did some prepare for the xcat-genesis
echo "prepare building gensis_base_amd64 as a special case"
#copy the debian_dir and rpm for xcat-genesia-base to the tem directory
mkdir -p $curdir/genesis_tmp/genesis-base-amd64
cp -rL ${1}/debian $curdir/genesis_tmp/genesis-base-amd64
cp ${2} $curdir/genesis_tmp/genesis-base-amd64
cd $curdir
cat << __EOF__ > genesis_tmp/make_deb.sh
cd genesis-base-amd64/
rpm2cpio *.rpm | cpio -id
rm -f *.rpm
dpkg-buildpackage -uc -us
cd -
__EOF__
#update to the loatest code
svn --quiet update
packages=""
if [ $BUILDPKGS ];then
packages=$BUILDPKGS
else
packages=`find . -maxdepth 2 -name make_deb.sh | cut -d/ -f 2 | xargs`
fi
#fix 'all warnings being treated as errors'
export NO_WERROR=1
# build all debian packages
#for file in `echo $packages`
for file in `echo $packages`
do
makedeb $file $PKG_LOCATION "$BUILD_STRING" $VERSION
done
if [ ! -d ../../debs ]; then
mkdir -p ../../debs/
fi
for file in `echo $packages`
do
mv $file/*.deb ../../debs/
done
rm -rf genesis_tmp
exit 0