Skip to contentSkip to conversation

bitbake: use layer priority when applying bbappends v2

PATCH Applied Paul Eggleton 2 participants 3 messages Jun 1, 2011

lore
Share & tools
lore
#0 lore raw

cover bitbake: use layer priority when applying bbappends v2

Since v1, fixed missing "self." on one reference to calc_bbfile_priorities.

---------

The following changes since commit 52295fa3deef3b0374b99829626d524cefae6001:

Improve handling of 'all' architecture recipes and their interaction with sstate (2011-05-31 13:07:00 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib paule/bbfile-sort
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=paule/bbfile-sort

Paul Eggleton (1):
bitbake: use layer priority when applying bbappends

 bitbake/lib/bb/cooker.py |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH 1/1 bitbake: use layer priority when applying bbappends

If the priority of a layer has been specified with BBFILE_PRIORITY_ then use that to sort the list of BBFILES entries, which will affect the order in which .bbappend files are applied.

Fixes [YOCTO #1125]

---
 bitbake/lib/bb/cooker.py |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)
bitbake/lib/bb/cooker.py +14 -10
index 3973529..0b52f18 100644
@@ -405,6 +405,15 @@ class BBCooker:
         print("}", file=tdepends_file)
         logger.info("Task dependencies saved to 'task-depends.dot'")
 
+    def calc_bbfile_priority( self, filename, matched = None ):
+        for _, _, regex, pri in self.status.bbfile_config_priorities:
+            if regex.match(filename):
+                if matched != None:
+                    if not regex in matched:
+                        matched.add(regex)
+                return pri
+        return 0
+
     def buildDepgraph( self ):
         all_depends = self.status.all_depends
         pn_provides = self.status.pn_provides
@@ -413,15 +422,6 @@ class BBCooker:
         bb.data.update_data(localdata)
         bb.data.expandKeys(localdata)
 
-        matched = set()
-        def calc_bbfile_priority(filename):
-            for _, _, regex, pri in self.status.bbfile_config_priorities:
-                if regex.match(filename):
-                    if not regex in matched:
-                        matched.add(regex)
-                    return pri
-            return 0
-
         # Handle PREFERRED_PROVIDERS
         for p in (bb.data.getVar('PREFERRED_PROVIDERS', localdata, 1) or "").split():
             try:
@@ -434,8 +434,9 @@ class BBCooker:
             self.status.preferred[providee] = provider
 
         # Calculate priorities for each file
+        matched = set()
         for p in self.status.pkg_fn:
-            self.status.bbfile_priority[p] = calc_bbfile_priority(p)
+            self.status.bbfile_priority[p] = self.calc_bbfile_priority(p, matched)
  
         # Don't show the warning if the BBFILE_PATTERN did match .bbappend files
         unmatched = set()
@@ -950,6 +951,9 @@ class BBCooker:
         files = (data.getVar( "BBFILES", self.configuration.data, 1 ) or "").split()
         data.setVar("BBFILES", " ".join(files), self.configuration.data)
 
+        # Sort files by priority
+        files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem) )
+
         if not len(files):
             files = self.get_bbfiles()
 
Signature · 1 line
1.7.4.1
#2 lore raw
In reply to Paul Eggleton
Quoted 6 lines · Paul Eggleton

Since v1, fixed missing "self." on one reference to calc_bbfile_priorities.

---------

The following changes since commit 52295fa3deef3b0374b99829626d524cefae6001:

Quoted 8 lines

Improve handling of 'all' architecture recipes and their interaction with sstate (2011-05-31 13:07:00 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib paule/bbfile-sort
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=paule/bbfile-sort

Paul Eggleton (1):
bitbake: use layer priority when applying bbappends

Merged to master, thanks.

Richard