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

Diff of /eclass/cvs.eclass

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

Revision 1.56 Revision 1.59
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2004 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.56 2005/07/06 20:20:03 agriffis Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/cvs.eclass,v 1.59 2005/08/13 08:10:53 phreak Exp $
4 4
5# Current Maintainer: Tal Peer <coredumb@gentoo.org> 5# Current Maintainer: Tal Peer <coredumb@gentoo.org>
6# Original Author: Dan Armak <danarmak@gentoo.org> 6# Original Author: Dan Armak <danarmak@gentoo.org>
7 7
8# SSH auth code by Danny <danny.milo@gmx.net> 8# SSH auth code by Danny <danny.milo@gmx.net>
24 24
25# Support additional remote shells with `ext' authentication (does 25# Support additional remote shells with `ext' authentication (does
26# anyone actually need to use it with anything other than SSH?) 26# anyone actually need to use it with anything other than SSH?)
27 27
28 28
29INHERITED="$INHERITED $ECLASS"
30 29
31# Users shouldn't change these settings! The ebuild/eclass inheriting 30# Users shouldn't change these settings! The ebuild/eclass inheriting
32# this eclass will take care of that. If you want to set the global 31# this eclass will take care of that. If you want to set the global
33# KDE cvs ebuilds' settings, see the comments in kde-source.eclass. 32# KDE cvs ebuilds' settings, see the comments in kde-source.eclass.
34 33
156# --- end ebuild-configurable settings --- 155# --- end ebuild-configurable settings ---
157 156
158# add cvs to deps 157# add cvs to deps
159# ssh is used for ext auth 158# ssh is used for ext auth
160# sudo is used to run as a specified user 159# sudo is used to run as a specified user
161DEPEND="$DEPEND dev-util/cvs app-admin/sudo" 160DEPEND="dev-util/cvs app-admin/sudo"
162 161
163if [ "$ECVS_AUTH" == "ext" ]; then 162if [ "$ECVS_AUTH" == "ext" ]; then
164 #default to ssh 163 #default to ssh
165 [ -z "$CVS_RSH" ] && export SSH_RSH="ssh" 164 [ -z "$CVS_RSH" ] && export CVS_RSH="ssh"
166 if [ "$CVS_RSH" != "ssh" ]; then 165 if [ "$CVS_RSH" != "ssh" ]; then
167 die "Support for ext auth with clients other than ssh has not been implemented yet" 166 die "Support for ext auth with clients other than ssh has not been implemented yet"
168 fi 167 fi
169 DEPEND="$DEPEND net-misc/openssh" 168 DEPEND="${DEPEND} net-misc/openssh"
170fi 169fi
171 170
172# called from cvs_src_unpack 171# called from cvs_src_unpack
173cvs_fetch() { 172cvs_fetch() {
174 173
189 188
190 # Update variables that are modified by ebuild parameters, which 189 # Update variables that are modified by ebuild parameters, which
191 # should be effective every time cvs_fetch is called, and not just 190 # should be effective every time cvs_fetch is called, and not just
192 # every time cvs.eclass is inherited 191 # every time cvs.eclass is inherited
193 192
194
195 # Handle parameter for local (non-recursive) fetching 193 # Handle parameter for local (non-recursive) fetching
196 194
197 if [ -n "$ECVS_LOCAL" ]; then 195 if [ -n "$ECVS_LOCAL" ]; then
198 ECVS_UP_OPTS="$ECVS_UP_OPTS -l" 196 ECVS_UP_OPTS="$ECVS_UP_OPTS -l"
199 ECVS_CO_OPTS="$ECVS_CO_OPTS -l" 197 ECVS_CO_OPTS="$ECVS_CO_OPTS -l"
200 fi 198 fi
201 199
202 # Handle ECVS_BRANCH option 200 # Handle ECVS_BRANCH option
203 # 201 #
204 # Because CVS auto-switches branches, we just have to pass the 202 # Because CVS auto-switches branches, we just have to pass the
205 # correct -rBRANCH option when updating. 203 # correct -rBRANCH option when updating.
206 204
207 if [ -n "$ECVS_BRANCH" ]; then 205 if [ -n "$ECVS_BRANCH" ]; then
208 ECVS_UP_OPTS="$ECVS_UP_OPTS -r$ECVS_BRANCH" 206 ECVS_UP_OPTS="$ECVS_UP_OPTS -r$ECVS_BRANCH"
339 eval $cmdlogin || die "cvs login command failed" 337 eval $cmdlogin || die "cvs login command failed"
340 if [ "${mode}" == "update" ]; then 338 if [ "${mode}" == "update" ]; then
341 einfo "Running $cmdupdate" 339 einfo "Running $cmdupdate"
342 eval $cmdupdate || die "cvs update command failed" 340 eval $cmdupdate || die "cvs update command failed"
343 elif [ "${mode}" == "checkout" ]; then 341 elif [ "${mode}" == "checkout" ]; then
344 einfo "Running $cmdcheckout" 342 einfo "Running $cmdcheckout"
345 eval $cmdcheckout|| die "cvs checkout command failed" 343 eval $cmdcheckout|| die "cvs checkout command failed"
346 fi 344 fi
347 elif [ "${ECVS_AUTH}" == "ext" ] || [ "${ECVS_AUTH}" == "no" ]; then 345 elif [ "${ECVS_AUTH}" == "ext" ] || [ "${ECVS_AUTH}" == "no" ]; then
348 346
349 # Hack to support SSH password authentication 347 # Hack to support SSH password authentication
414 echo "${CVS_ECLASS_STRICT_HOST_CHECKING}')" \ 412 echo "${CVS_ECLASS_STRICT_HOST_CHECKING}')" \
415 >> "${CVS_RSH}" 413 >> "${CVS_RSH}"
416 echo "os.execv('/usr/bin/ssh', newarglist)" \ 414 echo "os.execv('/usr/bin/ssh', newarglist)" \
417 >> "${CVS_RSH}" 415 >> "${CVS_RSH}"
418 416
419 chmod a+x "${CVS_RSH}" 417 chmod a+x "${CVS_RSH}"
420 418
421 # Make sure DISPLAY is set (SSH will not use SSH_ASKPASS 419 # Make sure DISPLAY is set (SSH will not use SSH_ASKPASS
422 # if DISPLAY is not set) 420 # if DISPLAY is not set)
423 421
424 [ -z "${DISPLAY}" ] && DISPLAY="DISPLAY" 422 [ -z "${DISPLAY}" ] && DISPLAY="DISPLAY"
425 export DISPLAY 423 export DISPLAY
426 424
427 # Create a dummy executable to echo $ECVS_PASS 425 # Create a dummy executable to echo $ECVS_PASS
428 426
429 export SSH_ASKPASS="${T}/cvs_sshechopass" 427 export SSH_ASKPASS="${T}/cvs_sshechopass"
430 if [ "${ECVS_AUTH}" != "no" ]; then 428 if [ "${ECVS_AUTH}" != "no" ]; then
431 echo -en "#!/bin/bash\necho \"$ECVS_PASS\"\n" \ 429 echo -en "#!/bin/bash\necho \"$ECVS_PASS\"\n" \
432 > "${SSH_ASKPASS}" 430 > "${SSH_ASKPASS}"
433 else 431 else
434 echo -en "#!/bin/bash\nreturn\n" \ 432 echo -en "#!/bin/bash\nreturn\n" \
435 > "${SSH_ASKPASS}" 433 > "${SSH_ASKPASS}"
436 434
437 fi 435 fi
438 chmod a+x "${SSH_ASKPASS}" 436 chmod a+x "${SSH_ASKPASS}"
439 fi 437 fi
440 438
441 if [ "${mode}" == "update" ]; then 439 if [ "${mode}" == "update" ]; then
442 einfo "Running $cmdupdate" 440 einfo "Running $cmdupdate"
443 eval $cmdupdate || die "cvs update command failed" 441 eval $cmdupdate || die "cvs update command failed"
444 elif [ "${mode}" == "checkout" ]; then 442 elif [ "${mode}" == "checkout" ]; then
445 einfo "Running $cmdcheckout" 443 einfo "Running $cmdcheckout"
446 eval $cmdcheckout|| die "cvs checkout command failed" 444 eval $cmdcheckout|| die "cvs checkout command failed"
447 fi 445 fi
448 446
449 # Restore environment variable values 447 # Restore environment variable values
450 export CVS_RSH="${CVS_ECLASS_ORIG_CVS_RSH}" 448 export CVS_RSH="${CVS_ECLASS_ORIG_CVS_RSH}"
451 if [ "${CVS_ECLASS_ORIG_SSH_ASKPASS+set}" == "set" ]; then 449 if [ "${CVS_ECLASS_ORIG_SSH_ASKPASS+set}" == "set" ]; then
452 export SSH_ASKPASS="${CVS_ECLASS_ORIG_SSH_ASKPASS}" 450 export SSH_ASKPASS="${CVS_ECLASS_ORIG_SSH_ASKPASS}"
453 else 451 else
544 # Make sure we don't try to apply patches more than once, 542 # Make sure we don't try to apply patches more than once,
545 # since cvs_src_unpack is usually called several times from 543 # since cvs_src_unpack is usually called several times from
546 # e.g. kde-source_src_unpack 544 # e.g. kde-source_src_unpack
547 export PATCHES="" 545 export PATCHES=""
548 fi 546 fi
549 547
550 einfo "CVS module ${ECVS_MODULE} is now in ${WORKDIR}" 548 einfo "CVS module ${ECVS_MODULE} is now in ${WORKDIR}"
551} 549}
552 550
553EXPORT_FUNCTIONS src_unpack 551EXPORT_FUNCTIONS src_unpack

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

  ViewVC Help
Powered by ViewVC 1.1.20