mfiler2-3.0.7.ebuild

id:minato_daisukeによって開発されているhttp://www.geocities.jp/daisuke530221jp/ebuildを書いてみた。/usr/local以下にmake installしたら負けかなと思っている。

# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit ruby
DESCRIPTION="a two pane file manager under UNIX console."
HOMEPAGE="http://www.geocities.jp/daisuke530221jp/"
SRC_URI="http://www.geocities.jp/daisuke530221jp/${P}.tgz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86"
IUSE="migemo"

DEPEND="dev-libs/oniguruma
	dev-ruby/net-ssh
	dev-ruby/net-sftp
	dev-ruby/needle
	migemo? ( app-text/cmigemo )"
RDEPEND=""

PATCHES="${FILESDIR}/${P}.patch"
RUBY_ECONF="--with-ruby-header-path=$($RUBY -r rbconfig -e 'print Config::CONFIG["archdir"]')
	--with-ruby-lib-name=$($RUBY -r rbconfig -e 'print Config::CONFIG["RUBY_SO_NAME"]')
	--with-ruby-lib-path=/usr/lib"

src_install() {
	einstall
}

をapp-misc/mfiler2/mfiler2-3.0.7.ebuildに、

diff -ur mfiler2-3.0.7.orig/Makefile.in mfiler2-3.0.7/Makefile.in
--- mfiler2-3.0.7.orig/Makefile.in	2007-06-05 22:55:57.000000000 +0900
+++ mfiler2-3.0.7/Makefile.in	2007-06-08 23:40:41.000000000 +0900
@@ -24,8 +24,8 @@
 RUBYINCPATH=@RUBYINCPATH@
 RUBYLIBPATH=@RUBYLIBPATH@
 
-ONIG=onig-4.6.1/.libs/libonig.a
-ONIGINC=-I onig-4.6.1
+ONIG=-lonig
+ONIGINC=
 
 MIGEMO=@MIGEMO@
 MIGEMOINC=-I /usr/local/include
@@ -80,8 +80,6 @@
 minato_lib/minato_lib.a:
 	cd minato_lib && ./configure --with-ruby-header-path="$(RUBYINCPATH)" $(DEBUG_CONFIGURE) && make
 
-$(ONIG):
-	cd onig-4.6.1 && ./configure && make
 
 
 ################################################################################
@@ -179,9 +177,6 @@
 # インストール
 ################################################################################
 install: $(STRIP)
-	cd net-ssh-1.0.10 && $(RUBY) setup.rb config && $(RUBY) setup.rb setup && $(RUBY) setup.rb install
-	cd needle-1.3.0 && $(RUBY) setup.rb config && $(RUBY) setup.rb setup && $(RUBY) setup.rb install
-	cd net-sftp-1.1.0 && $(RUBY) setup.rb config && $(RUBY) setup.rb setup && $(RUBY) setup.rb install
 	mkdir -p $(bindir)
 	mkdir -p $(sysconfdir)
 	mkdir -p $(datadir)/mfiler/cp932
diff -ur mfiler2-3.0.7.orig/dirwnd.h mfiler2-3.0.7/dirwnd.h
--- mfiler2-3.0.7.orig/dirwnd.h	2007-06-05 22:55:57.000000000 +0900
+++ mfiler2-3.0.7/dirwnd.h	2007-06-08 22:04:40.000000000 +0900
@@ -4,6 +4,7 @@
 extern "C"
 {
 #include <stdio.h>
+#include <time.h>
 #include <unistd.h>
 #include <sys/stat.h>
 #include <sys/types.h>
diff -ur mfiler2-3.0.7.orig/etc/api.rb mfiler2-3.0.7/etc/api.rb
--- mfiler2-3.0.7.orig/etc/api.rb	2007-06-07 22:38:04.000000000 +0900
+++ mfiler2-3.0.7/etc/api.rb	2007-06-08 22:43:58.000000000 +0900
@@ -1,3 +1,4 @@
+require 'rubygems'
 require 'etc'
 require 'fileutils'
 

UTF-8でapp-misc/mfiler2/files/mfiler2-3.0.7.patchに置いて適当にdigestを作るなりすれば良し。
configureに渡すべきパラメータは決め打ちせずにruby -r rbconfigを使って取得しているので、少なくとも1.8とかi686-linuxを決め打ちするよりは移植性は高いだろう。
依存している全てのライブラリのebuildGentooのオフィシャルツリーで提供されている*1ようなので、普通に依存性を解決するようにしたところ、dev-ruby回りはrequire 'rubygems'しないと見付からないようなのでrequire 'rubygems'を設定。
マークしてrの正規表現による置換とmigemoインクリメンタルサーチRubyの実行は確認。でもRubyはまだ勉強不足なので楽しい使い方が思いつかず。早くRubyも習得したいところ。

*1:なぜか鬼車は4.1.1までしか無いのでmv oniguruma-4.{1.1,6.2}.ebuildすると良い