泥浆是一个使用 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 之前,这个问题仍然存在。
除非你很着急,否则解决方案就是等待。