瀏覽代碼

bitbake cache.py: When SRCREV autorevisioning for a recipe is in use, don't cache the recipe. Based on work from Heikki Paajanen

git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5352 311d38ba-8fff-0310-9ca6-ca027cbcb966
Richard Purdie 16 年之前
父節點
當前提交
979f987c44

+ 1 - 0
bitbake-dev/ChangeLog

@@ -154,6 +154,7 @@ Changes in Bitbake 1.9.x:
 	  all variable from the environment. If BB_ENV_WHITELIST is set, that whitelist will be
 	  used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE can be used
 	  to extend the internal whitelist.
+	- When SRCREV autorevisioning for a recipe is in use, don't cache the recipe
 
 Changes in Bitbake 1.8.0:
 	- Release 1.7.x as a stable series

+ 10 - 1
bitbake-dev/lib/bb/cache.py

@@ -259,6 +259,7 @@ class Cache:
         Save the cache
         Called from the parser when complete (or exiting)
         """
+        import copy
 
         if not self.has_cache:
             return
@@ -271,8 +272,14 @@ class Cache:
         version_data['CACHE_VER'] = __cache_version__
         version_data['BITBAKE_VER'] = bb.__version__
 
+        cache_data = copy.deepcopy(self.depends_cache)
+        for fn in self.depends_cache:
+            if '__BB_DONT_CACHE' in self.depends_cache[fn] and self.depends_cache[fn]['__BB_DONT_CACHE']:
+                bb.msg.debug(2, bb.msg.domain.Cache, "Not caching %s, marked as not cacheable" % fn)
+                del cache_data[fn]
+
         p = pickle.Pickler(file(self.cachefile, "wb" ), -1 )
-        p.dump([self.depends_cache, version_data])
+        p.dump([cache_data, version_data])
 
     def mtime(self, cachefile):
         return bb.parse.cached_mtime_noerror(cachefile)
@@ -373,6 +380,8 @@ class Cache:
         if not self.getVar('BROKEN', file_name, True) and not self.getVar('EXCLUDE_FROM_WORLD', file_name, True):
             cacheData.possible_world.append(file_name)
 
+        # Touch this to make sure its in the cache
+        self.getVar('__BB_DONT_CACHE', file_name, True)
 
     def load_bbfile( self, bbfile , config):
         """

+ 2 - 0
bitbake-dev/lib/bb/fetch/__init__.py

@@ -232,6 +232,8 @@ def get_srcrev(d):
         bb.msg.error(bb.msg.domain.Fetcher, "SRCREV was used yet no valid SCM was found in SRC_URI")
         raise ParameterError
 
+    bb.data.setVar('__BB_DONT_CACHE','1', d)
+
     if len(scms) == 1:
         return urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d)
 

+ 1 - 0
bitbake/ChangeLog

@@ -59,6 +59,7 @@ Changes in BitBake 1.8.x:
 	  all variable from the environment. If BB_ENV_WHITELIST is set, that whitelist will be
 	  used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE can be used
 	  to extend the internal whitelist.
+	- When SRCREV autorevisioning for a recipe is in use, don't cache the recipe
 
 Changes in BitBake 1.8.10:
 	- Psyco is available only for x86 - do not use it on other architectures.

+ 10 - 1
bitbake/lib/bb/cache.py

@@ -259,6 +259,7 @@ class Cache:
         Save the cache
         Called from the parser when complete (or exiting)
         """
+        import copy
 
         if not self.has_cache:
             return
@@ -271,8 +272,14 @@ class Cache:
         version_data['CACHE_VER'] = __cache_version__
         version_data['BITBAKE_VER'] = bb.__version__
 
+        cache_data = copy.deepcopy(self.depends_cache)
+        for fn in self.depends_cache:
+            if '__BB_DONT_CACHE' in self.depends_cache[fn] and self.depends_cache[fn]['__BB_DONT_CACHE']:
+                bb.msg.debug(2, bb.msg.domain.Cache, "Not caching %s, marked as not cacheable" % fn)
+                del cache_data[fn]
+
         p = pickle.Pickler(file(self.cachefile, "wb" ), -1 )
-        p.dump([self.depends_cache, version_data])
+        p.dump([cache_data, version_data])
 
     def mtime(self, cachefile):
         return bb.parse.cached_mtime_noerror(cachefile)
@@ -373,6 +380,8 @@ class Cache:
         if not self.getVar('BROKEN', file_name, True) and not self.getVar('EXCLUDE_FROM_WORLD', file_name, True):
             cacheData.possible_world.append(file_name)
 
+        # Touch this to make sure its in the cache
+        self.getVar('__BB_DONT_CACHE', file_name, True)
 
     def load_bbfile( self, bbfile , config):
         """

+ 2 - 0
bitbake/lib/bb/fetch/__init__.py

@@ -232,6 +232,8 @@ def get_srcrev(d):
         bb.msg.error(bb.msg.domain.Fetcher, "SRCREV was used yet no valid SCM was found in SRC_URI")
         raise ParameterError
 
+    bb.data.setVar('__BB_DONT_CACHE','1', d)
+
     if len(scms) == 1:
         return urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d)
 

+ 6 - 0
meta/classes/poky.bbclass

@@ -1,3 +1,9 @@
+PREMIRRORS_append () {
+ftp://.*/.*    http://pokylinux.org/sources/
+http://.*/.*   http://pokylinux.org/sources/
+https://.*/.*   http://pokylinux.org/sources/
+}
+
 MIRRORS_append () {
 ftp://.*/.*    http://pokylinux.org/sources/
 http://.*/.*   http://pokylinux.org/sources/

+ 6 - 1
meta/packages/base-files/base-files_3.0.14.bb

@@ -47,7 +47,8 @@ dirs755 = "/bin /boot /dev ${sysconfdir} ${sysconfdir}/default \
 	   /mnt /media /media/card /media/cf /media/net /media/ram \
 	   /media/union /media/realroot /media/hdd \
 	   /media/mmc1"
-volatiles = "cache run log lock tmp"
+volatiles = "log lock tmp"
+volatiles2 = "cache run"
 conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \
 	     ${sysconfdir}/inputrc ${sysconfdir}/issue /${sysconfdir}/issue.net \
 	     ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile \
@@ -75,6 +76,10 @@ do_install () {
 	for d in ${volatiles}; do
 		ln -sf volatile/$d ${D}/${localstatedir}/$d
 	done
+	for d in ${volatiles2}; do
+		install -d ${D}/${localstatedir}/$d
+	done
+
 	for d in card cf net ram; do
 		ln -sf /media/$d ${D}/mnt/$d
 	done

+ 1 - 0
meta/packages/fontconfig/fontconfig_2.6.0.bb

@@ -72,5 +72,6 @@ do_configure_append () {
 
 do_install () {
 	autotools_do_install
+	rm -fr ${D}/var/cache
 }
 

+ 0 - 1
meta/packages/matchbox-wm/matchbox-wm_svn.bb

@@ -2,7 +2,6 @@ SECTION = "x11/wm"
 DESCRIPTION = "Matchbox window manager"
 LICENSE = "GPL"
 DEPENDS = "libmatchbox virtual/libx11 libxext libxrender startup-notification expat gconf"
-PROVIDES = "matchbox-wm"
 
 PV = "1.2+svnr${SRCREV}"
 PR = "r4"

+ 4 - 0
meta/packages/ncurses/ncurses-native_5.6.bb

@@ -0,0 +1,4 @@
+require ncurses_${PV}.bb
+inherit native
+EXTRA_OEMAKE = '"BUILD_CCFLAGS=${BUILD_CCFLAGS}"'
+DEPENDS = ""

+ 3 - 0
meta/packages/ncurses/ncurses-sdk_5.6.bb

@@ -0,0 +1,3 @@
+require ncurses_${PV}.bb
+inherit sdk
+EXTRA_OEMAKE = '"BUILD_CCFLAGS=${BUILD_CCFLAGS}"'

+ 1 - 1
meta/packages/ncurses/ncurses.inc

@@ -15,7 +15,7 @@ inherit autotools
 # clear/reset are in already busybox
 FILES_ncurses-tools = "${bindir}/tic ${bindir}/toe ${bindir}/infotocap ${bindir}/captoinfo ${bindir}/infocmp ${bindir}/clear.${PN} ${bindir}/reset.${PN} ${bindir}/tack "
 FILES_ncurses-terminfo = "${datadir}/terminfo"
-FILES_${PN} = "${bindir}/tput ${bindir}/tset ${libdir}/lib*.so.* usr/share/tabset etc/terminfo"
+FILES_${PN} = "${bindir}/tput ${bindir}/tset ${libdir}/lib*.so.* /usr/share/tabset /etc/terminfo"
 
 PARALLEL_MAKE=""
 

+ 11 - 0
meta/packages/ncurses/ncurses_5.6.bb

@@ -0,0 +1,11 @@
+PR = "r0"
+
+SRC_URI = "${GNU_MIRROR}/ncurses/ncurses-${PV}.tar.gz \
+           file://makefile_tweak.patch;patch=1 \
+	   file://configure_fix.patch;patch=1"
+#           file://visibility.patch;patch=1"
+S = "${WORKDIR}/ncurses-${PV}"
+
+DEFAULT_PREFERENCE = "-1"
+
+require ncurses.inc

+ 1 - 1
meta/packages/rpm/rpm_4.4.2.3.bb

@@ -2,7 +2,7 @@ DESCRIPTION = "The RPM Package Manager."
 HOMEPAGE = "http://rpm.org/"
 LICENSE = "LGPL GPL"
 DEPENDS = "zlib beecrypt file popt python"
-PR = "r9"
+PR = "r8"
 
 SRC_URI = "http://www.rpm.org/releases/rpm-4.4.x/rpm-4.4.2.3.tar.gz \
            file://external-tools.patch;patch=1 \

+ 4 - 0
meta/packages/shared-mime-info/shared-mime-info-native_0.51.bb

@@ -1,5 +1,9 @@
 require shared-mime-info.inc
 
+PR = "r1"
+
 inherit native
 
+DEPENDS = "libxml2-native intltool-native glib-2.0-native"
+
 S = "${WORKDIR}/shared-mime-info-${PV}"

+ 3 - 1
meta/packages/tasks/task-poky-tools.bb

@@ -3,7 +3,7 @@
 #
 
 DESCRIPTION = "Tools tasks for Poky"
-PR = "r1"
+PR = "r2"
 
 PACKAGES = "\
     task-poky-tools-debug \
@@ -55,3 +55,5 @@ RDEPENDS_task-poky-tools-testapps = "\
     xwininfo \
     xprop \
     xvideo-tests"
+
+RDEPENDS_task-poky-tools-testapps_append_beagleboard = " omapfbplay ffmpeg"

+ 4 - 1
meta/packages/tasks/task-poky.bb

@@ -3,7 +3,7 @@
 #
 
 DESCRIPTION = "Tasks for OpenedHand Poky"
-PR = "r30"
+PR = "r31"
 
 PACKAGES = "\
     task-poky-apps-console \
@@ -38,6 +38,9 @@ RDEPENDS_task-poky-apps-console = "\
 RDEPENDS_task-poky-x11-base = "\
     dbus \
     pointercal \
+    fontconfig \
+    freetype \
+    shared-mime-info \
     matchbox-wm \
     matchbox-keyboard \
     matchbox-keyboard-applet \