Fedora 46 přejde u balíčků na formát RPM v6 bez MD5 a SHA1
Fedora Linux 46 bude balíčky vyrábět ve formátu RPM v6 místo v4, jehož poslední velká změna spadá na přelom tisíciletí. Řídicí výbor FESCo rozhodl 9. listopadu 2026 poměrem sedm hlasů pro a žádný proti. Pro uživatele je změna neviditelná, mění se vnitřek balíčku: mizí z něj MD5 a SHA1, velikosti jsou vždy 64bitové a řetězce vždy v UTF-8.
Fedora Linux 46 bude své balíčky vyrábět v novém formátu. Řídicí výbor projektu, Fedora Engineering Steering Committee, uzavřel 9. listopadu 2026 tiket 3703 poměrem sedm hlasů pro, nula proti a nula zdrželo se. Výsledek pak shrnul i zápis do vývojářské konference spolu s dalšími sedmi hlasováními. Distribuce tím opouští formát RPM v4, jehož poslední velká změna spadá podle návrhu změny na přelom tisíciletí.

Program už šestku má, balíčky ne
Samotný rpm je ve Fedoře v šestkové řadě déle než rok. Verzi 6.0 do ní přinesla změna pro Fedoru 43 a ta má v sobě výslovnou větu, že přechod na nový formát balíčků do ní nepatří: rpm 6.0 ve Fedoře 43 dál vyráběl balíčky ve formátu v4 bez ohledu na to, co má nastavené vývojový projekt. Teprve teď přijde na řadu i formát. Ve vývojové větvi rawhide, ze které Fedora 46 vznikne, je dnes rpm 6.1.0.
Návrh podal Panu Matilainen z Red Hatu, který RPM vyvíjí. Sám v něm tu práci popisuje jako jeden řádek v konfiguraci rpm a zároveň obrovskou změnu pro distribuci. Kolem formátu v4 se za čtvrt století nabalily předpoklady v nástrojích, které s balíčky zacházejí: v sestavovacích a testovacích systémech, na podepisovacím serveru, v evidenci oprav.
Čím se v6 liší
Formát v6 není nový návrh, je to úprava v4 a část jeho vlastností už dnes existuje jako rozšíření staršího formátu. Rozdíly popisuje dokumentace formátu.
| Co | RPM v4 | RPM v6 |
|---|---|---|
| Otisky v podpisové části | vždy MD5 a SHA1, od rpm 4.14 navíc SHA-256 | SHA-256 a SHA3-256, MD5 ani SHA1 už tam nejsou |
| Otisky těla balíčku | SHA-256 volitelně | SHA-256 povinně, k tomu SHA-512 a SHA3-256 |
| Značky velikosti | 64bitové jen u velkých balíčků | 64bitové vždy |
| Kódování řetězců | značka o kódování nemusí být uvedena | povinná a vždy UTF-8 |
| Určení typu souboru | textové popisy z knihovny libmagic | typy MIME |
Kryptografická část je na tom seznamu ta podstatná. MD5 i SHA1 jsou dávno prolomené funkce a v balíčku v4 se počítají pokaždé, i když je vedle nich SHA-256. Druhá změna je méně vidět: tělo balíčku se dá v šestce ověřit samostatně, protože jeho otisky jsou v podepsané hlavičce. Podpis se tak nemusí počítat přes celý soubor. Rodina SHA-3 se do správců balíčků dostává i jinde: do APT ji navrhl vývojář Canonicalu jako zálohu pro případ, že by SHA-2 padla.
Pro člověka, který Fedoru používá, se nestane nic. Návrh to říká jednou větou: pro koncového uživatele je změna prakticky neviditelná. Pozná ji až ten, kdo se balíčků ptá vlastním skriptem a spoléhá přitom na to, jak vypadá jejich vnitřek. Takové dotazy může být potřeba upravit.
Kde se nový balíček otevře
Šestkový balíček nepotřebuje šestkový rpm. Poznámky k vydání RPM 6.0.0 z 22. září 2025 rozdělují kompatibilitu na tři úrovně: zeptat se balíčku zvládne rpm od verze 4.6, rozbalit ho umí od 4.12 a ověřit i nainstalovat od 4.14, byť s výhradami. Verze 4.14 je rpm z doby RHEL 8, tedy rok 2018.
Opačný směr zůstává otevřený. Kdo potřebuje starý formát, nastaví při sestavení makro %_rpmformat na hodnotu 4 a dostane balíček v4; oba formáty vedle sebe v distribuci fungují. Jedna věc ale s šestkou skončila: externí režim generátoru závislostí se u v6 balíčků nepoužívá.
Zajímavější je, že ta kryptografická přísnost už jednou kousla z druhé strany. Rpm 6 ve výchozím nastavení neověří balíček postavený starším rpm než 4.14, protože se opírá o slabé otisky MD5 a SHA1. Obejde se to makrem %_pkgverify_level, kterému se řekne, ať se dívá jen na podpis.
Pojistka před hromadným přestavěním
Návrh nepočítá s jedním přepnutím. Nejdřív se má v oddělené větvi zkusit postavit kritická sada balíčků, pak se na v6 ručně převedou dva kusy, rpm a popt, a teprve potom se formát zapne v konfiguraci. Pak se hlídají pády sestavení, testů a infrastruktury.
Kdyby problémů zůstalo moc, Fedora se vrátí k v4 a formát odloží na verzi 47. Lhůta pro to rozhodnutí je těsně před hromadným přestavěním všech balíčků, které má podle plánu vydání začít 20. ledna 2027. Fedora Linux 46 má vyjít 20. dubna 2027.
Zdroje
- FESCo, tiket 3703: Change: RPM v6 package format
- Fedora Project Wiki: Changes/RPMv6 package format
- Timothée Ravier: Schedule for Tuesday's FESCo Meeting (2026-11-10), konference devel
- rpm.org: RPM 6.0.0 Release Notes
- rpm: V6 Package format, dokumentace ve značce rpm-6.1.0-release
- Fedora Project Wiki: Changes/RPM-6.0
- Fedora Linux 46 Schedule: Key