On Thursday 04 December 2008 02:42:34 Willie Wong wrote: > On Thu, Dec 04, 2008 at 12:58:28AM +0530, Penguin Lover Rajat Vig squawked: > > The 9999 Builds are Live CVS Builds. > > The default is to use the Snapshot builds which are getting pulled in. > > > > -Rajat > > Okay, a better question then is: how does > > > > case ${EKEY_STATE:-${E_STATE}} in > > > release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sh > > > sparc x86 ~x86-fbsd";; > > > snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc > > > ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd";; > > > live) KEYWORDS="";; > > > esac > > know that the 9999 ebuilds should be live, and that default it should > be snap? I am completely puzzled by the ebuilds.
The answer is not in the ebuild, it's in the eclass. You will find it at $PORTDIR/ecalss/enlightenment.eclass. I'll take you through the relevant bits step by step. Lines 34 to 58 are the relevant ones, and everything afterwards depends on the value assigned to E_STATE. I'll assume you are familiar with bash's parameter expansion syntax (man bash, line 1135 if not) E_STATE="release" if [[ ${PV/9999} != ${PV} ]] ; then E_STATE="live" elif [[ -n ${E_SNAP_DATE} ]] ; then E_STATE="snap" else E_STATE="release" fi So, "release" is the default. If the version number is 9999, it's "live". If E_SNAP_DATE is defined, then it's "snapshot" Otherwise, the ebuild is for a "release" Later on, various other ebuild variable are defined depending on the value of E_STATE - such things as KEYWORDS and a whole slew of things used by the svn eclass (which does the actual checkout) > In other words, is it hardcoded somethere in portage that all 9999 > version numbers automatically trigger that variable above to be live? > Or is there some configuration somewhere? It's a convention. No sane coder will ever release a package with version 9999, that is conventionally used by devs for their development stuff in cvs/svn/git/whatever, so vapier is just falling in line. The intention was to have version numbers work like this: enlightenment-0.16.8 a stable e16 release enlightenment-0.16.9999 Kim's testing code for e16 enlightenment-9999 current cvs code for e17 so you could simply emerge a specific version and as long as your keywords were correct in portage.keywords, the right thing would happen. That all looks cute and dandy and all, but stuff has broken a bit lately. I think vapier is extremely busy with other stuff and the e17 overlay took lower priority, he took 6 weeks to reply to a one-line patch I sent him. I recommend you do what I did - read the eclass and all the ebuilds, plus man 5 ebuild, plus a long wiki document I found on the dev section at gentoo.org written by Ciaran McCreesh. At the end of that, I knew a whole lot more about portage that I didn't before and it all made sense. These days I maintain my own e17 overlay, based off Vapier's stuff. I can share it if you want. -- alan dot mckinnon at gmail dot com