lockdown: steal some bits from openmoko that will dump prefferred_versions to TMPDIR
authorKoen Kooi <koen@openembedded.org>
Wed, 27 May 2009 22:00:19 +0000 (00:00 +0200)
committerKoen Kooi <koen@openembedded.org>
Wed, 27 May 2009 22:00:19 +0000 (00:00 +0200)
* freeze.inc would work as well, but I got this working first

classes/lockdown.bbclass [new file with mode: 0644]

diff --git a/classes/lockdown.bbclass b/classes/lockdown.bbclass
new file mode 100644 (file)
index 0000000..45b9761
--- /dev/null
@@ -0,0 +1,41 @@
+addtask show_versions before do_build
+do_show_versions[nostamp] = "1"
+python do_show_versions() {
+       import sys
+
+       localdata = bb.data.createCopy(d)
+       bb.data.update_data(localdata)
+
+       src_uri = bb.data.getVar('SRC_URI', localdata, 1)
+       if not src_uri:
+               return 1
+
+       try:
+               bb.fetch.init(src_uri.split(),d)
+       except bb.fetch.NoMethodError:
+               (type, value, traceback) = sys.exc_info()
+               raise bb.build.FuncFailed("No method: %s" % value)
+
+
+       src_uri = bb.data.getVar("SRC_URI", d, False)
+       pn = bb.data.getVar("PN", d, True)
+       src_revs = open("%s/src_revs.inc" % bb.data.getVar("TMPDIR", d, 1), "a")
+       src_dates = open("%s/src_dates.inc" % bb.data.getVar("TMPDIR", d, 1), "a")
+       pref_versions = open("%s/preferred_versions.inc" % bb.data.getVar("TMPDIR", d, 1), "a")
+       if "SRCREV" in bb.data.getVar("PV", d, False):
+               print >> src_revs, 'SRCREV_pn-%(pn)s ?= "%(rev)s"' % { 'pn' : pn, 'rev' : bb.data.getVar("SRCREV", d, True) }
+       elif "cvs://" in src_uri or "svn://" in src_uri or "git://" in src_uri:
+               print >> src_dates, 'SRCDATE_pn-%(pn)s ?= "%(date)s"' % { 'pn' : pn, 'date' : bb.data.getVar("SRCDATE", d, True) }
+
+       print >> pref_versions, 'PREFERRED_VERSION_%(pn)s = "%(version)s"' % { "pn" : pn, 'version' : bb.data.getVar("PV", d, True) }
+       src_revs.close()
+       src_dates.close()
+       pref_versions.close()
+}
+
+addtask lockdown
+do_lockdown[nostamp] = "1"
+do_lockdown[recrdeptask] = "do_show_versions"
+python do_lockdown() {
+}
+