/[gentoo-x86]/eclass/cvs.eclass
Gentoo

Diff of /eclass/cvs.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.59 Revision 1.66
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2006 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/cvs.eclass,v 1.59 2005/08/13 08:10:53 phreak Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/cvs.eclass,v 1.66 2006/12/11 00:09:31 vapier Exp $
4#
5# Maintainer: vapier@gentoo.org (and anyone who wants to help)
4 6
5# Current Maintainer: Tal Peer <coredumb@gentoo.org> 7inherit eutils
6# Original Author: Dan Armak <danarmak@gentoo.org>
7
8# SSH auth code by Danny <danny.milo@gmx.net>
9
10# SSH password authentication support and host key verification
11# support by Jeremy Maitin-Shepard <jbms@gentoo.org>
12
13 8
14# This eclass provides the generic cvs fetching functions. To use 9# This eclass provides the generic cvs fetching functions. To use
15# this from an ebuild, set the `ebuild-configurable settings' as 10# this from an ebuild, set the `ebuild-configurable settings' as
16# specified below in your ebuild before inheriting. Then either leave 11# specified below in your ebuild before inheriting. Then either leave
17# the default src_unpack or extend over cvs_src_unpack. If you find 12# the default src_unpack or extend over cvs_src_unpack. If you find
69 64
70 65
71# ECVS_TOP_DIR -- The directory under which CVS modules are checked 66# ECVS_TOP_DIR -- The directory under which CVS modules are checked
72# out. 67# out.
73 68
74[ -z "$ECVS_TOP_DIR" ] && ECVS_TOP_DIR="${DISTDIR}/cvs-src" 69[ -z "$ECVS_TOP_DIR" ] && ECVS_TOP_DIR="${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}/cvs-src"
75 70
76# ECVS_SERVER -- CVS path 71# ECVS_SERVER -- CVS path
77# 72#
78# The format is "server:/dir", e.g. "anoncvs.kde.org:/home/kde". 73# The format is "server:/dir", e.g. "anoncvs.kde.org:/home/kde".
79# Remove the other parts of the full CVSROOT, which might look like 74# Remove the other parts of the full CVSROOT, which might look like
118[ -z "$ECVS_AUTH" ] && ECVS_AUTH="pserver" 113[ -z "$ECVS_AUTH" ] && ECVS_AUTH="pserver"
119 114
120# ECVS_USER -- Username to use for authentication on the remote server 115# ECVS_USER -- Username to use for authentication on the remote server
121[ -z "$ECVS_USER" ] && ECVS_USER="anonymous" 116[ -z "$ECVS_USER" ] && ECVS_USER="anonymous"
122 117
123
124# ECVS_PASS -- Password to use for authentication on the remote server 118# ECVS_PASS -- Password to use for authentication on the remote server
125[ -z "$ECVS_PASS" ] && ECVS_PASS="" 119[ -z "$ECVS_PASS" ] && ECVS_PASS=""
126 120
127 121
128# ECVS_SSH_HOST_KEY 122# ECVS_SSH_HOST_KEY
155# --- end ebuild-configurable settings --- 149# --- end ebuild-configurable settings ---
156 150
157# add cvs to deps 151# add cvs to deps
158# ssh is used for ext auth 152# ssh is used for ext auth
159# sudo is used to run as a specified user 153# sudo is used to run as a specified user
160DEPEND="dev-util/cvs app-admin/sudo" 154DEPEND="dev-util/cvs"
155
156[ -n "$ECVS_RUNAS" ] && DEPEND="$DEPEND app-admin/sudo"
161 157
162if [ "$ECVS_AUTH" == "ext" ]; then 158if [ "$ECVS_AUTH" == "ext" ]; then
163 #default to ssh 159 #default to ssh
164 [ -z "$CVS_RSH" ] && export CVS_RSH="ssh" 160 [ -z "$CVS_RSH" ] && export CVS_RSH="ssh"
165 if [ "$CVS_RSH" != "ssh" ]; then 161 if [ "$CVS_RSH" != "ssh" ]; then
276 # be put in Root 272 # be put in Root
277 if [ "$ECVS_AUTH" == "no" ] 273 if [ "$ECVS_AUTH" == "no" ]
278 then 274 then
279 local server="${ECVS_USER}@${ECVS_SERVER}" 275 local server="${ECVS_USER}@${ECVS_SERVER}"
280 else 276 else
277 local connection="${ECVS_AUTH}"
278 [[ -n ${ECVS_PROXY} ]] && connection="${connection};proxy=${ECVS_PROXY}"
279 [[ -n ${ECVS_PROXY_PORT} ]] && connection="${connection};proxyport=${ECVS_PROXY_PORT}"
281 local server=":${ECVS_AUTH}:${ECVS_USER}@${ECVS_SERVER}" 280 local server=":${connection}:${ECVS_USER}@${ECVS_SERVER}"
282 fi 281 fi
283 282
284 # Switch servers automagically if needed 283 # Switch servers automagically if needed
285 if [ "$mode" == "update" ]; then 284 if [ "$mode" == "update" ]; then
286 cd /$ECVS_TOP_DIR/$ECVS_LOCALNAME 285 cd /$ECVS_TOP_DIR/$ECVS_LOCALNAME
488 [ -z "$ECVS_MODULE" ] && die "ERROR: CVS module not set, cannot continue." 487 [ -z "$ECVS_MODULE" ] && die "ERROR: CVS module not set, cannot continue."
489 488
490 local ECVS_LOCALNAME="${ECVS_LOCALNAME}" 489 local ECVS_LOCALNAME="${ECVS_LOCALNAME}"
491 490
492 if [ -z "$ECVS_LOCALNAME" ]; then 491 if [ -z "$ECVS_LOCALNAME" ]; then
493 ECVS_LOCALNAME="$ECVS_MODULE" 492 ECVS_LOCALNAME="$ECVS_MODULE"
494 fi 493 fi
495 494
496 if [ "$ECVS_SERVER" == "offline" ]; then 495 local offline_pkg_var="ECVS_OFFLINE_${PN}"
496 if [ "${!offline_pkg_var}" == "1" -o "$ECVS_OFFLINE" == "1" -o "$ECVS_SERVER" == "offline" ]; then
497 # We're not required to fetch anything; the module already 497 # We're not required to fetch anything; the module already
498 # exists and shouldn't be updated. 498 # exists and shouldn't be updated.
499 if [ -d "${ECVS_TOP_DIR}/${ECVS_LOCALNAME}" ]; then 499 if [ -d "${ECVS_TOP_DIR}/${ECVS_LOCALNAME}" ]; then
500 debug-print "$FUNCNAME: offline mode" 500 debug-print "$FUNCNAME: offline mode"
501 else 501 else
502 debug-print "$FUNCNAME: Offline mode specified but directory ${ECVS_TOP_DIR}/${ECVS_LOCALNAME} not found, exiting with error" 502 debug-print "$FUNCNAME: Offline mode specified but directory ${ECVS_TOP_DIR}/${ECVS_LOCALNAME} not found, exiting with error"
503 die "ERROR: Offline mode specified, but directory ${ECVS_TOP_DIR}/${ECVS_LOCALNAME} not found. Aborting." 503 die "ERROR: Offline mode specified, but directory ${ECVS_TOP_DIR}/${ECVS_LOCALNAME} not found. Aborting."
504 fi 504 fi
533 # Implement some of base_src_unpack's functionality; note however 533 # Implement some of base_src_unpack's functionality; note however
534 # that base.eclass may not have been inherited! 534 # that base.eclass may not have been inherited!
535 if [ -n "$PATCHES" ]; then 535 if [ -n "$PATCHES" ]; then
536 debug-print "$FUNCNAME: PATCHES=$PATCHES, S=$S, autopatching" 536 debug-print "$FUNCNAME: PATCHES=$PATCHES, S=$S, autopatching"
537 cd "$S" 537 cd "$S"
538 for x in $PATCHES; do 538 epatch ${PATCHES}
539 debug-print "patching from $x"
540 patch -p0 < "$x"
541 done
542 # Make sure we don't try to apply patches more than once, 539 # Make sure we don't try to apply patches more than once,
543 # since cvs_src_unpack is usually called several times from 540 # since cvs_src_unpack is usually called several times from
544 # e.g. kde-source_src_unpack 541 # e.g. kde-source_src_unpack
545 export PATCHES="" 542 export PATCHES=""
546 fi 543 fi

Legend:
Removed from v.1.59  
changed lines
  Added in v.1.66

  ViewVC Help
Powered by ViewVC 1.1.20