Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • postmarketOS/pmbootstrap
  • fossdd/pmbootstrap
  • Adrian/pmbootstrap
  • JustSoup321/pmbootstrap
  • longnoserob/pmbootstrap
  • sixthkrum/pmbootstrap
  • ollieparanoid/pmbootstrap
  • magdesign/pmbootstrap
  • anjandev/pmbootstrap
  • HenriDellal/pmbootstrap
  • Minecrell/pmbootstrap
  • chipiguay/pmbootstrap
  • ijiki16/pmbootstrap
  • whynothugo/pmbootstrap
  • amessier/pmbootstrap
  • Eisenbahnfan/pmbootstrap
  • user0-07161/pmbootstrap
  • SzczurekYT/pmbootstrap
  • neuschaefer/pmbootstrap
  • knuxify/pmbootstrap
  • Frieder.Hannenheim/pmbootstrap
21 results
Show changes
Commits on Source (6)
......@@ -28,7 +28,7 @@ def read_signature_info(tar):
:returns: (sigfilename, sigkey_path)
"""
# Get signature filename and key
prefix = "sbin/apk.static.SIGN.RSA."
prefix = "sbin/apk.static.SIGN.RSA.sha256."
sigfilename = None
for filename in tar.getnames():
if filename.startswith(prefix):
......@@ -88,7 +88,7 @@ def verify_signature(files, sigkey_path):
[
"openssl",
"dgst",
"-sha1",
"-sha256",
"-verify",
sigkey_path,
"-signature",
......
......@@ -117,6 +117,11 @@ def init(chroot: Chroot, usr_merge=UsrMerge.AUTO):
# When already initialized: just prepare the chroot
arch = chroot.arch
# We plan to ship systemd with split /usr until the /usr merge is complete
# in Alpine. Let's not drop all our code yet but just forcefully disable
# it.
usr_merge = UsrMerge.OFF
config = get_context().config
# If the channel is wrong and the user has auto_zap_misconfigured_chroots
......
......@@ -238,6 +238,9 @@ apkbuild_package_attributes = {
# additional configuration options in "pmbootstrap init" that allow
# selecting alternative providers for a virtual APK package.
"_pmb_select": {"array": True},
# postmarketos-base and UI meta-packages can define the default package
# to select during "_pmb_select".
"_pmb_default": {"array": True},
}
# Variables in APKBUILD files that get parsed
......
......@@ -281,7 +281,7 @@ def ask_for_provider_select(apkbuild, providers_cfg) -> None:
providers. Updated with new providers after selection
"""
for select in apkbuild["_pmb_select"]:
providers = pmb.helpers.pmaports.find_providers(select)
providers = pmb.helpers.pmaports.find_providers(select, apkbuild["_pmb_default"])
logging.info(f"Available providers for {select} ({len(providers)}):")
has_default = False
......
......@@ -248,12 +248,13 @@ def get(pkgname, must_exist=True, subpackages=True, skip_extra_repos=False) -> d
return get_with_path(pkgname, must_exist, subpackages, skip_extra_repos)[1]
def find_providers(provide):
def find_providers(provide: str, default: list[str]) -> list[tuple[Any, Any]]:
"""Search for providers of the specified (virtual) package in pmaports.
Note: Currently only providers from a single APKBUILD are returned.
:param provide: the (virtual) package to search providers for
:param default: the _pmb_default to look through for defaults
:returns: tuple list (pkgname, apkbuild_pkg) with providers, sorted by
provider_priority. The provider with the highest priority
(which would be selected by default) comes first.
......@@ -266,6 +267,8 @@ def find_providers(provide):
for provides in subpkg["provides"]:
# Strip provides version (=$pkgver-r$pkgrel)
if provides.split("=", 1)[0] == provide:
if subpkgname in default:
subpkg["provider_priority"] = 999999
providers[subpkgname] = subpkg
return sorted(providers.items(), reverse=True, key=lambda p: p[1].get("provider_priority", 0))
......
......@@ -1168,6 +1168,12 @@ def get_selected_providers(args: PmbArgs, packages):
if select in get_context().config.providers:
ret += [get_context().config.providers[select]]
logging.verbose(f"{package}: install selected_providers:" f" {', '.join(ret)}")
else:
for default in apkbuild["_pmb_default"]:
# default: e.g. "postmarketos-base-ui-audio-pipewire"
# select: e.g. "postmarketos-base-ui-audio"
if default.startswith(f"{select}-"):
ret += [default]
# Also iterate through dependencies to collect any providers they have
depends = apkbuild["depends"]
if depends:
......