- 「Shared object "libXi.so.7" not found」というエラーが出る。
- 「No rule to make target 'liblightdm-gobject-1.deps', needed by 'all-am'. Stop.」というエラーが出る。
- 「libsystem.c:29:21: fatal error: xcb/xcb.h: No such file or directory」というエラーが出る。
- 「libsystem.c:138:1: error: conflicting types for 'setgroups'」というエラーが出る。
2番目の問題はLightDMが提供するビルド方法の問題ではないかと思います。提供されるtarballにはこのファイルが含まれているのですが「make distclean」をしたときに消されてしまうのですが、消してはいけないファイルなのではないでしょうか。当面は「make distclean」した後にtarballから復活させることにします。
3番目の問題はconfigureに関わる問題のようです。このファイルは/usr/X11R7/includeにあるのですが検索対象になっていないようです。非標準ディレクトリと見做されているのでしょうか。configure実行時に指定する環境変数CPPFLAGSに追加しておくことにします。
4番目の問題はGNU拡張とNetBSD標準との差異が原因と思われます。LightDMはLINUX上で開発されたと思われますが、NetBSDなどとの移植性に注意を払っていない印象を受けます。移植性を確保するというのは難しい課題であることは認めます。ややもすると自分の開発環境で問題なければ、それで良しとしてしまいがちです。この問題に対処するため「__NetBSD__」が定義されている否かで条件コンパイルするようにして暫定的な対処をおこないました。
以上の問題を解決し、以下のコマンドでビルドが成功し、/usr/local以下へのインストールにも成功しました。次はWIPを参考にして自前のpkgsrcを作ってみようと思います。
# cd lightdm-1.20.0
# env CPPFLAGS='-I/usr/pkg/include -I/usr/X11R7/include' ./configure
# end LD_LIBRARY_PATH='/usr/pkg/lib:/usr/X11R7/lib:/usr/lib' gmake
# gmake install
0 件のコメント:
コメントを投稿