]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
oe: Fix opkg status list parse - Missing postinst
authorRaul Martins <raulgildons@gmail.com>
Wed, 12 Dec 2018 07:38:19 +0000 (05:38 -0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 15 Dec 2018 17:10:44 +0000 (17:10 +0000)
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>
meta/lib/oe/rootfs.py

index e5512d09efdb905c3ccc3c0f29ca1e2b67b79e72..4273891699fd1d9c3dc2e9d56826b32f3da71910 100644 (file)
@@ -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())