【发布时间】:2015-10-04 17:49:47
【问题描述】:
我不久前发布了Net::NSCAng::Client,并且在 OpenBSD 上遇到了很多测试失败。原因是 NSCAng 协议在预共享密钥模式 (RFC4279) 中使用 OpenSSL,LibreSSL(现在 OpenBSD 上的默认设置)的人们已经淘汰了这一点。然而,他们似乎一心想以最不透明的方式做到这一点:包含文件定义了所有函数,只是共享库缺少相应的符号,所以编译工作正常但测试失败。
OpenBSD 上有一个名为 eopenssl 的兼容性包,通过首先在 Makefile.PL 中进行测试(使用ExtUtils::PkgConfig),我可以使其工作如果兼容性库已安装。如果不是,事情仍然会失败。
我可以检查 CPP 符号 OPENSSL_NO_PSK,但由于包含始终来自 LibreSSL,因此即使与 eopenssl 链接可以正常工作,也会失败。我剩下的唯一想法是尝试让测试程序像 autoconf 那样作为编译阶段的一部分运行。 ExtUtils::MakeMaker(或其他东西——我不介意在必要时切换构建系统)甚至可以做到这一点吗?
【问题讨论】: