今度こそ大丈夫だと思うezjailパッチ

追記 2008/03/25
FreeBSD 7.0-RELEASE対応版をid:cocelo:20080325:1206447371にエントリーしました。
FreeBSD 7.0-RELEASEをお使いの方はid:cocelo:20080325:1206447371のパッチをお使いください。


結構前から気がついてたんですが、7.0Rからはsrc.confでコンパイルのオプションを指定します。しかもそのオプションの殆どがportsのKNOBのようにWITHOUT_*と指定するようになりました。
それが何って感じかもしれないけど、設定ファイルの名前がezjail_makeconfのままってのもどうよ、と考えまして。。。
そういう訳でezjail_makeconfからezjail_makeoptionに名称変更となりました。
こう、エレガントでスマートでチャーミングな良いネーミングが思い浮かばなかったのでもし何か案があればよろしくお願いします。


ここまで来たらcurrentと存在チェックのパッチ書いてML投稿もアリ?
こういうオープンソースのプロジェクトとか参加した事ないのでよくわからないんですが実際のところ、どうなんでしょう?


遅くなりましたがLean様の先日のコメントで指摘を受けた点を修正したパッチを張っておきます。
fetch等で自動化したい方は下記のリンクからどうぞ。
http://cocelo.s201.xrea.com/patch/patch-ezjail-admin
上記リンクのパッチを/usr/ports/sysutils/ezjail/files/patch-ezjail-adminと配置しておけばパッチがあたります。


下記は内容をコピペしたものです。

--- ezjail-admin.orig	2008-03-03 21:09:38.000000000 +0900
+++ ezjail-admin	2008-03-03 21:46:45.000000000 +0900
@@ -21,6 +21,7 @@
 ezjail_flavours=${ezjail_flavours:-"${ezjail_jaildir}/flavours"}
 ezjail_portscvsroot=${ezjail_portscvsroot:-":pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs"}
 ezjail_sourcetree=${ezjail_sourcetree:-"/usr/src"}
+ezjail_makeoption=${ezjail_makeoption:-"/etc/make.conf"}
 ezjail_uglyperlhack=${ezjail_uglyperlhack:-"YES"}
 
 ezjail_mount_enable=${ezjail_mount_enable:-"YES"}
@@ -37,7 +38,7 @@
 ezjail_usage_install="Usage: ${ezjail_admin} install [-mps] [-h host] [-r release]"
 ezjail_usage_create="Usage: ${ezjail_admin} create [-xbi] [-f flavour] [-r jailroot] [-s size] [-c bde|eli] [-C args] jailname jailip"
 ezjail_usage_delete="Usage: ${ezjail_admin} delete [-w] jailname"
-ezjail_usage_update="Usage: ${ezjail_admin} update [-s sourcetree] [-i] [-pP]"
+ezjail_usage_update="Usage: ${ezjail_admin} update [-s sourcetree] [-c make.conf|src.conf] [-i] [-pP]"
 ezjail_usage_config="Usage: ${ezjail_admin} config [-r run|norun] [-n newname] [-i attach|detach|fsck] jailname"
 ezjail_usage_list="Usage: ${ezjail_admin} list"
 
@@ -510,9 +511,10 @@
   unset ezjail_provideports
   ezjail_installaction="world"
 
-  shift; while getopts :ipPs: arg; do case ${arg} in
+  shift; while getopts :ipPs:c: arg; do case ${arg} in
     i) ezjail_installaction="installworld";;
     s) ezjail_sourcetree="${OPTARG}";;
+    c) ezjail_makeoption="${OPTARG}";;
     p) ezjail_provideports="YES";;
     P) ezjail_provideports="YES"; ezjail_installaction="none";;
     ?) exerr ${ezjail_usage_update};;
@@ -536,8 +538,8 @@
     mkdir -p ${ezjail_jailfull} || exerr "Cannot create temporary Jail directory."
 
     # make and setup our world, then split basejail and newjail
-    cd ${ezjail_sourcetree} && env DESTDIR=${ezjail_jailfull} make ${ezjail_installaction} || exerr "make ${ezjail_installaction} failed."
-    cd ${ezjail_sourcetree}/etc && env DESTDIR=${ezjail_jailfull} make distribution || exerr "make distribution failed."
+    cd ${ezjail_sourcetree} && env DESTDIR=${ezjail_jailfull} make __MAKE_CONF=${ezjail_makeoption} ${ezjail_installaction} || exerr "make ${ezjail_installaction} failed."
+    cd ${ezjail_sourcetree}/etc && env DESTDIR=${ezjail_jailfull} make distribution __MAKE_CONF=${ezjail_makeoption} || exerr "make distribution failed."
     ezjail_splitworld
 
   fi # installaction="none"

6系を使用している人が多いと思うので/etc/make.confをデフォルトとしていますが、src.confも指定できます。まだ7系(というよりsrc.confを使う全てのバージョン)で試した事がないのでなんとも言えませんが・・・。
とりあえず/usr/srcを追っかけてはいるんですが実際に試しちゃったほうが早いかも。