perlがらみ
諸般の事情で、アメリカのカレンダーなデータを作ることになって、perlのモジュールに Date::Holidaysというものを見つけたので、
$ cpanm Date::Holidays
して、インストールしたのですが、昨年の8月以降更新されていないため、今年の休日のデータは入力されていなかった。
毎年ちゃんと更新されているDate::Japanese::Holidayのほうが異常なのかもしれない。
結局、休日のデータリストを拾って来た。
今度はGD::Graphを使ってグラフを書こうと思ったところ、GD::Textのテストでfaileする。
ひとつ目は
Can't load '~/.cpan/build/GD-2.56-Tx1Hlv/blib/arch/auto/GD/GD.bundle' for module GD: dlopen(~/.cpan/build/GD-2.56-Tx1Hlv/blib/arch/auto/GD/GD.bundle, 2): Library not loaded: @rpath/libtiff.5.dylib
もう一つは
libpng warning: Application built with libpng-1.5.23 but running with 1.6.21 GD Warning: gd-png error: cannot allocate libpng main struct
である。
1つ目のエラーはlibtiff.5.dylibが悪い。
$ otool -L /Library/Perl/5.18/darwin-thread-multi-2level/auto/GD/GD.bundle /Library/Perl/5.18/darwin-thread-multi-2level/auto/GD/GD.bundle: /usr/local/Cellar/jpeg/8d/lib/libjpeg.8.dylib (compatibility version 13.0.0, current version 13.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /usr/local/Cellar/libpng/1.6.21/lib/libpng16.16.dylib (compatibility version 38.0.0, current version 38.0.0) /usr/local/Cellar/freetype/2.6.3/lib/libfreetype.6.dylib (compatibility version 19.0.0, current version 19.3.0) /usr/local/Cellar/fontconfig/2.11.1/lib/libfontconfig.1.dylib (compatibility version 10.0.0, current version 10.0.0) /opt/X11/lib/libXpm.4.dylib (compatibility version 16.0.0, current version 16.0.0) /opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0) @rpath/libtiff.5.dylib (compatibility version 5.0.0, current version 5.2.4) /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/local/Cellar/gd/2.1.1/lib/libgd.3.dylib (compatibility version 4.0.0, current version 4.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
$ install_name_tool -id /usr/local/lib/libtiff.5.dylib /usr/local/lib/libtiff.5.dylib
と直しておく。
2個目はcpanが悪いのではなく、gdのビルドが失敗しているかららしい。
で、いろいろやったにもかかわらず、gdはlibpng-1.5.23を使おうとするので、libpng-1.6.21を諦めて、
$ ./configure --prefix=/usr/local/Cellar/gd/2.1.1_2 --x-includes=/usr/X11/include/ --x-libraries=/usr/X11/lib/ --with-libiconv-prefix=/usr --with-zlib=/usr --with-png=/usr/X11 --with-freetype=/usr/local --with-fontconfig=/usr/local --with-jpeg=/usr/local --with-xpm --with-vpx=/usr/local/ --with-tiff=/usr/local/ --with-webp CFLAGS="-DDEFAULT_FONTPATH=\\\"/System/Library/Fonts:/Library/Fonts\\\"" LIBPNG_CFLAGS=-I/usr/X11/include/libpng15 LIBPNG_LIBS="-L/usr/X11/lib -lpng15"
としてビルドすると、テストは通ったけれども、libpng-1.6.21を使えなかったことに満足行かない。
で、perlのGDモジュールをインストールしようとすると、
$ cpanm GD GD is up to date. (2.56)
はぁ? さっきアンインストールしたはずだが???
$ cpanm GD --uninstall ! GD is not found in the following directories and can't be uninstalled. /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18
やっぱりアンインストール済みである。しかたがないので、
$ cpanm GD --force --> Working on GD Fetching http://www.cpan.org/authors/id/L/LD/LDS/GD-2.56.tar.gz ... OK Configuring GD-2.56 ... OK Building and testing GD-2.56 ... FAIL ! Testing GD-2.56 failed but installing it anyway. Successfully reinstalled GD-2.56 1 distribution installed
う〜んテスト失敗しているやん。
$ cpanm GD::Text --> Working on GD::Text Fetching http://www.cpan.org/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz ... OK Configuring GDTextUtil-0.86 ... OK Building and testing GDTextUtil-0.86 ... OK Successfully installed GDTextUtil-0.86 1 distribution installed $ cpanm GD::Graph --> Working on GD::Graph Fetching http://www.cpan.org/authors/id/R/RU/RUZ/GDGraph-1.52.tar.gz ... OK Configuring GDGraph-1.52 ... OK Building and testing GDGraph-1.52 ... OK Successfully installed GDGraph-1.52 1 distribution installed
GD::Textのテストは通るようになったからまぁいいか。