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

Diff of /eclass/cvs.eclass

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

Revision 1.55 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.55 2005/01/13 04:57:35 vapier 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
29ECLASS=cvs
30INHERITED="$INHERITED $ECLASS"
31 29
32# Users shouldn't change these settings! The ebuild/eclass inheriting 30# Users shouldn't change these settings! The ebuild/eclass inheriting
33# 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
34# KDE cvs ebuilds' settings, see the comments in kde-source.eclass. 32# KDE cvs ebuilds' settings, see the comments in kde-source.eclass.
35 33
157# --- end ebuild-configurable settings --- 155# --- end ebuild-configurable settings ---
158 156
159# add cvs to deps 157# add cvs to deps
160# ssh is used for ext auth 158# ssh is used for ext auth
161# sudo is used to run as a specified user 159# sudo is used to run as a specified user
162DEPEND="$DEPEND dev-util/cvs app-admin/sudo" 160DEPEND="dev-util/cvs app-admin/sudo"
163 161
164if [ "$ECVS_AUTH" == "ext" ]; then 162if [ "$ECVS_AUTH" == "ext" ]; then
165 #default to ssh 163 #default to ssh
166 [ -z "$CVS_RSH" ] && export SSH_RSH="ssh" 164 [ -z "$CVS_RSH" ] && export CVS_RSH="ssh"
167 if [ "$CVS_RSH" != "ssh" ]; then 165 if [ "$CVS_RSH" != "ssh" ]; then
168 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"
169 fi 167 fi
170 DEPEND="$DEPEND net-misc/openssh" 168 DEPEND="${DEPEND} net-misc/openssh"
171fi 169fi
172 170
173# called from cvs_src_unpack 171# called from cvs_src_unpack
174cvs_fetch() { 172cvs_fetch() {
175 173
190 188
191 # Update variables that are modified by ebuild parameters, which 189 # Update variables that are modified by ebuild parameters, which
192 # 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
193 # every time cvs.eclass is inherited 191 # every time cvs.eclass is inherited
194 192
195
196 # Handle parameter for local (non-recursive) fetching 193 # Handle parameter for local (non-recursive) fetching
197 194
198 if [ -n "$ECVS_LOCAL" ]; then 195 if [ -n "$ECVS_LOCAL" ]; then
199 ECVS_UP_OPTS="$ECVS_UP_OPTS -l" 196 ECVS_UP_OPTS="$ECVS_UP_OPTS -l"
200 ECVS_CO_OPTS="$ECVS_CO_OPTS -l" 197 ECVS_CO_OPTS="$ECVS_CO_OPTS -l"
201 fi 198 fi
202 199
203 # Handle ECVS_BRANCH option 200 # Handle ECVS_BRANCH option
204 # 201 #
205 # Because CVS auto-switches branches, we just have to pass the 202 # Because CVS auto-switches branches, we just have to pass the
206 # correct -rBRANCH option when updating. 203 # correct -rBRANCH option when updating.
207 204
208 if [ -n "$ECVS_BRANCH" ]; then 205 if [ -n "$ECVS_BRANCH" ]; then
209 ECVS_UP_OPTS="$ECVS_UP_OPTS -r$ECVS_BRANCH" 206 ECVS_UP_OPTS="$ECVS_UP_OPTS -r$ECVS_BRANCH"
340 eval $cmdlogin || die "cvs login command failed" 337 eval $cmdlogin || die "cvs login command failed"
341 if [ "${mode}" == "update" ]; then 338 if [ "${mode}" == "update" ]; then
342 einfo "Running $cmdupdate" 339 einfo "Running $cmdupdate"
343 eval $cmdupdate || die "cvs update command failed" 340 eval $cmdupdate || die "cvs update command failed"
344 elif [ "${mode}" == "checkout" ]; then 341 elif [ "${mode}" == "checkout" ]; then
345 einfo "Running $cmdcheckout" 342 einfo "Running $cmdcheckout"
346 eval $cmdcheckout|| die "cvs checkout command failed" 343 eval $cmdcheckout|| die "cvs checkout command failed"
347 fi 344 fi
348 elif [ "${ECVS_AUTH}" == "ext" ] || [ "${ECVS_AUTH}" == "no" ]; then 345 elif [ "${ECVS_AUTH}" == "ext" ] || [ "${ECVS_AUTH}" == "no" ]; then
349 346
350 # Hack to support SSH password authentication 347 # Hack to support SSH password authentication
415 echo "${CVS_ECLASS_STRICT_HOST_CHECKING}')" \ 412 echo "${CVS_ECLASS_STRICT_HOST_CHECKING}')" \
416 >> "${CVS_RSH}" 413 >> "${CVS_RSH}"
417 echo "os.execv('/usr/bin/ssh', newarglist)" \ 414 echo "os.execv('/usr/bin/ssh', newarglist)" \
418 >> "${CVS_RSH}" 415 >> "${CVS_RSH}"
419 416
420 chmod a+x "${CVS_RSH}" 417 chmod a+x "${CVS_RSH}"
421 418
422 # Make sure DISPLAY is set (SSH will not use SSH_ASKPASS 419 # Make sure DISPLAY is set (SSH will not use SSH_ASKPASS
423 # if DISPLAY is not set) 420 # if DISPLAY is not set)
424 421
425 [ -z "${DISPLAY}" ] && DISPLAY="DISPLAY" 422 [ -z "${DISPLAY}" ] && DISPLAY="DISPLAY"
426 export DISPLAY 423 export DISPLAY
427 424
428 # Create a dummy executable to echo $ECVS_PASS 425 # Create a dummy executable to echo $ECVS_PASS
429 426
430 export SSH_ASKPASS="${T}/cvs_sshechopass" 427 export SSH_ASKPASS="${T}/cvs_sshechopass"
431 if [ "${ECVS_AUTH}" != "no" ]; then 428 if [ "${ECVS_AUTH}" != "no" ]; then
432 echo -en "#!/bin/bash\necho \"$ECVS_PASS\"\n" \ 429 echo -en "#!/bin/bash\necho \"$ECVS_PASS\"\n" \
433 > "${SSH_ASKPASS}" 430 > "${SSH_ASKPASS}"
434 else 431 else
435 echo -en "#!/bin/bash\nreturn\n" \ 432 echo -en "#!/bin/bash\nreturn\n" \
436 > "${SSH_ASKPASS}" 433 > "${SSH_ASKPASS}"
437 434
438 fi 435 fi
439 chmod a+x "${SSH_ASKPASS}" 436 chmod a+x "${SSH_ASKPASS}"
440 fi 437 fi
441 438
442 if [ "${mode}" == "update" ]; then 439 if [ "${mode}" == "update" ]; then
443 einfo "Running $cmdupdate" 440 einfo "Running $cmdupdate"
444 eval $cmdupdate || die "cvs update command failed" 441 eval $cmdupdate || die "cvs update command failed"
445 elif [ "${mode}" == "checkout" ]; then 442 elif [ "${mode}" == "checkout" ]; then
446 einfo "Running $cmdcheckout" 443 einfo "Running $cmdcheckout"
447 eval $cmdcheckout|| die "cvs checkout command failed" 444 eval $cmdcheckout|| die "cvs checkout command failed"
448 fi 445 fi
449 446
450 # Restore environment variable values 447 # Restore environment variable values
451 export CVS_RSH="${CVS_ECLASS_ORIG_CVS_RSH}" 448 export CVS_RSH="${CVS_ECLASS_ORIG_CVS_RSH}"
452 if [ "${CVS_ECLASS_ORIG_SSH_ASKPASS+set}" == "set" ]; then 449 if [ "${CVS_ECLASS_ORIG_SSH_ASKPASS+set}" == "set" ]; then
453 export SSH_ASKPASS="${CVS_ECLASS_ORIG_SSH_ASKPASS}" 450 export SSH_ASKPASS="${CVS_ECLASS_ORIG_SSH_ASKPASS}"
454 else 451 else
545 # 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,
546 # since cvs_src_unpack is usually called several times from 543 # since cvs_src_unpack is usually called several times from
547 # e.g. kde-source_src_unpack 544 # e.g. kde-source_src_unpack
548 export PATCHES="" 545 export PATCHES=""
549 fi 546 fi
550 547
551 einfo "CVS module ${ECVS_MODULE} is now in ${WORKDIR}" 548 einfo "CVS module ${ECVS_MODULE} is now in ${WORKDIR}"
552} 549}
553 550
554EXPORT_FUNCTIONS src_unpack 551EXPORT_FUNCTIONS src_unpack

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

  ViewVC Help
Powered by ViewVC 1.1.20