Преглед на файлове

oe: Fix opkg status list parse - Missing postinst

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>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Raul Martins преди 5 години
родител
ревизия
0d3ca08347
променени са 1 файла, в които са добавени 15 реда и са изтрити 3 реда
  1. 15 3
      meta/lib/oe/rootfs.py

+ 15 - 3
meta/lib/oe/rootfs.py

@@ -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 = ""
                 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 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())