base.bbclass: Fix PR increment bug when PR number is a single digit
PRINC which should add to base PR value has a problem when the PR is single digit e.g. r0 - r9. Current algorithm needed atleasts 2 digits to successfully populate end and begin markers. We reimplement the incrementing algorithm using regular expressions which addressed the above mentioned problem and simplifies the logic a bit and gets rid of loops and conditionals (From OE-Core rev: 9aeaae7b786a42d213ad4224743dfd49e2324077) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
60ab6fc60c
commit
339d4933a5
|
@ -233,25 +233,18 @@ do_build () {
|
|||
}
|
||||
|
||||
python () {
|
||||
import exceptions, string
|
||||
import exceptions, string, re
|
||||
|
||||
# If PRINC is set, try and increase the PR value by the amount specified
|
||||
princ = bb.data.getVar('PRINC', d, True)
|
||||
if princ:
|
||||
pr = bb.data.getVar('PR', d, True)
|
||||
start = -1
|
||||
end = -1
|
||||
for i in range(len(pr)):
|
||||
if pr[i] in string.digits:
|
||||
if start == -1:
|
||||
start = i
|
||||
else:
|
||||
end = i
|
||||
if start == -1 or end == -1:
|
||||
pr_prefix = re.search("\D+",pr)
|
||||
prval = re.search("\d+",pr)
|
||||
if pr_prefix is None or prval is None:
|
||||
bb.error("Unable to analyse format of PR variable: %s" % pr)
|
||||
prval = pr[start:end+1]
|
||||
prval = int(prval) + int(princ)
|
||||
pr = pr[0:start] + str(prval) + pr[end:len(pr)-1]
|
||||
nval = int(prval.group(0)) + int(princ)
|
||||
pr = pr_prefix.group(0) + str(nval) + pr[prval.end():]
|
||||
bb.data.setVar('PR', pr, d)
|
||||
|
||||
pn = bb.data.getVar('PN', d, 1)
|
||||
|
|
Loading…
Reference in New Issue