mirror of
https://git.FreeBSD.org/ports.git
synced 2025-02-05 11:35:01 +00:00
[new port] devel/cvs-devel 1.12.13_8
Latest upstream/feature release, similar to Debian, see the ChangeLog excerpts available at http://cto.homelinux.net/usr/ports/devel/cvs-devel/ChangeLog page. This feature release/version, I think, would be quite useful for all those users who want to share and, or transfer their existing CVS repositories from Linux to FreeBSD machines. PR: ports/118033 Submitted by: Balwinder S Dheeman <bdheeman@gmail.com>
This commit is contained in:
parent
3b10b83254
commit
dc2ba353b6
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=213677
@ -1,30 +1,25 @@
|
||||
# New ports collection makefile for: cvs+ipv6
|
||||
# Date created: Tue Jul 23 11:24:24 JST 2002
|
||||
# Whom: sumikawa
|
||||
# New ports collection makefile for: cvs-devel
|
||||
# Date created: Wed, 14 Nov 2007 00:21:45 +0530
|
||||
# Whom: Balwinder S Dheeman <bdheeman@gmail.com>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= cvs
|
||||
PORTVERSION= 1.11.17
|
||||
PORTREVISION= 1
|
||||
PORTVERSION= 1.12.13
|
||||
PORTREVISION= 8
|
||||
CATEGORIES= devel ipv6
|
||||
MASTER_SITES= ${MASTER_SITE_GNU}
|
||||
MASTER_SITE_SUBDIR= non-gnu/${PORTNAME}/source/stable/${PORTVERSION}
|
||||
PKGNAMESUFFIX= +ipv6
|
||||
MASTER_SITE_SUBDIR= non-gnu/${PORTNAME}/source/feature/${PORTVERSION}
|
||||
PKGNAMESUFFIX= -devel
|
||||
|
||||
PATCH_SITES= ftp://ftp.kame.net/pub/kame/misc/
|
||||
PATCHFILES= ${DISTNAME}-v6-20040610.diff.gz
|
||||
PATCH_DIST_STRIP= -p1
|
||||
|
||||
MAINTAINER= sumikawa@FreeBSD.org
|
||||
MAINTAINER= bdheeman@gmail.com
|
||||
COMMENT= IPv6 enabled cvs. You can use IPv6 connection when using pserver
|
||||
|
||||
CONFLICTS= cvsnt-[12]*
|
||||
CONFLICTS= cvsnt-[12]* cvs+ipv6-[12]*
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
USE_BZIP2= yes
|
||||
#USE_GMAKE= yes
|
||||
CONFIGURE_ARGS= --enable-ipv6 --without-gssapi \
|
||||
--with-editor="vi" \
|
||||
--with-tmpdir="/tmp"
|
||||
@ -35,16 +30,17 @@ MAN8= cvsbug.8
|
||||
INFO= cvs cvsclient
|
||||
|
||||
CVS_SITE?= :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
|
||||
CVS_VER?= v${PORTVERSION:S/./_/g}
|
||||
CVS_VER?= v${PORTVERSION:S//_/g}
|
||||
|
||||
post-patch:
|
||||
${REINPLACE_CMD} 's/${PORTVERSION:S/./\./g}/&+IPv6/g' ${WRKSRC}/configure
|
||||
${REINPLACE_CMD} 's/${PORTVERSION:S/./\./g}/&-devel/g' \
|
||||
${WRKSRC}/configure
|
||||
@${CP} ${FILESDIR}/missing ${WRKSRC}
|
||||
|
||||
replace:
|
||||
post-install:
|
||||
.for f in cvs cvsbug
|
||||
${MV} /usr/bin/${f} /usr/bin/${f}.orig
|
||||
${CP} -p ${PREFIX}/bin/${f} /usr/bin/
|
||||
-${MV} ${PREFIX:S/\/local//}/bin/${f} ${PREFIX:S/\/local//}/bin/${f}.orig
|
||||
-${CP} -p ${PREFIX}/bin/${f} ${PREFIX:S/\/local//}/bin
|
||||
.endfor
|
||||
|
||||
generate-patch:
|
||||
|
@ -1,6 +1,3 @@
|
||||
MD5 (cvs-1.11.17.tar.bz2) = 17cd48888d5571d215a44a7e8d46759c
|
||||
SHA256 (cvs-1.11.17.tar.bz2) = a5486a3224140e7bd94ba77c5f690da8142fa9ee241e1a75612d6228c459e97e
|
||||
SIZE (cvs-1.11.17.tar.bz2) = 2343366
|
||||
MD5 (cvs-1.11.17-v6-20040610.diff.gz) = 29b341c7b619c7c86751a7ee2e8eca02
|
||||
SHA256 (cvs-1.11.17-v6-20040610.diff.gz) = 16aa61329485fbd94c3a2c117e49ee99612f5f0281e9a85c13c22349e39eed11
|
||||
SIZE (cvs-1.11.17-v6-20040610.diff.gz) = 12807
|
||||
MD5 (cvs-1.12.13.tar.bz2) = 956ab476ce276c2d19d583e227dbdbea
|
||||
SHA256 (cvs-1.12.13.tar.bz2) = 78853613b9a6873a30e1cc2417f738c330e75f887afdaf7b3d0800cb19ca515e
|
||||
SIZE (cvs-1.12.13.tar.bz2) = 3911104
|
||||
|
15
devel/cvs-devel/files/patch-64bit_crashfix
Normal file
15
devel/cvs-devel/files/patch-64bit_crashfix
Normal file
@ -0,0 +1,15 @@
|
||||
# Fix a 64-bit crash in the entries_time() function and another bug in
|
||||
# the diff code. Thanks to Gabor Gombas for the patch. Closes:
|
||||
# #329127.
|
||||
diff -Nur diff/util.c diff/util.c
|
||||
--- diff/util.c 2003-02-03 03:52:38.000000000 +0800
|
||||
+++ diff/util.c 2006-02-26 21:32:22.000000000 +0800
|
||||
@@ -235,7 +235,7 @@
|
||||
close (pipes[0]);
|
||||
}
|
||||
|
||||
- execl (PR_PROGRAM, PR_PROGRAM, "-f", "-h", name, 0);
|
||||
+ execl (PR_PROGRAM, PR_PROGRAM, "-f", "-h", name, NULL);
|
||||
pfatal_with_name (PR_PROGRAM);
|
||||
}
|
||||
else
|
388
devel/cvs-devel/files/patch-DSA_external_passwd_file
Normal file
388
devel/cvs-devel/files/patch-DSA_external_passwd_file
Normal file
@ -0,0 +1,388 @@
|
||||
# Add support for overriding lookups in CVSROOT/passwd
|
||||
# Specify --password-file <file> on the pserver command line to use it
|
||||
# Initial patch from the Debian DSA team, adapted by Steve McIntyre.
|
||||
# See README.Debian for more details.
|
||||
diff -Nur src/cvs.h src/cvs.h
|
||||
--- src/cvs.h 2005-10-02 16:17:20.000000000 +0100
|
||||
+++ src/cvs.h 2006-08-19 01:20:33.000000000 +0100
|
||||
@@ -371,6 +371,7 @@
|
||||
extern int use_editor;
|
||||
extern int cvswrite;
|
||||
extern mode_t cvsumask;
|
||||
+extern char *PasswordFileName;
|
||||
|
||||
/* Temp dir abstraction. */
|
||||
/* From main.c. */
|
||||
diff -Nur src/main.c src/main.c
|
||||
--- src/main.c 2006-08-17 00:25:16.000000000 +0100
|
||||
+++ src/main.c 2006-08-19 01:20:03.000000000 +0100
|
||||
@@ -43,8 +43,7 @@
|
||||
int noexec = 0;
|
||||
int readonlyfs = 0;
|
||||
int logoff = 0;
|
||||
-
|
||||
-
|
||||
+char *PasswordFileName = NULL;
|
||||
|
||||
/***
|
||||
***
|
||||
@@ -519,6 +518,7 @@
|
||||
{"help-commands", 0, NULL, 1},
|
||||
{"help-synonyms", 0, NULL, 2},
|
||||
{"help-options", 0, NULL, 4},
|
||||
+ {"password-file", required_argument, NULL, 5},
|
||||
#ifdef SERVER_SUPPORT
|
||||
{"allow-root", required_argument, NULL, 3},
|
||||
#endif /* SERVER_SUPPORT */
|
||||
@@ -646,6 +646,10 @@
|
||||
root_allow_add (optarg, gConfigPath);
|
||||
break;
|
||||
#endif /* SERVER_SUPPORT */
|
||||
+ case 5:
|
||||
+ /* --password-file */
|
||||
+ PasswordFileName = xstrdup(optarg);
|
||||
+ break;
|
||||
case 'Q':
|
||||
really_quiet = 1;
|
||||
/* FALL THROUGH */
|
||||
diff -Nur src/Makefile.in src/Makefile.in
|
||||
--- src/Makefile.in 2005-10-03 14:37:18.000000000 +0100
|
||||
+++ src/Makefile.in 2006-08-17 00:28:35.000000000 +0100
|
||||
@@ -146,7 +146,7 @@
|
||||
ls.$(OBJEXT) main.$(OBJEXT) mkmodules.$(OBJEXT) \
|
||||
modules.$(OBJEXT) ms-buffer.$(OBJEXT) myndbm.$(OBJEXT) \
|
||||
no_diff.$(OBJEXT) parseinfo.$(OBJEXT) patch.$(OBJEXT) \
|
||||
- rcs.$(OBJEXT) rcscmds.$(OBJEXT) recurse.$(OBJEXT) \
|
||||
+ rcs.$(OBJEXT) rcscmds.$(OBJEXT) readpw.$(OBJEXT) recurse.$(OBJEXT) \
|
||||
release.$(OBJEXT) remove.$(OBJEXT) repos.$(OBJEXT) \
|
||||
root.$(OBJEXT) rsh-client.$(OBJEXT) run.$(OBJEXT) \
|
||||
scramble.$(OBJEXT) server.$(OBJEXT) stack.$(OBJEXT) \
|
||||
@@ -349,6 +349,7 @@
|
||||
patch.c \
|
||||
rcs.c \
|
||||
rcscmds.c \
|
||||
+ readpw.c \
|
||||
recurse.c \
|
||||
release.c \
|
||||
remove.c \
|
||||
@@ -543,6 +544,7 @@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patch.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcscmds.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readpw.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recurse.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/release.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remove.Po@am__quote@
|
||||
diff -Nur src/parseinfo.h src/parseinfo.h
|
||||
--- src/parseinfo.h 2006-08-17 00:25:16.000000000 +0100
|
||||
+++ src/parseinfo.h 2006-08-17 00:58:25.000000000 +0100
|
||||
@@ -21,6 +21,7 @@
|
||||
char *HistoryLogPath;
|
||||
char *HistorySearchPath;
|
||||
char *TmpDir;
|
||||
+ char *PasswordFileName;
|
||||
|
||||
/* Should the logmsg be re-read during the do_verify phase?
|
||||
* RereadLogAfterVerify=no|stat|yes
|
||||
diff -Nur src/readpw.c src/readpw.c
|
||||
--- src/readpw.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ src/readpw.c 2006-08-19 01:45:26.000000000 +0100
|
||||
@@ -0,0 +1,158 @@
|
||||
+/*
|
||||
+ readpw.c - read the CVS password from an external file
|
||||
+ Copyright (c) 2006 Martin Schulze <joey@infodrom.org>
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 2 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program; if not, write to the Free Software
|
||||
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
+*/
|
||||
+
|
||||
+#include <string.h>
|
||||
+#include <stdio.h>
|
||||
+#include <errno.h>
|
||||
+#include <syslog.h>
|
||||
+
|
||||
+#define PWFILE "/tmp/work/cvs/cvs.passwd"
|
||||
+
|
||||
+/*
|
||||
+ * Source: control_nextline() in dtaus.c from dtaus
|
||||
+ */
|
||||
+size_t readline (FILE *f, char **buf, unsigned int len)
|
||||
+{
|
||||
+ char line[100];
|
||||
+ char tmp[100];
|
||||
+ char *cp;
|
||||
+ int i;
|
||||
+
|
||||
+ memset (line, 0, sizeof(line));
|
||||
+ memset (*buf, 0, len);
|
||||
+
|
||||
+ cp = line;
|
||||
+
|
||||
+ while (!strlen(line) && (cp = fgets(line, 100, f))) {
|
||||
+ if (strlen(line)) {
|
||||
+ if (line[0] != '#') {
|
||||
+ if (line[strlen(line)-1] != '\n') {
|
||||
+ strcpy(tmp, line);
|
||||
+ while (tmp[strlen(tmp)-1] != '\n' && (cp = fgets(tmp, 100, f)));
|
||||
+ } else
|
||||
+ line[strlen(line)-1] = '\0';
|
||||
+ if (line[strlen(line)-1] == '\r')
|
||||
+ line[strlen(line)-1] = '\0';
|
||||
+ for (i=strlen(line);(line[i-1] == ' '||line[i-1] == '\t')&&i>0; i--)
|
||||
+ line[i-1] = '\0';
|
||||
+ } else
|
||||
+ line[0] = '\0';
|
||||
+ }
|
||||
+ }
|
||||
+ for (cp=line; *cp==' '; cp++);
|
||||
+
|
||||
+ if (strlen(cp)) {
|
||||
+ memcpy(*buf, cp, strlen(cp) >= len ? len-1 : strlen(cp));
|
||||
+ return (strlen (cp));
|
||||
+ } else
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+#define MAXLINE 100
|
||||
+#define PWLEN 20
|
||||
+
|
||||
+char *getpwline (const char *fname, const char *repository, const char *logname)
|
||||
+{
|
||||
+ FILE *f;
|
||||
+ char buf[MAXLINE], *bp = buf;
|
||||
+ static char line[MAXLINE];
|
||||
+ int inrepo = 0;
|
||||
+ char *cp;
|
||||
+
|
||||
+ memset (line, 0, sizeof (line));
|
||||
+
|
||||
+ if ((f = fopen (fname, "r")) == NULL) {
|
||||
+ perror ("fopen");
|
||||
+ return line;
|
||||
+ }
|
||||
+
|
||||
+ while (readline (f, &bp, 50)) {
|
||||
+ if (buf[0] == '/') {
|
||||
+ syslog(LOG_ERR, "Looking for repo %s in %s\n", repository, buf);
|
||||
+ if (!inrepo && !strcmp (buf, repository))
|
||||
+ {
|
||||
+ syslog(LOG_ERR, "matched repository %s\n", repository);
|
||||
+ inrepo = 1;
|
||||
+ }
|
||||
+ else if (inrepo)
|
||||
+ inrepo = 0;
|
||||
+ } else {
|
||||
+ if (inrepo) {
|
||||
+ if ((cp = strchr (buf, ':')) != NULL) {
|
||||
+ if ( (cp - buf) == strlen (logname)
|
||||
+ && !strncmp (buf, logname, strlen (logname))) {
|
||||
+ memcpy (line, buf, strlen(buf) >= MAXLINE ? MAXLINE-1 : strlen(buf));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (ferror (f))
|
||||
+ perror ("ferror");
|
||||
+ if (fclose (f) < 0)
|
||||
+ perror ("fclose");
|
||||
+
|
||||
+ return line;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+*****************************************************************
|
||||
+ */
|
||||
+#ifdef TEST_READPW
|
||||
+
|
||||
+void getpasswd (const char *fname, const char *repository, const char *logname, char **pw, char **user)
|
||||
+{
|
||||
+ char *line;
|
||||
+ char *cp, *xp;
|
||||
+
|
||||
+ memset (*pw, 0, PWLEN);
|
||||
+ memset (*user, 0, PWLEN);
|
||||
+
|
||||
+ line = getpwline(fname, repository, logname);
|
||||
+
|
||||
+ if (line[0] == '\0')
|
||||
+ return;
|
||||
+
|
||||
+ cp = strchr (line, ':');
|
||||
+ cp++;
|
||||
+
|
||||
+ if ((xp = strchr (cp, ':')) != NULL) {
|
||||
+ memcpy (*pw, cp, xp-cp >= PWLEN ? PWLEN-1 : xp-cp);
|
||||
+
|
||||
+ xp++;
|
||||
+
|
||||
+ if (strlen (xp))
|
||||
+ memcpy (*user, xp, strlen(xp) >= PWLEN ? PWLEN-1 : strlen(xp));
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int main ()
|
||||
+{
|
||||
+ char pw[PWLEN], *ppw = pw;
|
||||
+ char cvsuser[PWLEN], *pcu = cvsuser;
|
||||
+
|
||||
+ getpasswd (PWFILE, "/cvs/debian-doc", "jseidel", &ppw, &pcu);
|
||||
+
|
||||
+ printf ("%s<:>%s\n", pw, cvsuser);
|
||||
+ printf ("XXXXXXXXXXXXX\n");
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif /*TEST_READPW */
|
||||
diff -Nur src/server.c src/server.c
|
||||
--- src/server.c 2006-08-17 00:25:16.000000000 +0100
|
||||
+++ src/server.c 2006-08-20 00:31:22.000000000 +0100
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
int server_active = 0;
|
||||
|
||||
+char *getpwline (const char *fname, const char *repository, const char *logname);
|
||||
+
|
||||
#if defined (SERVER_SUPPORT) || defined (CLIENT_SUPPORT)
|
||||
|
||||
# include "log-buffer.h"
|
||||
@@ -6689,51 +6691,71 @@
|
||||
{
|
||||
int retval = 0;
|
||||
FILE *fp;
|
||||
- char *filename;
|
||||
+ char *filename = NULL;
|
||||
+ char *cp;
|
||||
char *linebuf = NULL;
|
||||
size_t linebuf_len;
|
||||
int found_it = 0;
|
||||
int namelen;
|
||||
|
||||
- /* We don't use current_parsed_root->directory because it hasn't been
|
||||
- * set yet -- our `repository' argument came from the authentication
|
||||
- * protocol, not the regular CVS protocol.
|
||||
- */
|
||||
-
|
||||
- filename = xmalloc (strlen (repository)
|
||||
- + 1
|
||||
- + strlen (CVSROOTADM)
|
||||
- + 1
|
||||
- + strlen (CVSROOTADM_PASSWD)
|
||||
- + 1);
|
||||
+ if (!PasswordFileName)
|
||||
+ {
|
||||
+ /* We don't use current_parsed_root->directory because it hasn't been
|
||||
+ * set yet -- our `repository' argument came from the authentication
|
||||
+ * protocol, not the regular CVS protocol.
|
||||
+ */
|
||||
+
|
||||
+ filename = xmalloc (strlen (repository)
|
||||
+ + 1
|
||||
+ + strlen (CVSROOTADM)
|
||||
+ + 1
|
||||
+ + strlen (CVSROOTADM_PASSWD)
|
||||
+ + 1);
|
||||
|
||||
- (void) sprintf (filename, "%s/%s/%s", repository,
|
||||
- CVSROOTADM, CVSROOTADM_PASSWD);
|
||||
+ (void) sprintf (filename, "%s/%s/%s", repository,
|
||||
+ CVSROOTADM, CVSROOTADM_PASSWD);
|
||||
|
||||
- fp = CVS_FOPEN (filename, "r");
|
||||
- if (fp == NULL)
|
||||
- {
|
||||
- if (!existence_error (errno))
|
||||
- error (0, errno, "cannot open %s", filename);
|
||||
- free (filename);
|
||||
- return 0;
|
||||
- }
|
||||
+ fp = CVS_FOPEN (filename, "r");
|
||||
+ if (fp == NULL)
|
||||
+ {
|
||||
+ if (!existence_error (errno))
|
||||
+ error (0, errno, "cannot open %s", filename);
|
||||
+ free (filename);
|
||||
+ return 0;
|
||||
+ }
|
||||
|
||||
- /* Look for a relevant line -- one with this user's name. */
|
||||
- namelen = strlen (username);
|
||||
- while (getline (&linebuf, &linebuf_len, fp) >= 0)
|
||||
- {
|
||||
- if ((strncmp (linebuf, username, namelen) == 0)
|
||||
- && (linebuf[namelen] == ':'))
|
||||
- {
|
||||
- found_it = 1;
|
||||
- break;
|
||||
- }
|
||||
+ /* Look for a relevant line -- one with this user's name. */
|
||||
+ namelen = strlen (username);
|
||||
+ while (getline (&linebuf, &linebuf_len, fp) >= 0)
|
||||
+ {
|
||||
+ if ((strncmp (linebuf, username, namelen) == 0)
|
||||
+ && (linebuf[namelen] == ':'))
|
||||
+ {
|
||||
+ found_it = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ if (ferror (fp))
|
||||
+ error (0, errno, "cannot read %s", filename);
|
||||
+ if (fclose (fp) < 0)
|
||||
+ error (0, errno, "cannot close %s", filename);
|
||||
+ }
|
||||
+ else /* DSA_VERSION */
|
||||
+ {
|
||||
+ namelen = strlen (username);
|
||||
+
|
||||
+ cp = getpwline (PasswordFileName, repository, username);
|
||||
+ /* syslog (LOG_NOTICE, "cp=%s", cp); */
|
||||
+ if (strlen (cp)) {
|
||||
+ linebuf = xmalloc (strlen (cp) + 1);
|
||||
+ memcpy (linebuf, cp, strlen(cp)+1);
|
||||
+ /* syslog (LOG_NOTICE, "line=%s", linebuf); */
|
||||
+ found_it = 1;
|
||||
+ } else
|
||||
+ found_it = 0;
|
||||
+
|
||||
+ /* syslog (LOG_NOTICE, "username=%s, password=%s, repository=%s", username, password, repository); */
|
||||
}
|
||||
- if (ferror (fp))
|
||||
- error (0, errno, "cannot read %s", filename);
|
||||
- if (fclose (fp) < 0)
|
||||
- error (0, errno, "cannot close %s", filename);
|
||||
|
||||
/* If found_it, then linebuf contains the information we need. */
|
||||
if (found_it)
|
||||
@@ -6823,6 +6845,7 @@
|
||||
retval = 0;
|
||||
}
|
||||
|
||||
+ if (filename)
|
||||
free (filename);
|
||||
if (linebuf)
|
||||
free (linebuf);
|
||||
@@ -7043,7 +7066,10 @@
|
||||
letting you in if it won't say why, and I am not convinced
|
||||
that the potential information disclosure to an attacker
|
||||
outweighs this. */
|
||||
- printf ("error 0 no such user %s in CVSROOT/passwd\n", username);
|
||||
+ if (PasswordFileName)
|
||||
+ printf ("error 0 no such user %s in %s\n", username, PasswordFileName);
|
||||
+ else
|
||||
+ printf ("error 0 no such user %s in CVSROOT/passwd\n", username);
|
||||
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
144
devel/cvs-devel/files/patch-PAM_support
Normal file
144
devel/cvs-devel/files/patch-PAM_support
Normal file
@ -0,0 +1,144 @@
|
||||
#
|
||||
# Add in extra PAM options compared to upstream's own PAM code:
|
||||
# * Add an extra option PamAuth to control use of PAM separately from
|
||||
# SystemAuth
|
||||
# * Add support for DefaultPamUser - try that if the specified
|
||||
# user does not exist
|
||||
#
|
||||
# Patch by Steve McIntyre <steve@einval.com>
|
||||
diff -Nur doc/cvs.texinfo doc/cvs.texinfo
|
||||
--- doc/cvs.texinfo 2005-09-23 03:02:53.000000000 +0100
|
||||
+++ doc/cvs.texinfo 2006-05-19 23:50:10.000000000 +0100
|
||||
@@ -2662,8 +2662,18 @@
|
||||
system has PAM (Pluggable Authentication Modules)
|
||||
and your @sc{cvs} server executable was configured to
|
||||
use it at compile time (using @code{./configure --enable-pam} - see the
|
||||
-INSTALL file for more). In this case, PAM will be consulted instead.
|
||||
-This means that @sc{cvs} can be configured to use any password
|
||||
+INSTALL file for more). In this case, PAM may be
|
||||
+consulted first (or instead). The
|
||||
+"fallback" behaviour can be controlled using the two
|
||||
+variables @code{PamAuth} and @code{SystemAuth}. On a
|
||||
+Debian system, @code{PamAuth} defaults to @code{yes}
|
||||
+and @code{SystemAuth} to @code{no} - after all, PAM can
|
||||
+supports passwd file lookups itself. Changing these is
|
||||
+possible by setting @code{PamAuth=no} and
|
||||
+@code{SystemAuth=yes} in the @sc{cvs} @file{config}
|
||||
+file, @pxref{config}).
|
||||
+
|
||||
+Use of PAM means that @sc{cvs} can be configured to use any password
|
||||
authentication source PAM can be configured to use (possibilities
|
||||
include a simple UNIX password, NIS, LDAP, and others) in its
|
||||
global configuration file (usually @file{/etc/pam.conf}
|
||||
@@ -2691,7 +2701,7 @@
|
||||
cvs session required pam_unix.so
|
||||
@end example
|
||||
|
||||
-The the equivalent @file{/etc/pam.d/cvs} would contain
|
||||
+The equivalent @file{/etc/pam.d/cvs} would contain
|
||||
|
||||
@example
|
||||
auth required pam_unix.so
|
||||
@@ -2715,6 +2725,13 @@
|
||||
feature should not be used if you may not have control of the name
|
||||
@sc{cvs} will be invoked as.
|
||||
|
||||
+If you wish to use PAM for authentication, and details
|
||||
+of your users are not available using getpwnam(), you
|
||||
+may set a default name for the account on the server
|
||||
+that will be used after authentication. To do this,
|
||||
+either set @code{DefaultPamUser=user} in the @sc{cvs}
|
||||
+@file{config} file, @pxref{config}.
|
||||
+
|
||||
Be aware, also, that falling back to system
|
||||
authentication might be a security risk: @sc{cvs}
|
||||
operations would then be authenticated with that user's
|
||||
diff -Nur src/parseinfo.c src/parseinfo.c
|
||||
--- src/parseinfo.c 2005-09-06 05:40:37.000000000 +0100
|
||||
+++ src/parseinfo.c 2006-05-19 22:46:00.000000000 +0100
|
||||
@@ -303,8 +303,12 @@
|
||||
*/
|
||||
#endif /* PROXY_SUPPORT */
|
||||
#ifdef AUTH_SERVER_SUPPORT
|
||||
- new->system_auth = true;
|
||||
+ new->system_auth = false;
|
||||
#endif /* AUTH_SERVER_SUPPORT */
|
||||
+#ifdef HAVE_PAM
|
||||
+ new->PamAuth = true;
|
||||
+ new->DefaultPamUser = NULL;
|
||||
+#endif
|
||||
|
||||
return new;
|
||||
}
|
||||
@@ -696,6 +700,13 @@
|
||||
readSizeT (infopath, "MaxCompressionLevel", p,
|
||||
&retval->MaxCompressionLevel);
|
||||
#endif /* SERVER_SUPPORT */
|
||||
+#ifdef HAVE_PAM
|
||||
+ else if (!strcmp (line, "DefaultPamUser"))
|
||||
+ retval->DefaultPamUser = xstrdup(p);
|
||||
+ else if (!strcmp (line, "PamAuth"))
|
||||
+ readBool (infopath, "PamAuth", p,
|
||||
+ &retval->PamAuth);
|
||||
+#endif
|
||||
else
|
||||
/* We may be dealing with a keyword which was added in a
|
||||
subsequent version of CVS. In that case it is a good idea
|
||||
diff -Nur src/parseinfo.h src/parseinfo.h
|
||||
--- src/parseinfo.h 2005-09-05 04:03:38.000000000 +0100
|
||||
+++ src/parseinfo.h 2006-05-19 22:40:31.000000000 +0100
|
||||
@@ -59,6 +59,10 @@
|
||||
#ifdef PRESERVE_PERMISSIONS_SUPPORT
|
||||
bool preserve_perms;
|
||||
#endif /* PRESERVE_PERMISSIONS_SUPPORT */
|
||||
+#ifdef HAVE_PAM
|
||||
+ char *DefaultPamUser;
|
||||
+ bool PamAuth;
|
||||
+#endif
|
||||
};
|
||||
|
||||
bool parse_error (const char *, unsigned int);
|
||||
diff -Nur src/server.c src/server.c
|
||||
--- src/server.c 2005-09-28 16:25:59.000000000 +0100
|
||||
+++ src/server.c 2006-05-20 00:45:14.000000000 +0100
|
||||
@@ -6919,6 +6919,15 @@
|
||||
{
|
||||
pam_stage = "get pam user";
|
||||
retval = pam_get_item (pamh, PAM_USER, (const void **)username);
|
||||
+ if ((retval != PAM_SUCCESS) && (NULL != config->DefaultPamUser))
|
||||
+ {
|
||||
+ /* An issue with using pam is that the host may well not have
|
||||
+ a local user entry to match the authenticated user. If this
|
||||
+ has failed, optionally fall back to a specified local
|
||||
+ username */
|
||||
+ *username = xstrdup(config->DefaultPamUser);
|
||||
+ retval = PAM_SUCCESS;
|
||||
+ }
|
||||
}
|
||||
|
||||
if (retval != PAM_SUCCESS)
|
||||
@@ -7022,7 +7031,11 @@
|
||||
|
||||
assert (rc == 0);
|
||||
|
||||
+#ifdef HAVE_PAM
|
||||
+ if (!config->system_auth && !config->PamAuth)
|
||||
+#else
|
||||
if (!config->system_auth)
|
||||
+#endif
|
||||
{
|
||||
/* Note that the message _does_ distinguish between the case in
|
||||
which we check for a system password and the case in which
|
||||
@@ -7037,9 +7050,10 @@
|
||||
|
||||
/* No cvs password found, so try /etc/passwd. */
|
||||
#ifdef HAVE_PAM
|
||||
- if (check_pam_password (&username, password))
|
||||
+ if ( (config->PamAuth && check_pam_password (&username, password)) ||
|
||||
+ (config->system_auth && check_system_password (username, password)))
|
||||
#else /* !HAVE_PAM */
|
||||
- if (check_system_password (username, password))
|
||||
+ if (config->system_auth && check_system_password (username, password))
|
||||
#endif /* HAVE_PAM */
|
||||
host_user = xstrdup (username);
|
||||
else
|
27
devel/cvs-devel/files/patch-PATH_MAX_check
Normal file
27
devel/cvs-devel/files/patch-PATH_MAX_check
Normal file
@ -0,0 +1,27 @@
|
||||
# Fix FTBFS in hurd-i386 regarding bad check of PATH_MAX.
|
||||
# Closes: #378966
|
||||
# Thanks to Cyril Brulebois <cyril.brulebois@enst-bretagne.fr>
|
||||
diff -Nur lib/chdir-long.c lib/chdir-long.c
|
||||
--- lib/chdir-long.c 2005-09-19 21:12:18.000000000 +0000
|
||||
+++ lib/chdir-long.c 2006-07-20 02:47:32.000000000 +0000
|
||||
@@ -39,9 +39,7 @@
|
||||
# define O_DIRECTORY 0
|
||||
#endif
|
||||
|
||||
-#ifndef PATH_MAX
|
||||
-# error "compile this file only if your system defines PATH_MAX"
|
||||
-#endif
|
||||
+#ifdef PATH_MAX
|
||||
|
||||
struct cd_buf
|
||||
{
|
||||
@@ -269,6 +267,8 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
+#endif /* PATH_MAX */
|
||||
+
|
||||
/*
|
||||
Local Variables:
|
||||
compile-command: "gcc -DTEST_CHDIR=1 -DHAVE_CONFIG_H -I.. -g -O -W -Wall chdir-long.c libcoreutils.a"
|
||||
|
21
devel/cvs-devel/files/patch-check_method_crash
Normal file
21
devel/cvs-devel/files/patch-check_method_crash
Normal file
@ -0,0 +1,21 @@
|
||||
#
|
||||
# Do a basic sanity check on the method in the CVSROOT - don't crash
|
||||
# if one is not specified! Bug#274020
|
||||
#
|
||||
# Patch from Steve McIntyre <steve@einval.com>
|
||||
diff -Nur src/root.c src/root.c
|
||||
--- src/root.c 2005-09-25 08:38:29.000000000 +0800
|
||||
+++ src/root.c 2006-02-26 17:48:32.000000000 +0800
|
||||
@@ -535,6 +535,12 @@
|
||||
method = "";
|
||||
#endif /* defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
|
||||
|
||||
+ if (NULL == method)
|
||||
+ {
|
||||
+ error (0, 0, "Missing method in CVSROOT.");
|
||||
+ goto error_exit;
|
||||
+ }
|
||||
+
|
||||
/* Now we have an access method -- see if it's valid. */
|
||||
|
||||
if (!strcasecmp (method, "local"))
|
@ -1,10 +0,0 @@
|
||||
--- contrib/Makefile.in.orig Fri Apr 19 00:55:53 2002
|
||||
+++ contrib/Makefile.in Sun Aug 25 06:03:37 2002
|
||||
@@ -126,6 +126,7 @@
|
||||
|
||||
|
||||
contrib_DATA = \
|
||||
+ ${contrib_MANS} \
|
||||
README \
|
||||
intro.doc
|
||||
|
44
devel/cvs-devel/files/patch-copyright
Normal file
44
devel/cvs-devel/files/patch-copyright
Normal file
@ -0,0 +1,44 @@
|
||||
# Change references from GNU Public License to GNU General Public
|
||||
# License, where that is meant (closes: #102142)
|
||||
#
|
||||
# Patch by Tollef Fog Heen <tfheen@debian.org>
|
||||
diff -Nur DEVEL-CVS DEVEL-CVS
|
||||
--- DEVEL-CVS 2005-09-01 20:46:54.000000000 +0800
|
||||
+++ DEVEL-CVS 2006-02-26 22:40:36.000000000 +0800
|
||||
@@ -7,7 +7,8 @@
|
||||
Policies regarding the CVS source repository:
|
||||
|
||||
By checking items into the repository, developers agree to permit
|
||||
-distribution of such items under the terms of the GNU Public License.
|
||||
+distribution of such items under the terms of the GNU General Public
|
||||
+License.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Procedure for dealing with people who want to be developers:
|
||||
diff -Nur doc/cvsclient.texi doc/cvsclient.texi
|
||||
--- doc/cvsclient.texi 2006-02-26 22:40:35.000000000 +0800
|
||||
+++ doc/cvsclient.texi 2006-02-26 22:40:37.000000000 +0800
|
||||
@@ -54,7 +54,7 @@
|
||||
user documentation, @file{cvs.texinfo}, for that information. The
|
||||
protocol is non-proprietary (anyone who wants to is encouraged to
|
||||
implement it) and an implementation, known as CVS, is available under
|
||||
-the GNU Public License. The CVS distribution, containing this
|
||||
+the GNU General Public License. The CVS distribution, containing this
|
||||
implementation, @file{cvs.texinfo}, and a copy (possibly more or less up
|
||||
to date than what you are reading now) of this document,
|
||||
@file{cvsclient.texi}, can be found at the usual GNU FTP sites, with a
|
||||
diff -Nur HACKING HACKING
|
||||
--- HACKING 2005-09-25 08:36:08.000000000 +0800
|
||||
+++ HACKING 2006-02-26 22:42:15.000000000 +0800
|
||||
@@ -403,8 +403,9 @@
|
||||
for each issue. Use context diffs or unidiffs for patches.
|
||||
|
||||
Include words like "I grant permission to distribute this patch under
|
||||
-the terms of the GNU Public License" with your patch. By sending a
|
||||
-patch to bug-cvs@nongnu.org, you implicitly grant this permission.
|
||||
+the terms of the GNU General Public License" with your patch. By
|
||||
+sending a patch to bug-cvs@nongnu.org, you implicitly grant this
|
||||
+permission.
|
||||
|
||||
Submitting a patch to bug-cvs is the way to reach the people who have
|
||||
signed up to receive such submissions (including CVS developers), but
|
111
devel/cvs-devel/files/patch-cvs-repouid-0.1
Normal file
111
devel/cvs-devel/files/patch-cvs-repouid-0.1
Normal file
@ -0,0 +1,111 @@
|
||||
#
|
||||
# cvs-repouid patch for controlling pserver access. See
|
||||
# README.Debian for details.
|
||||
#
|
||||
# Original patch by Wichert Akkerman <wakkerma@debian.org>, fixes by
|
||||
# Steve McIntyre <steve@einval.com> with help from Alberto Garcia
|
||||
# <agarcia@igalia.com>
|
||||
diff -Nur src/cvs.h src/cvs.h
|
||||
--- src/cvs.h 2005-10-02 23:17:20.000000000 +0800
|
||||
+++ src/cvs.h 2006-02-26 22:08:16.000000000 +0800
|
||||
@@ -145,6 +145,13 @@
|
||||
#define CVSADM_TEMPLATE "CVS/Template"
|
||||
#endif /* USE_VMS_FILENAMES */
|
||||
|
||||
+/* Global configuration file mapping repositories to uids. This can be
|
||||
+ used instead of getting the unix user. This is prevents a security
|
||||
+ problem where anyone with commit access can basically become any
|
||||
+ user on the machine. Combined with the insecure pserver that is a
|
||||
+ problem waiting to happen. */
|
||||
+#define CVS_REPOUIDFILE "/etc/cvs-repouids"
|
||||
+
|
||||
/* This is the special directory which we use to store various extra
|
||||
per-directory information in the repository. It must be the same as
|
||||
CVSADM to avoid creating a new reserved directory name which users cannot
|
||||
diff -Nur src/server.c src/server.c
|
||||
--- src/server.c 2005-09-28 23:25:59.000000000 +0800
|
||||
+++ src/server.c 2006-02-26 22:08:16.000000000 +0800
|
||||
@@ -6570,6 +6570,12 @@
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
+ if (pw->pw_uid == 0)
|
||||
+ {
|
||||
+ printf("error 0: root not allowed\n");
|
||||
+ exit (EXIT_FAILURE);
|
||||
+ }
|
||||
+
|
||||
#if HAVE_INITGROUPS
|
||||
if (initgroups (pw->pw_name, pw->pw_gid) < 0
|
||||
# ifdef EPERM
|
||||
@@ -6667,6 +6673,51 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
+static char*
|
||||
+global_repo_uid(const char* repository)
|
||||
+{
|
||||
+ FILE *fp;
|
||||
+ char *linebuf = NULL;
|
||||
+ size_t linebuf_len;
|
||||
+ int found_it = 0;
|
||||
+ size_t repolen = strlen (repository);
|
||||
+ char *user;
|
||||
+
|
||||
+ fp = fopen (CVS_REPOUIDFILE, "r");
|
||||
+ if (fp == NULL)
|
||||
+ {
|
||||
+ if (!existence_error (errno))
|
||||
+ error (0, errno, "cannot open %s", CVS_REPOUIDFILE);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ while (getline (&linebuf, &linebuf_len, fp) >= 0)
|
||||
+ {
|
||||
+ if ((strncmp (linebuf, repository, repolen) == 0)
|
||||
+ && (linebuf[repolen] == ':'))
|
||||
+ {
|
||||
+ found_it = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (ferror (fp))
|
||||
+ error (0, errno, "cannot read %s", CVS_REPOUIDFILE);
|
||||
+ if (fclose (fp) < 0)
|
||||
+ error (0, errno, "cannot close %s", CVS_REPOUIDFILE);
|
||||
+
|
||||
+ if (!found_it) {
|
||||
+ free (linebuf);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ strtok (linebuf + repolen, "\n");
|
||||
+ user = xstrdup (linebuf + repolen + 1);
|
||||
+ free (linebuf);
|
||||
+
|
||||
+ return user;
|
||||
+}
|
||||
+
|
||||
#ifdef AUTH_SERVER_SUPPORT
|
||||
|
||||
extern char *crypt (const char *, const char *);
|
||||
@@ -6738,7 +6789,7 @@
|
||||
/* If found_it, then linebuf contains the information we need. */
|
||||
if (found_it)
|
||||
{
|
||||
- char *found_password, *host_user_tmp;
|
||||
+ char *found_password, *host_user_tmp, *user_override;
|
||||
char *non_cvsuser_portion;
|
||||
|
||||
/* We need to make sure lines such as
|
||||
@@ -6805,6 +6856,9 @@
|
||||
/* Give host_user_ptr permanent storage. */
|
||||
*host_user_ptr = xstrdup (host_user_tmp);
|
||||
retval = 1;
|
||||
+ user_override = global_repo_uid (repository);
|
||||
+ if (user_override)
|
||||
+ *host_user_ptr = user_override;
|
||||
}
|
||||
else
|
||||
{
|
58
devel/cvs-devel/files/patch-cvs.info.typo
Normal file
58
devel/cvs-devel/files/patch-cvs.info.typo
Normal file
@ -0,0 +1,58 @@
|
||||
# Minor documentation changes
|
||||
#
|
||||
# Patch by Steve McIntyre <steve@einval.com> and Britton Leo Kerin <fsblk@aurora.uaf.edu>
|
||||
diff -Nur doc/cvsclient.texi doc/cvsclient.texi
|
||||
--- doc/cvsclient.texi 2005-07-20 18:39:59.000000000 +0800
|
||||
+++ doc/cvsclient.texi 2006-02-26 22:39:20.000000000 +0800
|
||||
@@ -3,9 +3,10 @@
|
||||
@setfilename cvsclient.info
|
||||
@include version-client.texi
|
||||
|
||||
-@dircategory Programming
|
||||
+@dircategory Development
|
||||
@direntry
|
||||
-* cvsclient: (cvsclient). The CVS client/server protocol.
|
||||
+* CVS client/server: (cvsclient). Describes the client/server protocol
|
||||
+ used by CVS.
|
||||
@end direntry
|
||||
|
||||
@node Top
|
||||
diff -Nur doc/cvs.texinfo doc/cvs.texinfo
|
||||
--- doc/cvs.texinfo 2006-02-26 22:39:19.000000000 +0800
|
||||
+++ doc/cvs.texinfo 2006-02-26 22:39:20.000000000 +0800
|
||||
@@ -97,7 +97,7 @@
|
||||
@end macro
|
||||
@end ifhtml
|
||||
|
||||
-@dircategory GNU Packages
|
||||
+@dircategory Development
|
||||
@direntry
|
||||
* CVS: (cvs). Concurrent Versions System
|
||||
@end direntry
|
||||
@@ -2385,13 +2385,16 @@
|
||||
There are two access methods that you use in @code{CVSROOT}
|
||||
for rsh. @code{:server:} specifies an internal rsh
|
||||
client, which is supported only by some @sc{cvs} ports.
|
||||
+This is not supported on most Unix-style systems,
|
||||
+including Debian.
|
||||
@code{:ext:} specifies an external rsh program. By
|
||||
default this is @code{rsh} (unless otherwise specified
|
||||
by the @file{--with-rsh} flag to configure) but you may set the
|
||||
@code{CVS_RSH} environment variable to invoke another
|
||||
program which can access the remote server (for
|
||||
example, @code{remsh} on HP-UX 9 because @code{rsh} is
|
||||
-something different). It must be a program which can
|
||||
+something different, or @code{ssh} to allow the use of
|
||||
+secure and/or compressed connections). It must be a program which can
|
||||
transmit data to and from the server without modifying
|
||||
it; for example the Windows NT @code{rsh} is not
|
||||
suitable since it by default translates between CRLF
|
||||
@@ -12711,7 +12714,7 @@
|
||||
@item @var{mname} [ options ] @var{dir} [ @var{files}@dots{} ]
|
||||
In the simplest case, this form of module definition
|
||||
reduces to @samp{@var{mname} @var{dir}}. This defines
|
||||
-all the files in directory @var{dir} as module mname.
|
||||
+all the files in directory @var{dir} as module @var{mname}.
|
||||
@var{dir} is a relative path (from @code{$CVSROOT}) to a
|
||||
directory of source in the source repository. In this
|
||||
case, on checkout, a single directory called
|
22
devel/cvs-devel/files/patch-cvsbug_tmpfix
Normal file
22
devel/cvs-devel/files/patch-cvsbug_tmpfix
Normal file
@ -0,0 +1,22 @@
|
||||
# Patch for a tmp race in cvsbug (in the source package; we don't ship
|
||||
# the script as part of the package). Closes: #325106
|
||||
diff -Nur src/cvsbug.in src/cvsbug.in
|
||||
--- src/cvsbug.in 2003-02-26 05:31:33.000000000 +0800
|
||||
+++ src/cvsbug.in 2006-02-26 22:07:08.000000000 +0800
|
||||
@@ -109,14 +109,14 @@
|
||||
/usr/bin/ypcat passwd 2>/dev/null | cat - /etc/passwd | grep "^$LOGNAME:" |
|
||||
cut -f5 -d':' | sed -e 's/,.*//' > $TEMP
|
||||
ORIGINATOR="`cat $TEMP`"
|
||||
- rm -f $TEMP
|
||||
+ > $TEMP
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$ORIGINATOR" = "" ]; then
|
||||
grep "^$LOGNAME:" /etc/passwd | cut -f5 -d':' | sed -e 's/,.*//' > $TEMP
|
||||
ORIGINATOR="`cat $TEMP`"
|
||||
- rm -f $TEMP
|
||||
+ > $TEMP
|
||||
fi
|
||||
|
||||
if [ -n "$ORGANIZATION" ]; then
|
37
devel/cvs-devel/files/patch-cvsrc_whitespace
Normal file
37
devel/cvs-devel/files/patch-cvsrc_whitespace
Normal file
@ -0,0 +1,37 @@
|
||||
# Ignore leading whitespace in .cvsrc files. Closes: #212415. Thanks
|
||||
# to James R. Van Zandt for the patch.
|
||||
diff -Nur src/cvsrc.c src/cvsrc.c
|
||||
--- src/cvsrc.c 2005-03-16 23:52:14.000000000 +0800
|
||||
+++ src/cvsrc.c 2006-02-26 18:25:18.000000000 +0800
|
||||
@@ -41,6 +41,7 @@
|
||||
size_t line_chars_allocated;
|
||||
|
||||
char *optstart;
|
||||
+ int white_len;
|
||||
|
||||
int command_len;
|
||||
int found = 0;
|
||||
@@ -96,9 +97,12 @@
|
||||
if (line[0] == '#')
|
||||
continue;
|
||||
|
||||
+ for (white_len=0; isspace(line[white_len]); white_len++)
|
||||
+ ;
|
||||
+
|
||||
/* stop if we match the current command */
|
||||
- if (!strncmp (line, cmdname, command_len)
|
||||
- && isspace ((unsigned char) *(line + command_len)))
|
||||
+ if (!strncmp (line + white_len, cmdname, command_len)
|
||||
+ && isspace ((unsigned char) *(line + white_len + command_len)))
|
||||
{
|
||||
found = 1;
|
||||
break;
|
||||
@@ -120,7 +124,7 @@
|
||||
if (found)
|
||||
{
|
||||
/* skip over command in the options line */
|
||||
- for (optstart = strtok (line + command_len, "\t \n");
|
||||
+ for (optstart = strtok (line + white_len + command_len, "\t \n");
|
||||
optstart;
|
||||
optstart = strtok (NULL, "\t \n"))
|
||||
{
|
151
devel/cvs-devel/files/patch-date_format_option
Normal file
151
devel/cvs-devel/files/patch-date_format_option
Normal file
@ -0,0 +1,151 @@
|
||||
#
|
||||
# Add an extra option to set the DateFormat used in log output.
|
||||
#
|
||||
# Patch by Steve McIntyre <steve@einval.com>
|
||||
diff -Nur doc/cvs.texinfo doc/cvs.texinfo
|
||||
--- doc/cvs.texinfo 2005-09-23 10:02:53.000000000 +0800
|
||||
+++ doc/cvs.texinfo 2006-02-26 23:03:05.000000000 +0800
|
||||
@@ -14840,9 +14840,17 @@
|
||||
group to using @code{cvs admin} to change the default keyword
|
||||
substitution mode, lock revisions, unlock revisions, and
|
||||
replace the log message, use @samp{UserAdminOptions=klum}.
|
||||
-@end table
|
||||
-
|
||||
|
||||
+@cindex DateFormat, in CVSROOT/config
|
||||
+@item DateFormat=@var{value}
|
||||
+Control the output format of dates from cvs. cvs version 1.12.x
|
||||
+changed the default format to use ``iso8601'' dates, which are
|
||||
+better for many reasons. However, old scripts/programs written to
|
||||
+parse the output of various cvs commands (especially cvs log) may
|
||||
+not cope with the change in date format (e.g. gcvs). The default
|
||||
+value of DateFormat will be ``iso8601'', but if you need temporary
|
||||
+backwards-compatibility set DateFormat=old.
|
||||
+@end table
|
||||
|
||||
@c ---------------------------------------------------------------------
|
||||
@node Environment variables
|
||||
diff -Nur src/log.c src/log.c
|
||||
--- src/log.c 2005-03-22 21:19:57.000000000 +0800
|
||||
+++ src/log.c 2006-02-26 23:03:05.000000000 +0800
|
||||
@@ -1607,8 +1607,12 @@
|
||||
&sec);
|
||||
if (year < 1900)
|
||||
year += 1900;
|
||||
- sprintf (buf, "%04d-%02d-%02d %02d:%02d:%02d +0000", year, mon, mday,
|
||||
- hour, min, sec);
|
||||
+ if ('-' == datesep)
|
||||
+ sprintf (buf, "%04d%c%02d%c%02d %02d:%02d:%02d +0000", year, datesep,
|
||||
+ mon, datesep, mday, hour, min, sec);
|
||||
+ else
|
||||
+ sprintf (buf, "%04d%c%02d%c%02d %02d:%02d:%02d", year, datesep,
|
||||
+ mon, datesep, mday, hour, min, sec);
|
||||
cvs_output_tagged ("date", buf);
|
||||
|
||||
cvs_output_tagged ("text", "; author: ");
|
||||
diff -Nur src/main.c src/main.c
|
||||
--- src/main.c 2006-02-26 23:03:04.000000000 +0800
|
||||
+++ src/main.c 2006-02-26 23:10:12.000000000 +0800
|
||||
@@ -1371,9 +1371,19 @@
|
||||
static char buf[sizeof ("yyyy-mm-dd HH:MM:SS -HHMM")];
|
||||
/* Convert to a time in the local time zone. */
|
||||
struct tm ltm = *(localtime (&unixtime));
|
||||
-
|
||||
- if (!my_strftime (buf, sizeof (buf), "%Y-%m-%d %H:%M:%S %z", <m, 0, 0))
|
||||
- return NULL;
|
||||
+ char *format = NULL;
|
||||
+
|
||||
+ switch (datesep)
|
||||
+ {
|
||||
+ case '/':
|
||||
+ format = "%Y/%m/%d %H:%M:%S";
|
||||
+ break;
|
||||
+ default:
|
||||
+ format = "%Y-%m-%d %H:%M:%S %z";
|
||||
+ break;
|
||||
+ }
|
||||
+ if (my_strftime (buf, sizeof (buf), format, <m, 0, 0) == 0)
|
||||
+ return NULL;
|
||||
|
||||
return xstrdup (buf);
|
||||
}
|
||||
@@ -1388,9 +1398,19 @@
|
||||
static char buf[sizeof ("yyyy-mm-dd HH:MM:SS -HHMM")];
|
||||
/* Convert to a time in the local time zone. */
|
||||
struct tm ltm = *(gmtime (&unixtime));
|
||||
-
|
||||
- if (!my_strftime (buf, sizeof (buf), "%Y-%m-%d %H:%M:%S %z", <m, 0, 0))
|
||||
- return NULL;
|
||||
+ char *format = NULL;
|
||||
+
|
||||
+ switch (datesep)
|
||||
+ {
|
||||
+ case '/':
|
||||
+ format = "%Y/%m/%d %H:%M:%S";
|
||||
+ break;
|
||||
+ default:
|
||||
+ format = "%Y-%m-%d %H:%M:%S %z";
|
||||
+ break;
|
||||
+ }
|
||||
+ if (my_strftime (buf, sizeof (buf), format, <m, 0, 0) == 0)
|
||||
+ return NULL;
|
||||
|
||||
return xstrdup (buf);
|
||||
}
|
||||
diff -Nur src/parseinfo.c src/parseinfo.c
|
||||
--- src/parseinfo.c 2005-09-06 12:40:37.000000000 +0800
|
||||
+++ src/parseinfo.c 2006-02-26 23:03:05.000000000 +0800
|
||||
@@ -626,6 +626,19 @@
|
||||
retval->logHistory = xstrdup (p);
|
||||
}
|
||||
}
|
||||
+ /* grab FreeBSD date format idea */
|
||||
+ else if (strcmp (line, "DateFormat") == 0)
|
||||
+ {
|
||||
+ if (strcmp (p, "old") == 0)
|
||||
+ {
|
||||
+ datesep = '/';
|
||||
+ }
|
||||
+ else if (strcmp (p, "iso8601") == 0)
|
||||
+ {
|
||||
+ datesep = '-';
|
||||
+ }
|
||||
+ }
|
||||
+ /* end grabbing */
|
||||
else if (strcmp (line, "RereadLogAfterVerify") == 0)
|
||||
{
|
||||
if (!strcasecmp (p, "never"))
|
||||
diff -Nur src/rcs.c src/rcs.c
|
||||
--- src/rcs.c 2006-02-26 23:03:04.000000000 +0800
|
||||
+++ src/rcs.c 2006-02-26 23:03:05.000000000 +0800
|
||||
@@ -33,6 +33,8 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
+int datesep = '-';
|
||||
+
|
||||
/* The RCS -k options, and a set of enums that must match the array.
|
||||
These come first so that we can use enum kflag in function
|
||||
prototypes. */
|
||||
@@ -3537,8 +3539,8 @@
|
||||
&sec);
|
||||
if (year < 1900)
|
||||
year += 1900;
|
||||
- sprintf (buf, "%04d/%02d/%02d %02d:%02d:%02d", year, mon, mday,
|
||||
- hour, min, sec);
|
||||
+ sprintf (buf, "%04d%c%02d%c%02d %02d:%02d:%02d", year, datesep, mon,
|
||||
+ datesep, mday, hour, min, sec);
|
||||
return xstrdup (buf);
|
||||
}
|
||||
|
||||
diff -Nur src/rcs.h src/rcs.h
|
||||
--- src/rcs.h 2005-03-18 06:36:24.000000000 +0800
|
||||
+++ src/rcs.h 2006-02-26 23:03:05.000000000 +0800
|
||||
@@ -254,6 +254,7 @@
|
||||
void RCS_setlocalid (const char *, unsigned int, void **, const char *arg);
|
||||
char *make_file_label (const char *, const char *, RCSNode *);
|
||||
|
||||
+extern int datesep;
|
||||
extern bool preserve_perms;
|
||||
|
||||
/* From import.c. */
|
29
devel/cvs-devel/files/patch-ext_expansion
Normal file
29
devel/cvs-devel/files/patch-ext_expansion
Normal file
@ -0,0 +1,29 @@
|
||||
#
|
||||
# Make the "ext" method more intelligent; allow specification of the
|
||||
# "rsh" command using ext=<command>. Extended to recognise "extssh" the
|
||||
# same way as "ext=ssh"
|
||||
#
|
||||
# Original patch by Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>,
|
||||
# extension by Steve McIntyre <steve@einval.com>. Bugs #165432 and #276328
|
||||
diff -Nur src/root.c.orig src/root.c
|
||||
--- src/root.c.orig 2006-05-05 23:35:40.000000000 +0800
|
||||
+++ src/root.c 2006-05-05 23:34:12.000000000 +0800
|
||||
@@ -553,6 +547,18 @@
|
||||
newroot->method = gserver_method;
|
||||
else if (!strcasecmp (method, "server"))
|
||||
newroot->method = server_method;
|
||||
+ else if (strncmp (method, "ext=", 4) == 0)
|
||||
+ {
|
||||
+ const char *rsh = method + 4;
|
||||
+ setenv ("CVS_RSH", rsh, 1); /* This is a hack, but simplifies */
|
||||
+ newroot->method = ext_method;
|
||||
+ }
|
||||
+ else if (strncmp (method, "extssh", 6) == 0)
|
||||
+ {
|
||||
+ const char *rsh = method + 3;
|
||||
+ setenv ("CVS_RSH", rsh, 1); /* This is a hack, but simplifies */
|
||||
+ newroot->method = ext_method;
|
||||
+ }
|
||||
else if (!strcasecmp (method, "ext"))
|
||||
newroot->method = ext_method;
|
||||
else if (!strcasecmp (method, "fork"))
|
29
devel/cvs-devel/files/patch-extra_tags
Normal file
29
devel/cvs-devel/files/patch-extra_tags
Normal file
@ -0,0 +1,29 @@
|
||||
#
|
||||
# Add extra tag keyword expansion options
|
||||
#
|
||||
# Patch by Steve McIntyre <steve@einval.com>
|
||||
diff -Nur src/logmsg.c src/logmsg.c
|
||||
--- src/logmsg.c 2006-02-26 22:54:52.000000000 +0800
|
||||
+++ src/logmsg.c 2006-02-26 22:56:36.000000000 +0800
|
||||
@@ -642,7 +642,11 @@
|
||||
break;
|
||||
case 'T':
|
||||
li = p->data;
|
||||
- arg = li->tag ? li->tag : "";
|
||||
+ arg = li->tag ? li->tag : "TRUNK";
|
||||
+ break;
|
||||
+ case 'S':
|
||||
+ arg = xmalloc(strlen(p->key) + 5);
|
||||
+ sprintf(arg, "\\\"%s\\\"", p->key);
|
||||
break;
|
||||
case 'V':
|
||||
li = p->data;
|
||||
@@ -814,7 +818,7 @@
|
||||
#endif /* SERVER_SUPPORT */
|
||||
"p", "s", srepos,
|
||||
"r", "s", current_parsed_root->directory,
|
||||
- "sVv", ",", changes,
|
||||
+ "SsTVv", ",", changes,
|
||||
logmsg_list_to_args_proc, (void *) NULL,
|
||||
(char *) NULL);
|
||||
if (!cmdline || !strlen (cmdline))
|
26
devel/cvs-devel/files/patch-fix_-l
Normal file
26
devel/cvs-devel/files/patch-fix_-l
Normal file
@ -0,0 +1,26 @@
|
||||
# Re-added -l option to the client. Does nothing, but stops
|
||||
# warnings/errors. Will really fix #219950 and #224737, and also a
|
||||
# differently-described bug (220379). Closes: #219950, #220379
|
||||
#
|
||||
# Patch by Steve McIntyre <steve@einval.com>
|
||||
diff -Nur src/main.c src/main.c
|
||||
--- src/main.c 2006-02-26 22:09:42.000000000 +0800
|
||||
+++ src/main.c 2006-02-26 22:09:43.000000000 +0800
|
||||
@@ -511,7 +511,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[] = "+QqrwtnRvb:T:e:d:Hfz:s:xal";
|
||||
static struct option long_options[] =
|
||||
{
|
||||
{"help", 0, NULL, 'H'},
|
||||
@@ -669,6 +669,8 @@
|
||||
noexec = 1;
|
||||
logoff = 1;
|
||||
break;
|
||||
+ case 'l': /* no-op to simply ignore the old -l option */
|
||||
+ break;
|
||||
case 'v':
|
||||
(void) fputs ("\n", stdout);
|
||||
version (0, NULL);
|
30
devel/cvs-devel/files/patch-fix_sparc_sigbus
Normal file
30
devel/cvs-devel/files/patch-fix_sparc_sigbus
Normal file
@ -0,0 +1,30 @@
|
||||
diff -Nur src/update.c src/update.c
|
||||
--- src/update.c 2005-09-22 20:49:17.000000000 +0200
|
||||
+++ src/update.c 2006-12-15 01:35:54.000000000 +0100
|
||||
@@ -58,7 +58,7 @@
|
||||
static int patch_file (struct file_info *finfo,
|
||||
Vers_TS *vers_ts,
|
||||
int *docheckout, struct stat *file_info,
|
||||
- unsigned char *checksum);
|
||||
+ md5_uint32 *checksum);
|
||||
static void patch_file_write (void *, const char *, size_t);
|
||||
#endif
|
||||
static int merge_file (struct file_info *finfo, Vers_TS *vers);
|
||||
@@ -723,7 +723,7 @@
|
||||
{
|
||||
int docheckout;
|
||||
struct stat file_info;
|
||||
- unsigned char checksum[16];
|
||||
+ md5_uint32 checksum[4];
|
||||
|
||||
retval = patch_file (finfo,
|
||||
vers, &docheckout,
|
||||
@@ -1511,7 +1511,7 @@
|
||||
*/
|
||||
static int
|
||||
patch_file (struct file_info *finfo, Vers_TS *vers_ts, int *docheckout,
|
||||
- struct stat *file_info, unsigned char *checksum)
|
||||
+ struct stat *file_info, md5_uint32 *checksum)
|
||||
{
|
||||
char *backup;
|
||||
char *file1;
|
21
devel/cvs-devel/files/patch-flag_conflicted_copies
Normal file
21
devel/cvs-devel/files/patch-flag_conflicted_copies
Normal file
@ -0,0 +1,21 @@
|
||||
# Undo not flagging conflicted copies anymore, as reported by
|
||||
# Henrique de Moraes Holschuh <hmh@debian.org>
|
||||
# Closes: #368681
|
||||
# Fix as described in message to the CVS mailing list at
|
||||
# http://lists.gnu.org/archive/html/info-cvs/2006-06/msg00050.html
|
||||
--- src/client.c~ 2005-10-02 16:17:20.000000000 +0100
|
||||
+++ src/client.c 2006-06-09 20:12:06.000000000 +0100
|
||||
@@ -4533,10 +4533,9 @@
|
||||
/* File no longer exists. Don't do anything, missing files
|
||||
just happen. */
|
||||
}
|
||||
- else if (!vers->ts_rcs || args->force
|
||||
- || strcmp (vers->ts_conflict
|
||||
- ? vers->ts_conflict : vers->ts_rcs, vers->ts_user)
|
||||
- || (vers->ts_conflict && !strcmp (cvs_cmd_name, "diff")))
|
||||
+ else if (vers->ts_rcs == NULL
|
||||
+ || args->force
|
||||
+ || strcmp (vers->ts_user, vers->ts_rcs) != 0)
|
||||
{
|
||||
if (args->no_contents
|
||||
&& supported_request ("Is-modified"))
|
File diff suppressed because it is too large
Load Diff
31
devel/cvs-devel/files/patch-history_val-tag_world_writeable
Normal file
31
devel/cvs-devel/files/patch-history_val-tag_world_writeable
Normal file
@ -0,0 +1,31 @@
|
||||
# Don't make history and val-tags files world-writable when creating a
|
||||
# new repository. (Closes: #125892)
|
||||
#
|
||||
# Author unknown, probably Eric Gillespie, Jr. <epg@debian.org>
|
||||
diff -Nur src/mkmodules.c src/mkmodules.c
|
||||
--- src/mkmodules.c 2005-05-25 04:59:01.000000000 +0800
|
||||
+++ src/mkmodules.c 2006-02-26 22:27:55.000000000 +0800
|
||||
@@ -1249,11 +1249,6 @@
|
||||
fp = xfopen (info, "w");
|
||||
if (fclose (fp) < 0)
|
||||
error (1, errno, "cannot close %s", info);
|
||||
-
|
||||
- /* Make the new history file world-writeable, since every CVS
|
||||
- user will need to be able to write to it. We use chmod()
|
||||
- because xchmod() is too shy. */
|
||||
- chmod (info, 0666);
|
||||
}
|
||||
|
||||
/* Make an empty val-tags file to prevent problems creating it later. */
|
||||
@@ -1267,11 +1262,6 @@
|
||||
fp = xfopen (info, "w");
|
||||
if (fclose (fp) < 0)
|
||||
error (1, errno, "cannot close %s", info);
|
||||
-
|
||||
- /* Make the new val-tags file world-writeable, since every CVS
|
||||
- user will need to be able to write to it. We use chmod()
|
||||
- because xchmod() is too shy. */
|
||||
- chmod (info, 0666);
|
||||
}
|
||||
|
||||
free (info);
|
44
devel/cvs-devel/files/patch-homedir
Normal file
44
devel/cvs-devel/files/patch-homedir
Normal file
@ -0,0 +1,44 @@
|
||||
# Fix handling of homedirectory for pserver, patch from
|
||||
# Jim Studt <jim@federated.com>. Closes: Bug#51234
|
||||
diff -Nur src/filesubr.c src/filesubr.c
|
||||
--- src/filesubr.c 2005-09-28 23:25:59.000000000 +0800
|
||||
+++ src/filesubr.c 2006-02-26 22:31:57.000000000 +0800
|
||||
@@ -795,6 +795,11 @@
|
||||
The workaround is to put -f in inetd.conf which means that
|
||||
get_homedir won't get called until after the switch in user ID.
|
||||
|
||||
+ NOTE: the above paragraph is not sufficient if the HOME environment
|
||||
+ variable is set, it overrides the uid based password lookup, hence
|
||||
+ the change_uid logic path that blocks the HOME environment variable
|
||||
+ when the uid gets changed.
|
||||
+
|
||||
The whole concept of a "home directory" on the server is pretty
|
||||
iffy, although I suppose some people probably are relying on it for
|
||||
.cvsrc and such, in the cases where it works. */
|
||||
@@ -802,15 +807,24 @@
|
||||
get_homedir (void)
|
||||
{
|
||||
static char *home = NULL;
|
||||
+ static uid_t home_uid = 0;
|
||||
+ static int changed_uid = 0;
|
||||
char *env;
|
||||
+ uid_t uid = getuid();
|
||||
struct passwd *pw;
|
||||
|
||||
+ if ( home && home_uid != uid) {
|
||||
+ home = 0;
|
||||
+ home_uid = uid;
|
||||
+ changed_uid = 1;
|
||||
+ }
|
||||
+
|
||||
if (home != NULL)
|
||||
return home;
|
||||
|
||||
- if (!server_active && (env = getenv ("HOME")) != NULL)
|
||||
+ if (!server_active && ((env = getenv ("HOME")) != NULL) && !changed_uid)
|
||||
home = env;
|
||||
- else if ((pw = (struct passwd *) getpwuid (getuid ()))
|
||||
+ else if ((pw = (struct passwd *) getpwuid (uid))
|
||||
&& pw->pw_dir)
|
||||
home = xstrdup (pw->pw_dir);
|
||||
else
|
15
devel/cvs-devel/files/patch-import-n-X
Normal file
15
devel/cvs-devel/files/patch-import-n-X
Normal file
@ -0,0 +1,15 @@
|
||||
# Fix `cvs import -X' failure
|
||||
# Fixes: #374964
|
||||
# Patch by Florian Zschocke <zschocke@gmx.net>
|
||||
diff -Nur src/import.c src/import.c
|
||||
--- src/import.c 2005-09-04 02:27:44.000000000 +0200
|
||||
+++ src/import.c 2006-06-19 19:41:57.000000000 +0200
|
||||
@@ -595,7 +595,7 @@
|
||||
/* Attempt to make the Attic directory, in case it
|
||||
does not exist. */
|
||||
(void) sprintf (rcs, "%s/%s", repository, CVSATTIC);
|
||||
- if (CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST)
|
||||
+ if (noexec == 0 && CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST)
|
||||
error (1, errno, "cannot make directory `%s'", rcs);
|
||||
|
||||
/* Note that the above clobbered the path name, so we
|
27
devel/cvs-devel/files/patch-keyword_alphanumerics
Normal file
27
devel/cvs-devel/files/patch-keyword_alphanumerics
Normal file
@ -0,0 +1,27 @@
|
||||
# Fix keyword handling to accept alphanumerics, not just alphabetics.
|
||||
# Thanks to Branden Robinson for this fix.
|
||||
diff -Nur src/rcs.c src/rcs.c
|
||||
--- src/rcs.c 2005-09-28 23:25:59.000000000 +0800
|
||||
+++ src/rcs.c 2006-02-26 17:58:32.000000000 +0800
|
||||
@@ -3680,13 +3680,18 @@
|
||||
srch_len -= (srch_next + 1) - srch;
|
||||
srch = srch_next + 1;
|
||||
|
||||
- /* Look for the first non alphabetic character after the '$'. */
|
||||
+ /*
|
||||
+ * Accept alphanumerics, not just alphabetics. XFree86, anyone?
|
||||
+ * Branden Robinson Sat, 7 Sep 2002 02:04:59 -0500
|
||||
+ */
|
||||
+
|
||||
+ /* Look for the first non alphanumeric character after the '$'. */
|
||||
send = srch + srch_len;
|
||||
for (s = srch; s < send; s++)
|
||||
- if (! isalpha ((unsigned char) *s))
|
||||
+ if (! isalnum ((unsigned char) *s))
|
||||
break;
|
||||
|
||||
- /* If the first non alphabetic character is not '$' or ':',
|
||||
+ /* If the first non alphanumeric character is not '$' or ':',
|
||||
then this is not an RCS keyword. */
|
||||
if (s == send || (*s != '$' && *s != ':'))
|
||||
continue;
|
@ -1,37 +0,0 @@
|
||||
--- lib/Makefile.in.orig Mon Sep 29 19:05:58 2003
|
||||
+++ lib/Makefile.in Tue Sep 30 11:25:43 2003
|
||||
@@ -173,8 +173,6 @@
|
||||
getopt.c \
|
||||
getopt1.c \
|
||||
getpass.c \
|
||||
- md5.c \
|
||||
- regex.c \
|
||||
savecwd.c \
|
||||
sighandle.c \
|
||||
stripslash.c \
|
||||
@@ -210,7 +208,7 @@
|
||||
libcvs_a_DEPENDENCIES = @LIBOBJS@
|
||||
am_libcvs_a_OBJECTS = argmatch.$(OBJEXT) getdate.$(OBJEXT) \
|
||||
getline.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \
|
||||
- getpass.$(OBJEXT) md5.$(OBJEXT) regex.$(OBJEXT) \
|
||||
+ getpass.$(OBJEXT) \
|
||||
savecwd.$(OBJEXT) sighandle.$(OBJEXT) stripslash.$(OBJEXT) \
|
||||
xgetwd.$(OBJEXT) yesno.$(OBJEXT)
|
||||
libcvs_a_OBJECTS = $(am_libcvs_a_OBJECTS)
|
||||
@@ -228,7 +226,6 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/argmatch.Po ./$(DEPDIR)/getdate.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/getline.Po ./$(DEPDIR)/getopt.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/getopt1.Po ./$(DEPDIR)/getpass.Po \
|
||||
-@AMDEP_TRUE@ ./$(DEPDIR)/md5.Po ./$(DEPDIR)/regex.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/savecwd.Po ./$(DEPDIR)/sighandle.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/stripslash.Po ./$(DEPDIR)/xgetwd.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/yesno.Po
|
||||
@@ -289,8 +286,6 @@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpass.Po@am__quote@
|
||||
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
|
||||
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/savecwd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sighandle.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@
|
19
devel/cvs-devel/files/patch-login_cvspass_message
Normal file
19
devel/cvs-devel/files/patch-login_cvspass_message
Normal file
@ -0,0 +1,19 @@
|
||||
# Print a clearer message if ~/.cvspass does not exist when cvs login is
|
||||
# called. Closes: #168163.
|
||||
#
|
||||
# Patch by Steve McIntyre <steve@einval.com>
|
||||
diff -Nur src/login.c src/login.c
|
||||
--- src/login.c 2005-05-14 05:47:28.000000000 +0800
|
||||
+++ src/login.c 2006-02-26 21:31:17.000000000 +0800
|
||||
@@ -309,7 +309,10 @@
|
||||
fp = CVS_FOPEN (passfile, "r");
|
||||
if (fp == NULL)
|
||||
{
|
||||
- error (0, errno, "warning: failed to open %s for reading", passfile);
|
||||
+ if (errno == ENOENT)
|
||||
+ error (0, 0, "CVS password file %s does not exist - creating a new file", passfile);
|
||||
+ else
|
||||
+ error (0, errno, "warning: failed to open %s for reading", passfile);
|
||||
goto process;
|
||||
}
|
||||
|
32
devel/cvs-devel/files/patch-newlines_in_commit_template
Normal file
32
devel/cvs-devel/files/patch-newlines_in_commit_template
Normal file
@ -0,0 +1,32 @@
|
||||
# Change commit template so that there are two newlines at the
|
||||
# beginning. (closes: #102624)
|
||||
#
|
||||
# Patch from Tollef Fog Heen <tfheen@debian.org>
|
||||
diff -Nur src/logmsg.c src/logmsg.c
|
||||
--- src/logmsg.c 2005-09-04 08:27:44.000000000 +0800
|
||||
+++ src/logmsg.c 2006-02-26 17:57:28.000000000 +0800
|
||||
@@ -264,6 +264,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ if (!*messagep)
|
||||
+ {
|
||||
+ (void) fprintf (fp, "\n");
|
||||
+ }
|
||||
+
|
||||
(void) fprintf (fp,
|
||||
"%s----------------------------------------------------------------------\n",
|
||||
CVSEDITPREFIX);
|
||||
@@ -349,7 +354,11 @@
|
||||
*messagep = NULL;
|
||||
}
|
||||
|
||||
- if (pre_stbuf.st_mtime == post_stbuf.st_mtime || *messagep == NULL)
|
||||
+ if (pre_stbuf.st_mtime == post_stbuf.st_mtime ||
|
||||
+ *messagep == NULL ||
|
||||
+ (*messagep)[0] == '\0' ||
|
||||
+ strcmp (*messagep, "\n") == 0 ||
|
||||
+ strcmp (*messagep, "\n\n") == 0)
|
||||
{
|
||||
for (;;)
|
||||
{
|
34
devel/cvs-devel/files/patch-normalize_correct_roots
Normal file
34
devel/cvs-devel/files/patch-normalize_correct_roots
Normal file
@ -0,0 +1,34 @@
|
||||
# Apply patch from 120042, which only tries to parse pserver, gserver
|
||||
# and kserver methods when doing cvs login. (closes: #120042).
|
||||
#
|
||||
# Patch from Horms <horms@vergenet.net>
|
||||
diff -Nur src/login.c src/login.c
|
||||
--- src/login.c 2006-02-26 22:10:42.000000000 +0800
|
||||
+++ src/login.c 2006-02-26 22:25:14.000000000 +0800
|
||||
@@ -200,11 +200,21 @@
|
||||
return NULL;
|
||||
}
|
||||
*p = ' ';
|
||||
- tmp_root_canonical = normalize_cvsroot (tmp_root);
|
||||
- if (strcmp (cvsroot_canonical, tmp_root_canonical) == 0)
|
||||
- password = p + 1;
|
||||
-
|
||||
- free (tmp_root_canonical);
|
||||
+ switch (tmp_root->method)
|
||||
+ {
|
||||
+ case gserver_method:
|
||||
+ case pserver_method:
|
||||
+#ifdef HAVE_KERBEROS
|
||||
+ case kserver_method:
|
||||
+#endif /* HAVE_KERBEROS */
|
||||
+ tmp_root_canonical = normalize_cvsroot (tmp_root);
|
||||
+ if (strcmp (cvsroot_canonical, tmp_root_canonical) == 0)
|
||||
+ password = p + 1;
|
||||
+ free (tmp_root_canonical);
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
|
||||
return password;
|
108
devel/cvs-devel/files/patch-parseopts
Normal file
108
devel/cvs-devel/files/patch-parseopts
Normal file
@ -0,0 +1,108 @@
|
||||
diff -Nur src/cvs.h src/cvs.h
|
||||
--- src/cvs.h 2006-08-19 00:05:38.000000000 +0100
|
||||
+++ src/cvs.h 2006-08-19 00:05:41.000000000 +0100
|
||||
@@ -177,6 +177,7 @@
|
||||
#define CVSROOTADM_LOGINFO "loginfo"
|
||||
#define CVSROOTADM_MODULES "modules"
|
||||
#define CVSROOTADM_NOTIFY "notify"
|
||||
+#define CVSROOTADM_OPTIONS "options"
|
||||
#define CVSROOTADM_PASSWD "passwd"
|
||||
#define CVSROOTADM_POSTADMIN "postadmin"
|
||||
#define CVSROOTADM_POSTPROXY "postproxy"
|
||||
@@ -506,6 +507,7 @@
|
||||
char *strcat_filename_onto_homedir (const char *, const char *);
|
||||
char *cvs_temp_name (void);
|
||||
FILE *cvs_temp_file (char **filename);
|
||||
+void parseopts (const char *root);
|
||||
|
||||
int ls (int argc, char *argv[]);
|
||||
int unlink_file (const char *f);
|
||||
diff -Nur src/main.c src/main.c
|
||||
--- src/main.c 2006-08-19 00:05:38.000000000 +0100
|
||||
+++ src/main.c 2006-08-19 00:08:14.000000000 +0100
|
||||
@@ -1108,6 +1108,8 @@
|
||||
CVSROOT/config file to fix the broken one! */
|
||||
if (config) free_config (config);
|
||||
config = parse_config (current_parsed_root->directory, NULL);
|
||||
+ /* Now is a convenient time to read CVSROOT/options */
|
||||
+ parseopts(current_parsed_root->directory);
|
||||
|
||||
/* Can set TMPDIR in the environment if necessary now, since
|
||||
* if it was set in config, we now know it.
|
||||
@@ -1482,5 +1484,63 @@
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
+void
|
||||
+parseopts(root)
|
||||
+ const char *root;
|
||||
+{
|
||||
+ char path[PATH_MAX];
|
||||
+ int save_errno;
|
||||
+ char buf[1024];
|
||||
+ const char *p;
|
||||
+ char *q;
|
||||
+ FILE *fp;
|
||||
+
|
||||
+ if (root == NULL) {
|
||||
+ printf("no CVSROOT in parseopts\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ p = strchr (root, ':');
|
||||
+ if (p)
|
||||
+ p++;
|
||||
+ else
|
||||
+ p = root;
|
||||
+ if (p == NULL) {
|
||||
+ printf("mangled CVSROOT in parseopts\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ (void) sprintf (path, "%s/%s/%s", p, CVSROOTADM, CVSROOTADM_OPTIONS);
|
||||
+ if ((fp = fopen(path, "r")) != NULL) {
|
||||
+ while (fgets(buf, sizeof buf, fp) != NULL) {
|
||||
+ if (buf[0] == '#')
|
||||
+ continue;
|
||||
+ q = strrchr(buf, '\n');
|
||||
+ if (q)
|
||||
+ *q = '\0';
|
||||
+
|
||||
+ if (!strncmp(buf, "tag=", 4)) {
|
||||
+ char *what;
|
||||
+ char *rcs_localid;
|
||||
+
|
||||
+ rcs_localid = buf + 4;
|
||||
+ RCS_setlocalid(path, 0, &config->keywords, rcs_localid);
|
||||
+ }
|
||||
+ if (!strncmp(buf, "tagexpand=", 10)) {
|
||||
+ char *what;
|
||||
+ char *rcs_incexc;
|
||||
+
|
||||
+ rcs_incexc = buf + 10;
|
||||
+ RCS_setincexc(&config->keywords, rcs_incexc);
|
||||
+ }
|
||||
+ /*
|
||||
+ * OpenBSD has a "umask=" and "dlimit=" command, we silently
|
||||
+ * ignore them here since they are not much use to us. cvsumask
|
||||
+ * defaults to 002 already, and the dlimit (data size limit)
|
||||
+ * should really be handled elsewhere (eg: login.conf).
|
||||
+ */
|
||||
+ }
|
||||
+ fclose(fp);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/* vim:tabstop=8:shiftwidth=4
|
||||
*/
|
||||
diff -Nur src/server.c src/server.c
|
||||
--- src/server.c 2006-08-19 00:05:38.000000000 +0100
|
||||
+++ src/server.c 2006-08-19 00:05:41.000000000 +0100
|
||||
@@ -985,6 +985,9 @@
|
||||
config->MaxCompressionLevel);
|
||||
}
|
||||
|
||||
+ /* Now is a good time to read CVSROOT/options too. */
|
||||
+ parseopts(current_parsed_root->directory);
|
||||
+
|
||||
path = xmalloc (strlen (current_parsed_root->directory)
|
||||
+ sizeof (CVSROOTADM)
|
||||
+ 2);
|
15
devel/cvs-devel/files/patch-rcs2log_POSIX_sort
Normal file
15
devel/cvs-devel/files/patch-rcs2log_POSIX_sort
Normal file
@ -0,0 +1,15 @@
|
||||
# Make rcs2log use POSIX 1003.1-2001 compliant `sort'. Closes: #368909
|
||||
# Patch taken from http://cvs.pld.org.pl/SOURCES/cvs-POSIX.patch?rev=1.1 ,
|
||||
# Thanks to the PLD Team.
|
||||
diff -Nur contrib/rcs2log.sh.orig contrib/rcs2log.sh
|
||||
--- contrib/rcs2log.sh.orig 2006-05-26 15:16:54.000000000 +0800
|
||||
+++ contrib/rcs2log.sh 2006-05-26 15:16:35.000000000 +0800
|
||||
@@ -649,7 +649,7 @@
|
||||
# Sort the log entries, first by date+time (in reverse order),
|
||||
# then by author, then by log entry, and finally by file name and revision
|
||||
# (just in case).
|
||||
-sort -t"$SOH" +2 -4r +4 +0 |
|
||||
+sort -t"$SOH" -k 3,4r -k 5 -k 1 |
|
||||
|
||||
# Finally, reformat the sorted log entries.
|
||||
$AWK -F"$SOH" '
|
21
devel/cvs-devel/files/patch-remove_-R_warning
Normal file
21
devel/cvs-devel/files/patch-remove_-R_warning
Normal file
@ -0,0 +1,21 @@
|
||||
#
|
||||
# Turn off read-only warning that breaks pserver client access. Doh!
|
||||
# Closes: #319467, #264019
|
||||
# Patch by Steve McIntyre <steve@einval.com>
|
||||
diff -Nur src/main.c src/main.c
|
||||
--- src/main.c 2005-10-02 23:17:21.000000000 +0800
|
||||
+++ src/main.c 2006-02-26 18:23:04.000000000 +0800
|
||||
@@ -764,13 +764,6 @@
|
||||
if (argc < 1)
|
||||
usage (usg);
|
||||
|
||||
- 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.");
|
||||
- }
|
||||
-
|
||||
/* Calculate the cvs global session ID */
|
||||
|
||||
{
|
49
devel/cvs-devel/files/patch-rsc2log_fix
Normal file
49
devel/cvs-devel/files/patch-rsc2log_fix
Normal file
@ -0,0 +1,49 @@
|
||||
#
|
||||
# Patch to make the rcs2log script cope with old-format (5 parameter)
|
||||
# and new-format (6 parameter) log output. Bug#258140
|
||||
#
|
||||
# Patch from Ludovic Rousseau <rousseau@debian.org>
|
||||
diff -Nur contrib/rcs2log.sh contrib/rcs2log.sh
|
||||
--- contrib/rcs2log.sh 2005-07-12 22:12:55.000000000 +0800
|
||||
+++ contrib/rcs2log.sh 2006-02-26 17:43:11.000000000 +0800
|
||||
@@ -416,11 +416,24 @@
|
||||
: ;;
|
||||
esac >$llogout || exit
|
||||
|
||||
+# the date format in 'cvs -q log' changed
|
||||
+# it was
|
||||
+# date: 2003/05/06 21:23:30; author: rousseau; state: Exp; lines: +29 -31
|
||||
+# it is now
|
||||
+# date: 2003-05-06 21:23:30 +0000; author: rousseau; state: Exp; lines: +29 -31
|
||||
output_authors='/^date: / {
|
||||
- if ($2 ~ /^[0-9]*[-\/][0-9][0-9][-\/][0-9][0-9]$/ && $3 ~ /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9][-+0-9:]*;$/ && $4 == "author:" && $5 ~ /^[^;]*;$/) {
|
||||
- print substr($5, 1, length($5)-1)
|
||||
- }
|
||||
+ # old date format
|
||||
+ if ($2 ~ /^[0-9]*[-\/][0-9][0-9][-\/][0-9][0-9]$/ && $3 ~ /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9][-+0-9:]*;$/ && $4 == "author:" && $5 ~ /^[^;]*;$/) {
|
||||
+ print substr($5, 1, length($5)-1)
|
||||
+ }
|
||||
+ else {
|
||||
+ # new date format
|
||||
+ if ($2 ~ /^[0-9]*[-\/][0-9][0-9][-\/][0-9][0-9]$/ && $3 ~ /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9][-+0-9:]*$/ && $5 == "author:" && $6 ~ /^[^;]*;$/) {
|
||||
+ print substr($6, 1, length($6)-1)
|
||||
+ }
|
||||
+ }
|
||||
}'
|
||||
+
|
||||
authors=`
|
||||
$AWK "$output_authors" <"$rlogfile" | sort -u | comm -23 - $llogout
|
||||
`
|
||||
@@ -611,7 +624,11 @@
|
||||
date = newdate date
|
||||
}
|
||||
time = substr($3, 1, length($3) - 1)
|
||||
- author = substr($5, 1, length($5)-1)
|
||||
+ author = substr($5, 1, length($5)-1)
|
||||
+ if (author ~ /author/) {
|
||||
+ # new date format
|
||||
+ author = substr($6, 1, length($6)-1)
|
||||
+ }
|
||||
printf "%s%s%s%s%s%s%s%s%s%s", filename, SOH, rev, SOH, date, SOH, time, SOH, author, SOH
|
||||
rev = "?"
|
||||
next
|
51
devel/cvs-devel/files/patch-server_wrapper
Normal file
51
devel/cvs-devel/files/patch-server_wrapper
Normal file
@ -0,0 +1,51 @@
|
||||
#
|
||||
# Added patch to support cvs -W ! - clears all wrappers (patch also
|
||||
# forwarded to CVS people) #3374
|
||||
#
|
||||
# Patch by Michael Alan Dorman <mdorman@lot49.med.miami.edu>
|
||||
diff -Nur src/wrapper.c src/wrapper.c
|
||||
--- src/wrapper.c 2005-09-04 08:27:44.000000000 +0800
|
||||
+++ src/wrapper.c 2006-02-26 22:26:53.000000000 +0800
|
||||
@@ -86,7 +86,7 @@
|
||||
move this to a per-connection data structure, or better yet
|
||||
think about a cleaner solution. */
|
||||
static int wrap_setup_already_done = 0;
|
||||
- char *homedir;
|
||||
+ char *homedir = NULL;
|
||||
|
||||
if (wrap_setup_already_done != 0)
|
||||
return;
|
||||
@@ -107,6 +107,11 @@
|
||||
free (file);
|
||||
}
|
||||
|
||||
+#ifdef SERVER_SUPPORT
|
||||
+ if (!server_active)
|
||||
+#endif
|
||||
+ {
|
||||
+
|
||||
/* Then add entries found in home dir, (if user has one) and file
|
||||
exists. */
|
||||
homedir = get_homedir ();
|
||||
@@ -115,6 +120,8 @@
|
||||
hand it might be obnoxious to complain when CVS will function
|
||||
just fine without .cvswrappers (and many users won't even know what
|
||||
.cvswrappers is). */
|
||||
+ }
|
||||
+
|
||||
if (homedir != NULL)
|
||||
{
|
||||
char *file = strcat_filename_onto_homedir (homedir, CVSDOTWRAPPER);
|
||||
@@ -339,6 +346,12 @@
|
||||
if (!line || line[0] == '#')
|
||||
return;
|
||||
|
||||
+ /* Allows user to declare all wrappers null and void */
|
||||
+ if ( line[0] == '!') {
|
||||
+ wrap_kill ( );
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
memset (&e, 0, sizeof(e));
|
||||
|
||||
/* Search for the wild card */
|
@ -1,63 +0,0 @@
|
||||
--- src/Makefile.in.orig Mon Sep 29 19:06:14 2003
|
||||
+++ src/Makefile.in Tue Sep 30 11:26:22 2003
|
||||
@@ -80,7 +80,7 @@
|
||||
KRB4 = @KRB4@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
-LIBS = @LIBS@
|
||||
+LIBS = @LIBS@ -lmd -lgnuregex -lz
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
@@ -146,7 +146,7 @@
|
||||
# some namespace hackery going on that maybe shouldn't be. Long term fix is to
|
||||
# try and remove naming ocnflicts and fix Automake to allow particular includes
|
||||
# to be attached only to particular object files. Short term fix is either or.
|
||||
-INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/diff -I$(top_srcdir)/zlib $(includeopt)
|
||||
+INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/diff $(includeopt)
|
||||
|
||||
bin_PROGRAMS = cvs
|
||||
bin_SCRIPTS = cvsbug
|
||||
@@ -187,6 +187,7 @@
|
||||
no_diff.c \
|
||||
parseinfo.c \
|
||||
patch.c \
|
||||
+ prepend_args.c \
|
||||
rcs.c \
|
||||
rcscmds.c \
|
||||
recurse.c \
|
||||
@@ -224,8 +225,7 @@
|
||||
|
||||
cvs_LDADD = \
|
||||
../diff/libdiff.a \
|
||||
- ../lib/libcvs.a \
|
||||
- ../zlib/libz.a
|
||||
+ ../lib/libcvs.a
|
||||
|
||||
|
||||
# extra clean targets
|
||||
@@ -262,6 +262,7 @@
|
||||
main.$(OBJEXT) mkmodules.$(OBJEXT) modules.$(OBJEXT) \
|
||||
myndbm.$(OBJEXT) no_diff.$(OBJEXT) parseinfo.$(OBJEXT) \
|
||||
patch.$(OBJEXT) rcs.$(OBJEXT) rcscmds.$(OBJEXT) \
|
||||
+ prepend_args.$(OBJEXT) \
|
||||
recurse.$(OBJEXT) release.$(OBJEXT) remove.$(OBJEXT) \
|
||||
repos.$(OBJEXT) root.$(OBJEXT) run.$(OBJEXT) scramble.$(OBJEXT) \
|
||||
server.$(OBJEXT) status.$(OBJEXT) subr.$(OBJEXT) tag.$(OBJEXT) \
|
||||
@@ -293,7 +294,7 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/mkmodules.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/modules.Po ./$(DEPDIR)/myndbm.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/no_diff.Po ./$(DEPDIR)/parseinfo.Po \
|
||||
-@AMDEP_TRUE@ ./$(DEPDIR)/patch.Po ./$(DEPDIR)/rcs.Po \
|
||||
+@AMDEP_TRUE@ ./$(DEPDIR)/patch.Po ./$(DEPDIR)/prepend_args.Po ./$(DEPDIR)/rcs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/rcscmds.Po ./$(DEPDIR)/recurse.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/release.Po ./$(DEPDIR)/remove.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/repos.Po ./$(DEPDIR)/root.Po \
|
||||
@@ -411,6 +412,7 @@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/no_diff.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parseinfo.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patch.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prepend_args.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcscmds.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recurse.Po@am__quote@
|
11
devel/cvs-devel/files/patch-zlib-read-compressed
Normal file
11
devel/cvs-devel/files/patch-zlib-read-compressed
Normal file
@ -0,0 +1,11 @@
|
||||
--- src/zlib.c~ 3 Jun 2005 18:26:09 -0000 1.31
|
||||
+++ src/zlib.c 27 Oct 2005 17:59:49 -0000
|
||||
@@ -229,7 +229,7 @@ compress_buffer_input (void *closure, ch
|
||||
would fetch all the available bytes, and at least one byte. */
|
||||
|
||||
status = (*cb->buf->input) (cb->buf->closure, bd->text,
|
||||
- need, BUFFER_DATA_SIZE, &nread);
|
||||
+ need ? 1 : 0, BUFFER_DATA_SIZE, &nread);
|
||||
|
||||
if (status == -2)
|
||||
/* Don't try to recover from memory allcoation errors. */
|
@ -1,3 +1,4 @@
|
||||
IPv6 enabled cvs. You can use IPv6 connection when using pserver.
|
||||
The latest and, or feature release CVS (Concurrent Version System). IPv6
|
||||
enabled, you can use IPv6 connection when using pserver.
|
||||
|
||||
WWW: http://www.cvshome.org/
|
||||
|
@ -1,24 +1,30 @@
|
||||
@comment $FreeBSD$
|
||||
@unexec if [ -x /usr/bin/cvs.orig ]; then mv -f /usr/bin/cvs.orig /usr/bin/cvs; fi
|
||||
bin/cvs
|
||||
@exec if [ ! -x /usr/bin/cvs.orig ]; then mv /usr/bin/cvs /usr/bin/cvs.orig; cp -p %D/%F /usr/bin/%F; fi
|
||||
@unexec if [ -x /usr/bin/cvsbug.orig ]; then mv -f /usr/bin/cvsbug.orig /usr/bin/cvsbug; fi
|
||||
bin/cvsbug
|
||||
@exec if [ ! -x /usr/bin/cvsbug.orig ]; then mv /usr/bin/cvsbug /usr/bin/cvsbug.orig; cp -p %D/%F /usr/bin/%F; fi
|
||||
bin/rcs2log
|
||||
share/cvs/contrib/README
|
||||
share/cvs/contrib/check_cvs
|
||||
share/cvs/contrib/clmerge
|
||||
share/cvs/contrib/cln_hist
|
||||
share/cvs/contrib/commit_prep
|
||||
share/cvs/contrib/cvs2vendor
|
||||
share/cvs/contrib/cvs_acls
|
||||
share/cvs/contrib/cvscheck
|
||||
share/cvs/contrib/cvscheck.man
|
||||
share/cvs/contrib/debug_check_log
|
||||
share/cvs/contrib/intro.doc
|
||||
share/cvs/contrib/log
|
||||
share/cvs/contrib/log_accum
|
||||
share/cvs/contrib/mfpipe
|
||||
share/cvs/contrib/newcvsroot
|
||||
share/cvs/contrib/pvcs2rcs
|
||||
share/cvs/contrib/rcs-5.7-commitid.patch
|
||||
share/cvs/contrib/rcs-to-cvs
|
||||
share/cvs/contrib/rcs2log
|
||||
share/cvs/contrib/rcslock
|
||||
share/cvs/contrib/sandbox_status
|
||||
share/cvs/contrib/sccs2rcs
|
||||
share/cvs/contrib/validate_repo
|
||||
@dirrm share/cvs/contrib
|
||||
@dirrm share/cvs
|
||||
|
Loading…
x
Reference in New Issue
Block a user