The 1.11.1 version will not create an initial copy of the .cvspass file.
The problem is in password_entry_operation in the CVS_FOPEN with "r". When
the file does not exist the routine errors out.
A reasonable solution seems to be to CVS_FOPEN "a+" which will open
read/write and create the file if it does not exist. (The downside is a
rewind if the CVS_FOPEN succeeds).
<<login.txt>>
***************************************************************************
This electronic mail transmission contains confidential and/or privileged
information intended only for the person(s) named. Any use, distribution,
copying or disclosure by another person is strictly prohibited.
***************************************************************************
Index: cvs/src/login.c
diff -c cvs/src/login.c:1.1 cvs/src/login.c:1.2
*** cvs/src/login.c:1.1 Fri Jun 1 12:41:38 2001
--- cvs/src/login.c Mon Jun 4 13:57:34 2001
***************
*** 319,330 ****
*/
passfile = construct_cvspass_filename ();
! fp = CVS_FOPEN (passfile, "r");
if (fp == NULL)
{
! error (0, errno, "failed to open %s for reading", passfile);
goto error_exit;
}
cvsroot_canonical = normalize_cvsroot (root);
--- 319,332 ----
*/
passfile = construct_cvspass_filename ();
! fp = CVS_FOPEN (passfile, "a+");
if (fp == NULL)
{
! error (0, errno, "failed to open %s for read/append", passfile);
goto error_exit;
}
+ else
+ rewind(fp);
cvsroot_canonical = normalize_cvsroot (root);