From patchwork Thu May 24 04:42:13 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Consolidated, Pull, 10/28] package_deb.bbclass: don't handle advanced dependency marker as version number Date: Thu, 24 May 2012 04:42:13 -0000 From: Saul Wold X-Patchwork-Id: 28533 Message-Id: <2a363acb80fb77401a2adb24038d8dc765e434e6.1337834073.git.sgw@linux.intel.com> To: openembedded-core@lists.openembedded.org From: Marko Lindqvist Strip advanced dependency markers away from Provides before writing them to control file. Left in place they would mean package version number in control file format. Signed-off-by: Marko Lindqvist --- meta/classes/package_deb.bbclass | 19 ++++++++++++++++++- 1 files changed, 18 insertions(+), 1 deletions(-) diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 4096fa2..2e0ea92 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -206,6 +206,23 @@ python do_package_deb () { import re, copy import textwrap + def deb_explode_dep_ver(varname): + # Remove markers from string so they won't get handled as version numbers + depstr = localdata.getVar(varname, True) or "" + start = depstr.find("(") + while start != -1: + # We are not searching ")" from full string in case it's malformed in a way + # that first ")" is before first "(" + endstr = depstr[start:len(depstr)] + end = endstr.find(")") + if (end == len(endstr) - 1) or (end == -1): + tmpstr = depstr[0:start] + else: + tmpstr = depstr[0:start] + depstr[start+end+1:len(depstr)] + depstr = tmpstr + start = depstr.find("(") + return bb.utils.explode_dep_versions(depstr) + workdir = d.getVar('WORKDIR', True) if not workdir: bb.error("WORKDIR not defined, unable to package") @@ -341,7 +358,7 @@ python do_package_deb () { if '*' in dep: del rrecommends[dep] rsuggests = bb.utils.explode_dep_versions(localdata.getVar("RSUGGESTS", True) or "") - rprovides = bb.utils.explode_dep_versions(localdata.getVar("RPROVIDES", True) or "") + rprovides = deb_explode_dep_ver("RPROVIDES") rreplaces = bb.utils.explode_dep_versions(localdata.getVar("RREPLACES", True) or "") rconflicts = bb.utils.explode_dep_versions(localdata.getVar("RCONFLICTS", True) or "") if rdepends: