otsuneさんのezjail-adminパッチ
otsuneさんのezjail-adminパッチをFreeBSD 7.0-RELEASEに対応させた物を書きました。
uname -rでメジャーバージョンをチェックし、7以下の場合はmakeにSRCCONFを渡さないようになっています。
xrea.comの方にパッチファイルとしてアップしてあるので、必要な方はどうぞ。
http://cocelo.s201.xrea.com/patch/ezjail-2.1-ezjail-admin.patch
使い方は適当なディレクトリでfetch後、${PORTSDIR}/sysutils/ezjail/files/patch-ezjail-adminとして配置しておけばパッチがあたります。
--- ezjail-admin.orig Tue Jul 31 07:38:40 2007 +++ ezjail-admin Tue Mar 25 18:42:18 2008 @@ -19,10 +19,12 @@ ezjail_jailfull=${ezjail_jailfull:-"${ezjail_jaildir}/fulljail"} ezjail_jailtemp=${ezjail_jailtemp:-"${ezjail_jaildir}/ezjailtemp"} 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_makeconf=${ezjail_makeconf:-"/etc/make.conf"} +ezjail_srcconf=${ezjail_srcconf:-"/etc/src.conf"} ezjail_uglyperlhack=${ezjail_uglyperlhack:-"YES"} ezjail_mount_enable=${ezjail_mount_enable:-"YES"} ezjail_devfs_enable=${ezjail_devfs_enable:-"YES"} ezjail_devfs_ruleset=${ezjail_devfs_ruleset:-"devfsrules_jail"} @@ -35,11 +37,11 @@ # Synopsis messages ezjail_usage_ezjailadmin="Usage: ${ezjail_admin} [config|create|delete|install|list|update] {params}" 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] [-r 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" ################################ # End of variable initialization @@ -508,13 +510,15 @@ setup|update) # Clean variables, prevent polution unset ezjail_provideports ezjail_installaction="world" - shift; while getopts :ipPs: arg; do case ${arg} in + shift; while getopts :ipPs:c:r: arg; do case ${arg} in i) ezjail_installaction="installworld";; s) ezjail_sourcetree="${OPTARG}";; + c) ezjail_makeconf="${OPTARG}";; + r) ezjail_srcconf="${OPTARG}";; p) ezjail_provideports="YES";; P) ezjail_provideports="YES"; ezjail_installaction="none";; ?) exerr ${ezjail_usage_update};; esac; done; shift $(( ${OPTIND} - 1 )) @@ -534,12 +538,17 @@ # However those may have failed [ -d "${ezjail_jailfull}" ] && chflags -R noschg ${ezjail_jailfull} && rm -rf ${ezjail_jailfull} 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." + if [ `uname -r | sed -e 's/.[0-9]*-.*//'` -gt 7 ]; then + cd ${ezjail_sourcetree} && env DESTDIR=${ezjail_jailfull} make __MAKE_CONF=${ezjail_makeconf} ${ezjail_installaction} || exerr "make ${ezjail_installaction} failed." + cd ${ezjail_sourcetree}/etc && env DESTDIR=${ezjail_jailfull} make __MAKE_CONF=${ezjail_makeconf} distribution || exerr "make distribution failed." + else + cd ${ezjail_sourcetree} && env DESTDIR=${ezjail_jailfull} make __MAKE_CONF=${ezjail_makeconf} SRCCONF=${ezjail_srcconf} ${ezjail_installaction} || exerr "make ${ezjail_installaction} failed." + cd ${ezjail_sourcetree}/etc && env DESTDIR=${ezjail_jailfull} make __MAKE_CONF=${ezjail_makeconf} SRCCONF=${ezjail_srcconf} distribution || exerr "make distribution failed." + fi ezjail_splitworld fi # installaction="none" # Provide a copy of ports tree in basejail