On 11/07/10 13:07, Mike Auty wrote: > On 07/11/10 02:40, Donnie Berkholz wrote: >> I read it more closely and realized I was a little confused by the way >> you listed all the bullet points mixing together benefits and problems. > >> So I'll try again: if you really want to do this change, you might want >> to consider adding a mercurial-2.eclass instead. Eclasses of this nature >> (svn, git, hg, etc) tend to be broadly used outside the tree as well as >> within, so breaking backwards compatibility can be a real problem. A new >> versioned eclass allows for a much more gradual transition. > > > I've only just jumped into the conversation, but the obvious question > is, why not just use ${S} as the location of the working directory > (rather than "${WORKDIR}/${workdir}")? That way, if it's set old > ebuilds still work, and if it's not set, new ebuilds get the benefit of > using ${S}? I can only see a problem with this if there's somewhere > that the value of the working directory needs to be known before any of > the phases...
Hm.. good idea :) I'm attaching modified patch that uses ${S} by default, so it will improve the situation and at the same time it won't break existing ebuilds. Thanks Mike for this suggestion. -- Krzysztof Pawlik <nelchael at gentoo.org> key id: 0xF6A80E46 desktop-misc, java, vim, kernel, python, apache...
Index: mercurial.eclass =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/mercurial.eclass,v retrieving revision 1.14 diff -u -r1.14 mercurial.eclass --- mercurial.eclass 26 Oct 2010 19:04:44 -0000 1.14 +++ mercurial.eclass 7 Nov 2010 23:05:22 -0000 @@ -68,12 +68,12 @@ EHG_OFFLINE="${EHG_OFFLINE:-${ESCM_OFFLINE}}" # @FUNCTION: mercurial_fetch -# @USAGE: [repository_uri] [module] +# @USAGE: [repository_uri] [module] [sourcedir] # @DESCRIPTION: # Clone or update repository. # -# If not repository URI is passed it defaults to EHG_REPO_URI, if module is -# empty it defaults to basename of EHG_REPO_URI. +# If repository URI is not passed it defaults to EHG_REPO_URI, if module is +# empty it defaults to basename of EHG_REPO_URI, sourcedir defaults to S. function mercurial_fetch { debug-print-function ${FUNCNAME} ${*} @@ -81,6 +81,7 @@ [[ -z "${EHG_REPO_URI}" ]] && die "EHG_REPO_URI is empty" local module="${2-$(basename "${EHG_REPO_URI}")}" + local sourcedir="${3-${S}}" # Should be set but blank to prevent using $HOME/.hgrc export HGRCPATH= @@ -116,19 +117,19 @@ fi # Checkout working copy: - einfo "Creating working directory in ${WORKDIR}/${module} (target revision: ${EHG_REVISION})" + einfo "Creating working directory in ${sourcedir} (target revision: ${EHG_REVISION})" hg clone \ ${EHG_QUIET_CMD_OPT} \ --rev="${EHG_REVISION}" \ "${EHG_STORE_DIR}/${EHG_PROJECT}/${module}" \ - "${WORKDIR}/${module}" || die "hg clone failed" + "${sourcedir}" || die "hg clone failed" # An exact revision helps a lot for testing purposes, so have some output... # id num branch # fd6e32d61721 6276 default - local HG_REVDATA=($(hg identify -b -i "${WORKDIR}/${module}")) + local HG_REVDATA=($(hg identify -b -i "${sourcedir}")) export HG_REV_ID=${HG_REVDATA[0]} local HG_REV_BRANCH=${HG_REVDATA[1]} - einfo "Work directory: ${WORKDIR}/${module} global id: ${HG_REV_ID} branch: ${HG_REV_BRANCH}" + einfo "Work directory: ${sourcedir} global id: ${HG_REV_ID} branch: ${HG_REV_BRANCH}" } # @FUNCTION: mercurial_src_unpack
signature.asc
Description: OpenPGP digital signature