blob: 9df01ddae8f18d12af4cba9975bfbda849be67f5 (
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
|
#!/bin/bash
#set -x
#set -e
DEBIAN=debian.linaro
source_pkg_name=$(dpkg-parsechangelog -l${DEBIAN}/changelog|grep Source|sed 's/^.*Source: //')
source_pkg_version=$(dpkg-parsechangelog -l${DEBIAN}/changelog|grep Version|sed 's/^.*Version: //')
common_flavour_prefix=linaro
function fail {
echo $1
exit -1
}
function checkclean {
status=$(git status -s)
test -z "$status" || fail "Only run this script in a clean repo"
}
function setup_working_branch {
hoser=$(git branch -a | grep " $1$")
test -z "$hoser" || fail "$1 already exists"
git checkout -b $1
}
function cleanup {
git reset --hard HEAD
git clean -d -f -x
}
flavours=(shared ${DEBIAN}/control.d/vars.*)
flavours=(${flavours[*]##*vars.${common_flavour_prefix}-})
sharedflavour=${flavours[0]}
function do_flavour_branches {
for flavour in ${flavours[*]}; do
echo sharedflavour is $sharedflavour
echo flavour is $flavour
otherflavours=(${flavours[*]##$flavour})
echo otherflavours are ${otherflavours[*]}
single_flavour_branch=${working_branch}-$flavour-only
git branch -f $single_flavour_branch HEAD
git checkout $single_flavour_branch
sed -i -e "s/^${source_pkg_name}/${source_pkg_name}-$flavour/" ${DEBIAN}/changelog
git add ${DEBIAN}/changelog
for otherflavour in ${otherflavours[*]}; do
git rm ${DEBIAN}/config/armel/config.flavour.${common_flavour_prefix}-$otherflavour
git rm ${DEBIAN}/control.d/vars.${common_flavour_prefix}-$otherflavour
sed -i -e "/${common_flavour_prefix}-$otherflavour/d" ${DEBIAN}/d-i/kernel-versions.in
git add ${DEBIAN}/d-i/kernel-versions.in
sed -i -e "s/${common_flavour_prefix}-$otherflavour//" ${DEBIAN}/rules.d/armel.mk
if [ "$flavour" = "$sharedflavour" ]; then
# shared is where arch headers and tools debs are made
sed -i -e "s/do_common_headers_indep.*=.*/do_common_headers_indep = false/" ${DEBIAN}/rules.d/armel.mk
sed -i -e "s/do_tools.*=.*/do_tools = true/" ${DEBIAN}/rules.d/armel.mk
else
sed -i -e "s/do_common_headers_indep.*=.*/do_common_headers_indep = true/" ${DEBIAN}/rules.d/armel.mk
sed -i -e "s/do_tools.*=.*/do_tools = false/" ${DEBIAN}/rules.d/armel.mk
fi
git add ${DEBIAN}/rules.d/armel.mk
done
git status
if [ "$flavour" != "$sharedflavour" ]; then
fakeroot ./debian/rules clean
fakeroot ./debian/rules updateconfigs
cat >> debian.linaro/config/armel/config.flavour.${common_flavour_prefix}-$flavour << END
#
# Single flavour kernel packages have no flavour dependent config options
# look in ../config.common.ubuntu for full config
#
END
cat >> debian.linaro/config/armel/config.common.armel << END
#
# Single flavour kernel packages have no arch dependent config options
# look in ../config.common.ubuntu for full config
#
END
git commit -s -m "LINARO: Cleanup configs after removing other flavours" debian.linaro/config
fi
git commit -s -m "LINARO: Linaro-${source_pkg_version} $flavour only"
tagname="Linaro-${source_pkg_version}-${flavour}-only"
git tag -f -s -m "$tagname" $tagname HEAD
git push $remote_push -f HEAD:$flavour-only
git push $remote_push -f $tagname
git reset --hard HEAD
git checkout $working_branch
cleanup
done
}
test $# -eq 1 || fail "must provide a pushable remote"
working_branch="tbranch$(dd 2>/dev/null if=/dev/urandom bs=10 count=1 | od -X | awk '{ print $2 }')"
echo Using $working_branch as working branch name
remote_push=$1
orig_branch=$(git symbolic-ref HEAD 2>/dev/null)
orig_branch=${orig_branch##refs/heads/}
checkclean
setup_working_branch $working_branch
git push $remote_push -f $working_branch:master
tagname="Linaro-${source_pkg_version}"
git tag -f -s -m "$tagname" $tagname HEAD
git push $remote_push -f $tagname
do_flavour_branches
git checkout $orig_branch
git branch -D $working_branch
cleanup
|