2016/10/31

pkgsrc/meta-pkgs/mateのビルドに成功

pkgsrc/x11/mate-appletsで発生したエラーを対処することでMATEのビルドに成功しました。途中で何度かエラーが出たりしたので連続してビルドできたわけではありませんが、全体として30時間弱ほどかかったと思います。pkgsrcから入れたものは1つしかない状態で始めましたが、MATEのビルドが終わった段階でpkg_infoで見ると242個のパッケージがインストールされていました。

/usr/pkgの下にあるファイルの容量は2G弱でした。/usr/pkgsrc/packagesにはビルドされたバイナリーのパッケージがあるので次にインストールする時に使えるでしょう。このディレクトリにあるファイルは500M強でした。

x11/mate-appletsでエラーになった時のメッセージは次のようになりました。ビルド中に同様のエラーがsysutils/mate-power-managerx11/mate-session-managerでも起きました。
libtool: link: cannot find the library `/usr/pkgsrc/x11/mate-applets/work/.buildlink/lib/libintl.la' or unhandled argument `/usr/pkgsrc/x11/mate-applets/work/.buildlink/lib/libintl.la'
このエラーメッセージではファイルが見つからないと訴えています。該当するディレクトリを調べてみたら、確かにファイルはありません。このディレクトリはシンボリックリンクだらけなので、次に考えることは、シンボリックリンクで参照しようしているファイルの実体が無いのか、シンボリックリンクが生成されないのが問題なのかを判断することです。

/usr/pkg/libの下にファイルが見つかったので、シンボリックリンクが出来ていないのが悪いのでしょう。このリンクが作られるためにはどうしたら良いのか分からないのですが、x11/mate-applets/Makefileで作られているだろうと思われます。Makefileを見てもどのように変更したら良いのか見えませんでしたが、work/.buildlink/lib/libintl.laというシンボリックリンクが出来ているパッケージのMakefileを参考にして、次のような変更を加えてみました。
--- x11/mate-applets/Makefile.org    2016-10-29 20:31:36.000000000 +0900
+++ x11/mate-applets/Makefile    2016-10-28 09:39:00.000000000 +0900
@@ -40,10 +40,14 @@
 REPLACE_PYTHON+=    invest-applet/invest/mate-invest-chart
 .include "../../lang/python/application.mk"

+BROKEN_GETTEXT_DETECTION=    yes
+USE_BUILTIN.gettext=    no # force use of pkgsrc gettext-lib
+
 .include "../../x11/mate-panel/buildlink3.mk"
 .include "../../x11/mate-desktop/buildlink3.mk"
 .include "../../x11/mate-settings-daemon/buildlink3.mk"
 .include "../../misc/libmateweather/buildlink3.mk"
+.include "../../devel/gettext-lib/buildlink3.mk"
 .include "../../devel/glib2/buildlink3.mk"
 .include "../../devel/libglade/buildlink3.mk"
 .include "../../devel/libwnck/buildlink3.mk"
この変更を行うことで、シンボリックリンクもできましたし、エラーも出ずビルドできるようになりました。ビルド中にエラーがでた他のパッケージも同様の修正を加えることで、エラーが消えました。

これでMATEがインストール出来たわけですが、動かすためにはどうすれば良いのでしょう。何か依存関係にあるパッケージを立ち上げておく必要はないのでしょうか。適当にコマンドをたたけば動くかもしれませんが、そのような場当たり的な対応は避けたいと思っています。まずはドキュメントに目を通してみようと思います。

pkgsrcにあるMATEは2016年4月8日リリースのMATE 1.14が使われていました。もうすでに9月21日にMATE 1.16が出ているので、バグ修正もされているでしょうし、できれば最新版にしたいところです。ただしpkgsrcの枠組みを外れて自前でビルドしてしまうと再びpkgsrcに追従できなくなってしまうので、pkgsrcが変わるのを待とうと思っています。

0 件のコメント:

コメントを投稿