All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] oe: Fix opkg status list parse - Missing postinst
@ 2018-12-11 13:41 Raul Martins
  0 siblings, 0 replies; only message in thread
From: Raul Martins @ 2018-12-11 13:41 UTC (permalink / raw)
  To: openembedded-core; +Cc: Raul Martins

While parsing opkg package status, last package status was not
properly handled, resulting in final image without postinst and
pkg depends

Signed-off-by: Raul Martins <raul.martins@alta-rt.com>
---
 meta/lib/oe/rootfs.py | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index e5512d0..9bdc72c 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -507,9 +507,9 @@ class DpkgOpkgRootfs(Rootfs):
             return pkg_depends_list
 
         pkgs = {}
-        pkg_name = ""
+        pkg_name = None
         pkg_status_match = False
-        pkg_depends = ""
+        pkg_depends = None
 
         with open(status_file) as status:
             data = status.read()
@@ -519,17 +519,29 @@ class DpkgOpkgRootfs(Rootfs):
                 m_status = re.match("^Status:.*unpacked", line)
                 m_depends = re.match("^Depends: (.*)", line)
 
+                #Only one of m_pkg, m_status or m_depends is not None at time
+                #If m_pkg is not None, we started a new package
                 if m_pkg is not None:
-                    if pkg_name and pkg_status_match:
-                        pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends)
-
+                    #Get Package name
                     pkg_name = m_pkg.group(1)
+                    #Make sure we reset other variables
                     pkg_status_match = False
-                    pkg_depends = ""
+                    pkg_depends = None
                 elif m_status is not None:
+                    #New status matched
                     pkg_status_match = True
                 elif m_depends is not None:
+                    #New depends macthed
                     pkg_depends = m_depends.group(1)
+                else:
+                    pass
+
+                #Now check if we can process package depends and postinst
+                if pkg_name is not None and pkg_status_match:
+                    pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends)
+                else:
+                    #Not enough information
+                    pass
 
         # remove package dependencies not in postinsts
         pkg_names = list(pkgs.keys())
-- 
2.7.4



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2018-12-11 13:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-11 13:41 [PATCH] oe: Fix opkg status list parse - Missing postinst Raul Martins

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.