如何将基于 debian/ubuntu 的 gnu 自动工具构建修改为 fedora 32?

如何将基于 debian/ubuntu 的 gnu 自动工具构建修改为 fedora 32?

泥浆是一个使用 gnu autotools 构建的开源项目。
问题如下:
将autoreconf应用到项目时,创建的Makefile.in文件缺少runstatedir宏。

我正在使用 Fedora 32,在向项目所有者 (Schedmd) 提交错误后,我收到了 WONTFIX 解决方案,其中包含以下答案

这是由于 Debian/Ubuntu 与 Fedora autotools 打包之间的差异造成的。

构建工具是在 Debian/Ubuntu 上管理的 - 如今它不会产生这样的差异。因此我不会应用这个。

我的问题是 - 我可以修改项目中的任何内容以使其“普遍”正确 - 即 - 确保 autoreconf 在 Fedora 和 Ubuntu 上都做正确的事情吗?

截至撰写本文时,使用的 Fedora autotools 软件包是最新的:
rpm autoconf-2.69-33.fc32.noarch

我不知道 Debian/Ubuntu 使用哪个 autoconf 版本。

答案1

问题是最新的稳定 autoconf 版本 2.69 是在八年前的 2012 年发布的。

2013 年,红帽雇主添加了 --runstatedir 选项(https://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit;h=a197431414088a417b407b9b20583b2e8f7363bd)。但由于此后还没有稳定的版本,因此该选项从未发布过。

Debian 将补丁添加到其 autoconf 包中(https://sources.debian.org/patches/autoconf/2.69-11.1/add-runstatedir.patch/),这样您就可以在野外看到该选项。但 Fedora 却没有。

2020年10月底,autoconf 2.70计划发布(https://lists.gnu.org/archive/html/autoconf/2020-09/msg00006.html)这将解决问题。

不过,我不希望 Fedora 33 包含它。因此,直到明年 Fedora 34 之前,这个问题仍然存在。

除非你很着急,否则解决方案就是等待。

相关内容