blob: ca0fea1d75f8c1dd666e39eba12b78fe2287d6ab (
plain)
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
#!/bin/bash
output_dir="$1"
installer_type="$2"
function checkout_commit() {
build_dir=/opt/kvmfornfv/
mkdir -p /tmp/kvmfornfv
SRC=/tmp/kvmfornfv
if [[ "$installer_type" == "apex" ]];then
source ${build_dir}/ci/apex.conf
else
source ${build_dir}/ci/compass.conf
fi
#Cloning into /tmp/kvmfornfv
cd $SRC
if [[ "$branch" == "master" ]] || [[ "$branch" == *"danube"* ]];then
echo "Cloning the repository of $branch given"
git clone -b $branch https://gerrit.opnfv.org/gerrit/kvmfornfv.git /tmp/kvmfornfv
git branch
echo "Commit-id is ${commit_id}"
git checkout -f ${commit_id}
if [ $? -ne 0 ];then
echo "Please check the commit-id provided in installer conf file"
exit 1
fi
fi
mkdir ${output_dir}
}
checkout_commit
kernel_src_dir=$SRC/kernel
config_file="${kernel_src_dir}/arch/x86/configs/opnfv.config"
cp -f ${config_file} "${kernel_src_dir}/.config"
usage () {
echo "usage: ${0} output_dir"
exit 1
}
if [[ -z "$@" ]]; then
usage
fi
if [ ! -d ${output_dir} -o ! -w ${output_dir} ] ; then
echo "${0}: Output directory '${output_dir}' does not exist or cannot \
be written"
exit 1
fi
if [ ! -d ${kernel_src_dir} ] ; then
echo "${0}: Directory '${kernel_src_dir}' does not exist, run this script \
from the root of kvmfornfv source tree"
exit 1
fi
if [ ! -f ${config_file} ] ; then
echo "${0}: ${config_file} does not exist"
exit 1
fi
echo
echo "Build"
echo
function apex_rpm_build (){
rpmbuild_dir=$SRC/kvmfornfv_rpmbuild.$$
artifact_dir=${rpmbuild_dir}/RPMS/x86_64
mkdir -p $artifact_dir
# Make timestamp part of version string for automated kernel boot verification
date "+-%y%m%d%H%M" > "${kernel_src_dir}/localversion-zzz"
(cd ${kernel_src_dir}; make RPMOPTS="--define '_topdir ${rpmbuild_dir}'" rpm-pkg)
if [ ${?} -ne 0 ] ; then
echo "${0}: Kernel build failed"
rm -rf ${rpmbuild_dir}
exit 1
fi
cp -f ${artifact_dir}/* ${output_dir}
mv ${output_dir}/* ${build_dir}/build_output/
rm -rf ${rpmbuild_dir}
#cleaning the /tmp
rm -rf ${SRC}
}
function compass_deb_build(){
cd ${kernel_src_dir}
make oldconfig
quirks(){
#
# Apply out of tree patches
#
echo "Inside quirks"
for i in $SRC/kvmfornfv/patches/$1/*.patch
do
if [ -f "$i" ]
then
echo "Applying: $i"
patch -p1 <$i
fi
done
echo "end quirks"
}
quirks kernel
echo "SRC is:$SRC"
echo "kernel_src_dir is : $kernel_src_dir"
VERSION="1.0.OPNFV"
# Configure the kernel
cd $kernel_src_dir
# Workaround build bug on Ubuntu 14.04
cat <<EOF > arch/x86/boot/install.sh
#!/bin/sh
cp -a -- "\$2" "\$4/vmlinuz-\$1"
EOF
# Build the kernel debs
make-kpkg clean
fakeroot make-kpkg --initrd --revision=$VERSION kernel_image kernel_headers kernel_debug -j$(nproc)
make
echo "list the debians built"
ls -lrth $SRC
mv $SRC/linux-* $build_dir/build_output
}
if [[ "$installer_type" == "apex" ]];then
apex_rpm_build
else
compass_deb_build
fi
|