[OE-core] [PATCH] package_deb.bbclass: don't handle advanced dependency marker

Marko Lindqvist cazfi74 at gmail.com
Wed May 9 23:50:31 UTC 2012


From: Marko Lindqvist <cazfi74 at gmail.com>
Date: Thu, 10 May 2012 02:41:06 +0300
Subject: [PATCH] package_deb.bbclass: don't handle advanced dependency marker
 as version number

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 <cazfi74 at gmail.com>
---
 meta/classes/package_deb.bbclass |   19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index dc0f963..c51bf3c 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:
-- 
1.7.10




More information about the Openembedded-core mailing list