2023年09月15日

Netatalk 3.1.16 の configure スクリプトがおかしいので修正

つい先日、セキュリティ修正を含む Netatalk 3.1.16 がリリースされましたが、configure スクリプトが libiconv のチェック中にでエラーで終了してしまいます。非常に初歩的なミスなのですぐに修正されると思いますが、それまでは以下のパッチを macros/iconv.m4 に適用して、autoreconf を実行してください。
[2023-09-18 追記]
Netatalk 3.1.17 がリリースされましたが、この問題は直っておらず、同じ対応が必要です。
[2023-10-06 追記]
Netatalk 3.1.18で修正されたので、この対応は不要になりました。
--- ./macros/iconv.m4.ORG	2023-09-11 02:55:05.000000000 +0900
+++ ./macros/iconv.m4 2023-09-12 10:41:21.241389226 +0900
@@ -40,14 +40,15 @@
esac

AC_CACHE_CHECK([for libiconv],netatalk_cv_iconv,[
- AC_LINK_IFELSE([AC_LANG_SOURCE([[
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
#include <stdlib.h>
#include <iconv.h>
-],[
+int main(void) {
iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);
-]])], netatalk_cv_iconv=yes, netatalk_cv_iconv=no, netatalk_cv_iconv=cross)])
+}
+])], netatalk_cv_iconv=yes, netatalk_cv_iconv=no, netatalk_cv_iconv=cross)])

if test x"$netatalk_cv_iconv" = x"yes"; then
ICONV_LIBS="$ICONV_LIBS -liconv"

2023-09-18 15:10 追記

3.1.17 でも修正されないので、開発元に連絡してみました。
configure fails on checking libiconv #491
https://github.com/Netatalk/netatalk/issues/491
その流れで、こんな初歩的なミスがなかなか直されなかった理由がようやくわかりました。最近の OS は libiconv のほとんどの機能が libc に組み込まれており、明示的に libiconv を使うと指定しない限り、この問題は発生しないので、開発者を含めて利用者も全く気づいていなかったようです。
posted by yamaga at 07:14| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする