[OE-core] [V2 2/2] buildhistory.bbclass: add pkg_pre/postinst/rm contents
Andreas Müller
schnitzeltony at googlemail.com
Thu May 31 11:12:45 UTC 2012
A use-case would have been [1].
The following tests were performed:
* image from scratch with old buildhistory contents
* image from scratch with buildhistory contents from scratch
* decrement a PR for a test recipe and check if the message
'ERROR: Package version for xy went backwards' is displayed.
[1] http://patches.openembedded.org/patch/28841/
Signed-off-by: Andreas Müller <schnitzeltony at googlemail.com>
---
meta/classes/buildhistory.bbclass | 80 +++++++++++++++++++++++--------------
1 files changed, 50 insertions(+), 30 deletions(-)
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index d2d19ff..9c49bab 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -57,6 +57,10 @@ python buildhistory_emit_pkghistory() {
self.rrecommends = ""
self.files = ""
self.filelist = ""
+ self.preinst = ""
+ self.postinst = ""
+ self.prerm = ""
+ self.postrm = ""
# Should check PACKAGES here to see if anything removed
@@ -74,18 +78,19 @@ python buildhistory_emit_pkghistory() {
try:
for line in f:
lns = line.split('=')
- name = lns[0].strip()
- value = lns[1].strip(" \t\r\n").strip('"')
- if name == "PE":
- rcpinfo.pe = value
- elif name == "PV":
- rcpinfo.pv = value
- elif name == "PR":
- rcpinfo.pr = value
- elif name == "DEPENDS":
- rcpinfo.depends = value
- elif name == "PACKAGES":
- rcpinfo.packages = value
+ if len(lns)==2:
+ name = lns[0].strip()
+ value = lns[1].strip(" \t\r\n").strip('"')
+ if name == "PE":
+ rcpinfo.pe = value
+ elif name == "PV":
+ rcpinfo.pv = value
+ elif name == "PR":
+ rcpinfo.pr = value
+ elif name == "DEPENDS":
+ rcpinfo.depends = value
+ elif name == "PACKAGES":
+ rcpinfo.packages = value
finally:
f.close()
return rcpinfo
@@ -96,24 +101,25 @@ python buildhistory_emit_pkghistory() {
try:
for line in f:
lns = line.split('=')
- name = lns[0].strip()
- value = lns[1].strip(" \t\r\n").strip('"')
- if name == "PE":
- pkginfo.pe = value
- elif name == "PV":
- pkginfo.pv = value
- elif name == "PR":
- pkginfo.pr = value
- elif name == "RDEPENDS":
- pkginfo.rdepends = value
- elif name == "RRECOMMENDS":
- pkginfo.rrecommends = value
- elif name == "PKGSIZE":
- pkginfo.size = long(value)
- elif name == "FILES":
- pkginfo.files = value
- elif name == "FILELIST":
- pkginfo.filelist = value
+ if len(lns)==2:
+ name = lns[0].strip()
+ value = lns[1].strip(" \t\r\n").strip('"')
+ if name == "PE":
+ pkginfo.pe = value
+ elif name == "PV":
+ pkginfo.pv = value
+ elif name == "PR":
+ pkginfo.pr = value
+ elif name == "RDEPENDS":
+ pkginfo.rdepends = value
+ elif name == "RRECOMMENDS":
+ pkginfo.rrecommends = value
+ elif name == "PKGSIZE":
+ pkginfo.size = long(value)
+ elif name == "FILES":
+ pkginfo.files = value
+ elif name == "FILELIST":
+ pkginfo.filelist = value
finally:
f.close()
return pkginfo
@@ -198,6 +204,12 @@ python buildhistory_emit_pkghistory() {
filelist.sort()
pkginfo.filelist = " ".join(filelist)
+ # pre/postinst/rm
+ pkginfo.preinst = getpkgvar(pkg, 'pkg_preinst') or ""
+ pkginfo.postinst = getpkgvar(pkg, 'pkg_postinst') or ""
+ pkginfo.prerm = getpkgvar(pkg, 'pkg_prerm') or ""
+ pkginfo.postrm = getpkgvar(pkg, 'pkg_postrm') or ""
+
write_pkghistory(pkginfo, d)
write_latestlink(pkg, pe, pv, pr, d)
@@ -246,6 +258,14 @@ def write_pkghistory(pkginfo, d):
f.write("PKGSIZE = %d\n" % pkginfo.size)
f.write("FILES = %s\n" % pkginfo.files)
f.write("FILELIST = %s\n" % pkginfo.filelist)
+ if pkginfo.preinst != "":
+ f.write("\npkg_preinst=\n%s\n" % pkginfo.preinst)
+ if pkginfo.postinst != "":
+ f.write("\npkg_postinst=\n%s\n" % pkginfo.postinst)
+ if pkginfo.prerm != "":
+ f.write("\npkg_prerm=\n%s\n" % pkginfo.prerm)
+ if pkginfo.postrm != "":
+ f.write("\npkg_postrm=\n%s\n" % pkginfo.postrm)
finally:
f.close()
--
1.7.6.5
More information about the Openembedded-core
mailing list