summaryrefslogtreecommitdiff
path: root/build-from-upstream_old.sh
blob: e7314f0e05d35d1c981fe615d24ac61699d695b2 (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
#!/bin/bash

export WORKSPACE=`pwd`

build_arch=armhf
build_dist=trusty
package_base_name=libvirt
addl_builddep_package_list=automake,w3c-dtd-xhtml,xsltproc,libxml2-utils
chroot_name=${build_dist}-${build_arch}-sbuild

code_git_url=git://libvirt.org/libvirt.git
debian_git_url=git://git.debian.org/git/pkg-libvirt/libvirt.git

code_git_checkout_dir=./libvirt
debian_git_checkout_dir=./debian-packaging

# clean up previous build files
rm *.deb
rm *.ddeb
rm *.build
rm *.changes
rm *.dsc

# check for schroot (if chroot_name is not already set)
#if [ -z "${chroot_name}" ] ; then
#   chroot_base_name=${build_dist}-${package_base_name}
#   chroot_name=chroot:${chroot_base_name}-${build_arch}
#   check_schroot_present=`schroot -l | grep ${chroot_name} | wc -l`
#   if [ ${check_schroot_present} == "0" ] ; then
#      # create new chroot
#      mk-sbuild --arch=${build_arch} --name=${chroot_base_name} --debootstrap-include=${addl_schroot_package_list} --eatmydata ${build_dist}
#   fi
#fi

# get/refresh debian packaging bits
if [ -d "${debian_git_checkout_dir}" ] ; then
   cd ${debian_git_checkout_dir}
   git checkout master
   git pull
   cd ${WORKSPACE}
else
   git clone ${debian_git_url} ${debian_git_checkout_dir}
fi

# get the commit of the upstream code
cd ${code_git_checkout_dir}
scm_commit=`git log -n1 --pretty=format:%h`
if [ -z "${scm_commit}" ]; then
   echo "Invalid source git revision: ${scm_commit}" >&2
   exit 1
fi
cd ${WORKSPACE}

# get the commit of the upstream packaging bits
cd ${debian_git_checkout_dir}
scm_packaging_commit=`git log -n1 --pretty=format:%h`
if [ -z "${scm_packaging_commit}" ]; then
   echo "Invalid packaging git revision: ${scm_packaging_commit}" >&2
   exit 1
fi
cd ${WORKSPACE}

# construct version string using tag information from git
cd ${code_git_checkout_dir}
latest_tag=`git describe --abbrev=0`
latest_version_fromtag=`echo ${latest_tag} | sed 's/v//'`
date_string=`git log -1 --pretty="format:%ai" ${latest_tag} | awk -F "-"  '{print $1"."$2}'`
base_version=${latest_version_fromtag}-${date_string}
export base_version
cd ${WORKSPACE}
pkg_version=${base_version}+git${BUILD_NUMBER}+`date +%Y%m%d`+${scm_commit}
echo "pkg_version: :${pkg_version}:"

# copy the debian packaging bits into the code directory
cp --recursive ${debian_git_checkout_dir}/debian ${code_git_checkout_dir}/.

# update debian source format
sed -i 's/quilt/native/' ${code_git_checkout_dir}/debian/source/format

# update control file to add required build dependencies
sed -i "s/Build-Depends:/Build-Depends:\n ${addl_builddep_package_list},/" ${code_git_checkout_dir}/debian/control 

# update rules file to add configure step (sed delimiter = #)
sed -i 's#override_dh_auto_configure:#override_dh_auto_configure:\n	NOCONFIGURE=yes GNULIB_SRCDIR=.gnulib ./autogen.sh --no-git#' ${code_git_checkout_dir}/debian/rules

cat ${code_git_checkout_dir}/debian/control
cat ${code_git_checkout_dir}/debian/rules

# update changelog
currentdate=`date -R`
cat > ${code_git_checkout_dir}/debian/changelog << EOF
${package_base_name} (${pkg_version}-1linaro${build_dist}1) ${build_dist}; urgency=low

  * CI - ${package_base_name} build from upstream sources:
    - repository: ${code_git_url}
    - commit: ${scm_commit}
    - build: ${BUILD_URL}

    - debian/ repository: ${debian_git_url}
    - debian/ commit: ${scm_packaging_commit}

 -- Linaro Packagers <linaro-pkg@lists.launchpad.net>  ${currentdate}

EOF
cat ${debian_git_checkout_dir}/debian/changelog >> ${code_git_checkout_dir}/debian/changelog

# prepare the source for building on this machine
#cd ${code_git_checkout_dir}
#   ./autogen.sh
#   make distclean
#cd ${WORKSPACE}

# build it!
sbuild --chroot=${chroot_name} --no-source --dist=${build_dist} ${code_git_checkout_dir}