Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 20794 Details for
Bug 33578
tla eclass
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
tla.eclass
tla.eclass (text/plain), 6.51 KB, created by
Jeffrey Yasskin
on 2003-11-15 16:35:25 UTC
(
hide
)
Description:
tla.eclass
Filename:
MIME Type:
Creator:
Jeffrey Yasskin
Created:
2003-11-15 16:35:25 UTC
Size:
6.51 KB
patch
obsolete
># Copyright 2003 Gentoo Technologies, Inc. ># Distributed under the terms of the GNU General Public License v2 ># $Header: /home/cvsroot/gentoo-x86/eclass/cvs.eclass,v 1.49 2003/09/28 17:24:18 coredumb Exp $ ># ># Original Author: Jeffrey Yasskin <jyasskin@mail.utexas.edu> ># ># Originally derived from the cvs eclass. ># ># This eclass provides the generic tla fetching functions. ># to use from an ebuild, set the 'ebuild-configurable settings' below in your ># ebuild before inheriting. then either leave the default src_unpack or extend ># over tla_src_unpack. > ># Most of the time, you will define only $ETLA_VERSION and $ETLA_ARCHIVES in ># your ebuild. > ># TODO: ># Make it support particular revisions. > >ECLASS=tla >INHERITED="$INHERITED $ECLASS" > ># Don't download anything other than the tla archive >SRC_URI="" > ># You shouldn't change these settings yourself! The ebuild/eclass inheriting ># this eclass will take care of that. > ># --- begin ebuild-configurable settings > ># tla command to run. Theoretically, substituting any arch derivative should be ># relatively easy. >[ -z "$ETLA_TLA_CMD" ] && ETLA_TLA_CMD="tla" > ># tla commands with options >[ -z "$ETLA_GET_CMD" ] && ETLA_GET_CMD="get" >[ -z "$ETLA_UPDATE_CMD" ] && ETLA_UPDATE_CMD="replay" > ># Where the tla modules are stored/accessed >[ -z "$ETLA_TOP_DIR" ] && ETLA_TOP_DIR="${DISTDIR}/tla-src" > ># Name of tla version in the format ># user@example.com--archive-name/category--branch--version ># (in other words, an argument to tla get, update, or replay) >[ -z "$ETLA_VERSION" ] && ETLA_VERSION="" > ># A space-separated list of significant archive URLs. You should definitely ># include the URL for the archive your version is stored in, and if it refers ># to any other archives, also list them. >[ -z "$ETLA_ARCHIVES" ] && ETLA_ARCHIVES="" > ># The location in which to cache the version, relative to $ETLA_TOP_DIR. >[ -z "$ETLA_CACHE_DIR" ] && ETLA_CACHE_DIR="${ETLA_VERSION}" > ># ETLA_CLEAN: set this to something to get a clean copy when updating (removes ># the working directory, then uses $ETLA_GET_CMD to re-download it.) > ># --- end ebuild-configurable settings --- > ># add tla to deps >newdepend "dev-util/tla" > ># registers archives mentioned in $ETLA_ARCHIVES >tla_register_archives() { > debug-print-function $FUNCNAME $* $ETLA_ARCHIVES > > for archive in $ETLA_ARCHIVES; do > $ETLA_TLA_CMD register-archive $archive || die "Could not register archive $archive" > done >} > ># checks that configuration variables have rational values. >tla_check_vars() { > [ -z "$ETLA_VERSION" ] && die "ETLA_VERSION must be set by the ebuild. Please fix this ebuild." > $ETLA_TLA_CMD valid-package-name --archive --vsn $ETLA_VERSION || \ > die "ETLA_VERSION has an invalid format. Please fix this ebuild." >} > ># is called from tla_src_unpack >tla_fetch() { > > debug-print-function $FUNCNAME $* > > if [ -n "$ETLA_CLEAN" ]; then > rm -rf $ETLA_TOP_DIR/$ETLA_CACHE_DIR > fi > > # create the top dir if needed > if [ ! -d "$ETLA_TOP_DIR" ]; then > # note that the addwrite statements in this block are only there to allow creating ETLA_TOP_DIR; > # we've already allowed writing inside it > # this is because it's simpler than trying to find out the parent path of the directory, which > # would need to be the real path and not a symlink for things to work (so we can't just remove > # the last path element in the string) > debug-print "$FUNCNAME: checkout mode. creating tla directory" > addwrite /foobar > addwrite / > mkdir -p "$ETLA_TOP_DIR" > export SANDBOX_WRITE="${SANDBOX_WRITE//:\/foobar:\/}" > fi > > # in case ETLA_TOP_DIR is a symlink to a dir, get the real dir's path, > # otherwise addwrite() doesn't work. > cd -P "$ETLA_TOP_DIR" > /dev/null > ETLA_TOP_DIR="`/bin/pwd`" > > # disable the sandbox for this dir > addwrite "$ETLA_TOP_DIR" > > # break $ETLA_VERSION into pieces > local tla_archive=`$ETLA_TLA_CMD parse-package-name --arch $ETLA_VERSION` > local tla_version=`$ETLA_TLA_CMD parse-package-name --package-version $ETLA_VERSION` > #local tla_revision=`$ETLA_TLA_CMD parse-package-name --lvl $ETLA_VERSION` > > # determine checkout or update mode and change to the right directory. > if [ ! -d "$ETLA_TOP_DIR/$ETLA_CACHE_DIR/{arch}" ]; then > mode=get > mkdir -p "$ETLA_TOP_DIR/$ETLA_CACHE_DIR" > cd "$ETLA_TOP_DIR/$ETLA_CACHE_DIR/.." > rmdir "`basename "$ETLA_CACHE_DIR"`" > else > mode=update > cd "$ETLA_TOP_DIR/$ETLA_CACHE_DIR" > fi > > # switch versions automagically if needed > if [ "$mode" == "update" ]; then > local oldversion="`$ETLA_TLA_CMD tree-version`" > if [ "$tla_archive/$tla_version" != "$oldversion" ]; then > > einfo "Changing TLA version from $oldversion to $tla_archive/$tla_version:" > debug-print "$FUNCNAME: Changing TLA version from $oldversion to $tla_archive/$tla_version:" > > $ETLA_TLA_CMD set-tree-version $tla_archive/$tla_version > > fi > fi > > # commands to run > local cmdget="${ETLA_TLA_CMD} ${ETLA_GET_CMD} ${ETLA_VERSION} `basename $ETLA_CACHE_DIR`" > local cmdupdate="${ETLA_TLA_CMD} ${ETLA_UPDATE_CMD} ${ETLA_VERSION}" > > if [ "${mode}" == "get" ]; then > einfo "Running $cmdget" > eval $cmdget || die "tla get command failed" > elif [ "${mode}" == "update" ]; then > einfo "Running $cmdupdate" > eval $cmdupdate || die "tla update command failed" > fi > >} > > >tla_src_unpack() { > > debug-print-function $FUNCNAME $* > > debug-print "$FUNCNAME: init: > ETLA_TLA_CMD=$ETLA_TLA_CMD > ETLA_GET_CMD=$ETLA_GET_CMD > ETLA_UPDATE_CMD=$ETLA_UPDATE_CMD > ETLA_TOP_DIR=$ETLA_TOP_DIR > ETLA_VERSION=$ETLA_VERSION > ETLA_ARCHIVES=$ETLA_ARCHIVES > ETLA_CACHE_DIR=$ETLA_CACHE_DIR > ETLA_CLEAN=$ETLA_CLEAN" > > einfo "Registering Archives..." > tla_register_archives > > einfo "Checking that passed-in variables are rational..." > tla_check_vars > > einfo "Fetching tla version $ETLA_VERSION into $ETLA_TOP_DIR..." > tla_fetch > > einfo "Copying $ETLA_CACHE_DIR from $ETLA_TOP_DIR..." > debug-print "Copying $ETLA_CACHE_DIR from $ETLA_TOP_DIR..." > > # probably redundant, but best to make sure > # Use ${WORKDIR}/${P} rather than ${S} so user can point ${S} to something inside. > mkdir -p "${WORKDIR}/${P}" > > shopt -s dotglob # get any dotfiles too. > cp -Rf "$ETLA_TOP_DIR/$ETLA_CACHE_DIR"/* "${WORKDIR}/${P}" > > # implement some of base_src_unpack's functionality; > # note however that base.eclass may not have been inherited! > #if [ -n "$PATCHES" ]; then > # debug-print "$FUNCNAME: PATCHES=$PATCHES, S=$S, autopatching" > # cd "$S" > # for x in $PATCHES; do > # debug-print "patching from $x" > # patch -p0 < "$x" > # done > # # make sure we don't try to apply patches more than once, since > # # tla_src_unpack may be called several times > # export PATCHES="" > #fi > > einfo "Version ${ETLA_VERSION} is now in ${WORKDIR}/${P}" > >} > >EXPORT_FUNCTIONS src_unpack
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 33578
: 20794 |
20796