]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
insane: micro-optimise the sweep of pkgfiles
authorRoss Burton <ross.burton@arm.com>
Thu, 10 Oct 2024 16:06:20 +0000 (17:06 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 11 Oct 2024 11:16:59 +0000 (12:16 +0100)
Don't actively do more work:

- Exit early if there are no packages being generated
- Don't iterate repeatedly when removing CONTROL and DEBIAN
- Extend a list with another list instead of appending item by item
- Remove unused variables

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-global/insane.bbclass

index b165f111cec55fc6726990b9c7829184dc3c46bc..05b8538940d72aaf55414e342d4ded71fc88fcc6 100644 (file)
@@ -1084,13 +1084,8 @@ parse_test_matrix[vardepsexclude] = "ERROR_QA WARN_QA"
 
 # The PACKAGE FUNC to scan each package
 python do_package_qa () {
-    import subprocess
     import oe.packagedata
 
-    bb.note("DO PACKAGE QA")
-
-    main_lic = d.getVar('LICENSE')
-
     # Check for obsolete license references in main LICENSE (packages are checked below for any changes)
     main_licenses = oe.license.list_licenses(d.getVar('LICENSE'))
     obsolete = set(oe.license.obsolete_license_list()) & main_licenses
@@ -1106,27 +1101,27 @@ python do_package_qa () {
     pn = d.getVar('PN')
 
     # Scan the packages...
-    pkgdest = d.getVar('PKGDEST')
     packages = set((d.getVar('PACKAGES') or '').split())
+    # no packages should be scanned
+    if not packages:
+        return
 
     global pkgfiles
     pkgfiles = {}
+    pkgdest = d.getVar('PKGDEST')
     for pkg in packages:
-        pkgfiles[pkg] = []
         pkgdir = os.path.join(pkgdest, pkg)
+        pkgfiles[pkg] = []
         for walkroot, dirs, files in os.walk(pkgdir):
             # Don't walk into top-level CONTROL or DEBIAN directories as these
             # are temporary directories created by do_package.
             if walkroot == pkgdir:
-                for control in ("CONTROL", "DEBIAN"):
-                    if control in dirs:
-                        dirs.remove(control)
-            for file in files:
-                pkgfiles[pkg].append(os.path.join(walkroot, file))
-
-    # no packages should be scanned
-    if not packages:
-        return
+                for removedir in ("CONTROL", "DEBIAN"):
+                    try:
+                        dirs.remove(removedir)
+                    except ValueError:
+                        pass
+            pkgfiles[pkg].extend((os.path.join(walkroot, f) for f in files))
 
     import re
     # The package name matches the [a-z0-9.+-]+ regular expression