- Joined
- Mar 8, 2019
- Messages
- 13
- Reaction score
- 2
Hi,
we ran into a packaging inconsistency that indicates the Debian repository used by 3CX PhoneSystem VMs (repo.3cx.com/debian/2009, bookworm) is not maintained as a verbatim mirror of the upstream Debian archive, but through some form of selective, per-package curation — and that curation appears to have missed grub-pc. This can silently remove GRUB's bootloader-management package on any system that applies routine grub2 security updates via unattended-upgrades or manual apt upgrade.
Observed via apt-cache madison:
This can't happen with a real 1:1 archive mirror: grub-common, grub-pc-bin, grub2-common and grub-pc are all built from the same grub2 source package in a single upload, so a genuine mirror would carry all four at identical version numbers. The fact that three of them reached +deb12u2 while grub-pc is stuck at the bare 2.06-13 (not even +deb12u1) points to an incompletely curated package selection on the 3CX side, rather than a straightforward sync failure.
Impact: grub-pc declares an exact-version dependency on its siblings (Depends: grub-common (= X), grub-pc-bin (= X), grub2-common (= X)). The moment those three get security-patched to u2, grub-pc's dependency becomes unsatisfiable, and apt's resolver silently removes grub-pc entirely to keep the system consistent — even with a plain apt-get install --only-upgrade limited to the three sibling packages. On a system where unattended-upgrades applies this automatically, grub-pc (and with it, the package-managed hook that re-runs grub-install on future kernel/grub updates) disappears without any explicit warning in typical automated update logs.
We worked around it locally by fetching the matching grub-pc_2.06-13+deb12u2_amd64.deb directly from the official Debian archive and installing it manually — but that's a one-off patch, not a fix for the mirror itself, and it'll recur at the next point release unless the mirror carries a matching grub-pc alongside its siblings.
Ask: Could someone from 3CX ops please make sure grub-pc gets mirrored/curated at the same patch level as grub-common/grub-pc-bin/grub2-common in repo.3cx.com, ideally in both main and debian-security, so future point releases don't hit the same dependency break?
Happy to provide more detail if useful.
we ran into a packaging inconsistency that indicates the Debian repository used by 3CX PhoneSystem VMs (repo.3cx.com/debian/2009, bookworm) is not maintained as a verbatim mirror of the upstream Debian archive, but through some form of selective, per-package curation — and that curation appears to have missed grub-pc. This can silently remove GRUB's bootloader-management package on any system that applies routine grub2 security updates via unattended-upgrades or manual apt upgrade.
Observed via apt-cache madison:
grub-common | 2.06-13+deb12u2 | repo.3cx.com/debian/2009 bookworm/maingrub-common | 2.06-13+deb12u1 | repo.3cx.com/debian/2009 bookworm/maingrub-common | 2.06-13+deb12u1 | repo.3cx.com/debian-security/2009 bookworm-security/maingrub-common | 2.06-13 | repo.3cx.com/debian/2009 bookworm/maingrub-pc-bin | 2.06-13+deb12u2 | repo.3cx.com/debian/2009 bookworm/maingrub-pc-bin | 2.06-13+deb12u1 | repo.3cx.com/debian/2009 bookworm/maingrub-pc-bin | 2.06-13+deb12u1 | repo.3cx.com/debian-security/2009 bookworm-security/maingrub-pc-bin | 2.06-13 | repo.3cx.com/debian/2009 bookworm/maingrub2-common | 2.06-13+deb12u2 | repo.3cx.com/debian/2009 bookworm/maingrub2-common | 2.06-13+deb12u1 | repo.3cx.com/debian/2009 bookworm/maingrub2-common | 2.06-13+deb12u1 | repo.3cx.com/debian-security/2009 bookworm-security/maingrub2-common | 2.06-13 | repo.3cx.com/debian/2009 bookworm/maingrub-pc | 2.06-13 | repo.3cx.com/debian/2009 bookworm/mainThis can't happen with a real 1:1 archive mirror: grub-common, grub-pc-bin, grub2-common and grub-pc are all built from the same grub2 source package in a single upload, so a genuine mirror would carry all four at identical version numbers. The fact that three of them reached +deb12u2 while grub-pc is stuck at the bare 2.06-13 (not even +deb12u1) points to an incompletely curated package selection on the 3CX side, rather than a straightforward sync failure.
Impact: grub-pc declares an exact-version dependency on its siblings (Depends: grub-common (= X), grub-pc-bin (= X), grub2-common (= X)). The moment those three get security-patched to u2, grub-pc's dependency becomes unsatisfiable, and apt's resolver silently removes grub-pc entirely to keep the system consistent — even with a plain apt-get install --only-upgrade limited to the three sibling packages. On a system where unattended-upgrades applies this automatically, grub-pc (and with it, the package-managed hook that re-runs grub-install on future kernel/grub updates) disappears without any explicit warning in typical automated update logs.
We worked around it locally by fetching the matching grub-pc_2.06-13+deb12u2_amd64.deb directly from the official Debian archive and installing it manually — but that's a one-off patch, not a fix for the mirror itself, and it'll recur at the next point release unless the mirror carries a matching grub-pc alongside its siblings.
Ask: Could someone from 3CX ops please make sure grub-pc gets mirrored/curated at the same patch level as grub-common/grub-pc-bin/grub2-common in repo.3cx.com, ideally in both main and debian-security, so future point releases don't hit the same dependency break?
Happy to provide more detail if useful.