mfiler2のebuildを4.0.6に合わせる
(2008/6/16)新しいバージョンは
http://cid-3f9be5b1cd4a806c.skydrive.live.com/browse.aspx/%e5%85%ac%e9%96%8b/Gentoo%20Linux%20ebuild/app-misc/mfiler2
にアップロードした。
以下、バージョン4.0.6向けのebuildに関する記述。
主な変更点としては、ビルドシステム側の幾つかの変更に合わせている部分のみなのだが、ebuild側では色々と書き方を変えた部分もある。
今回も外部パッチは使用していない。
ファイル名: mfiler2-4.0.6.ebuild
# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils 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="~amd64 ~x86" IUSE="migemo onig gtk" RESTRICT="strip" COMMON_DEPEND="virtual/libiconv >=sys-libs/ncurses-5 >=dev-lang/ruby-1.8 migemo? ( >=app-text/cmigemo-1.3 onig? ( >=dev-libs/oniguruma-4.6.1 ) )" RDEPEND="${COMMON_DEPEND} gtk? ( >=dev-ruby/ruby-gtk2-0.15.0 )" DEPEND="${COMMON_DEPEND} >=sys-devel/libtool-1.5" pkg_setup() { if use migemo && ! use onig; then if has_version "=dev-lang/ruby-1.8.6-r1"; then # ruby-1.8.6-r1 lacks "cjk" USE flag eerror eerror "C/Migemo support requires oniguruma library" eerror "You need to enable \"onig\" use flag" eerror " or install other version of Ruby with USE=cjk enabled" eerror die "Please enable \"onig\" use flag or install other version of Ruby with USE=cjk" elif ! built_with_use dev-lang/ruby cjk; then eerror eerror "C/Migemo support requires oniguruma library" eerror "You need to enable \"onig\" use flag" eerror " or rebuild dev-lang/ruby with USE=cjk enabled" eerror die "Please enable \"onig\" use flag or rebuild dev-lang/ruby with USE=cjk" fi elif use migemo && use onig && built_with_use dev-lang/ruby cjk; then ewarn ewarn "Oniguruma(version 2) is embedded in Ruby" ewarn "We'll use oniguruma in Ruby (NOT \"dev-lang/oniguruma\")" ewarn fi } src_unpack() { unpack ${A} cd "${S}" sed -i 's:^CFLAGS=.*::' configure || die "sed failed" sed -i 's:cd onig-:#:' Makefile.in || die "sed failed" if use migemo; then if ! use onig || built_with_use dev-lang/ruby cjk; then # embedded version of oniguruma (Ruby/oniguruma) sed -i -e 's:const \(OnigUChar\):\1:' \ -e 's:Onig\(UChar\):\1:g' isearch.cpp || die "sed failed" # we don't use external oniguruma sed -i 's:\(LIBONIG=\)-lonig:\1:' configure || die "sed failed" fi else sed -i -e 's:onig-4.6.1/.libs/libonig.a::' \ -e 's:-I onig-4.6.1::' \ configure || die "sed failed" fi # inclusion of string.h is lacked local name for name in extra hash vector; do mv minato_${name}.h{,.orig} echo "#include <string.h>" > minato_${name}.h cat minato_${name}.h.orig >> minato_${name}.h done # don't install mdnd if "gtk" USE flag is disabled use gtk || sed -i 's:$(INSTALL) -m 755 mdnd $(bindir)::' Makefile.in } src_compile() { if use migemo && ! use onig; then local rbinc=$(ruby -r rbconfig -e 'print Config::CONFIG["archdir"]') CFLAGS="${CFLAGS} -I${rbinc}" export ac_cv_lib_onig_onig_new="yes" fi use !migemo && export ac_cv_lib_migemo_migemo_query="no" export CC="$(tc-getCC) ${CFLAGS}" CXX="$(tc-getCXX) ${CXXFLAGS}" econf --sysconfdir=/etc/mfiler2 || die "econf failed" emake -j1 || die "emake failed" } src_install() { einstall sysconfdir="${D}"/etc/mfiler2 || die "einstall failed" dodoc LICENSE README README.utf8.jp dohtml *.html }
以下、その他の覚え書き。
- Ruby組み込み版鬼車を使用する場合の検出のために、configureスクリプトのCFLAGS変数定義部分を削除し、「$(ruby -r rbconfig -e 'print Config::CONFIG["archdir"]')」をヘッダファイル探索パスに加えるようにした
- configureスクリプトではmigemoが無効化できない(あると自動で有効になる)が、「export ac_cv_lib_migemo_migemo_query="no"」のようにして検出結果のキャッシュを指定することで「検出できなかった」ことにできるのを「USE="-migemo"」の処理に利用している
- RDEPEND(実行時に必要なパッケージ)とDEPEND(ビルド時に必要なパッケージ)の記述をより厳密にするために、共通して使用されるものを別の変数(COMMON_DEPEND)に入れておいて両方から参照する形*1をとることにした。