Skip to content
Snippets Groups Projects

pmbootstrap aportgen: don't use CDN alpine mirror

Merged Imported Administrator requested to merge aportgen-no-cdn into master
All threads resolved!

Use a deterministic mirror URL instead of CDN for aportgen. Otherwise we may generate a pmaport that wraps an apk from Alpine (e.g. musl-armv7) locally with one up-to-date mirror given by the CDN. But then the build will fail if CDN picks an outdated mirror for CI or BPO.

CI will fail due to 32-bit repos on edge being rebuilt. Creating this MR for reference, as I'm updating the pmaports with this change. We can run CI again and get it reviewed / merged after the rebuild.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Administrator added type::feature label · Imported

    added type::feature label

  • Administrator mentioned in commit pmaports@3a8cddc2 · Imported

    mentioned in commit pmaports@3a8cddc2

    By Oliver Smith on 2020-07-22T13:59:51

  • Administrator mentioned in commit pmaports@1915c4ec · Imported

    mentioned in commit pmaports@1915c4ec

    By Oliver Smith on 2020-07-29T10:58:51

  • Administrator added 11 commits · Imported

    added 11 commits

    Compare with previous version

    By Oliver Smith on 2020-08-31T11:36:38

  • Administrator resolved all threads · Imported

    resolved all threads

    By Oliver Smith on 2020-08-31T11:36:49

  • Administrator approved this merge request · Imported

    approved this merge request

    By Luca Weiss on 2020-09-16T19:37:32

  • Author Owner

    I'm not aware of structure of alpine mirrors, is dl-2 the mirror that gets updates first and is always updated?

    Or is it used here only because CI/BPO uses it now, too?

    By Alexey Min on 2020-09-16T19:50:25

  • Author Owner

    It is not necessarily updated first. The important thing is, that we have a "standard" mirror that the pmOS infrastructure is using everywhere, so package builds will not fail because of mirror inconsistencies.

    Example for the musl package, which we repackage as cross/musl-aarch64 etc:

    • Alpine pushes a new musl version
    • monitoring fetches APKINDEX from the mirrors and alerts about pmOS cross/musl-* packages being outdated
    • pmbootstrap aportgen and pmbootstrap build fetch the new package from the mirror specified in the generated APKBUILD
    • the package gets pushed to pmaports.git (usually directly without MR, because this is so trivial)
    • pmaports.git CI builds musl-aarch64, which downloads the musl apk from alpine mirrors
    • bpo instructs sourcehut builds to build musl-aarch64, which downloads the musl apk from alpine mirrors

    So the package is downloaded from various places in short succession after the package was updated. Not all mirrors may have the new APKINDEX and package available yet, and so this may fail to build on bpo for example if CDN is used as mirror and the region specific mirror behind the CDN that would be used by the sourcehut servers located in Philadelphia may not have received the updated package yet.

    By Oliver Smith on 2020-09-17T10:28:08

    Edited by Administrator
  • Administrator approved this merge request · Imported

    approved this merge request

    By Alexey Min on 2020-09-17T23:12:10

  • Administrator added 7 commits · Imported

    added 7 commits

    Compare with previous version

    By Alexey Min on 2020-09-18T00:20:12

  • Administrator enabled an automatic merge when the pipeline for 5b55abd4 succeeds · Imported

    enabled an automatic merge when the pipeline for 5b55abd4 succeeds

    By Alexey Min on 2020-09-18T00:21:32

  • Administrator merged · Imported

    merged

Please register or sign in to reply
Loading