Skip to content

external: drop the $Version floors from aptly GLOBs - #489

Merged
igorpecovnik merged 1 commit into
mainfrom
external/drop-glob-version-floors
Sep 20, 2026
Merged

igorpecovnik merged 1 commit into
mainfrom
external/drop-glob-version-floors

Conversation

@igorpecovnik

Copy link
Copy Markdown
Member

Blocked on armbian/armbian.github.io#463. Opened as a draft so it cannot merge first — merging this before that lands removes the only bound on how much each aptly source downloads. Ready to mark for review the moment #463 is in.

The $Version (>= …) clauses in these GLOBs exist to stop the aptly mirror fetching an upstream's entire back catalogue. armbian/armbian.github.io#463 makes the mirror filter pin every package to the exact newest version in the index, which bounds the download far more tightly than a floor can, so the floors become dead weight.

Every floor is redundant once #463 lands

Checked against the live index of each affected source, replicating pin_newest()'s guards (entries > names, names <= 500):

source versions in index distinct names pin
code 358 3 engages
edge 761 4 engages
zulu 2884 276 engages
firefox 305 289 engages
thunderbird 305 289 engages
google-chrome 5 5 declines
urbackup 1 1 declines
zoom 1 1 declines

The three that decline do so because the index already holds one version per name — there is nothing to pin, and equally nothing for a floor to exclude. So the floor is redundant in every case, not just the ones the pin covers.

A floor is also a static bound on a growing set. code >= 1.107.0 admits 53 of today's 358 versions and will admit more every month; that drift is why edge (>= 142.0.3595.94-1) and firefox (>= 146.0) are already well behind what they were written for. The pin admits exactly one, permanently, with no maintenance.

Kept deliberately

  • Every Name (% …) clause. The -filter-with-deps guard is [[ $GLOB != *Name* && $GLOB != *Version* ]], so a GLOB stripped down to nothing flips the mirror into dependency-closure mode — considerably larger than whatever the floor was excluding. Only the $Version clauses are removed.
  • zulu's $Version (< 22.0). That is an upper bound meaning "stay on Zulu 21", not a size limiter. Only its >= floor is dropped.

Note

fastfetch.conf is METHOD=gh, where GLOB is never read — its floor was already inert. Changed anyway so the remaining configs are uniform.

Unrelated, spotted while checking

unudhcpd.conf is METHOD=aptly with GLOB=unudhcpd — no Name, no Version — so it already runs with -filter-with-deps today. Pre-existing and untouched here, but it may not be intended.

DO NOT MERGE before armbian/armbian.github.io#463.

These floors exist to stop the aptly mirror fetching an upstream's whole
back catalogue. #463 makes the mirror filter pin each package to the exact
newest version in the index, which bounds the download far more tightly
than any floor, so the floors become dead weight.

Checked against the live index of every affected source, replicating
pin_newest()'s logic (entries > names, names <= 500):

  code             358 versions /   3 names   pin engages
  edge             761 versions /   4 names   pin engages
  zulu            2884 versions / 276 names   pin engages
  firefox          305 versions / 289 names   pin engages
  thunderbird      305 versions / 289 names   pin engages
  google-chrome      5 versions /   5 names   declines
  urbackup           1 version  /   1 name    declines
  zoom               1 version  /   1 name    declines

The three that decline do so because the index already holds one version
per name -- nothing to pin, and nothing for a floor to exclude either. So
the floor is redundant in every case.

A floor is also a static bound on a growing set: "code >= 1.107.0" admits
53 of today's 358 versions and will admit more every month, which is why
edge (>= 142.0.3595.94-1) and firefox (>= 146.0) have already drifted well
behind. The pin admits exactly one, permanently.

Kept deliberately:

  - Every "Name (% ...)" clause. The -filter-with-deps guard is
    [[ $GLOB != *Name* && $GLOB != *Version* ]], so a GLOB stripped to
    nothing flips the mirror into dependency-closure mode, which is much
    larger than what was removed.
  - zulu's "$Version (< 22.0)". That is an upper bound meaning "stay on
    Zulu 21", not a size limiter. Only the >= floor is dropped.

fastfetch.conf is METHOD=gh, where GLOB is never read -- its floor was
already inert. Changed anyway so the remaining configs are uniform.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
@igorpecovnik
igorpecovnik marked this pull request as ready for review September 20, 2026 04:05
@igorpecovnik
igorpecovnik merged commit d607289 into main Sep 20, 2026
16 checks passed
@igorpecovnik
igorpecovnik deleted the external/drop-glob-version-floors branch September 20, 2026 04:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant