libsixel
libsixel copied to clipboard
develop ブランチの ./configure が存在しない libcurl を誤検出する
【概要】
develop
ブランチの ./configure
が存在しない libcurl を誤検出する
【発生環境】 OS: Ubuntu 14.04.2 LTS (amd64) Terminal: mlterm version 3.4.3 post/2015-02-22
【詳細】
develop
ブランチ( https://github.com/saitoha/libsixel/commit/e953d9cd19f7e9416565ed7af12722133ab544fb ) で ./configure
を実行すると libcurl が存在しない環境でも HAVE_LIBCURL
が定義され make
時に下記のエラーが発生します。
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I../include/ -g -O2 -Wall -Wextra -I/home/msmhrt/local/include -I/home/msmhrt/local/include -I/home/msmhrt/local/include -g -O2 -MT libsixel_la-loader.lo -MD -MP -MF .deps/libsixel_la-loader.Tpo -c loader.c -fPIC -DPIC -o .libs/libsixel_la-loader.o
loader.c:74:24: fatal error: curl/curl.h: No such file or directory
# include <curl/curl.h>
^
compilation terminated.
make[2]: *** [libsixel_la-loader.lo] Error 1
make[2]: Leaving directory `/home/msmhrt/repository/libsixel/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/msmhrt/repository/libsixel'
make: *** [all] Error 2
$
現在は、./configure
に --without-libcurl
オプションを追加して回避しています。
master
ブランチ( https://github.com/saitoha/libsixel/commit/7efd9a4bb4f95d7842fe7cec3b9cf8f48f009804 ) 及び fixfix-issue-34
ブランチ( https://github.com/saitoha/libsixel/commit/91cf0c45d6dcaec97afdf4b49db5775ba5b77916 ) では問題ありませんでした。
【その他】
./configure
が自前で作成した LIBCURL_*
環境変数が消されずに残っているのが誤判定の原因ではないかと思われます。
この件、たびたびのご報告ありがとうございました。 以前 2a98bcd で直したつもりだったんですが、自分のDebian環境がpkg-configをアンインストールした変な環境なので検出できていませんでした。 どうもLIBCURL_* が定義された状態だと PKG_CHECK_MODULES(CURL, ...) の結果が常にyesになる、という罠だったようです。
libcurl がインストールされていない当方の環境で問題なきことは確認したのですが、この修正だとユーザー側で明示的に export LIBCURL_*
しても pkg-config
の方が優先されてしまうのではないでしょうか?
多分、
-
--without-libcurl
-
--with-libcurl
の引数 -
LIBCURL_*
環境変数 -
pkg-config
という優先順位になるべきだと思うのですが、違ってたらすみません。
@msmhrt LIBCURL_* をセットして./configureするケースもあるので、LIBCURL_*を上書きすること自体がまずかったですね... 優先順位については私も仕様を正確に把握しておらず、適当でした。 ちょっと他のプロジェクトのconfigure.acを参考にしてみることにします。