RecipeUpstreamHistory was not linked to the layer it was produced from,
which meant that it wasn't easy to query for a different maintenance
plan (i.e. a different layer) and thus the maintenance plan selection
on the recipe list didn't really work. Add a link field, populate it in
a migration and then make it required.
We had added a link earlier from RecipeMaintainerHistory to LayerBranch
but it was optional; for the same reasons we now populate it and make it
required.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Add an option to specify which maintenance plan to operate on (largely
for debugging purposes).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
load_recipes() was leaving files around in /tmp; on my Fedora system
this eventually resulted in /tmp running out of space which we do not
want.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
We check out different revisions while we do this processing, and so
does the layer index update script, so we shouldn't be allowing both to
run at once or nasty stuff will happen.
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>
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>
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 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>
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>
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>