--- freebsd.eclass.orig 2012-11-24 20:31:14.000000000 +0900 +++ freebsd.eclass.orig 2013-02-21 20:34:57.000000000 +0900 @@ -6,6 +6,10 @@ inherit versionator eutils flag-o-matic bsdmk +# Drop patch level from ${PV} +MY_PV=${PV/_p*} +PLEVEL=${PV##*_p} + LICENSE="BSD" HOMEPAGE="http://www.freebsd.org/" @@ -27,7 +31,30 @@ CDDL="freebsd-cddl-${PV}" # Release version (5.3, 5.4, 6.0, etc) -RV="$(get_version_component_range 1-2)" +RV="$(get_version_component_range 1-2 ${MY_PV})" + +# SVN ebuild support, details please see bug 458570. +if [[ ${MY_PV} == *9999* ]]; then + inherit subversion + + # Set SVN revision using patch level. + [[ ${PV} == *_p* ]] && ESVN_REVISION="${PLEVEL}" + + # freebsd-mk-defs is always run svn checkout/update. + # Other packages use sources that it checked out. + [[ ${PN} == freebsd-mk-defs ]] || ESVN_OFFLINE="1" + + case ${MY_PV%.9999} in + *.*.*) BRANCH="release";; + *.*) BRANCH="releng" ;; + 9999) BRANCH="head" ;; + *) BRANCH="stable" ;; + esac + [[ ${BRANCH} == head ]] || SVN_SUB_URI="${BRANCH}/${MY_PV%.9999}" + [[ ${BRANCH} == head ]] && SVN_SUB_URI="${BRANCH}" + ESVN_REPO_URI="svn://svn.freebsd.org/base/${SVN_SUB_URI}" + ESVN_PROJECT="freebsd-${BRANCH}" +fi if [[ ${PN} != "freebsd-share" ]] && [[ ${PN} != freebsd-sources ]]; then IUSE="profile" @@ -90,7 +117,11 @@ } freebsd_src_unpack() { - unpack ${A} + if [[ ${MY_PV} == *9999* ]]; then + S="${WORKDIR}" subversion_src_unpack + else + unpack ${A} + fi cd "${S}" dummy_mk ${REMOVE_SUBDIRS}