除了批准-O3优化的Python构建外,Fedora工程和指导委员会(FESC)本周还一致批准了Fedora 41的更改提案,以使RPM包构建更具可复制性。
由于Rust项目,Fedora41一直在关注更具可复制性的包构建。基于Rust的“添加决定论”将是RPM包构建的构建后清理过程的一部分,以解决构建不可复制的常见原因。这一变化能够以安全性和可审计性的名义使大多数Fedora RPM包构建具有可复制性。如变更建议中所述:
“add determination是一个Rust程序,顾名思义,它通过尝试标准化二进制或源文件中包含的元数据来向作为输入的文件添加确定性,以确保一致性,并在所有情况下都限制为$source_DATE_EPOCH。add determination是Debian项目中的strip非确定性的“Fedora版本”。由于strip非决定性是用perl编写的,因此不希望在Fedora中使用,因为我们不想在每个包的构建根中提取perl。
值得注意的是,本次变更并不打算对Fedora包装施加任何特定的再现性要求。一旦这一变革得以实施,并且我们已经进行了大规模重建,并且能够验证不可复制性的常见原因确实已经消除,我们就可以考虑采取进一步的措施。但这至少是一次发布。
此更改确实会在构建结束时为RPM的处理增加少量时间。因此,包含大量或大文件的包速度较慢,但这种影响预计不会明显。add determination采取措施确保它不会干扰其他buildroot后处理器,如mangle shebangs、python hardlink、python bytecompile。它默认不做任何修改,以防不理解输入文件或出现任何其他问题。\"
所有FESCo成员都参与了这项提案,现在已经批准在今年秋天发布Fedora 41。
The add-determinism program for those interested can be found on GitHub.
暂无评论内容