If you want to go back and get history for the earlier releases (krogoth
and previous) then we need to be able to support both python 2 and 3,
which practically means we need the same split for this script as we
have for the main layer index update script.
The catch here is that since we are going back and following the history
of changes forward, we basically need to use the same version of bitbake
that was current at that time. This works except for around the
transition between python 2 to 3 where the metadata lagged behind a bit,
so we need to take that into account. In order to keep things generic we
have a date field on the maintenance plan layer branch that specifies
the date in the metadata where we should switch over to python 3, and
then link to PythonEnvironment records that should be used for python 2
and 3 respectively.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
With Django 1.10+, if you use get_template() to retrieve a template,
then you can't pass a context when calling .render() on it, you need to
pass a dict instead.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
* Use maintenance plans to get layerbranches
* Use from/to/subject and admin contact from maintenance plan
* Use an actual template to render the email (and drop tabulate
dependency)
* Improve grammar in the email text
* Use a single line to represent the most recent commit
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This function is no longer needed - we now rely upon the layer index's
code to do this (update through the update script, and checkout through
setup_layer()).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Remove hardcoded references to the poky repository, and process
layerbranches for all enabled maintenance plans.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Without this it's not clear what's happening if debug mode is enabled
and you are waiting for the parsing step.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
If the Recipe object doesn't exist here then an exception will be raised
rather than None being returned, and this will also trigger if multiple
recipes match. This may have never triggered in the past because this
would have been run right after updating all the recipes in the layer and
clearing out duplicates (which we were doing earlier), and thus what is
in the database would match the recipe files in the repository, assuming
no errors occurred during parsing). We can't remove duplicates though so
we need to switch over to using filter() and taking the first recipe.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Remove hardcoded references to the poky repository, and process
layerbranches for all enabled maintenance plans.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This is never going to work, the only way we can practically do parallel
execution is to run these things in a task which would basically amount
to distrodata's do_checkpkg; we may move to that in future but for now
just drop the threading code.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Instead of hardcoded references to the poky repository, look for any
maintainers.inc file in layers associated with the layerbranches for all
enabled maintenance plans. At present few layers have this file, but at
least it will now work generically in any layer index instance.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Instead of processing all layerbranches, only process those associated
with an enabled maintenance plan. This is one step towards being able to
use the RRS together with a more general layer index database.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
We don't need to create branches here, and we don't need to actually
check anything out unless we're going to parse, so we can save a bit of
time by not doing so.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Add the ability to run the scripts without writing changes back to the
database, for debugging purposes.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
We can't just delete arbitrary recipes that do exist in the layer if
we're in a general layer index database. We'll need to handle this in a
different way, or just live with the fact that there will be duplicate
entries.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Due to bitbake client/server changes now the meta path isn't included
to sys.path when load tinfoil.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
This are causing a failure when access the remote datastore.
File "rrs/rrs/tools/rrs_upstream_history.py", line 169, in <module>
set_regexes(recipe_data)
File "rrs/rrs/tools/rrs_upstream_history.py", line 53, in set_regexes
if any(d.getVar(var, True) for var in variables):
File "rrs/rrs/tools/rrs_upstream_history.py", line 53, in <genexpr>
if any(d.getVar(var, True) for var in variables):
File "/srv/rrs/layers/bitbake/lib/bb/data_smart.py", line 608, in
getVar
return self.getVarFlag(var, "_content", expand, noweakdefault,
parsing)
File "/srv/rrs/layers/bitbake/lib/bb/data_smart.py", line 723, in
getVarFlag
local_var, overridedata = self._findVar(var)
File "/srv/rrs/layers/bitbake/lib/bb/data_smart.py", line 480, in
_findVar
return connector.getVar(var)
File "/srv/rrs/layers/bitbake/lib/bb/tinfoil.py", line 62, in getVar
value = self.tinfoil.run_command('dataStoreConnectorFindVar',
self.dsindex, name)
File "/srv/rrs/layers/bitbake/lib/bb/tinfoil.py", line 316, in
run_command
raise TinfoilCommandFailed(result[1])
bb.tinfoil.TinfoilCommandFailed: Traceback (most recent call last):
File "/srv/rrs/layers/bitbake/lib/bb/command.py", line 81, in
runCommand
result = command_method(self, commandline)
File "/srv/rrs/layers/bitbake/lib/bb/command.py", line 465, in
dataStoreConnectorFindVar
datastore = command.remotedatastores[dsindex]
File "/srv/rrs/layers/bitbake/lib/bb/remotedata.py", line 39, in
__getitem__
return self.datastores[key]
TypeError: unhashable type: 'list'
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
The new tinfoil API acts as a client/server so isn't need to work
around creating process to avoid errors in cooker with different
data revisions.
Also add a try/except when create an upgrade display the error.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
The new client/server API of tinfoil requires explicit call of
shutdown method to send the event for finalize cooker process.
[YOCTO #10863]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Django 1.6 provides a context manager for atomic transactions so
update the way for make db transactions.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Due to multi-configuration builds in bitbake now is needed
to use a tinfoil cache instance instead of call directly in
bb.cache.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Now create_distro_packages_list requires d to be passed, this change was
done to enable proxy support into create_distro_packages_list function.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
instead of deprecated upstream tracking file.
Since upstream_tracking.inc file is deprecated because now every recipe
has it's own upstream information then update email message according it.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
The status email sent to the Yocto Project mailing
list by the Recipe Reporting Tool still shows the
old URL (http://packages.yoctoproject.org).
This patch changes it to the new URL:
http://recipes.yoctoproject.org
Signed-off-by: Belen Barros Pena <belen.barros.pena@linux.intel.com>
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Make difference when handling suffixes or preffixes like 'nativesdk-'
when try to use regexes in packages that have suffixes like '-crosssdk'
it can contain the arch into it like binutils-crosssdk-x86_64.
Use split method in suffixes and replace method into preffixes, this
fixes issues with suffixes containing archs at end.
[YOCTO #8102]
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
When SPECIAL_PKGSUFFIX packages don't have regexes use it from package
without SPECIAL_PKGSUFFIX.
[YOCTO #8102]
For example: python-native use regex from python if don't have one.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Don't load all recipes avaiable in layer because was previous
filtered to have the last version.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
without versioning.
Don't detect upgrade in git recipes that don't have versioning only
PV=git.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
When add new recipes sometimes don't have maintainer defined causing
errors on frontend when search for one.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
bb.cache.Cache.loadDatafull() expects an filepath in asciii, if not
is provided it fails with character mapping error.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Tinfoil shutdown was not accepted as patch into bitbake because
this is a simple solution to a big problem.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Don't remove native, cross, crossinitial and sdk recipes now only
keep major version of recipe based by pn.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
When runs recipe parse with different revisions in same process it
generates errors due to cooker parser uses global data cache's.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Import of FetchError when try to expand PV somethings requires to have
SRCREV/SRCPV causing an FetcherError.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Copied get_recipe_pv_without_srcpv from oe-core/recipeutils library
to avoid import errors caused by have imported twice oe-core from poky
and from tinfoil.
rrs/tools/rrs_upgrade_history.py: Update to use get_recipe_pv_without_srcpv
from common.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>