mirror of
https://gitlab.com/kupfer/kupferbootstrap.git
synced 2025-02-22 21:25:43 -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.sources_refreshed = False
|
||||||
self.update(pkgbase)
|
self.update(pkgbase)
|
||||||
|
|
||||||
self.provides = {}
|
# set to None - will be replaced with base_pkg if still None after parsing
|
||||||
self.replaces = []
|
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):
|
def refresh_sources(self, lazy: bool = True):
|
||||||
assert self.pkgbase
|
assert self.pkgbase
|
||||||
|
@ -383,13 +386,21 @@ def parse_pkgbuild(
|
||||||
elif line.startswith('arch'):
|
elif line.startswith('arch'):
|
||||||
current.arches.append(splits[1])
|
current.arches.append(splits[1])
|
||||||
elif line.startswith('provides'):
|
elif line.startswith('provides'):
|
||||||
|
if not current.provides:
|
||||||
|
current.provides = {}
|
||||||
current.provides = get_version_specs(splits[1], current.provides)
|
current.provides = get_version_specs(splits[1], current.provides)
|
||||||
elif line.startswith('replaces'):
|
elif line.startswith('replaces'):
|
||||||
|
if not current.replaces:
|
||||||
|
current.replaces = []
|
||||||
current.replaces.append(splits[1])
|
current.replaces.append(splits[1])
|
||||||
elif splits[0] in ['depends', 'makedepends', 'checkdepends', 'optdepends']:
|
elif splits[0] in ['depends', 'makedepends', 'checkdepends', 'optdepends']:
|
||||||
spec = splits[1].split(': ', 1)[0]
|
spec = splits[1].split(': ', 1)[0]
|
||||||
|
if not current.depends:
|
||||||
|
current.depends = {}
|
||||||
current.depends = get_version_specs(spec, current.depends)
|
current.depends = get_version_specs(spec, current.depends)
|
||||||
if splits[0] == 'makedepends':
|
if splits[0] == 'makedepends':
|
||||||
|
if not current.makedepends:
|
||||||
|
current.makedepends = {}
|
||||||
current.makedepends = get_version_specs(spec, current.makedepends)
|
current.makedepends = get_version_specs(spec, current.makedepends)
|
||||||
|
|
||||||
results: list[Pkgbuild] = list(base_package.subpackages)
|
results: list[Pkgbuild] = list(base_package.subpackages)
|
||||||
|
@ -402,6 +413,15 @@ def parse_pkgbuild(
|
||||||
pkg.update_version()
|
pkg.update_version()
|
||||||
if not (pkg.version == base_package.version):
|
if not (pkg.version == base_package.version):
|
||||||
raise Exception(f'Subpackage malformed! Versions differ! base: {base_package}, subpackage: {pkg}')
|
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
|
return results
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue