Index: acconfig.h =================================================================== RCS file: /cvs/oss/cvs/src/cvs/acconfig.h,v retrieving revision 1.1.1.3 retrieving revision 1.4 diff -c -r1.1.1.3 -r1.4 *** acconfig.h 2001/08/17 20:31:18 1.1.1.3 --- acconfig.h 2001/08/17 21:06:43 1.4 *************** *** 48,50 **** --- 48,53 ---- /* Define to force lib/regex.c to define re_comp et al. */ #undef _REGEX_RE_COMP + + /* Fermi cvsuser stuff */ + #undef FERMICVSUSER Index: config.h.in =================================================================== RCS file: /cvs/oss/cvs/src/cvs/config.h.in,v retrieving revision 1.1.1.3 retrieving revision 1.7 diff -c -r1.1.1.3 -r1.7 *** config.h.in 2001/08/17 20:31:18 1.1.1.3 --- config.h.in 2001/08/23 15:12:47 1.7 *************** *** 122,127 **** --- 122,130 ---- /* Define to force lib/regex.c to define re_comp et al. */ #undef _REGEX_RE_COMP + /* Fermi cvsuser stuff */ + #undef FERMICVSUSER + /* Define if you have the dup2 function. */ #undef HAVE_DUP2 Index: configure.in =================================================================== RCS file: /cvs/oss/cvs/src/cvs/configure.in,v retrieving revision 1.1.1.3 retrieving revision 1.5 diff -c -r1.1.1.3 -r1.5 *** configure.in 2001/08/17 20:31:18 1.1.1.3 --- configure.in 2001/08/17 21:06:43 1.5 *************** *** 337,342 **** --- 337,357 ---- AC_DEFINE(HAVE_SETMODE) fi + dnl + dnl Use --with-fermicvsuser to turn on fermi cvsh $REMOTEUSER support + dnl + AC_ARG_ENABLE(fermicvsuser, + [ --enable-fermicvsuser enable fermi cvsh support], + [case "${enableval}" in + yes) fermicvsuser=true ;; + no) fermicvsuser=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for encryption option) ;; + esac], + [fermicvsuser=false]) + if test "$fermicvsuser" = "true"; then + AC_DEFINE(FERMICVSUSER) + fi + test -f src/options.h && ( AC_MSG_WARN(saving ./src/options.h in ./src/options.h-SAVED) AC_MSG_WARN(You may wish to check that local options have not been lost.) Index: src/subr.c =================================================================== RCS file: /cvs/oss/cvs/src/cvs/src/subr.c,v retrieving revision 1.1.1.3 retrieving revision 1.13 diff -c -r1.1.1.3 -r1.13 *** subr.c 2001/08/17 20:31:24 1.1.1.3 --- subr.c 2001/10/03 14:42:38 1.13 *************** *** 373,380 **** cache = xstrdup (uidname); return cache; } ! cache = xstrdup (pw->pw_name); ! return cache; #endif } --- 373,414 ---- cache = xstrdup (uidname); return cache; } ! #ifdef FERMICVSUSER ! /* modified for SDSS repository -- by Chih-Hao Huang at Fermilab ! * ! * in sdsscvs, all accesses to the repository are using remote cvs ! * through cvsuser account, which owns everything and gives no ! * access rights to group nor other. ! * Therefore, the real (remote) user has to be picked up in LOGNAME ! * or USER, which are set by cvsh, the restricted shell for cvsuser. ! * ! * of course, we could have set the uid of cvsuser to 0, but we are ! * not convinced that it is safe ... ! * ! * modification -- by Chris Greene at Fermilab ! * Check only the first three letters of login, so ! * "cvsuser", "cvscdf", etc. all work without recompiling ! * ! * one more mod -- by Marc Mengel, Fermilab, also check ! * for "cvs" starting at last 'c'; to match "cdfcvs", etc. ! */ ! { ! char *p; ! ! p = strrchr(pw->pw_name, 'c'); ! if (!strncmp("cvs", pw->pw_name, 3) || (p && !strcmp("cvs",p))) ! { ! char *name; ! if (((name = getenv("LOGNAME")) || (name = getenv("USER"))) ! && *name) { ! cache = xstrdup(name); ! return cache; ! } ! } ! } ! #endif ! cache = xstrdup (pw->pw_name); ! return cache; #endif }