Fedora change aims for 99% package reproducibility

Package ecosystems and security models

  • Thread contrasts “curated” Linux distros with ecosystems like npm/PyPI/crates.io and VS Code extensions that accept whatever maintainers publish.
  • Some argue mobile app stores are heavily vetted with significant automated and human review; others say vetting is mostly superficial, pointing to frequent malware and business‑driven review priorities.
  • Windows/macOS are cited as examples where unsigned software triggers scary warnings and certificate revocation is the main control, analogous to Flatpak’s model on Linux.

Security vs convenience and distro philosophies

  • Several comments lament that “frictionless” developer experience and language‑specific package managers encouraged sloppier security practices (typosquatting, unvetted dependencies).
  • Others frame this as a long‑standing tradeoff: most systems started from convenience, and security has been bolted on later.
  • There’s debate whether distros are too slow and conservative (lagging upstream, old versions) or justifiably cautious to avoid breakage.
  • Some users circumvent distro packaging entirely with language ecosystems, curl | bash installers, or separate managers (nix, brew, etc.), which others find unmaintainable.

Nix, other distros, and reproducibility

  • Nix is frequently raised as a “gold standard” for declarative, reproducible systems, but others note:
    • Its notion of reproducibility (pure derivations, time‑travel builds) differs from bit‑for‑bit RPM/DEB reproducibility.
    • It is complex, hard to adopt for non‑enthusiasts, and culturally contentious; some describe governance and community “culture war” issues.
    • Traditional distros already use sandboxed builds (e.g., mock), so Nix isn’t uniquely preventing unspecified inputs.
  • Debian, Arch, and openSUSE are cited as having substantial reproducible‑build efforts; some argue Debian, not Nix, spearheaded the broader movement.

Fedora’s 99% goal and its value

  • Some see “99% reproducible packages” as a marketing OKR and argue a principled goal would be “all packages, except where impossible (e.g., embedded signatures).”
  • Others note the long tail of obscure packages and the practical difficulty of hitting 100%; focusing on widely used or installation‑media packages is suggested.
  • Reproducible builds are framed as:
    • A defense against build‑infrastructure and supply‑chain attacks (though not against compromised upstream code like the xz incident).
    • A way to enable independent verification and multi‑build‑farm cross‑checking.
    • A quality signal that flushes out nondeterministic toolchain/build bugs (timestamps, unordered maps, racey parallel builds).

Sandboxing, PGO, and other tradeoffs

  • Some argue sandboxing/desktop app isolation (Flatpak, Qubes‑style compartmentalization) would yield more concrete security benefits than reproducible builds; others say both are needed and draw attention to community vs corporate resource tradeoffs.
  • Concerns raised that strict reproducibility may conflict with profile‑guided optimization or ASLR‑style entropy, though others respond that PGO can be made reproducible by treating profiles as versioned inputs.
  • There’s a minor side debate on static vs dynamic linking and bundling: some users want more single‑binary or fully bundled apps (especially for Python), while others push back on code duplication and memory overhead.