Using the new contrib rev mechanism, bring cvs up to 1.12.8. Add patch files
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 20 May 2004 02:27:57 +0000 (02:27 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 20 May 2004 02:27:57 +0000 (02:27 +0000)
for our few remaining local patches (-j rev:DATE and -g).

gnu/usr.bin/cvs/Makefile.inc
gnu/usr.bin/cvs/contrib/Makefile
gnu/usr.bin/cvs/cvs/Makefile
gnu/usr.bin/cvs/cvs/cvs.1.patch [new file with mode: 0644]
gnu/usr.bin/cvs/cvs/diff.c.patch [new file with mode: 0644]
gnu/usr.bin/cvs/cvs/main.c.patch [new file with mode: 0644]
gnu/usr.bin/cvs/lib/Makefile
gnu/usr.bin/cvs/lib/config.h.proto

index e1889d6..401e547 100644 (file)
@@ -1,6 +1,10 @@
+# $DragonFly: src/gnu/usr.bin/cvs/Makefile.inc,v 1.2 2004/05/20 02:27:52 dillon Exp $
+#
+
 .if !defined(CVSDIR)
 
-CVSDIR=                $(.CURDIR)/../../../../contrib/cvs
+CVSDIR=                $(.CURDIR)/../../../../contrib/cvs-1.12.8
+CONTRIBDIR=    ${CVSDIR}
 
 .if exists(${.OBJDIR}/../lib)
 LIBCVSDIR=     ${.OBJDIR}/../lib
index d3464a2..10f2943 100644 (file)
@@ -1,16 +1,16 @@
 # $FreeBSD: src/gnu/usr.bin/cvs/contrib/Makefile,v 1.14.2.5 2002/12/19 21:18:01 peter Exp $
-# $DragonFly: src/gnu/usr.bin/cvs/contrib/Makefile,v 1.3 2004/01/31 06:56:37 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cvs/contrib/Makefile,v 1.4 2004/05/20 02:27:54 dillon Exp $
 
 .include "../Makefile.inc"
 
 .PATH: ${CVSDIR}/contrib
 .PATH: ${CVSDIR}/man
 
-SCRIPTS= clmerge cln_hist commit_prep cvs2vendor cvs_acls cvscheck \
+SCRIPTS= clmerge cln_hist commit_prep cvs2vendor cvs_acls \
         log log_accum mfpipe rcs-to-cvs rcs2log rcslock sccs2rcs \
         easy-import
 
-FILES=  README cvscheck.man cvshelp.man descend.man intro.doc
+FILES=  README cvshelp.man descend.man intro.doc
 
 EXAMPDIR=      ${SHAREDIR}/examples/cvs
 FILESDIR=      ${EXAMPDIR}/contrib
index 53608ce..7a5f60a 100644 (file)
@@ -1,27 +1,40 @@
 # $FreeBSD: src/gnu/usr.bin/cvs/cvs/Makefile,v 1.32.2.6 2003/01/21 23:06:51 peter Exp $
-# $DragonFly: src/gnu/usr.bin/cvs/cvs/Makefile,v 1.5 2004/01/31 06:56:37 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cvs/cvs/Makefile,v 1.6 2004/05/20 02:27:56 dillon Exp $
 
 .include "${.CURDIR}/../Makefile.inc"
 
 .PATH: ${CVSDIR}/src
 .PATH: ${CVSDIR}/lib
 .PATH: ${CVSDIR}/man
+.PATH: ${CVSDIR}/doc
 .PATH: ${CVSDIR}
 
 PROG=  cvs
-MAN=   cvs.1 cvs.5
+MAN=   ${.OBJDIR}/cvs.1 cvs.5
 
 SRCS=  add.c admin.c annotate.c buffer.c \
        checkin.c checkout.c classify.c client.c \
-       commit.c create_adm.c cvsrc.c diff.c edit.c entries.c error.c \
+       commit.c create_adm.c cvsrc.c edit.c entries.c error.c \
        exithandle.c expand_path.c fileattr.c filesubr.c find_names.c \
        hardlink.c hash.c history.c ignore.c import.c lock.c log.c \
-       log-buffer.c login.c logmsg.c main.c mkmodules.c \
+       log-buffer.c login.c logmsg.c mkmodules.c \
        modules.c myndbm.c no_diff.c parseinfo.c patch.c prepend_args.c \
        rcs.c rcscmds.c \
        recurse.c release.c remove.c repos.c root.c rsh-client.c run.c \
        scramble.c server.c socket-client.c status.c subr.c tag.c update.c \
-       vers_ts.c version.c watch.c wrapper.c zlib.c
+       vers_ts.c version.c watch.c wrapper.c zlib.c \
+       ${.OBJDIR}/main.c ${.OBJDIR}/diff.c
+
+${.OBJDIR}/main.c: main.c.patch
+       patch -o ${.TARGET} -i ${.ALLSRC} ${CONTRIBDIR}/src/main.c
+
+${.OBJDIR}/diff.c: diff.c.patch
+       patch -o ${.TARGET} -i ${.ALLSRC} ${CONTRIBDIR}/src/diff.c
+
+${.OBJDIR}/cvs.1: cvs.1.patch
+       patch -o ${.TARGET} -i ${.ALLSRC} ${CONTRIBDIR}/doc/cvs.1
+
+CLEANFILES+= ${.OBJDIR}/main.c ${.OBJDIR}/diff.c ${.OBJDIR}/cvs.1
 
 CFLAGS+= -I${.CURDIR} -I../lib -DHAVE_CONFIG_H \
         -I${CVSDIR}/src -I${CVSDIR}/lib -I${CVSDIR}/diff -I.
diff --git a/gnu/usr.bin/cvs/cvs/cvs.1.patch b/gnu/usr.bin/cvs/cvs/cvs.1.patch
new file mode 100644 (file)
index 0000000..08cac7c
--- /dev/null
@@ -0,0 +1,30 @@
+# $DragonFly: src/gnu/usr.bin/cvs/cvs/Attic/cvs.1.patch,v 1.1 2004/05/20 02:27:56 dillon Exp $
+--- /usr/src/contrib/cvs-1.12.8/doc/cvs.1      Wed May 19 07:11:50 2004
++++ cvs.1      Wed May 19 19:09:36 2004
+@@ -397,6 +398,26 @@
+ set or \fB-r\fR is given.
+ .SP
+ .IP "" 0
++\fB-g\fR
++.IP "" 2
++.IX "GroupPerms"
++Forces group-write perms on working files.  This option is typically
++used when you have multiple users sharing a single checked out source
++tree, allowing them to operate their shells with a less dangerous umask.
++To use this feature, create a directory to hold the checked-out source
++tree, set it to a private group, and set up the directory such that
++files created under it inherit the group id of the directory.  This occurs
++automatically with FreeBSD.  With SysV you must typically set the SGID bit
++on the directory.  The users who are to share the checked out tree must
++be placed in that group.  Note that the sharing of a single checked-out
++source tree is very different from giving several users access to a common
++CVS repository.  Access to a common CVS repository already maintains shared
++group-write perms and does not require this option.
++.SP
++To use the option transparently, simply place the line 'cvs -g' in your
++~/.cvsrc file.  Doing this is not recommended unless you firewall all your
++source checkouts within a private group or within a private mode 0700
++directory.
+ \fB-x\fR
+ .IP "" 2
+ .IX "Encryption"
diff --git a/gnu/usr.bin/cvs/cvs/diff.c.patch b/gnu/usr.bin/cvs/cvs/diff.c.patch
new file mode 100644 (file)
index 0000000..57cb323
--- /dev/null
@@ -0,0 +1,119 @@
+# $DragonFly: src/gnu/usr.bin/cvs/cvs/Attic/diff.c.patch,v 1.1 2004/05/20 02:27:56 dillon Exp $
+Index: src/diff.c
+===================================================================
+RCS file: /cvs/src/contrib/cvs/src/diff.c,v
+retrieving revision 1.1.1.2
+retrieving revision 1.5
+diff -u -r1.1.1.2 -r1.5
+--- src/diff.c 20 Jan 2004 05:37:23 -0000      1.1.1.2
++++ src/diff.c 22 Jan 2004 16:47:12 -0000      1.5
+@@ -49,6 +51,7 @@
+ static char *diff_rev1, *diff_rev2;
+ /* Command line dates, from -D option.  Malloc'd.  */
+ static char *diff_date1, *diff_date2;
++static char *diff_join1, *diff_join2;
+ static char *use_rev1, *use_rev2;
+ static int have_rev1_label, have_rev2_label;
+@@ -267,6 +270,8 @@
+     diff_rev2 = NULL;
+     diff_date1 = NULL;
+     diff_date2 = NULL;
++    diff_join1 = NULL;
++    diff_join2 = NULL;
+     optind = 0;
+     /* FIXME: This should really be allocating an argv to be passed to diff
+@@ -277,7 +282,7 @@
+      * to diff.
+      */
+     while ((c = getopt_long (argc, argv,
+-             "+abcdefhilnpstuwy0123456789BHNRTC:D:F:I:L:U:W:k:r:",
++             "+abcdefhij:lnpstuwy0123456789BHNRTC:D:F:I:L:U:W:k:r:",
+                            longopts, &option_index)) != -1)
+     {
+       switch (c)
+@@ -340,6 +345,26 @@
+                   free (options);
+               options = RCS_check_kflag (optarg);
+               break;
++          case 'j':
++              {
++                  char *ptr;
++                  char *cpy = strdup(optarg);
++
++                  if ((ptr = strchr(optarg, ':')) != NULL)
++                      *ptr++ = 0;
++                  if (diff_rev2 != NULL || diff_date2 != NULL)
++                      error (1, 0, "no more than two revisions/dates can be specified");
++                  if (diff_rev1 != NULL || diff_date1 != NULL) {
++                      diff_join2 = cpy;
++                      diff_rev2 = optarg;
++                      diff_date2 = ptr ? Make_Date(ptr) : NULL;
++                  } else {
++                      diff_join1 = cpy;
++                      diff_rev1 = optarg;
++                      diff_date1 = ptr ? Make_Date(ptr) : NULL;
++                  }
++              }
++              break;
+           case 'r':
+               if (diff_rev2 != NULL || diff_date2 != NULL)
+                   error (1, 0,
+@@ -388,13 +413,17 @@
+       send_option_string (opts);
+       if (options[0] != '\0')
+           send_arg (options);
+-      if (diff_rev1)
++      if (diff_join1)
++          option_with_arg ("-j", diff_join1);
++      else if (diff_rev1)
+           option_with_arg ("-r", diff_rev1);
+-      if (diff_date1)
++      else if (diff_date1)
+           client_senddate (diff_date1);
+-      if (diff_rev2)
++      if (diff_join2)
++          option_with_arg ("-j", diff_join2);
++      else if (diff_rev2)
+           option_with_arg ("-r", diff_rev2);
+-      if (diff_date2)
++      else if (diff_date2)
+           client_senddate (diff_date2);
+       send_arg ("--");
+@@ -408,12 +437,9 @@
+       send_to_server ("diff\012", 0);
+         err = get_responses_and_close ();
+-      free (options);
+-      options = NULL;
+-      return (err);
+-    }
++    } else
+ #endif
+-
++    {
+     if (diff_rev1 != NULL)
+       tag_check_valid (diff_rev1, argc, argv, local, 0, "");
+     if (diff_rev2 != NULL)
+@@ -430,7 +456,7 @@
+           ( diff_fileproc, diff_filesdoneproc, diff_dirproc,
+             diff_dirleaveproc, NULL, argc, argv, local,
+             which, 0, CVS_LOCK_READ, (char *) NULL, 1, (char *) NULL );
+-
++    }
+     /* clean up */
+     free (options);
+     options = NULL;
+@@ -439,6 +465,10 @@
+       free (diff_date1);
+     if (diff_date2 != NULL)
+       free (diff_date2);
++    if (diff_join1 != NULL)
++      free (diff_join1);
++    if (diff_join2 != NULL)
++       free (diff_join2);
+     return (err);
+ }
diff --git a/gnu/usr.bin/cvs/cvs/main.c.patch b/gnu/usr.bin/cvs/cvs/main.c.patch
new file mode 100644 (file)
index 0000000..dc18f86
--- /dev/null
@@ -0,0 +1,56 @@
+# $DragonFly: src/gnu/usr.bin/cvs/cvs/Attic/main.c.patch,v 1.1 2004/05/20 02:27:56 dillon Exp $
+Index: src/main.c
+===================================================================
+RCS file: /cvs/src/contrib/cvs/src/main.c,v
+retrieving revision 1.1.1.2
+retrieving revision 1.6
+diff -u -r1.1.1.2 -r1.6
+--- src/main.c 20 Jan 2004 05:37:27 -0000      1.1.1.2
++++ src/main.c 30 Jan 2004 17:13:35 -0000      1.6
+@@ -248,6 +249,7 @@
+     "    -q           Cause CVS to be somewhat quiet.\n",
+     "    -r           Make checked-out files read-only.\n",
+     "    -w           Make checked-out files read-write (default).\n",
++    "    -g           Force group-write perms on checked-out files.\n",
+     "    -n           Do not execute anything that will change the disk.\n",
+     "    -t           Show trace of program execution (repeat for more\n",
+     "                 verbosity) -- try with -n.\n",
+@@ -423,7 +425,7 @@
+     int help = 0;             /* Has the user asked for help?  This
+                                  lets us support the `cvs -H cmd'
+                                  convention to give help for cmd. */
+-    static const char short_options[] = "+QqrwtnRvb:T:e:d:Hfz:s:xa";
++    static const char short_options[] = "+QqgrwtnRvb:T:e:d:Hfz:s:xa";
+     static struct option long_options[] =
+     {
+         {"help", 0, NULL, 'H'},
+@@ -558,6 +560,13 @@
+           case 'w':
+               cvswrite = 1;
+               break;
++          case 'g':
++              /*
++               * Force full group write perms (used for shared checked-out
++               * source trees, see manual page)
++               */
++              umask(umask(S_IRWXG|S_IRWXO) & S_IRWXO);
++              break;
+           case 't':
+               trace++;
+               break;
+@@ -668,12 +677,15 @@
+     if (argc < 1)
+       usage (usg);
++/* This is just too much output */
++/*
+     if (readonlyfs && !really_quiet) {
+       error (0, 0,
+              "WARNING: Read-only repository access mode selected via `cvs -R'.\n\
+ Using this option to access a repository which some users write to may\n\
+ cause intermittent sandbox corruption.");
+     }
++*/
+     /* Look up the command name. */
index 94b3a0c..76a23ee 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cvs/lib/Makefile,v 1.19.2.4 2003/01/21 23:06:52 peter Exp $
-# $DragonFly: src/gnu/usr.bin/cvs/lib/Makefile,v 1.6 2004/01/31 06:56:37 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cvs/lib/Makefile,v 1.7 2004/05/20 02:27:57 dillon Exp $
 
 .include "${.CURDIR}/../Makefile.inc"
 
@@ -11,7 +11,7 @@ LIB=          cvs
 INTERNALLIB=   YES
 
 CFLAGS+= -I. -I${CVSDIR}/src -I${CVSDIR}/lib
-CFLAGS+= -DHAVE_CONFIG_H
+CFLAGS+= -DHAVE_CONFIG_H -DIN_LIBINTL
 YFLAGS=
 CLEANFILES+=   config.h
 
@@ -25,7 +25,9 @@ CVS_TMPDIR_DFLT?=     /tmp
 SRCS=  config.h argmatch.c getdate.y getline.c getndelim2.c getnline.c \
        getopt.c getopt1.c getpass.c lstat.c md5.c savecwd.c \
        sighandle.c stat.c stripslash.c \
-       xgetwd.c yesno.c
+       xmalloc.c xgetwd.c xstrdup.c yesno.c \
+       asnprintf.c vasnprintf.c ls.c stack.c \
+       printf-parse.c printf-args.c exitfail.c basename.c
 
 config.h: config.h.proto
        sed -e "s,@VERSION@,${VERSION}-DragonFly,g" \
index 0faf170..60e369f 100644 (file)
@@ -1,4 +1,4 @@
-/* $DragonFly: src/gnu/usr.bin/cvs/lib/config.h.proto,v 1.3 2004/01/20 05:53:42 asmodai Exp $ */
+/* $DragonFly: src/gnu/usr.bin/cvs/lib/config.h.proto,v 1.4 2004/05/20 02:27:57 dillon Exp $ */
 /* config.h.  Generated by configure.  */
 /* config.h.in.  Generated from configure.in by autoheader.  */
 
    to be case insensitive if it isn't already. */
 /* #undef FILENAMES_CASE_INSENSITIVE */
 
+/* Define on systems for which file names may have a so-called `drive letter'
+   prefix, define this to compute the length of that prefix, including the
+   colon. */
+/* #undef FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX */
+
+/* Define if the backslash character may also serve as a file name component
+   separator. */
+/* #undef FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR */
+
+#if FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX
+# define FILESYSTEM_PREFIX_LEN(Filename) \
+  ((Filename)[0] && (Filename)[1] == ':' ? 2 : 0)
+#else
+# define FILESYSTEM_PREFIX_LEN(Filename) 0
+#endif
+
 /* When committing or importing files, you must enter a log message. Normally,
    you can do this either via the -m flag on the command line, the -F flag on
    the command line, or an editor will be started for you. If you like to use
 /* Define to 1 if you have the `gettimeofday' function. */
 #define HAVE_GETTIMEOFDAY 1
 
+/* Define to 1 if you have the `struct timesepc' structure. */
+#define HAVE_STRUCT_TIMESPEC 1
+
 /* Define if you have GSSAPI with Kerberos version 5 available. */
 /* #undef HAVE_GSSAPI */
 
 /* Define to 1 if you have the `__secure_getenv' function. */
 /* #undef HAVE___SECURE_GETENV */
 
+#if FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#else
+# define ISSLASH(C) ((C) == '/')
+#endif
+
 /* Define to include locking code which prevents versions of CVS earlier than
    1.12.4 directly accessing the same repositiory as this executable from
    ignoring this executable's promotable read locks. If only CVS versions