The new APT 3.0 solver
Libc / glibc versioning and binary compatibility
- Many comments focus on why binaries often break on older systems:
- glibc uses symbol versioning; building on a newer distro can pull in newer symbols that don’t exist on old systems.
- Toolchains default to linking against the latest glibc and headers; targeting older versions is possible but awkward (cross-toolchains, chroot, Docker, Zig, etc.).
- Some argue this hurts Linux desktop adoption vs. Windows, where old binaries tend to keep working.
- Workarounds discussed:
- Cross-compiling against an older glibc with tools like crosstool-ng.
- Custom “glibc compatibility” shims and polyfill tools.
- Building against musl and patching binaries.
- Zig (and cargo-zigbuild) as an easier way to target old glibc.
Static linking, containers, and deployment models
- Debate over static linking vs. dynamic linking + Docker/containers:
- Pro-static: simpler deployment, fewer env issues; “wasteful” duplication considered acceptable given storage sizes.
- Anti-static: duplication of runtimes seen as inelegant; shared libraries and package managers (apt, etc.) are considered better by others.
- Some see containers as an embarrassing workaround for dependency hell; others view them as a legitimate, lightweight alternative to VMs.
- Flatpak, NixOS, Guix, and “functional package management” are praised for reproducibility and isolation.
APT solver3 behavior and dependency-solving design
- New solver always preserves manually installed packages (“world”) and backtracks like a DPLL SAT solver.
- Some like the “never auto-remove manual packages” behavior as intuitive.
- Others note it can block upgrades when old manually installed packages conflict; preference for explicit prompts/suggestions instead.
- There is interest in deterministic, testable solvers; some criticize traditional install-time resolution as inherently hard to test.
- Comparisons drawn to libsolv-based systems and newer SAT/PubGrub-based resolvers in other ecosystems.
System maintenance, upgrades, and configuration
- Strong split between:
- Rebuilding systems on major releases (fresh installs, /home separate, /etc in version control).
- Long-lived in-place upgrades (Debian users citing decades of stable upgrades).
- Tools like etckeeper, “world”/manual package lists, rpm-ostree status, and
apt-mark showmanualare highlighted for tracking intent and cleaning old dependencies.
Other themes
- Desire for first-class multi-version library support instead of ad-hoc package renames.
- Confusion from non-Debian readers about “APT” vs. “GPT.”
- Brief controversy referenced about distro maintainers changing app defaults (e.g., KeePassXC variants), raising concerns about breaking user setups.