MsgPackのPortfile
id:viver氏作成のMessagePackのPortfileを作成しました。下記のテキストをコピー&ペーストしてPortfileを作成し、http://blog.asial.co.jp/381 このページ等を参考にしてローカルのレポジトリに登録すればインストールできます。MessagePackはgccのバージョンが4.1以上なのでこのPortfileはgcc 4.2を指定しています。そのため、LeopardでXcodeの最新版をインストールするかSnow Leopardである必要があります。
PortSystem 1.0 name msgpack version 0.3.7 categories devel description MessagePack is a binary-based efficient data interchange format that is focused on high performance. It is like JSON, but very fast and small. long_description MessagePack is a binary-based efficient data interchange format that is focused on high performance. It is like JSON, but very fast and small. homepage http://msgpack.sourceforge.jp/ platforms darwin configure.compiler gcc-4.2 master_sites http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fmsgpack%2F43200 checksums md5 7d51c212f5e0b9943d8940dd7cfc046f
MacPorts 1.7.0リリース
12/13にMacPortsの新バージョンがリリースされたようです。ChangeLogを見る限りはバグフィックス以外の主な変更点は
- +universalで64bit(x86_64, ppc64)が追加されるようになった
- Portfileで使える変数に configure.{universal_target,universal_sysroot,universal_archs} が追加された
- Portfileで使える変数に configure.{optflags,m32,m64,march,mtune}
- port uninstall時に --recursiveをつけると依存するソフトを全てアンインストールするようになった。
- fetch.typeにgitを追加。(git レポジトリからもソースをとって来れるようになったということかしら)
- port searchでname, description and long_descriptionから検索するようになった。
- ついでにport searchの結果表示が変わってdescriptionが表示されるようになってますね
- port help が追加された。
- +universalのデフォルトのMDT/SDKをTigerでは10.4/10.4uに、Leopardでは10.5/10.5に戻した。
詳しい話は使ってみてのお楽しみというところで。
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のオプションを付けることによってインストール対象から外すことができます。
参考URL
必要な情報のほとんどはここにある。
- アシアルブログ MacPortsで自前のPortsファイルを作って使ってみよう http://blog.asial.co.jp/381
ローカルのリポジトリを作るコマンドはここを参考にしました。
解説
一行ずつ解説していきます。
name tx
パッケージの名前を指定します。
version 0.12
ソフトウェアのバージョンです。なおダウンロードしてくるソースファイルは
name-version.tar.gz
です。autotoolsを使っているのならmake dist で作成されます。
revision 1
Portfile自体のバージョンです。同じバージョンのソフトウェアに対して修正等を行った時にはrevisionを
上げておくとアップデートされます。
description Library for a compact trie data structure.
port search の検索の時に表示される説明文。端的に書きましょう。
long_description Tx is a library for a compact trie data structure. \ Tx requires 1/4 - 1/10 of the memory usage compared to the previous implementations, \ and can therefore handle quite a large number of keys (e.g. 1 billion) efficiently. \ A trie data structure supports exact matching and common prefix matching, \ which are used for natural language processing etc. \ Tx uses Level-Order Unary Degree Sequence (LOUDS) for trie representation.
port info で詳細に表示した時に現れる長い説明文です。
categories devel
ソフトウェアの種類を表す。/opt/local/var/macports/sources/rsync.macports.org/release/ports/ を見るとどんなカテゴリがあるか分かると思います。ライブラリはdevelのようです。
platforms darwin
動作する環境(OS)を指定します。MacportsはMac以外にもFreeBSDやLinuxでも動作するのでOSの指定がある場合はここで指定します。といってもほとんどのものはdarwinしか指定していないみたいです。
homepage http://www-tsujii.is.s.u-tokyo.ac.jp/~hillbig/tx.htm
プロジェクト本家等、情報が載っているホームページのアドレスです。
master_sites http://www-tsujii.is.s.u-tokyo.ac.jp/~hillbig/software/
ソフトウェアの存在しているURLです。Macportsは内部的に以下のコマンドでソースファイルを取得します。
$ wget master_sites/name-version.tar.gz
最後に
checksums md5 9e381d2c6c6f0fed7371e9a2f5f64d98
作ってみた
いきなりだが、コードを貼付ける。
ダウンロードはこちらから行って下さい。
PortSystem 1.0 name tx version 0.12 revision 1 description Library for a compact trie data structure. long_description Tx is a library for a compact trie data structure. \ Tx requires 1/4 - 1/10 of the memory usage compared to the previous implementations, \ and can therefore handle quite a large number of keys (e.g. 1 billion) efficiently. \ A trie data structure supports exact matching and common prefix matching, \ which are used for natural language processing etc. \ Tx uses Level-Order Unary Degree Sequence (LOUDS) for trie representation. categories devel platforms darwin homepage http://www-tsujii.is.s.u-tokyo.ac.jp/~hillbig/tx.htm master_sites http://www-tsujii.is.s.u-tokyo.ac.jp/~hillbig/software/ checksums md5 9e381d2c6c6f0fed7371e9a2f5f64d98
これをPortfileというファイル名で保存した後
$ sudo mkdir -p /opt/local/var/localports/devel/tx $ sudo cp Portfile /opt/local/local/var/localports/devel/tx/ $ cd /opt/local/var/localports $ sudo portindex $ sudo port -v selfupdate
と実行すればMacportsにtxが組み込まれる。
$ port list tx tx @0.12 devel/tx
ちゃんとでてきますね。