OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /v/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src                      Date:   08-Apr-2005 17:04:22
  Branch: HEAD                             Handle: 2005040816042200

  Modified files:
    openpkg-src/cvs         cvs.patch cvs.patch.rse cvs.spec

  Log:
    upgrading package: cvs 1.12.9 -> 1.12.11

  Summary:
    Revision    Changes     Path
    1.6         +6  -6      openpkg-src/cvs/cvs.patch
    1.17        +323 -330   openpkg-src/cvs/cvs.patch.rse
    1.97        +3  -3      openpkg-src/cvs/cvs.spec
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/cvs/cvs.patch
  ============================================================================
  $ cvs diff -u -r1.5 -r1.6 cvs.patch
  --- openpkg-src/cvs/cvs.patch 7 Jun 2004 14:46:39 -0000       1.5
  +++ openpkg-src/cvs/cvs.patch 8 Apr 2005 15:04:22 -0000       1.6
  @@ -1,17 +1,17 @@
   --- src/main.c.orig  Tue May 20 00:52:58 2003
   +++ src/main.c       Thu Jun 26 15:42:16 2003
  -@@ -14,6 +14,10 @@
  - 
  - #include <assert.h>
  +@@ -16,6 +16,10 @@
    #include "cvs.h"
  + #include "xgethostname.h"
  + #include "strftime.h"
   +#if defined(SERVER_SUPPORT) && defined(HAVE_SYSLOG_H)
   +#include <syslog.h>
   +#include <stdarg.h>
   +#endif
    
  - #ifdef HAVE_WINSOCK_H
  - #include <winsock.h>
  -@@ -424,6 +428,11 @@
  + const char *program_name;
  + const char *program_path;
  +@@ -557,6 +561,11 @@
        /* `getopt_long' stores the option index here, but right now we
            don't use it. */
        int option_index = 0;
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/cvs/cvs.patch.rse
  ============================================================================
  $ cvs diff -u -r1.16 -r1.17 cvs.patch.rse
  --- openpkg-src/cvs/cvs.patch.rse     13 Feb 2005 14:33:28 -0000      1.16
  +++ openpkg-src/cvs/cvs.patch.rse     8 Apr 2005 15:04:22 -0000       1.17
  @@ -323,11 +323,11 @@
   Index: src/add.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/add.c,v
  -retrieving revision 1.1.1.12
  -diff -u -d -r1.1.1.12 add.c
  ---- src/add.c        8 May 2004 23:13:10 -0000       1.1.1.12
  -+++ src/add.c        19 May 2004 18:33:37 -0000
  -@@ -829,6 +829,9 @@
  +retrieving revision 1.1.1.13
  +diff -u -d -r1.1.1.13 add.c
  +--- src/add.c        4 Nov 2004 15:15:26 -0000       1.1.1.13
  ++++ src/add.c        8 Apr 2005 09:42:35 -0000
  +@@ -855,6 +855,9 @@
        li->type = T_TITLE;
        li->tag = xstrdup (tag);
        li->rev_old = li->rev_new = NULL;
  @@ -340,11 +340,11 @@
   Index: src/admin.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/admin.c,v
  -retrieving revision 1.1.1.13
  -diff -u -d -r1.1.1.13 admin.c
  ---- src/admin.c      22 Mar 2004 17:26:42 -0000      1.1.1.13
  -+++ src/admin.c      14 Apr 2004 17:52:40 -0000
  -@@ -137,6 +137,160 @@
  +retrieving revision 1.1.1.14
  +diff -u -d -r1.1.1.14 admin.c
  +--- src/admin.c      4 Nov 2004 15:15:26 -0000       1.1.1.14
  ++++ src/admin.c      8 Apr 2005 13:40:35 -0000
  +@@ -135,6 +135,160 @@
        dat->av[dat->ac++] = newelt;
    }
    
  @@ -354,7 +354,7 @@
   +static List *admininfo_flist;
   +
   +static void admininfo_dlist_delproc (Node *);
  -+static int  admininfo_info_runproc (char *, char *, void *);
  ++static int  admininfo_info_runproc (const char *, const char *, void *);
   +static int  admininfo_flist_runproc (Node *, void *);
   +
   +struct admininfo_dlist_st {
  @@ -365,7 +365,7 @@
   +static int
   +admininfo_fileproc (void *callerdat, struct file_info *finfo)
   +{
  -+    char *xdir;
  ++    const char *xdir;
   +    Node *dnode;
   +    Node *fnode;
   +
  @@ -426,8 +426,8 @@
   +admininfo_filesdoneproc(
   +    void *callerdat,
   +    int err,
  -+    char *repos,
  -+    char *update_dir,
  ++    const char *repos,
  ++    const char *update_dir,
   +    List *entries)
   +{
   +    Node *dnode;
  @@ -454,8 +454,8 @@
   +/* admininfo configuration entry callback */
   +static int
   +admininfo_info_runproc(repository, filter, closure)
  -+    char *repository;
  -+    char *filter;
  ++    const char *repository;
  ++    const char *filter;
   +    void *closure;
   +{
   +    char *s, *cp;
  @@ -502,10 +502,10 @@
   +
   +#endif /* RSE_PATCH_ADMININFO */
   +
  - int
  - admin (int argc, char **argv)
  - {
  -@@ -513,6 +667,20 @@
  + 
  + 
  + /*
  +@@ -585,6 +739,20 @@
    
        lock_tree_promotably (argc, argv, 0, W_LOCAL, 0);
    
  @@ -524,15 +524,15 @@
   +#endif
   +
        err = start_recursion
  -         (admin_fileproc, NULL, admin_dirproc,
  +         (admin_fileproc, admin_filesdoneproc, admin_dirproc,
             NULL, &admin_data,
   Index: src/checkin.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/checkin.c,v
  -retrieving revision 1.1.1.5
  -diff -u -d -r1.1.1.5 checkin.c
  ---- src/checkin.c    11 May 2004 18:22:29 -0000      1.1.1.5
  -+++ src/checkin.c    19 May 2004 18:37:53 -0000
  +retrieving revision 1.1.1.6
  +diff -u -d -r1.1.1.6 checkin.c
  +--- src/checkin.c    4 Nov 2004 15:15:27 -0000       1.1.1.6
  ++++ src/checkin.c    8 Apr 2005 09:46:24 -0000
   @@ -26,6 +26,9 @@
        Vers_TS *vers;
        int set_time;
  @@ -551,16 +551,16 @@
   +    flags = RCS_FLAGS_KEEPFILE;
   +    if (really_quiet || quiet)
   +        flags |= RCS_FLAGS_QUIET;
  -+    switch (RCS_checkin (finfo->rcs, finfo->file, message, rev,
  -+                                 flags))
  ++    switch (RCS_checkin (finfo->rcs, finfo->update_dir, finfo->file, 
message,
  ++                     rev, 0, flags))
   +#else
  -     switch (RCS_checkin (finfo->rcs, finfo->file, message, rev,
  -                          RCS_FLAGS_KEEPFILE))
  +     switch (RCS_checkin (finfo->rcs, finfo->update_dir, finfo->file, 
message,
  +                      rev, 0, RCS_FLAGS_KEEPFILE))
   +#endif
        {
        case 0:                 /* everything normal */
    
  -@@ -111,6 +122,16 @@
  +@@ -113,6 +124,16 @@
            history_write (type, NULL, vers->vn_rcs,
                           finfo->file, finfo->repository);
    
  @@ -580,10 +580,10 @@
   Index: src/client.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/client.c,v
  -retrieving revision 1.1.1.16
  -diff -u -d -r1.1.1.16 client.c
  ---- src/client.c     19 May 2004 21:39:47 -0000      1.1.1.16
  -+++ src/client.c     9 Jun 2004 20:51:01 -0000
  +retrieving revision 1.1.1.18
  +diff -u -d -r1.1.1.18 client.c
  +--- src/client.c     9 Dec 2004 19:34:33 -0000       1.1.1.18
  ++++ src/client.c     8 Apr 2005 13:42:16 -0000
   @@ -67,6 +67,9 @@
    int status (int argc, char **argv);
    int tag (int argc, char **argv);
  @@ -593,9 +593,9 @@
   +#endif
    
    /* All the response handling functions.  */
  - static void handle_ok (char *, int);
  -@@ -210,14 +213,34 @@
  -                      : Name_Root ((char *) NULL, (char *) NULL));
  + static void handle_ok (char *, size_t);
  +@@ -220,13 +223,33 @@
  +         }
        }
    
   +#ifdef RSE_PATCH_CVSROOT
  @@ -605,31 +605,30 @@
   +
   +            cvsroot_alias = 0;
   +            if ((e = cvsroot_lookup(NULL, current_parsed_root->original, 
NULL)) != NULL)
  -+                if (strcmp(e->slavepath, this_root) == 0)
  ++                if (strcmp(e->slavepath, this_root->original) == 0)
   +                    cvsroot_alias = 1;
  -+            if ((e = cvsroot_lookup(NULL, NULL, this_root)) != NULL)
  ++            if ((e = cvsroot_lookup(NULL, NULL, this_root->original)) != 
NULL)
   +                if (strcmp(e->masterpath, current_parsed_root->original) == 
0)
   +                    cvsroot_alias = 1;
   +#endif
   +
        /* Now check the value for root. */
  -     if (this_root && current_parsed_root
  +     if (root_string && current_parsed_root
   +#ifdef RSE_PATCH_CVSROOT
   +        && !cvsroot_alias
   +#endif
  -         && (strcmp (this_root, current_parsed_root->original) != 0))
  +         && (strcmp (root_string, original_parsed_root->original) != 0))
        {
            /* Don't send this, since the CVSROOTs don't match. */
  -         free (this_root);
            return 1;
        }
   +#ifdef RSE_PATCH_CVSROOT
   +    }
   +#endif
  -     free (this_root);
        }
        
  -@@ -2225,6 +2248,9 @@
  +     /* OK, let's send it. */
  +@@ -2379,6 +2402,9 @@
        /* Add a directory name to the list of those sent to the
           server. */
        if (update_dir && (*update_dir != '\0')
  @@ -642,11 +641,11 @@
   Index: src/commit.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/commit.c,v
  -retrieving revision 1.1.1.17
  -diff -u -d -r1.1.1.17 commit.c
  ---- src/commit.c     9 Jun 2004 14:52:37 -0000       1.1.1.17
  -+++ src/commit.c     9 Jun 2004 20:51:01 -0000
  -@@ -298,6 +298,9 @@
  +retrieving revision 1.1.1.18
  +diff -u -d -r1.1.1.18 commit.c
  +--- src/commit.c     4 Nov 2004 15:15:27 -0000       1.1.1.18
  ++++ src/commit.c     8 Apr 2005 09:42:35 -0000
  +@@ -300,6 +300,9 @@
        data->type = status;
        data->tag = xstrdup (vers->tag);
        data->rev_old = data->rev_new = NULL;
  @@ -656,9 +655,9 @@
    
        node->type = UPDATE;
        node->delproc = update_delproc;
  -@@ -981,7 +984,16 @@
  -               xmalloc (sizeof (struct logfile_info)));
  -         li->type = status;
  +@@ -1057,7 +1060,16 @@
  +             }
  + 
            li->tag = xstrdup (vers->tag);
   +#ifdef RSE_PATCH_READDNEW
   +        /* If the file was re-added, we want the revision in the commitlog
  @@ -673,7 +672,7 @@
            li->rev_new = NULL;
            p->data = li;
            (void) addnode (ulist, p);
  -@@ -2299,6 +2311,10 @@
  +@@ -2461,6 +2473,10 @@
        free (li->rev_old);
        if (li->rev_new)
        free (li->rev_new);
  @@ -687,16 +686,16 @@
   Index: src/create_adm.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/create_adm.c,v
  -retrieving revision 1.1.1.9
  -diff -u -d -r1.1.1.9 create_adm.c
  ---- src/create_adm.c 27 Apr 2004 20:36:33 -0000      1.1.1.9
  -+++ src/create_adm.c 19 May 2004 18:38:23 -0000
  +retrieving revision 1.1.1.10
  +diff -u -d -r1.1.1.10 create_adm.c
  +--- src/create_adm.c 4 Nov 2004 15:15:27 -0000       1.1.1.10
  ++++ src/create_adm.c 8 Apr 2005 13:43:34 -0000
   @@ -23,6 +23,41 @@
       or after which CVS might do something non-useful.  If WARN is zero, then
       don't print warnings; all errors are fatal then.  */
    
   +#ifdef RSE_PATCH_CVSROOT
  -+static int local_template_cb(char *repository, char *template, void 
*closure)
  ++static int local_template_cb(const char *repository, const char *template, 
void *closure)
   +{
   +    FILE *fpIN, *fpOUT;
   +    char buf[1024];
  @@ -720,7 +719,7 @@
   +    return 0;
   +}
   +
  -+static void local_template(char *update_dir, char *repository)
  ++static void local_template(const char *update_dir, const char *repository)
   +{
   +    cvsroot_type *e;
   +
  @@ -757,10 +756,10 @@
   Index: src/cvs.h
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/cvs.h,v
  -retrieving revision 1.1.1.16
  -diff -u -d -r1.1.1.16 cvs.h
  ---- src/cvs.h        9 Jun 2004 14:52:38 -0000       1.1.1.16
  -+++ src/cvs.h        13 Feb 2005 11:11:02 -0000
  +retrieving revision 1.1.1.18
  +diff -u -d -r1.1.1.18 cvs.h
  +--- src/cvs.h        30 Nov 2004 19:57:10 -0000      1.1.1.18
  ++++ src/cvs.h        8 Apr 2005 14:46:18 -0000
   @@ -7,6 +7,46 @@
     */
    
  @@ -808,10 +807,10 @@
     * basic information used in all source files
     *
     */
  -@@ -166,6 +206,33 @@
  +@@ -175,6 +215,33 @@
  + #define CVSROOTADM_VERIFYMSG    "verifymsg"
  + #define CVSROOTADM_WRAPPER  "cvswrappers"
    #define CVSROOTADM_WRITERS  "writers"
  - #define CVSROOTADM_PASSWD   "passwd"
  - #define CVSROOTADM_CONFIG   "config"
   +#ifdef RSE_PATCH_ADMININFO
   +#define CVSROOTADM_ADMININFO    "admininfo"
   +#endif
  @@ -842,9 +841,9 @@
    
    #define CVSNULLREPOS                "Emptydir"      /* an empty directory */
    
  -@@ -449,6 +516,27 @@
  - void root_allow_free (void);
  - int root_allow_ok (char *);
  +@@ -459,6 +526,27 @@
  + const char *Short_Repository (const char *repository);
  + void Sanitize_Repository_Name (char *repository);
    
   +#ifdef RSE_PATCH_MAPROOT
   +void root_map_add (char *, char *);
  @@ -867,10 +866,10 @@
   +void cvsroot_synchronize(cvsroot_type *, int);
   +#endif
   +
  - char *previous_rev (RCSNode *rcs, const char *rev);
  - char *gca (const char *rev1, const char *rev2);
  - void check_numeric (const char *, int, char **);
  -@@ -612,6 +700,10 @@
  + char *entries_time (time_t unixtime);
  + time_t unix_time_stamp (const char *file);
  + char *time_stamp (const char *file);
  +@@ -589,6 +677,14 @@
    void expand_wild (int argc, char **argv, 
                      int *pargc, char ***pargv);
    
  @@ -878,10 +877,14 @@
   +int handle2dates(char *, time_t *, time_t *);
   +#endif
   +
  - #ifdef SERVER_SUPPORT
  - int cvs_casecmp (const char *, const char *);
  - #endif
  -@@ -860,6 +952,9 @@
  ++#ifdef SERVER_SUPPORT
  ++int cvs_casecmp (const char *, const char *);
  ++#endif
  ++
  + /* exithandle.c */
  + void signals_register (RETSIGTYPE (*handler)(int));
  + void cleanup_register (void (*handler) (void));
  +@@ -791,6 +887,9 @@
                                   NULL for add or import */
      char *rev_new;            /* rev number after a commit/modify,
                                   add, or import, NULL for remove */
  @@ -891,7 +894,7 @@
    };
    
    /* Wrappers.  */
  -@@ -900,6 +995,13 @@
  +@@ -831,6 +930,13 @@
    int unedit (int argc, char **argv);
    int editors (int argc, char **argv);
    int watchers (int argc, char **argv);
  @@ -905,7 +908,7 @@
    int annotate (int argc, char **argv);
    int add (int argc, char **argv);
    int admin (int argc, char **argv);
  -@@ -929,8 +1031,11 @@
  +@@ -860,6 +966,9 @@
    int cvsstatus (int argc, char **argv);
    int cvstag (int argc, char **argv);
    int version (int argc, char **argv);
  @@ -913,11 +916,17 @@
   +extern int cvslist (int argc, char **argv);
   +#endif
    
  --unsigned long int lookup_command_attribute (char *);
  -+unsigned long int lookup_command_attribute (const char *);
  + unsigned long int lookup_command_attribute (const char *);
    
  - #if defined(AUTH_CLIENT_SUPPORT) || defined(AUTH_SERVER_SUPPORT)
  - char *scramble (char *str);
  +@@ -891,3 +1000,8 @@
  + void cvs_flusherr (void);
  + void cvs_flushout (void);
  + void cvs_output_tagged (const char *, const char *);
  ++
  ++#ifdef RSE_PATCH_BUGFIX
  ++extern int rpl_lstat (const char *file, struct stat *sbuf);
  ++#endif
  ++
   Index: src/cvsrc.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/cvsrc.c,v
  @@ -1226,10 +1235,10 @@
   Index: src/diff.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/diff.c,v
  -retrieving revision 1.1.1.11
  -diff -u -d -r1.1.1.11 diff.c
  ---- src/diff.c       22 Mar 2004 17:26:44 -0000      1.1.1.11
  -+++ src/diff.c       14 Apr 2004 17:52:41 -0000
  +retrieving revision 1.1.1.12
  +diff -u -d -r1.1.1.12 diff.c
  +--- src/diff.c       4 Nov 2004 15:15:27 -0000       1.1.1.12
  ++++ src/diff.c       8 Apr 2005 09:42:35 -0000
   @@ -49,6 +49,10 @@
    static char *diff_date1, *diff_date2;
    static char *use_rev1, *use_rev2;
  @@ -1437,21 +1446,22 @@
   Index: src/history.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/history.c,v
  -retrieving revision 1.1.1.11
  -diff -u -d -r1.1.1.11 history.c
  ---- src/history.c    9 Jun 2004 14:52:38 -0000       1.1.1.11
  -+++ src/history.c    9 Jun 2004 20:51:01 -0000
  -@@ -237,6 +237,9 @@
  +retrieving revision 1.1.1.12
  +diff -u -d -r1.1.1.12 history.c
  +--- src/history.c    4 Nov 2004 15:15:27 -0000       1.1.1.12
  ++++ src/history.c    8 Apr 2005 09:49:07 -0000
  +@@ -236,6 +236,10 @@
  + static time_t tz_seconds_east_of_GMT;
    static char *tz_name = "+0000";
    
  - char *logHistory = ALL_HISTORY_REC_TYPES;
   +#ifdef RSE_PATCH_HISTORYFILE
   +char *history_file = NULL;
   +#endif
  - 
  ++
    /* -r, -t, or -b options, malloc'd.  These are "" if the option in
       question is not specified or is overridden by another option.  The
  -@@ -671,6 +674,10 @@
  +    main reason for using "" rather than NULL is historical.  Together
  +@@ -669,6 +673,10 @@
    
        if (histfile)
        fname = xstrdup (histfile);
  @@ -1462,19 +1472,17 @@
        else
        {
        fname = xmalloc (strlen (current_parsed_root->directory) + sizeof 
(CVSROOTADM)
  -@@ -720,10 +727,18 @@
  -     return;
  -     if ( strchr(logHistory, type) == NULL ) 
  +@@ -718,8 +726,16 @@
  +     if (!strchr (config->logHistory, type)) 
        return;
  + 
   +#ifdef RSE_PATCH_HISTORYFILE
   +    if (history_file != NULL)
   +        fname = xstrdup (history_file);
   +    else {
   +#endif
  -     fname = xmalloc (strlen (current_parsed_root->directory) + sizeof 
(CVSROOTADM)
  -                  + sizeof (CVSROOTADM_HISTORY) + 3);
  -     (void) sprintf (fname, "%s/%s/%s", current_parsed_root->directory,
  -                 CVSROOTADM, CVSROOTADM_HISTORY);
  +     fname = Xasprintf ("%s/%s/%s", current_parsed_root->directory,
  +                   CVSROOTADM, CVSROOTADM_HISTORY);
   +#ifdef RSE_PATCH_HISTORYFILE
   +    }
   +#endif
  @@ -1484,11 +1492,11 @@
   Index: src/import.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/import.c,v
  -retrieving revision 1.1.1.10
  -diff -u -d -r1.1.1.10 import.c
  ---- src/import.c     30 Apr 2004 12:57:34 -0000      1.1.1.10
  -+++ src/import.c     19 May 2004 18:33:38 -0000
  -@@ -56,6 +56,141 @@
  +retrieving revision 1.1.1.11
  +diff -u -d -r1.1.1.11 import.c
  +--- src/import.c     4 Nov 2004 15:15:27 -0000       1.1.1.11
  ++++ src/import.c     8 Apr 2005 09:42:35 -0000
  +@@ -64,6 +64,141 @@
        NULL
    };
    
  @@ -1630,7 +1638,7 @@
    int
    import (int argc, char **argv)
    {
  -@@ -301,6 +436,12 @@
  +@@ -326,6 +461,12 @@
        error (1, 0, "attempt to import the repository");
        }
    
  @@ -1643,7 +1651,7 @@
        /*
         * Make all newly created directories writable.  Should really use a 
more
         * sophisticated security mechanism here.
  -@@ -340,7 +481,11 @@
  +@@ -368,7 +509,11 @@
                               "Use the following command to help the merge:");
            cvs_output_tagged ("newline", NULL);
            cvs_output_tagged ("newline", NULL);
  @@ -1655,8 +1663,8 @@
            cvs_output_tagged ("text", program_name);
            if (CVSroot_cmdline != NULL)
            {
  -@@ -367,7 +512,11 @@
  -                     conflicts);
  +@@ -398,7 +543,11 @@
  +     (void) fprintf (logfp, " conflicts created by this import.\n");
        (void) fprintf (logfp,
                        "Use the following command to help the merge:\n\n");
   +#ifdef RSE_PATCH_COSMETICS
  @@ -1667,7 +1675,7 @@
        (void) fprintf (logfp, "-j%s:yesterday -j%s %s\n\n",
                        argv[1], argv[1], argv[0]);
        }
  -@@ -390,6 +539,9 @@
  +@@ -421,6 +570,9 @@
        li->type = T_TITLE;
        li->tag = xstrdup (vbranch);
        li->rev_old = li->rev_new = NULL;
  @@ -1677,7 +1685,7 @@
        p->data = li;
        (void) addnode (ulist, p);
        Update_Logfile (repository, message, logfp, ulist);
  -@@ -667,7 +819,11 @@
  +@@ -718,7 +870,11 @@
             */
            if (add_tags (vers->srcfile, vfile, vtag, targc, targv))
                retval = 1;
  @@ -1694,7 +1702,7 @@
   RCS file: src/list.c
   diff -N src/list.c
   --- /dev/null        1 Jan 1970 00:00:00 -0000
  -+++ src/list.c       19 May 2004 18:53:24 -0000
  ++++ src/list.c       8 Apr 2005 13:47:48 -0000
   @@ -0,0 +1,282 @@
   +/* 
   + * Copyright (c) 1998, Dan Rich <[EMAIL PROTECTED]>
  @@ -1913,8 +1921,8 @@
   +    free(buf);
   +
   +    if (local) {                       /* We need to output the current 
dirs */
  -+        dirs = Find_Directories(update_dir, W_REPOS, NULL);
  -+        walklist(dirs, cvslist_output_dir, update_dir);
  ++        dirs = Find_Directories((char *)update_dir, W_REPOS, NULL);
  ++        walklist(dirs, cvslist_output_dir, (char *)update_dir);
   +    }
   +    return R_PROCESS;
   +}
  @@ -1965,7 +1973,7 @@
   +    buf = xmalloc(80 + strlen(p->key)
   +                  + (branch ? strlen(branch) : strlen(p->data)));
   +    sprintf(buf, "\t%-25s\t(%s: %s)", p->key,
  -+            branch ? "branch" : "revision", branch ? branch : p->data);
  ++            branch ? "branch" : "revision", branch ? branch : (char 
*)p->data);
   +    cvs_output_tagged("finfo", buf);
   +    cvs_output_tagged("newline", NULL);
   +    free(buf);
  @@ -1981,11 +1989,11 @@
   Index: src/logmsg.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/logmsg.c,v
  -retrieving revision 1.1.1.10
  -diff -u -d -r1.1.1.10 logmsg.c
  ---- src/logmsg.c     22 Mar 2004 17:26:46 -0000      1.1.1.10
  -+++ src/logmsg.c     14 Apr 2004 17:52:42 -0000
  -@@ -625,6 +625,9 @@
  +retrieving revision 1.1.1.11
  +diff -u -d -r1.1.1.11 logmsg.c
  +--- src/logmsg.c     4 Nov 2004 15:15:27 -0000       1.1.1.11
  ++++ src/logmsg.c     8 Apr 2005 13:23:38 -0000
  +@@ -616,6 +616,9 @@
        const char *f;
        char *d;
        size_t doff;
  @@ -1995,7 +2003,7 @@
    
        if (p->data == NULL) return 1;
    
  -@@ -635,6 +638,37 @@
  +@@ -626,6 +629,36 @@
        {
        switch (*f++)
        {
  @@ -2018,13 +2026,12 @@
   +                    break;
   +            }
   +                case 'd': {
  -+                time_t t;
  ++                struct timespec ts;
   +                li = p->data;
   +                if (li->date != NULL) {
  -+                    t = get_date(li->date, NULL);
  -+                    if (t != ((time_t)-1)) {
  -+                        t += 1; /* re-adjust because of fudge */
  -+                        sprintf(buf, "%ld", (long)t);
  ++                    if (get_date(&ts, li->date, NULL)) {
  ++                        ts.tv_sec += 1; /* re-adjust because of fudge */
  ++                        sprintf(buf, "%ld", (long)ts.tv_sec);
   +                    }
   +                }
   +                break;
  @@ -2036,11 +2043,11 @@
   Index: src/main.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/main.c,v
  -retrieving revision 1.1.1.15
  -diff -u -d -r1.1.1.15 main.c
  ---- src/main.c       29 May 2004 04:49:51 -0000      1.1.1.15
  -+++ src/main.c       13 Feb 2005 14:28:33 -0000
  -@@ -25,6 +25,10 @@
  +retrieving revision 1.1.1.17
  +diff -u -d -r1.1.1.17 main.c
  +--- src/main.c       9 Dec 2004 16:02:25 -0000       1.1.1.17
  ++++ src/main.c       8 Apr 2005 14:43:16 -0000
  +@@ -21,6 +21,10 @@
    const char *program_path;
    const char *cvs_cmd_name;
    
  @@ -2048,10 +2055,10 @@
   +static char *chrootdir = NULL;
   +#endif
   +
  - /* I'd dynamically allocate this, but it seems like gethostname
  -    requires a fixed size array.  If I'm remembering the RFCs right,
  -    256 should be enough.  */
  -@@ -54,6 +58,11 @@
  + char *hostname;
  + #ifdef SERVER_SUPPORT
  + char *server_hostname;
  +@@ -49,6 +53,11 @@
    
    mode_t cvsumask = UMASK_DFLT;
    
  @@ -2063,7 +2070,7 @@
    char *CurDir;
    
    /*
  -@@ -128,12 +137,18 @@
  +@@ -114,12 +123,18 @@
        { "login",    "logon",    "lgn",       login,     0 },
        { "logout",   NULL,       NULL,        logout,    0 },
    #endif /* AUTH_CLIENT_SUPPORT */
  @@ -2079,10 +2086,10 @@
   +#ifdef RSE_PATCH_RLIST
   +    { "rlist",    "rls",      NULL,        cvslist,   0 },
   +#endif
  -     { "release",  "re",       "rel",       release,   0 },
  +     { "release",  "re",       "rel",       release,   
CVS_CMD_MODIFIES_REPOSITORY },
        { "remove",   "rm",       "delete",    cvsremove, 
CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR },
        { "rlog",     "rl",       NULL,        cvslog,    0 },
  -@@ -149,9 +164,53 @@
  +@@ -135,9 +150,53 @@
        { "version",  "ve",       "ver",       version,   0 },
        { "watch",    NULL,       NULL,        watch,     
CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR },
        { "watchers", NULL,       NULL,        watchers,  CVS_CMD_USES_WORK_DIR 
},
  @@ -2136,7 +2143,7 @@
    static const char *const usg[] =
    {
        /* CVS usage messages never have followed the GNU convention of
  -@@ -192,9 +251,13 @@
  +@@ -178,9 +237,13 @@
           paragraph in ../cvs.spec without assuming the reader knows what
           version control means.  */
    
  @@ -2145,12 +2152,12 @@
   +#else
        "For CVS updates and additional information, see\n",
        "    the CVS home page at http://www.cvshome.org/ or\n",
  -     "    Pascal Molli's CVS site at 
http://www.loria.fr/~molli/cvs-index.html\n";,
  +     "    the CVSNT home page at http://www.cvsnt.org/\n";,
   +#endif
        NULL,
    };
    
  -@@ -221,12 +284,18 @@
  +@@ -207,12 +270,18 @@
        "        login        Prompt for password for authenticating server\n",
        "        logout       Removes entry in .cvspass for remote 
repository\n",
    #endif /* AUTH_CLIENT_SUPPORT */
  @@ -2169,7 +2176,7 @@
        "        release      Indicate that a Module is no longer in use\n",
        "        remove       Remove an entry from the repository\n",
        "        rlog         Print out history information for a module\n",
  -@@ -242,6 +311,9 @@
  +@@ -228,6 +297,9 @@
        "        version      Show current CVS version(s)\n",
        "        watch        Set watches\n",
        "        watchers     See who is watching a file\n",
  @@ -2179,7 +2186,7 @@
        "(Specify the --help option for a list of other help options)\n",
        NULL,
    };
  -@@ -271,6 +343,10 @@
  +@@ -257,6 +329,10 @@
    #endif
        "    -a           Authenticate all net traffic.\n",
    #endif
  @@ -2190,16 +2197,7 @@
        "    -s VAR=VAL   Set CVS user variable.\n",
        "(Specify the --help option for a list of other help options)\n",
        NULL
  -@@ -329,7 +405,7 @@
  - 
  - 
  - unsigned long int
  --lookup_command_attribute (char *cmd_name)
  -+lookup_command_attribute (const char *cmd_name)
  - {
  -     const struct cmd *cm;
  - 
  -@@ -338,6 +414,20 @@
  +@@ -326,6 +402,20 @@
        if (strcmp (cmd_name, cm->fullname) == 0)
            break;
        }
  @@ -2220,8 +2218,8 @@
        if (!cm->fullname)
        error (1, 0, "unknown command: %s", cmd_name);
        return cm->attr;
  -@@ -426,11 +516,30 @@
  -     int free_CVSroot = 0;
  +@@ -422,11 +512,30 @@
  +     int tmpdir_update_env;
        int free_Editor = 0;
        int free_Tmpdir = 0;
   +#ifdef RSE_PATCH_CVSROOT
  @@ -2251,9 +2249,9 @@
        static struct option long_options[] =
        {
            {"help", 0, NULL, 'H'},
  -@@ -439,6 +548,12 @@
  -     {"help-synonyms", 0, NULL, 2},
  +@@ -436,6 +545,12 @@
        {"help-options", 0, NULL, 4},
  + #ifdef SERVER_SUPPORT
        {"allow-root", required_argument, NULL, 3},
   +#ifdef RSE_PATCH_MAPROOT
   +    {"map-root", required_argument, NULL, 5},
  @@ -2261,10 +2259,10 @@
   +#ifdef RSE_PATCH_CHROOT
   +    {"chroot", required_argument, NULL, 6},
   +#endif
  + #endif /* SERVER_SUPPORT */
            {0, 0, 0, 0}
        };
  -     /* `getopt_long' stores the option index here, but right now we
  -@@ -503,6 +618,10 @@
  +@@ -495,6 +610,10 @@
        readonlyfs = 1;
        logoff = 1;
        }
  @@ -2275,7 +2273,7 @@
    
        /* Set this to 0 to force getopt initialization.  getopt() sets
           this to 1 internally.  */
  -@@ -522,12 +641,63 @@
  +@@ -514,12 +633,63 @@
            use_cvsrc = 0;
        }
    
  @@ -2339,7 +2337,7 @@
        optind = 0;
        opterr = 1;
    
  -@@ -553,6 +723,24 @@
  +@@ -546,6 +716,24 @@
                /* --allow-root */
                root_allow_add (optarg);
                break;
  @@ -2361,10 +2359,10 @@
   +            break;
   +            }
   +#endif
  + #endif /* SERVER_SUPPORT */
            case 'Q':
                really_quiet = 1;
  -             /* FALL THROUGH */
  -@@ -612,10 +800,34 @@
  +@@ -606,7 +794,31 @@
            case 'd':
                if (CVSroot_cmdline != NULL)
                    free (CVSroot_cmdline);
  @@ -2382,24 +2380,21 @@
   +                        if (!quiet)
   +                            fprintf(stderr, "%s: using repository `%s'\n", 
program_name, e->masterpath);
   +                    CVSroot_cmdline = xstrdup(e->masterpath);
  -+                    CVSroot = xstrdup(e->masterpath);
  ++                    CVSroot_parsed->original = xstrdup(e->masterpath);
   +                        cvsroot_free(e);
   +                    }
   +                    else {
   +                        cvsroot_cmdline_isreal = 1;
   +#endif
                CVSroot_cmdline = xstrdup (optarg);
  -             if (free_CVSroot)
  -             {
  -                 free (CVSroot);
   +#ifdef RSE_PATCH_CVSROOT
   +                    }
   +                }
   +#endif
  -                 free_CVSroot = 0;
  -             }
  -             CVSroot = CVSroot_cmdline;
  -@@ -664,6 +876,28 @@
  +             break;
  +         case 'H':
  +             help = 1;
  +@@ -651,6 +863,28 @@
                       We will issue an error later if stream
                       authentication is not supported.  */
                break;
  @@ -2428,7 +2423,7 @@
            case '?':
            default:
                    usage (usg);
  -@@ -675,12 +909,36 @@
  +@@ -662,12 +896,36 @@
        if (argc < 1)
        usage (usg);
    
  @@ -2465,7 +2460,7 @@
    
        /* Look up the command name. */
    
  -@@ -703,6 +961,10 @@
  +@@ -690,6 +948,10 @@
        else
        cvs_cmd_name = cm->fullname;    /* Global pointer for later use */
    
  @@ -2476,7 +2471,7 @@
        if (help)
        {
        argc = -1;              /* some functions only check for this */
  -@@ -730,6 +992,116 @@
  +@@ -717,6 +979,116 @@
                       CVSUMASK_ENV, cp);
        }
    
  @@ -2593,7 +2588,7 @@
    #ifdef SERVER_SUPPORT
    
    # ifdef HAVE_KERBEROS
  -@@ -746,6 +1118,21 @@
  +@@ -733,6 +1105,21 @@
        }
    # endif /* HAVE_KERBEROS */
    
  @@ -2615,7 +2610,7 @@
    
    # if defined (AUTH_SERVER_SUPPORT) || defined (HAVE_GSSAPI)
        if (strcmp (cvs_cmd_name, "pserver") == 0)
  -@@ -770,6 +1157,10 @@
  +@@ -757,6 +1144,10 @@
    
    #endif /* SERVER_SUPPORT */
    
  @@ -2626,10 +2621,10 @@
    
    #ifdef SERVER_SUPPORT
        if (server_active)
  -@@ -832,8 +1223,12 @@
  -            in server mode, since the client will send the repository
  -            directory after the connection is made. */
  - 
  +@@ -826,8 +1217,12 @@
  +      * in server mode, since the client will send the repository
  +      * directory after the connection is made.
  +      */
   +#if defined(RSE_PATCH_CVSROOT) || defined(RSE_PATCH_CUSTOMCMD)
   +    if (!server_active && !standalone_command)
   +#else
  @@ -2637,18 +2632,18 @@
    #endif
   +#endif
        {
  -         char *CVSADM_Root;
  -         
  -@@ -889,6 +1284,54 @@
  +         /* First check if a root was set via the command line.  */
  +         if (CVSroot_cmdline)
  +@@ -883,6 +1278,48 @@
                error (1, 0,
  -                    "CVS/Root file (if any).");
  +                    "or set the %s environment variable.", CVSROOT_ENV);
            }
   +
   +#ifdef RSE_PATCH_CVSROOT
   +            if (CVSroot_cmdline == NULL || !cvsroot_cmdline_isreal) {
   +                cvsroot_type *e;
   +                if (lookup_command_attribute(cvs_cmd_name) & 
CVS_CMD_MODIFIES_REPOSITORY) {
  -+                    if ((e = cvsroot_lookup(NULL, NULL, CVSroot)) != NULL) {
  ++                    if ((e = cvsroot_lookup(NULL, NULL, 
CVSroot_parsed->original)) != NULL) {
   +                        /* command modifies repository and we still operare 
on
   +                           the slave repository, so switch to the master 
repository, 
   +                           because we can only perform modifications there. 
*/
  @@ -2656,19 +2651,16 @@
   +                            fprintf(stderr, "%s: switching to MASTER 
location of repository `%s'\n", program_name, e->nickname);
   +                            fprintf(stderr, "%s: %s <-- %s\n", 
program_name, e->masterpath, e->slavepath);
   +                        }
  -+                        if (free_CVSroot)
  -+                            free(CVSroot);
  -+                        CVSroot = xstrdup(e->masterpath);
  ++                        CVSroot_parsed->original = xstrdup(e->masterpath);
   +                    if (CVSroot_cmdline != NULL)
   +                        free(CVSroot_cmdline);
   +                        CVSroot_cmdline = xstrdup(e->masterpath);
   +                        cvsroot_sync = e;
  -+                        free_CVSroot = 1;
  -+                        cvs_update_env = 1;
  ++                        cvsroot_update_env = true;
   +                    }
   +                }
   +                else {
  -+                    if ((e = cvsroot_lookup(NULL, CVSroot, NULL)) != NULL) {
  ++                    if ((e = cvsroot_lookup(NULL, CVSroot_parsed->original, 
NULL)) != NULL) {
   +                        if (e->slavepath[0] != '\0') { 
   +                            /* command does not modify repository and we 
still operare on
   +                               the master repository, so switch to the 
slave repository, 
  @@ -2677,15 +2669,12 @@
   +                                fprintf(stderr, "%s: switching to SLAVE 
location of repository `%s'\n", program_name, e->nickname);
   +                                fprintf(stderr, "%s: %s --> %s\n", 
program_name, e->masterpath, e->slavepath);
   +                            }
  -+                            if (free_CVSroot)
  -+                                free(CVSroot);
  -+                            CVSroot = xstrdup(e->slavepath);
  ++                            CVSroot_parsed->original = 
xstrdup(e->slavepath);
   +                            if (CVSroot_cmdline != NULL)
   +                                free(CVSroot_cmdline);
   +                            CVSroot_cmdline = xstrdup(e->slavepath);
   +                            cvsroot_free(e);
  -+                            free_CVSroot = 1;
  -+                            cvs_update_env = 1;
  ++                            cvsroot_update_env = true;
   +                        }
   +                    }
   +                }
  @@ -2694,7 +2683,7 @@
        }
    
        /* Here begins the big loop over unique cvsroot values.  We
  -@@ -921,6 +1364,9 @@
  +@@ -915,6 +1352,9 @@
           end of things.  */
    
        while (
  @@ -2704,7 +2693,7 @@
    #ifdef SERVER_SUPPORT
               server_active ||
    #endif
  -@@ -932,8 +1378,12 @@
  +@@ -926,8 +1366,12 @@
               in server mode, since the client will send the repository
               directory after the connection is made. */
    
  @@ -2717,20 +2706,20 @@
            {
                /* Now we're 100% sure that we have a valid CVSROOT
                   variable.  Parse it to see if we're supposed to do
  -@@ -966,7 +1416,12 @@
  -                 {
  +@@ -955,7 +1399,12 @@
                        save_errno = errno;
  -                     /* If this is "cvs init", the root need not exist yet.  
*/
  +                     /* If this is "cvs init", the root need not exist yet.
  +                      */
   +#ifdef RSE_PATCH_CVSROOT
  -+                    if (strcmp (cvs_cmd_name, "init") != 0 &&
  -+                        strcmp (cvs_cmd_name, "root") != 0)
  ++                    if (strcmp (cvs_cmd_name, "init") ||
  ++                        strcmp (cvs_cmd_name, "root")   )
   +#else
  -                     if (strcmp (cvs_cmd_name, "init") != 0)
  +                     if (strcmp (cvs_cmd_name, "init"))
   +#endif
  -                     {
                            error (1, save_errno, "%s", path);
  -                     }
  -@@ -1002,6 +1457,9 @@
  +                 }
  +                 free (path);
  +@@ -988,6 +1437,9 @@
               read_cvsrc and other such places or vice versa.  That sort
               of thing probably needs more thought.  */
            if (1
  @@ -2740,7 +2729,7 @@
    #ifdef SERVER_SUPPORT
                && !server_active
    #endif
  -@@ -1032,7 +1490,31 @@
  +@@ -1019,7 +1471,31 @@
            }
    #endif
    
  @@ -2772,17 +2761,17 @@
    #ifdef SERVER_SUPPORT
                /* Don't worry about lock_cleanup_setup when the server is
                 * active since we can only go through this loop once in that
  -@@ -1044,6 +1526,9 @@
  -             !current_parsed_root->isremote &&
  +@@ -1032,6 +1508,9 @@
  +              !current_parsed_root->isremote &&
    #endif
  -             !lock_cleanup_setup)
  +              !lock_cleanup_setup))
   +#if defined(RSE_PATCH_CVSROOT) || defined(RSE_PATCH_CUSTOMCMD)
   +            )
   +#endif
            {
                /* Set up to clean up any locks we might create on exit.  */
                cleanup_register (Lock_Cleanup);
  -@@ -1052,6 +1537,27 @@
  +@@ -1040,7 +1519,32 @@
    
            /* Call our worker function.  */
            err = (*(cm->func)) (argc, argv);
  @@ -2808,19 +2797,14 @@
   +    }
   +#endif
        
  -         /* Mark this root directory as done.  When the server is
  -                active, current_root will be NULL -- don't try and
  -@@ -1070,12 +1576,21 @@
  -         dellist (&root_directories);
  - #endif
  - 
   +#if defined(RSE_PATCH_CVSROOT) || defined(RSE_PATCH_CUSTOMCMD)
   +        if (standalone_command)
   +          break;
   +#endif
  - #ifdef SERVER_SUPPORT
  -         if (server_active)
  -             break;
  +         /* Mark this root directory as done.  When the server is
  +                active, our list will be empty -- don't try and
  +                remove it from the list. */
  +@@ -1063,6 +1567,10 @@
    #endif
        } /* end of loop for cvsroot values */
    
  @@ -2828,18 +2812,30 @@
   +        if (cvsroot_sync != NULL)
   +            cvsroot_synchronize(cvsroot_sync, 0);
   +#endif
  -+
  +     dellist (&root_directories);
        } /* end of stuff that gets done if the user DOESN'T ask for help */
    
  -     if (free_CVSroot)
  +@@ -1260,6 +1768,12 @@
  + 
  +     TRACE (TRACE_FUNCTION, "format_date (%s)", datestr);
  + 
  ++#ifdef RSE_PATCH_BUGFIX
  ++    /* Special case */
  ++    if (strncmp(datestr, "Result of merge", 15) == 0)
  ++        goto as_is;
  ++#endif
  ++
  +     /* Convert the date string to seconds since the epoch. */
  +     if (!get_date (&t, datestr, NULL))
  +     {
   Index: src/mkmodules.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/mkmodules.c,v
  -retrieving revision 1.1.1.8
  -diff -u -d -r1.1.1.8 mkmodules.c
  ---- src/mkmodules.c  18 Feb 2004 19:24:19 -0000      1.1.1.8
  -+++ src/mkmodules.c  16 Mar 2004 15:41:49 -0000
  -@@ -206,6 +206,48 @@
  +retrieving revision 1.1.1.10
  +diff -u -d -r1.1.1.10 mkmodules.c
  +--- src/mkmodules.c  30 Nov 2004 19:57:10 -0000      1.1.1.10
  ++++ src/mkmodules.c  8 Apr 2005 11:30:15 -0000
  +@@ -229,6 +229,48 @@
        NULL
    };
    
  @@ -2885,10 +2881,10 @@
   +};
   +#endif
   +
  - static const char *const checkoutlist_contents[] = {
  -     "# The \"checkoutlist\" file is used to support additional version 
controlled\n",
  -     "# administrative files in $CVSROOT/CVSROOT, such as template files.\n",
  -@@ -332,6 +374,17 @@
  + static const char *const preproxy_contents[] = {
  +     "# The \"preproxy\" file is called form the secondary server as soon 
as\n",
  +     "# the secondary server determines that it will be proxying a write\n",
  +@@ -520,6 +562,17 @@
        "# repositories.  Set it to `never' (the previous CVS behavior) to 
prevent\n",
        "# verifymsg scripts from changing the log message.\n",
        "#RereadLogAfterVerify=always\n",
  @@ -2906,10 +2902,10 @@
        "\n",
        "# Set `UserAdminOptions' to the list of `cvs admin' commands 
(options)\n",
        "# that users not in the `cvsadmin' group are allowed to run.  This\n",
  -@@ -368,6 +421,16 @@
  -     {CVSROOTADM_TAGINFO,
  -     "a %s file can be used to configure 'cvs tag' checking",
  -     taginfo_contents},
  +@@ -601,6 +654,16 @@
  +     {CVSROOTADM_COMMITINFO,
  +     "a %s file can be used to configure 'cvs commit' checking",
  +     commitinfo_contents},
   +#ifdef RSE_PATCH_ADMININFO
   +    {CVSROOTADM_ADMININFO,
   +    "a %s file can be used to configure 'cvs admin' checking",
  @@ -2926,38 +2922,35 @@
   Index: src/parseinfo.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/parseinfo.c,v
  -retrieving revision 1.1.1.11
  -diff -u -d -r1.1.1.11 parseinfo.c
  ---- src/parseinfo.c  22 Mar 2004 17:26:47 -0000      1.1.1.11
  -+++ src/parseinfo.c  14 Apr 2004 17:52:42 -0000
  -@@ -10,6 +10,9 @@
  - #include "getline.h"
  +retrieving revision 1.1.1.13
  +diff -u -d -r1.1.1.13 parseinfo.c
  +--- src/parseinfo.c  30 Nov 2004 19:57:10 -0000      1.1.1.13
  ++++ src/parseinfo.c  8 Apr 2005 13:36:55 -0000
  +@@ -8,6 +8,9 @@
    
  - extern char *logHistory;
  + #include "cvs.h"
  + #include "getline.h"
   +#ifdef RSE_PATCH_HISTORYFILE
   +extern char *history_file;
   +#endif
  + #include "history.h"
    
    
  - 
  -@@ -391,7 +394,24 @@
  +@@ -449,7 +452,21 @@
        {
  -         if (lock_dir != NULL)
  -             free (lock_dir);
  +         if (retval->lock_dir != NULL)
  +             free (retval->lock_dir);
   +#ifdef RSE_PATCH_RELLOCKDIR
   +        if (p[0] == '/') {
   +#endif
  -         lock_dir = xstrdup (p);
  +         retval->lock_dir = xstrdup (p);
   +#ifdef RSE_PATCH_RELLOCKDIR
   +        }
   +        else {
   +            char *s;
  -+
  -+            lock_dir = xmalloc (strlen (p)
  -+                                + strlen (current_parsed_root->directory)
  -+                                + 2);
  -+            strcpy (lock_dir, current_parsed_root->directory);
  -+            s = lock_dir + strlen (lock_dir);
  ++            retval->lock_dir = xmalloc (strlen (p) + strlen 
(current_parsed_root->directory) + 2);
  ++            strcpy (retval->lock_dir, current_parsed_root->directory);
  ++            s = retval->lock_dir + strlen (retval->lock_dir);
   +            *s++ = '/';
   +            strcpy (s, p);
   +        }
  @@ -2965,9 +2958,9 @@
            /* Could try some validity checking, like whether we can
               opendir it or something, but I don't see any particular
               reason to do that now rather than waiting until lock.c.  */
  -@@ -413,6 +433,19 @@
  -         else if (strcmp (p, "stat") == 0)
  -           RereadLogAfterVerify = LOGMSG_REREAD_STAT;
  +@@ -479,6 +496,19 @@
  +             }
  +         }
        }
   +#ifdef RSE_PATCH_HISTORYFILE
   +    else if (strcmp (line, "HistoryFile") == 0)
  @@ -2983,28 +2976,29 @@
   +    }
   +#endif
        else if (strcmp (line, "UserAdminOptions") == 0)
  -     {
  -         UserAdminOptions = xmalloc(strlen(p) + 1);
  -@@ -445,9 +478,11 @@
  +         retval->UserAdminOptions = xstrdup (p);
  +     else if (strcmp (line, "UseNewInfoFmtStrings") == 0)
  +@@ -535,8 +565,12 @@
               adding new keywords to your CVSROOT/config file is not
               particularly recommended unless you are planning on using
               the new features.  */
   +#ifndef RSE_PATCH_SMARTCONFIG
            error (0, 0, "%s: unrecognized keyword '%s'",
                   infopath, line);
  -         goto error_return;
  ++#else
  ++            ;
   +#endif
  -     }
        }
        if (ferror (fp_info))
  +     error (0, errno, "cannot read %s", infopath);
   Index: src/repos.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/repos.c,v
  -retrieving revision 1.1.1.9
  -diff -u -d -r1.1.1.9 repos.c
  ---- src/repos.c      30 Apr 2004 12:57:34 -0000      1.1.1.9
  -+++ src/repos.c      19 May 2004 18:53:53 -0000
  -@@ -200,3 +200,11 @@
  +retrieving revision 1.1.1.10
  +diff -u -d -r1.1.1.10 repos.c
  +--- src/repos.c      4 Nov 2004 15:15:28 -0000       1.1.1.10
  ++++ src/repos.c      8 Apr 2005 09:42:36 -0000
  +@@ -199,3 +199,11 @@
        repository[len - 2] = '\0';
        }
    }
  @@ -3019,22 +3013,22 @@
   Index: src/root.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/root.c,v
  -retrieving revision 1.1.1.13
  -diff -u -d -r1.1.1.13 root.c
  ---- src/root.c       30 Apr 2004 12:57:34 -0000      1.1.1.13
  -+++ src/root.c       19 May 2004 18:33:39 -0000
  -@@ -125,6 +125,9 @@
  -     /* allocate space to return and fill it in */
  -     strip_trailing_slashes (root);
  -     ret = xstrdup (root);
  +retrieving revision 1.1.1.15
  +diff -u -d -r1.1.1.15 root.c
  +--- src/root.c       9 Dec 2004 19:34:34 -0000       1.1.1.15
  ++++ src/root.c       8 Apr 2005 13:52:23 -0000
  +@@ -123,6 +123,9 @@
  +     goto out;
  +     }
  + 
   +#ifdef RSE_PATCH_MAPROOT
  -+    root_map_it(ret, &ret, 0);
  ++    root_map_it(ret->original, &ret->original, 0);
   +#endif
  + 
     out:
        free (cvsadm);
  -     free (tmp);
  -@@ -255,7 +258,86 @@
  -     return 0;
  +@@ -344,7 +347,86 @@
  +     return parse_config (arg);
    }
    
   +#ifdef RSE_PATCH_MAPROOT
  @@ -3087,7 +3081,7 @@
   +            else {
   +                if (old == *new)
   +                    /* old and new is same pointer we free before */
  -+                    free(old);
  ++                    if (old) free(old);
   +                /* provide new allocated buffer */
   +                *new = xmalloc(strlen(root_map_vec[i].new)+1);
   +                strcpy(*new, root_map_vec[i].new);
  @@ -3107,7 +3101,7 @@
   +                sprintf(*new, "%s%s", root_map_vec[i].new, old+n);
   +                if (old == oldnew)
   +                    /* old and new is same pointer we free before */
  -+                    free(old);
  ++                    if (old) free(old);
   +            }
   +            rv = 1;
   +            break;
  @@ -3120,7 +3114,7 @@
    
    /* This global variable holds the global -d option.  It is NULL if -d
       was not used, which means that we must get the CVSroot information
  -@@ -894,3 +976,471 @@
  +@@ -1070,3 +1152,471 @@
       /* NOTREACHED */
    }
    #endif
  @@ -3595,11 +3589,11 @@
   Index: src/sanity.sh
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/sanity.sh,v
  -retrieving revision 1.1.1.16
  -diff -u -d -r1.1.1.16 sanity.sh
  ---- src/sanity.sh    9 Jun 2004 14:52:38 -0000       1.1.1.16
  -+++ src/sanity.sh    9 Jun 2004 20:51:07 -0000
  -@@ -391,6 +391,7 @@
  +retrieving revision 1.1.1.18
  +diff -u -d -r1.1.1.18 sanity.sh
  +--- src/sanity.sh    9 Dec 2004 21:17:37 -0000       1.1.1.18
  ++++ src/sanity.sh    8 Apr 2005 09:42:36 -0000
  +@@ -416,6 +416,7 @@
    # "debugger"
    #set -x
    
  @@ -3607,7 +3601,7 @@
    echo 'This test should produce no other output than this message, and a 
final "OK".'
    echo '(Note that the test can take an hour or more to run and periodically 
stops'
    echo 'for as long as one minute.  Do not assume there is a problem just 
because'
  -@@ -10887,10 +10888,12 @@
  +@@ -12187,10 +12188,12 @@
          ############################################################
          # Check out the whole repository
          mkdir 1; cd 1
  @@ -3621,7 +3615,7 @@
    U CVSROOT/loginfo
    U CVSROOT/modules
    U CVSROOT/notify
  -@@ -10908,10 +10911,12 @@
  +@@ -12213,10 +12216,12 @@
          ############################################################
          # Check out CVSROOT
          mkdir 1; cd 1
  @@ -3635,7 +3629,7 @@
    U CVSROOT/loginfo
    U CVSROOT/modules
    U CVSROOT/notify
  -@@ -10932,10 +10937,12 @@
  +@@ -12242,10 +12247,12 @@
          mkdir 1; cd 1
          dotest modules-3 "${testcvs} -q co somedir" ''
          cd somedir
  @@ -3649,7 +3643,7 @@
    U CVSROOT/loginfo
    U CVSROOT/modules
    U CVSROOT/notify
  -@@ -22110,7 +22117,7 @@
  +@@ -24417,7 +24424,7 @@
    add a line on trunk after trunktag"
          # But diff thinks that HEAD is "br1".  Case (b) from cvs.texinfo.
          # Probably people are relying on it.
  @@ -3661,13 +3655,13 @@
   Index: src/server.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/server.c,v
  -retrieving revision 1.1.1.17
  -diff -u -d -r1.1.1.17 server.c
  ---- src/server.c     9 Jun 2004 14:52:39 -0000       1.1.1.17
  -+++ src/server.c     9 Jun 2004 20:51:08 -0000
  -@@ -112,6 +112,16 @@
  +retrieving revision 1.1.1.19
  +diff -u -d -r1.1.1.19 server.c
  +--- src/server.c     9 Dec 2004 19:34:43 -0000       1.1.1.19
  ++++ src/server.c     8 Apr 2005 13:49:20 -0000
  +@@ -116,6 +116,16 @@
  + 
    
  - # endif /* AUTH_SERVER_SUPPORT */
    
   +#ifdef RSE_PATCH_PSERVERD
   +#include <sys/ioctl.h>
  @@ -3679,12 +3673,12 @@
   +#endif
   +#endif
   +
  - 
    /* While processing requests, this buffer accumulates data to be sent to
       the client, and then once we are in do_cvs_command, we use it
  -@@ -695,6 +705,13 @@
  - 
  -     if (error_pending()) return;
  +    for all the data to be sent.  */
  +@@ -785,6 +795,13 @@
  + #endif /* PROXY_SUPPORT */
  +        ) return;
    
   +#ifdef RSE_PATCH_MAPROOT
   +    {
  @@ -3696,17 +3690,17 @@
        if (!isabsolute (arg))
        {
        if (alloc_pending (80 + strlen (arg)))
  -@@ -1121,6 +1138,9 @@
  -     TRACE (TRACE_FUNCTION, "serve_directory (%s)", arg ? arg : "(null)");
  - 
  +@@ -1264,6 +1281,9 @@
  +      * processing of anything other than errors is skipped until later.
  +      */
        status = buf_read_line (buf_from_net, &repos, NULL);
   +#ifdef RSE_PATCH_MAPROOT
   +    root_map_it(repos, &repos, 1);
   +#endif
        if (status == 0)
        {
  -     if (!outside_root (repos))
  -@@ -4014,6 +4034,17 @@
  +     if (!isabsolute (repos))
  +@@ -4776,6 +4796,17 @@
    }
    
    /* See server.h for description.  */
  @@ -3724,7 +3718,7 @@
    
    void
    server_modtime (struct file_info *finfo, Vers_TS *vers_ts)
  -@@ -4760,6 +4791,9 @@
  +@@ -5722,6 +5753,9 @@
      REQ_LINE("expand-modules", serve_expand_modules, 0),
      REQ_LINE("ci", serve_ci, RQ_ESSENTIAL),
      REQ_LINE("co", serve_co, RQ_ESSENTIAL),
  @@ -3734,7 +3728,7 @@
      REQ_LINE("update", serve_update, RQ_ESSENTIAL),
      REQ_LINE("diff", serve_diff, 0),
      REQ_LINE("log", serve_log, 0),
  -@@ -5459,8 +5493,13 @@
  +@@ -6514,8 +6548,13 @@
        {
        char *env;
    
  @@ -3748,9 +3742,9 @@
        (void) putenv (env);
    
        env = xmalloc (sizeof "USER=" + strlen (username));
  -@@ -5996,6 +6035,10 @@
  -     || !strip_trailing_newlines (password))
  -     error (1, 0, "Maximum line length exceeded during authentication.");
  +@@ -7069,6 +7108,10 @@
  +     pserver_read_line (&username, NULL);
  +     pserver_read_line (&password, NULL);
    
   +#ifdef RSE_PATCH_MAPROOT
   +    root_map_it(repository, &repository, 0);
  @@ -3758,8 +3752,8 @@
   +
        /* ... and make sure the protocol ends on the right foot. */
        /* See above comment about error handling.  */
  -     getnline( &tmp, &tmp_allocated, PATH_MAX, stdin );
  -@@ -6745,3 +6788,519 @@
  +     pserver_read_line (&tmp, NULL);
  +@@ -7816,3 +7859,519 @@
            cvs_output (text, 0);
        }
    }
  @@ -4282,11 +4276,11 @@
   Index: src/subr.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/subr.c,v
  -retrieving revision 1.1.1.14
  -diff -u -d -r1.1.1.14 subr.c
  ---- src/subr.c       9 Jun 2004 14:52:39 -0000       1.1.1.14
  -+++ src/subr.c       9 Jun 2004 20:51:08 -0000
  -@@ -250,6 +250,22 @@
  +retrieving revision 1.1.1.16
  +diff -u -d -r1.1.1.16 subr.c
  +--- src/subr.c       30 Nov 2004 19:57:10 -0000      1.1.1.16
  ++++ src/subr.c       8 Apr 2005 13:18:45 -0000
  +@@ -295,6 +295,22 @@
        uid_t uid;
    #endif
    
  @@ -4309,7 +4303,7 @@
        /* If there is a CVS username, return it.  */
    #ifdef AUTH_SERVER_SUPPORT
        if (CVS_Username != NULL)
  -@@ -778,6 +794,73 @@
  +@@ -831,6 +847,72 @@
        return backup_name;
    }
    
  @@ -4379,18 +4373,17 @@
   +    return 1;
   +}
   +#endif
  -+
  + 
  + 
    /*
  -  * Copy a string into a buffer escaping any shell metacharacters.  The
  -  * buffer should be at least twice as long as the string.
   Index: src/update.c
   ===================================================================
   RCS file: /v/ossp/pkg/tool/cvs/cvs/cvs/src/update.c,v
  -retrieving revision 1.1.1.14
  -diff -u -d -r1.1.1.14 update.c
  ---- src/update.c     8 May 2004 23:13:10 -0000       1.1.1.14
  -+++ src/update.c     19 May 2004 18:33:43 -0000
  -@@ -1747,6 +1747,17 @@
  +retrieving revision 1.1.1.15
  +diff -u -d -r1.1.1.15 update.c
  +--- src/update.c     4 Nov 2004 15:15:29 -0000       1.1.1.15
  ++++ src/update.c     8 Apr 2005 09:42:37 -0000
  +@@ -1753,6 +1753,17 @@
               patch can't handle that.  */
            fail = 1;
        }
  @@ -4408,7 +4401,7 @@
        fclose (e);
        }
    
  -@@ -2555,8 +2566,16 @@
  +@@ -2561,8 +2572,16 @@
        write_letter (finfo, 'C');
        }
        else
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/cvs/cvs.spec
  ============================================================================
  $ cvs diff -u -r1.96 -r1.97 cvs.spec
  --- openpkg-src/cvs/cvs.spec  24 Mar 2005 11:18:36 -0000      1.96
  +++ openpkg-src/cvs/cvs.spec  8 Apr 2005 15:04:22 -0000       1.97
  @@ -23,7 +23,7 @@
   ##
   
   #   the involved versions
  -%define       V_cvs       1.12.9
  +%define       V_cvs       1.12.11
   %define       V_cvslock   0.2
   
   #   package information
  @@ -37,7 +37,7 @@
   Group:        SCM
   License:      GPL
   Version:      %{V_cvs}
  -Release:      20050213
  +Release:      20050408
   
   #   package options
   %option       with_fsl         yes
  @@ -45,7 +45,7 @@
   %option       with_rse_cvsuser cvs
   
   #   list of sources
  -Source0:      
https://ccvs.cvshome.org/files/documents/19/201/cvs-%{V_cvs}.tar.gz
  +Source0:      
https://ccvs.cvshome.org/files/documents/19/610/cvs-%{V_cvs}.tar.bz2
   Source1:      
ftp://riemann.iam.uni-bonn.de/pub/users/roessler/cvslock/cvslock-%{V_cvslock}.tar.gz
   Source2:      rc.cvs
   Source3:      fsl.cvs
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [email protected]

Reply via email to