libsixel icon indicating copy to clipboard operation
libsixel copied to clipboard

develop ブランチの ./configure が存在しない libcurl を誤検出する

Open msmhrt opened this issue 9 years ago • 3 comments

【概要】 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_* 環境変数が消されずに残っているのが誤判定の原因ではないかと思われます。

msmhrt avatar Feb 27 '15 11:02 msmhrt

この件、たびたびのご報告ありがとうございました。 以前 2a98bcd で直したつもりだったんですが、自分のDebian環境がpkg-configをアンインストールした変な環境なので検出できていませんでした。 どうもLIBCURL_* が定義された状態だと PKG_CHECK_MODULES(CURL, ...) の結果が常にyesになる、という罠だったようです。

saitoha avatar Feb 28 '15 08:02 saitoha

libcurl がインストールされていない当方の環境で問題なきことは確認したのですが、この修正だとユーザー側で明示的に export LIBCURL_* しても pkg-config の方が優先されてしまうのではないでしょうか?

多分、

  1. --without-libcurl
  2. --with-libcurl の引数
  3. LIBCURL_* 環境変数
  4. pkg-config

という優先順位になるべきだと思うのですが、違ってたらすみません。

msmhrt avatar Feb 28 '15 10:02 msmhrt

@msmhrt LIBCURL_* をセットして./configureするケースもあるので、LIBCURL_*を上書きすること自体がまずかったですね... 優先順位については私も仕様を正確に把握しておらず、適当でした。 ちょっと他のプロジェクトのconfigure.acを参考にしてみることにします。

saitoha avatar Feb 28 '15 11:02 saitoha