mirror of
ssh://git.janware.com/janware/proj/jw-pkg
synced 2026-04-24 17:23:36 +02:00
cmds.projects.CmdRequiredOsPkg: Select devel with release
The output of jw.pkg.py projects required-os-pkg --flavours release should include all packages required by flavour devel, because during the release process, -devel and -run packages are both installed, and installing the -devel package is only possible if its dependencies are installed. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
d97cf111da
commit
2e1115e722
1 changed files with 7 additions and 5 deletions
|
|
@ -25,10 +25,12 @@ class CmdRequiredOsPkg(Cmd): # export
|
||||||
|
|
||||||
async def _run(self, args: Namespace) -> None:
|
async def _run(self, args: Namespace) -> None:
|
||||||
modules = args.module
|
modules = args.module
|
||||||
flavours = args.flavours.split()
|
flavours = set(args.flavours.split())
|
||||||
if 'build' in flavours and not 'run' in flavours:
|
if 'build' in flavours:
|
||||||
# TODO: This adds too much. Only the run dependencies of the build dependencies would be needed.
|
# TODO: This adds too much. Only the run dependencies of the build dependencies would be needed.
|
||||||
flavours.append('run')
|
flavours.add('run')
|
||||||
|
if 'release' in flavours:
|
||||||
|
flavours |= set(['run', 'devel', 'build'])
|
||||||
log(DEBUG, "flavours = " + args.flavours)
|
log(DEBUG, "flavours = " + args.flavours)
|
||||||
deps = self.app.get_project_refs(modules, ['pkg.requires.jw'], flavours,
|
deps = self.app.get_project_refs(modules, ['pkg.requires.jw'], flavours,
|
||||||
scope = Scope.Subtree, add_self=True, names_only=True)
|
scope = Scope.Subtree, add_self=True, names_only=True)
|
||||||
|
|
@ -38,12 +40,12 @@ class CmdRequiredOsPkg(Cmd): # export
|
||||||
deps.remove(d)
|
deps.remove(d)
|
||||||
subsecs = self.app.os_cascade()
|
subsecs = self.app.os_cascade()
|
||||||
log(DEBUG, "subsecs = ", subsecs)
|
log(DEBUG, "subsecs = ", subsecs)
|
||||||
requires = []
|
requires: set[str] = set()
|
||||||
for sec in subsecs:
|
for sec in subsecs:
|
||||||
for flavour in flavours:
|
for flavour in flavours:
|
||||||
vals = self.app.get_values(deps, ['pkg.requires.' + sec], [flavour])
|
vals = self.app.get_values(deps, ['pkg.requires.' + sec], [flavour])
|
||||||
if vals:
|
if vals:
|
||||||
requires = requires + vals
|
requires |= set(vals)
|
||||||
if args.quote:
|
if args.quote:
|
||||||
requires = [f'"{dep}"' for dep in requires]
|
requires = [f'"{dep}"' for dep in requires]
|
||||||
# TODO: add all not in build tree as -devel
|
# TODO: add all not in build tree as -devel
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue