导读 | Fedora 29 中实现了一项令人惊讶的有争议的变化 —— 从默认的 BuildRoot 中删除 GCC 和 GCC-C++,以便将 Fedora 包与 Koji 和 Mock 组合。到目前为止,我们总是认为 GCC(包括 GCC C++ 编译器)默认存在于每个 build-root 中。 |
为Fedora 29实施的一个令人惊讶的争议性变化是从默认的BuildRoot中删除GCC和GCC-C++,以便与Koji和Mock组装Fedora包。
到目前为止,我们总是暗示GCC(包括GCC C++编译器)默认存在于每个build-root目录中。但是现在有更多的软件包用Go,Rust,Python,Node.js和其他现代语言编写,C/C++应用程序的比例正在下降。因此,Koji/Mock中的默认构建环境不再暗示GCC C/C ++支持,这反过来应该有助于打包非C/C++包的构建时间,因为它们将不再需要拉入gcc/gcc-c++包,反过来也是一个更干净的buildroot环境。
需要C或C++编译器的软件包现在需要将其列为BuildRequires标记的一部分。实际上,这不应该是一个很大的变化,所有事情都被认为只是因为即将进行大规模重建之前的Fedora 29周期,他们已经将gcc/g ++添加到需要所述编译器的所有软件包中。而对于用户来说应该几乎没有区别。在Fedora Wiki上已经列出了几个月的确切计划。
但最近几天,当这个即将发生的转变的通知被发布到Fedora devel列表时,它变成了一些利益相关者的激烈交流。表达的担忧包括:
添加“BuildRequires: gcc”(或gcc-c++)是相当明确的,将来使用LLVM Clang或替代编译器构建C/C++包可能需要进行大量更改。当然,Fedora中并非所有当前的C/C ++软件包都在Clang下完全构建。有人建议改为使用构建取决于glibc-devel或libstdc ++,但这会带来一系列挑战。
从好的方面来看,现在应该更清楚地看到有多少Fedora软件包需要C/C ++,因为之前GCC始终存在或依赖其他打包命令估计总数是相当不透明的。
这个主题之前已经在2月到3月由FESCo讨论和批准,但似乎有些成员错过了它或者当时不想参与。那些对整个讨论充满好奇的人可以通过邮件列表存档找到它。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/119900.html