ThriftのMacportsパッケージ
今月のWEB+DB PRESSでも特集されていたThriftですが、Macportsに無い(debでも無いのですぐに作られるのは期待できない)ようだったので自分でPortfileを作ってみました。以下のファイルをコピー&ペーストしてPortfileという名前で保存し
$ sudo mkdir -p /opt/local/var/localports/devel/thrift $ sudo cp Portfile /opt/local/local/var/localports/devel/thrift/ $ cd /opt/local/var/localports $ sudo portindex $ sudo port -v selfupdate
と実行すればMacportsにtxが組み込まれる。
$ port list thrift thrift @20080411p1 devel/thrift
以下がPortfileの中身
PortSystem 1.0 name thrift version 20080411p1 categories devel description A software framework for scalable cross-language services development. long_description Thrift is a software framework for scalable cross-language services development. It combines a powerful software stack wi$ homepage http://developers.facebook.com/thrift/ platforms darwin master_sites http://developers.facebook.com/thrift/ checksums md5 8a28f61c897aeb388ef77c1ccb8b91d2 depends_lib port:boost depends_run port:python25 configure.args --with-libevent=no \ --with-java=no \ --enable-java=no \ --with-csharp=no \ --enable-gen-csharp=no \ --with-erlang=no \ --enable-gen-perl=no \ --enable-gen-php=no \ --enable-gen-ruby=no configure.env-append PY_PREFIX=${prefix} variant libevent { configure.args-delete --with-libevent=no depends_lib-append port:libevent } variant perl { configure.args-delete --enable-gen-perl=no depends_lib-append port:perl5.8 depends_lib-append port:p5-bit-vector depends_run-append port:p5-class-accessor post-configure { system "cd ${worksrcpath}/lib/perl && perl Makefile.PL && cd ${worksrcpath}" } post-build { system "cd ${worksrcpath}/lib/perl && make && cd ${worksrcpath}" } post-install { system "cd ${worksrcpath}/lib/perl && make install && cd ${worksrcpath}" } } variant ruby { configure.args-delete --enable-gen-ruby=no depends_lib-append port:ruby post-configure { system "cd ${worksrcpath}/lib/rb && ruby setup.rb config && cd ${worksrcpath}" } post-build { system "cd ${worksrcpath}/lib/rb && ruby setup.rb setup && cd ${worksrcpath}" } post-install { system "cd ${worksrcpath}/lib/rb && ruby setup.rb install && cd ${worksrcpath}" } } default_variants +libevent +perl +ruby
これで、以下のコマンドでインストールできます。
$ sudo port -v install thrift
尚、このパッケージでインストールされるThriftではC++,Python,Ruby,Perlしか使えません。本来はこの他にもPHP,Java,C#,Ocamo,Smalltalk,Haskell,Cocoa等でも使えますがインストールコマンドやドキュメントが無かったり、ユーザープログラムと共に同梱する必要があるものであったりしたので見送りました。また、Ruby, Perlに関しては必要なければ-ruby, -perlのオプションを付けることによってインストール対象から外すことができます。