mirror of
https://gitlab.com/kupfer/kupferbootstrap.git
synced 2025-02-23 05:35:44 -05:00
packages/pkgbuild: parse_pkgbuild(): inherit depends, makedepends, provides, replaces from pkgbase unless overriden
This commit is contained in:
parent
a75f32b4b1
commit
c074fbe42c
1 changed files with 22 additions and 2 deletions
|
@ -310,8 +310,11 @@ class SubPkgbuild(Pkgbuild):
|
|||
self.sources_refreshed = False
|
||||
self.update(pkgbase)
|
||||
|
||||
self.provides = {}
|
||||
self.replaces = []
|
||||
# set to None - will be replaced with base_pkg if still None after parsing
|
||||
self.depends = None # type: ignore[assignment]
|
||||
self.makedepends = None # type: ignore[assignment]
|
||||
self.provides = None # type: ignore[assignment]
|
||||
self.replaces = None # type: ignore[assignment]
|
||||
|
||||
def refresh_sources(self, lazy: bool = True):
|
||||
assert self.pkgbase
|
||||
|
@ -383,13 +386,21 @@ def parse_pkgbuild(
|
|||
elif line.startswith('arch'):
|
||||
current.arches.append(splits[1])
|
||||
elif line.startswith('provides'):
|
||||
if not current.provides:
|
||||
current.provides = {}
|
||||
current.provides = get_version_specs(splits[1], current.provides)
|
||||
elif line.startswith('replaces'):
|
||||
if not current.replaces:
|
||||
current.replaces = []
|
||||
current.replaces.append(splits[1])
|
||||
elif splits[0] in ['depends', 'makedepends', 'checkdepends', 'optdepends']:
|
||||
spec = splits[1].split(': ', 1)[0]
|
||||
if not current.depends:
|
||||
current.depends = {}
|
||||
current.depends = get_version_specs(spec, current.depends)
|
||||
if splits[0] == 'makedepends':
|
||||
if not current.makedepends:
|
||||
current.makedepends = {}
|
||||
current.makedepends = get_version_specs(spec, current.makedepends)
|
||||
|
||||
results: list[Pkgbuild] = list(base_package.subpackages)
|
||||
|
@ -402,6 +413,15 @@ def parse_pkgbuild(
|
|||
pkg.update_version()
|
||||
if not (pkg.version == base_package.version):
|
||||
raise Exception(f'Subpackage malformed! Versions differ! base: {base_package}, subpackage: {pkg}')
|
||||
if isinstance(pkg, SubPkgbuild):
|
||||
if pkg.depends is None:
|
||||
pkg.depends = base_package.depends
|
||||
if pkg.makedepends is None:
|
||||
pkg.makedepends = base_package.makedepends
|
||||
if pkg.replaces is None:
|
||||
pkg.replaces = base_package.replaces
|
||||
if pkg.provides is None:
|
||||
pkg.provides = base_package.provides
|
||||
return results
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue