blob: a4f380d6328dbe9914f2205ed82afef4faddd623 (
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
|
#!/bin/bash
PN="glibc"
PV=${1%/}
pver=$2
if [[ -z ${PV} ]] ; then
echo "Usage: $0 glibc-version patchset-version-to-be-created"
echo "Please read the script before trying to use it :)"
exit 1
fi
# check that we're in the root of a glibc git repo
if [[ ! -f libc-abis ]] || [[ ! -d .git ]] ; then
echo "Error: You need to call this script in the main directory of a Gentoo glibc git clone"
exit 1
fi
# check that we're on a branch gentoo/${PV}
mybranchinfo=$(git status --porcelain -b|grep '^##')
mybranch=$(echo ${mybranchinfo}|sed -e 's:^## ::' -e 's:\.\.\..*$::')
if [[ ! "gentoo/${PV}" == "${mybranch}" ]] ; then
echo "Error: Your git repository is on the incorrect branch ${mybranch}; should be gentoo/${PV}"
exit 1
fi
# check that the working directory is clean
mystatusinfo=$(git status --porcelain)
if [[ ! -z "${mystatusinfo}" ]] ; then
echo "Error: Your working directory is not clean"
exit 1
fi
# check if the tag already exists
mytaginfo=$(git tag -l|grep "gentoo/glibc-${PV}-${pver}")
if [[ ! -z "${mytaginfo}" ]] ; then
echo "Error: A tag corresponding to this patch level already exists (gentoo/glibc-${PV}-${pver})"
exit 1
fi
# luckily glibc git has no /tmp dir and no tar.xz files, but let's better check and be pathologically careful
if [[ -e tmp ]] || [[ -e ${PN}-${PV}-patches-${pver}.tar.xz ]] ; then
echo "Error: tmp or ${PN}-${PV}-patches-${pver}.tar.xz exists in git"
exit 1
fi
rm -rf tmp
rm -f ${PN}-${PV}-*.tar.xz
for myname in 0*.patch ; do
if [[ -e ${myname} ]]; then
echo "Error: ${myname} exists in git"
exit 1
fi
done
rm -f 0*.patch
mkdir -p tmp/patches
# copy README.Gentoo.patches
cp scripts/gentoo/README.Gentoo.patches tmp/ || exit 1
# create and rename patches
if [[ "${PV}" == "9999" ]]; then
# we're working with master, start from upstream master
startpoint="master"
else
# release branch, start from upstream release tag
startpoint="glibc-${PV}"
fi
git format-patch ${startpoint}..HEAD > /dev/null
# remove all patches where the summary line starts with [no-tarball] or [no-patch]
rm -f 0???-no-tarball-*.patch
rm -f 0???-no-patch-*.patch
# move patches into temporary directory
mv 0*.patch tmp/patches/ || exit 1
# copy support files
cp -r scripts/gentoo/extra tmp/ || exit 1
# add a history file
git log --stat --decorate ${startpoint}..HEAD > tmp/patches/README.history || exit 1
# package everything up
tar -Jcf ${PN}-${PV}-patches-${pver}.tar.xz \
-C tmp patches extra README.Gentoo.patches || exit 1
rm -r tmp
du -b *.tar.xz
# tag the commit
git tag -s -m "Gentoo patchset ${PV}-${pver}" "gentoo/glibc-${PV}-${pver}"
|