packages: parse_pkgbuild(): handle split packages properly
This commit is contained in:
parent
ad966d6616
commit
98140565ef
1 changed files with 7 additions and 11 deletions
|
@ -236,14 +236,12 @@ def parse_pkgbuild(relative_pkg_dir: str, _config: Optional[ConfigStateHolder] =
|
||||||
splits = line.split(' = ')
|
splits = line.split(' = ')
|
||||||
if line.startswith('pkgbase'):
|
if line.startswith('pkgbase'):
|
||||||
base_package.name = splits[1]
|
base_package.name = splits[1]
|
||||||
multi_pkgs = True
|
|
||||||
elif line.startswith('pkgname'):
|
elif line.startswith('pkgname'):
|
||||||
if multi_pkgs:
|
|
||||||
current = SubPkgbuild(splits[1], base_package)
|
current = SubPkgbuild(splits[1], base_package)
|
||||||
assert isinstance(base_package.subpackages, list)
|
assert isinstance(base_package.subpackages, list)
|
||||||
base_package.subpackages.append(current)
|
base_package.subpackages.append(current)
|
||||||
else:
|
if current.name != base_package.name:
|
||||||
current.name = splits[1]
|
multi_pkgs = True
|
||||||
elif line.startswith('pkgver'):
|
elif line.startswith('pkgver'):
|
||||||
current.pkgver = splits[1]
|
current.pkgver = splits[1]
|
||||||
elif line.startswith('pkgrel'):
|
elif line.startswith('pkgrel'):
|
||||||
|
@ -258,12 +256,10 @@ def parse_pkgbuild(relative_pkg_dir: str, _config: Optional[ConfigStateHolder] =
|
||||||
current.depends.append(splits[1].split('=')[0].split(': ')[0])
|
current.depends.append(splits[1].split('=')[0].split(': ')[0])
|
||||||
|
|
||||||
results: list[Pkgbuild] = list(base_package.subpackages)
|
results: list[Pkgbuild] = list(base_package.subpackages)
|
||||||
if len(results) > 1:
|
if multi_pkgs:
|
||||||
logging.debug(f" Split package detected: {base_package.name}: {results}")
|
logging.debug(f" Split package detected: {base_package.name}: {results}")
|
||||||
base_package.update_version()
|
|
||||||
else:
|
|
||||||
results = [base_package]
|
|
||||||
|
|
||||||
|
base_package.update_version()
|
||||||
for pkg in results:
|
for pkg in results:
|
||||||
assert isinstance(pkg, Pkgbuild)
|
assert isinstance(pkg, Pkgbuild)
|
||||||
pkg.depends = list(set(pkg.depends)) # deduplicate dependencies
|
pkg.depends = list(set(pkg.depends)) # deduplicate dependencies
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue