There is a "master first" policy for dunfell, so this series would need to be accepted into the master branch before it can be considered for dunfell.
Also, this is a new feature, so that also is an issue for including this in dunfell, where changes are typically only CVE and bug fixes. Steve On Mon, Jul 19, 2021 at 1:20 AM sana kazi <sanakazis...@gmail.com> wrote: > > From: Sana Kazi <sana.k...@kpit.com> > > Used BUILDHISTORY_EXPORT_RECIPE_VARIABLES and > BUILDHISTORY_EXPORT_PACKAGE_VARIABLES to export recipe and package > data to the latest file of buildhistory and sorted it alphabetically. > > This makes extending data in buildhistory git tree simple and avoids > patches to it for users who care about things like SRC_URI and like > to track it in buildhistory git tree. > > Now we can add additional information as per our requirement to the > buildhistory like LICENSE, SRC_URI AND MAINTAINER to the buildhistory > by appending them in a recipe or distro specific conf file as follows: > > BUILDHISTORY_EXPORT_RECIPE_VARIABLES += "LICENSE MAINTAINER SRC_URI" > BUILDHISTORY_EXPORT_PACKAGE_VARIABLES += "LICENSE MAINTAINER" > > Signed-off-by: Sana Kazi <sana.k...@kpit.com> > --- > meta-poky/conf/distro/poky.conf | 2 + > meta/classes/buildhistory.bbclass | 98 +++++++++++++++++++++---------- > 2 files changed, 68 insertions(+), 32 deletions(-) > > diff --git a/meta-poky/conf/distro/poky.conf b/meta-poky/conf/distro/poky.conf > index 92e9ba5477..d766d4b1f5 100644 > --- a/meta-poky/conf/distro/poky.conf > +++ b/meta-poky/conf/distro/poky.conf > @@ -89,3 +89,5 @@ INHERIT += "reproducible_build" > > BB_SIGNATURE_HANDLER ?= "OEEquivHash" > BB_HASHSERVE ??= "auto" > +BUILDHISTORY_EXPORT_RECIPE_VARIABLES ?= "PR PV PE LAYER DEPENDS PACKAGES" > +BUILDHISTORY_EXPORT_PACKAGE_VARIABLES ?= "PE PV PR PKG PKGE PKGV PKGR > RPROVIDES RDEPENDS RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS PKGSIZE FILES > FILELIST" > diff --git a/meta/classes/buildhistory.bbclass > b/meta/classes/buildhistory.bbclass > index 44a66df962..a2888666d9 100644 > --- a/meta/classes/buildhistory.bbclass > +++ b/meta/classes/buildhistory.bbclass > @@ -254,6 +254,8 @@ python buildhistory_emit_pkghistory() { > rcpinfo.depends = sortlist(oe.utils.squashspaces(d.getVar('DEPENDS') or > "")) > rcpinfo.packages = packages > rcpinfo.layer = layer > + export_recipe_variables = > d.getVar('BUILDHISTORY_EXPORT_RECIPE_VARIABLES') or '' > + rcpinfo.export_recipe_variables = export_recipe_variables > write_recipehistory(rcpinfo, d) > > pkgdest = d.getVar('PKGDEST') > @@ -312,6 +314,9 @@ python buildhistory_emit_pkghistory() { > > pkginfo.size = int(pkgdata['PKGSIZE']) > > + export_package_variables = > d.getVar('BUILDHISTORY_EXPORT_PACKAGE_VARIABLES') or '' > + pkginfo.export_package_variables = export_package_variables > + > write_pkghistory(pkginfo, d) > > # Create files-in-<package-name>.txt files containing a list of files of > each recipe's package > @@ -360,14 +365,20 @@ def write_recipehistory(rcpinfo, d): > pkghistdir = d.getVar('BUILDHISTORY_DIR_PACKAGE') > > infofile = os.path.join(pkghistdir, "latest") > + export_recipe_variables = set(rcpinfo.export_recipe_variables.split()) > + ret = [] > with open(infofile, "w") as f: > - if rcpinfo.pe != "0": > - f.write(u"PE = %s\n" % rcpinfo.pe) > - f.write(u"PV = %s\n" % rcpinfo.pv) > - f.write(u"PR = %s\n" % rcpinfo.pr) > - f.write(u"DEPENDS = %s\n" % rcpinfo.depends) > - f.write(u"PACKAGES = %s\n" % rcpinfo.packages) > - f.write(u"LAYER = %s\n" % rcpinfo.layer) > + for var in export_recipe_variables: > + if var == "PE": > + if rcpinfo.pe != "0": > + ret.append("%s = %s" % (var, rcpinfo.pe)) > + elif var == "LAYER": > + ret.append("%s = %s" % (var, rcpinfo.layer)) > + else: > + ret.append("%s = %s" % (var," > ".join((str(d.getVar(var)).split())))) > + ret.sort() > + for element in ret: > + f.write(element + "\n") > > write_latest_srcrev(d, pkghistdir) > > @@ -381,32 +392,55 @@ def write_pkghistory(pkginfo, d): > bb.utils.mkdirhier(pkgpath) > > infofile = os.path.join(pkgpath, "latest") > + export_package_variables = set(pkginfo.export_package_variables.split()) > + ret = [] > with open(infofile, "w") as f: > - if pkginfo.pe != "0": > - f.write(u"PE = %s\n" % pkginfo.pe) > - f.write(u"PV = %s\n" % pkginfo.pv) > - f.write(u"PR = %s\n" % pkginfo.pr) > - > - if pkginfo.pkg != pkginfo.name: > - f.write(u"PKG = %s\n" % pkginfo.pkg) > - if pkginfo.pkge != pkginfo.pe: > - f.write(u"PKGE = %s\n" % pkginfo.pkge) > - if pkginfo.pkgv != pkginfo.pv: > - f.write(u"PKGV = %s\n" % pkginfo.pkgv) > - if pkginfo.pkgr != pkginfo.pr: > - f.write(u"PKGR = %s\n" % pkginfo.pkgr) > - f.write(u"RPROVIDES = %s\n" % pkginfo.rprovides) > - f.write(u"RDEPENDS = %s\n" % pkginfo.rdepends) > - f.write(u"RRECOMMENDS = %s\n" % pkginfo.rrecommends) > - if pkginfo.rsuggests: > - f.write(u"RSUGGESTS = %s\n" % pkginfo.rsuggests) > - if pkginfo.rreplaces: > - f.write(u"RREPLACES = %s\n" % pkginfo.rreplaces) > - if pkginfo.rconflicts: > - f.write(u"RCONFLICTS = %s\n" % pkginfo.rconflicts) > - f.write(u"PKGSIZE = %d\n" % pkginfo.size) > - f.write(u"FILES = %s\n" % pkginfo.files) > - f.write(u"FILELIST = %s\n" % pkginfo.filelist) > + for var in export_package_variables: > + if var == "PE": > + if pkginfo.pe != "0": > + ret.append("%s = %s" % (var, pkginfo.pe)) > + elif var == "PV": > + ret.append("%s = %s" % (var, pkginfo.pv)) > + elif var == "PR": > + ret.append("%s = %s" % (var, pkginfo.pr)) > + elif var == "RPROVIDES": > + ret.append("%s = %s" % (var, pkginfo.rprovides)) > + elif var == "RDEPENDS": > + ret.append("%s = %s" % (var, pkginfo.rdepends)) > + elif var == "RRECOMMENDS": > + ret.append("%s = %s" % (var, pkginfo.rrecommends)) > + elif var == "PKGSIZE": > + ret.append("%s = %s" % (var, pkginfo.size)) > + elif var == "FILES": > + ret.append("%s = %s" % (var, pkginfo.files)) > + elif var == "FILELIST": > + ret.append("%s = %s" % (var, pkginfo.filelist)) > + elif var == "RSUGGESTS": > + if pkginfo.rsuggests: > + ret.append(u"RSUGGESTS = %s" % pkginfo.rsuggests) > + elif var == "RREPLACES": > + if pkginfo.rreplaces: > + ret.append(u"RREPLACES = %s" % pkginfo.rreplaces) > + elif var == "RCONFLICTS": > + if pkginfo.rconflicts: > + ret.append(u"RCONFLICTS = %s" % pkginfo.rconflicts) > + elif var == "PKG": > + if pkginfo.pkg != pkginfo.name: > + ret.append(u"PKG = %s" % pkginfo.pkg) > + elif var == "PKGE": > + if pkginfo.pkge != pkginfo.pe : > + ret.append(u"PKGE = %s" % pkginfo.pkge) > + elif var == "PKGV": > + if pkginfo.pkgv != pkginfo.pv: > + ret.append(u"PKGV = %s" % pkginfo.pkgv) > + elif var == "PKGR": > + if pkginfo.pkgr != pkginfo.pr: > + ret.append(u"PKGR = %s" % pkginfo.pkgr) > + else: > + ret.append("%s = %s" % (var, d.getVar(var))) > + ret.sort() > + for element in ret: > + f.write(element + "\n") > > for filevar in pkginfo.filevars: > filevarpath = os.path.join(pkgpath, "latest.%s" % filevar) > -- > 2.17.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#153993): https://lists.openembedded.org/g/openembedded-core/message/153993 Mute This Topic: https://lists.openembedded.org/mt/84305615/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-