base.bbclass: added support for creating source mirror
authorMarcin Juszkiewicz <hrw@openembedded.org>
Tue, 21 Nov 2006 19:13:56 +0000 (19:13 +0000)
committerMarcin Juszkiewicz <hrw@openembedded.org>
Tue, 21 Nov 2006 19:13:56 +0000 (19:13 +0000)
- if SOURCE_MIRROR_FETCH variable is set then we ignore
  COMPATIBLE_MACHINE/COMPATIBLE_HOST settings to be able to fetch all recipes.
- Fetching sources can be done by setting any MACHINE/DISTRO combination and
  SOURCE_MIRROR_FETCH = "1" in configuration. Then one invocation of BitBake
  should do all fetching:
  bitbake --cmd fetchall --continue world
- scripts to manage source mirror will get added into contrib/

classes/base.bbclass

index abac199..f5aede6 100644 (file)
@@ -677,19 +677,21 @@ python read_subpackage_metadata () {
 def base_after_parse_two(d):
     import bb
     import exceptions
-    need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1)
-    if need_host:
-        import re
-        this_host = bb.data.getVar('HOST_SYS', d, 1)
-        if not re.match(need_host, this_host):
-            raise bb.parse.SkipPackage("incompatible with host %s" % this_host)
-
-    need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1)
-    if need_machine:
-        import re
-        this_machine = bb.data.getVar('MACHINE', d, 1)
-        if this_machine and not re.match(need_machine, this_machine):
-            raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine)
+    source_mirror_fetch = bb.data.getVar('SOURCE_MIRROR_FETCH', d, 0)
+    if not source_mirror_fetch:
+        need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1)
+        if need_host:
+            import re
+            this_host = bb.data.getVar('HOST_SYS', d, 1)
+            if not re.match(need_host, this_host):
+                raise bb.parse.SkipPackage("incompatible with host %s" % this_host)
+
+        need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1)
+        if need_machine:
+            import re
+            this_machine = bb.data.getVar('MACHINE', d, 1)
+            if this_machine and not re.match(need_machine, this_machine):
+                raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine)
 
     pn = bb.data.getVar('PN', d, 1)