summaryrefslogtreecommitdiff
path: root/classes/lockdown.bbclass
blob: 45b9761b9c44884a23be929709efee5f63d513a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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() {
}