-diff -urN cvs-1.11.15/aclconfig.default cvs-1.11.15-cvsacl/aclconfig.default
---- cvs-1.11.15/aclconfig.default 1970-01-01 01:00:00.000000000 +0100
-+++ cvs-1.11.15-cvsacl/aclconfig.default 2004-04-25 20:04:51.637863856 +0200
-@@ -0,0 +1,33 @@
-+# Set `UseCVSACL' to yes to use CVS ACL feature.
-+UseCVSACL=yes
-+
-+# Default CVS ACL Permission are to use.
-+#CVSACLDefaultPermissions=a
-+
-+# Default file location for CVS ACL file (access) is CVSROOT/access.
-+# If you want to use a different location, define it below.
-+#CVSACLFileLocation=/path/to/cvs/access
-+
-+# Set `UseSystemGroups' to yes to use system group definitions (/etc/group).
-+UseSystemGroups=yes
-+
-+# Set `UseCVSGroups' to yes to use another group file.
-+#UseCVSGroups=yes
-+
-+# Default file location for CVS groups file is CVSROOT/group.
-+# If you want to use a different location, define it below.
-+#CVSGroupsFileLocation=/path/to/cvs/group
-+
-+# Set UseSeperateACLFileForEachDir to yes in order to use a
-+# seperate 'access' file for each directory.
-+# This increased the performance if you have really big repository.
-+#UseSeperateACLFileForEachDir=no
-+
-+# If StopAtFirstPermissionDenied is set to yes
-+# operation will stop at first permission denied message.
-+# Default is no.
-+#StopAtFirstPermissionDenied=no
-+
-+# Set CVSServerRunAsUser to a system user, in order CVS server
-+# to run as.
-+#CVSServerRunAsUser=runascvsuser
-diff -urN cvs-1.11.15/CHANGELOG.cvsacl cvs-1.11.15-cvsacl/CHANGELOG.cvsacl
---- cvs-1.11.15/CHANGELOG.cvsacl 1970-01-01 01:00:00.000000000 +0100
-+++ cvs-1.11.15-cvsacl/CHANGELOG.cvsacl 2004-04-25 20:04:51.660860360 +0200
-@@ -0,0 +1,12 @@
-+Release 1.2.0
-+ - implemented permission inheritance from parents.
-+ - new config keyword: StopAtFirstPermissionDenied.
-+ - fixed some errors.
-+
-+Release 1.1.3
-+ - fixed a bug related with default permissions.
-+ - fixed a bug related with setting permissions using + - signs.
-+
-+Release 1.1.2
-+ - fixed bugs reported on sourceforge.
-+
-diff -urN cvs-1.11.15/INSTALL.cvsacl cvs-1.11.15-cvsacl/INSTALL.cvsacl
---- cvs-1.11.15/INSTALL.cvsacl 1970-01-01 01:00:00.000000000 +0100
-+++ cvs-1.11.15-cvsacl/INSTALL.cvsacl 2004-04-25 20:04:51.661860208 +0200
+diff -urN cvs-1.11.17.orig/INSTALL.cvsacl cvs-1.11.17/INSTALL.cvsacl
+--- cvs-1.11.17.orig/INSTALL.cvsacl 1970-01-01 01:00:00.000000000 +0100
++++ cvs-1.11.17/INSTALL.cvsacl 2004-06-17 14:34:00.000000000 +0200
@@ -0,0 +1,23 @@
+
+Installation
+
+- copy the file acl.c under src directory of CVS source distribution.
-+ "cp acl.c /path/to/cvs-1.11.14/src/"
-+- copy the patch file cvsacl-patch-1.2.0.beta2 under CVS source distribution
++ "cp acl.c /path/to/cvs-1.11.17/src/"
++- copy the patch file cvsacl-patch-1.2.0 under CVS source distribution
+ directory.
-+ "cp cvsacl-patch-1.2.0.beta2 /path/to/cvs-1.11.14/"
++ "cp cvsacl-patch-1.2.0 /path/to/cvs-1.11.17/"
+- cd to CVS source directory.
-+ "cd /path/to/cvs-1.11.14/"
++ "cd /path/to/cvs-1.11.17/"
+- apply the patch.
-+ "patch -p0 < cvsacl-patch-1.2.0.beta2"
++ "patch -p0 < cvsacl-patch-1.2.0"
+- if you are initializing the repository after applying patch, related
+ config files will be created with init command.
+ "cvs -d /path/to/repository init"
+ "cvs -d /path/to/repository racl yourname:p -r ALL -d ALL"
+ this command gives p (acl admin) rights to user (yourname),
+ on all repository and tags/branches.
-diff -urN cvs-1.11.15/README.cvsacl cvs-1.11.15-cvsacl/README.cvsacl
---- cvs-1.11.15/README.cvsacl 1970-01-01 01:00:00.000000000 +0100
-+++ cvs-1.11.15-cvsacl/README.cvsacl 2004-04-25 20:04:51.666859448 +0200
+diff -urN cvs-1.11.17.orig/README.cvsacl cvs-1.11.17/README.cvsacl
+--- cvs-1.11.17.orig/README.cvsacl 1970-01-01 01:00:00.000000000 +0100
++++ cvs-1.11.17/README.cvsacl 2004-06-17 14:33:55.000000000 +0200
@@ -0,0 +1,282 @@
+
+CVS Access Control List Extension Patch
+To use a different location for group file set value to a valid path to group.
+The default value is $CVSROOT/CVSROOT/group.
+
-+UseSeperateACLFileForEachDir=value
-+If value is set to yes, a seperate ACL file (access) is created for each
++UseSeparateACLFileForEachDir=value
++If value is set to yes, a separate ACL file (access) is created for each
+directory in repository. If you have a really big repository
+(directories>10,000 and files>100,000), performance may drop due to a big
+acl file, access. Setting the value to yes, may increase performance. Normally,
+f src/main.c HEAD | userX:wcd group1:r | defaults:r
+
+
-diff -urN cvs-1.11.15/src/acl.c cvs-1.11.15-cvsacl/src/acl.c
---- cvs-1.11.15/src/acl.c 1970-01-01 01:00:00.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/acl.c 2004-04-25 20:19:28.506559552 +0200
-@@ -0,0 +1,2028 @@
+diff -urN cvs-1.11.17.orig/aclconfig.default cvs-1.11.17/aclconfig.default
+--- cvs-1.11.17.orig/aclconfig.default 1970-01-01 01:00:00.000000000 +0100
++++ cvs-1.11.17/aclconfig.default 2004-06-17 14:33:44.000000000 +0200
+@@ -0,0 +1,33 @@
++# Set `UseCVSACL' to yes to use CVS ACL feature.
++UseCVSACL=yes
++
++# Default CVS ACL Permission are to use.
++#CVSACLDefaultPermissions=a
++
++# Default file location for CVS ACL file (access) is CVSROOT/access.
++# If you want to use a different location, define it below.
++#CVSACLFileLocation=/path/to/cvs/access
++
++# Set `UseSystemGroups' to yes to use system group definitions (/etc/group).
++UseSystemGroups=yes
++
++# Set `UseCVSGroups' to yes to use another group file.
++#UseCVSGroups=yes
++
++# Default file location for CVS groups file is CVSROOT/group.
++# If you want to use a different location, define it below.
++#CVSGroupsFileLocation=/path/to/cvs/group
++
++# Set UseSeparateACLFileForEachDir to yes in order to use a
++# separate 'access' file for each directory.
++# This increased the performance if you have really big repository.
++#UseSeparateACLFileForEachDir=no
++
++# If StopAtFirstPermissionDenied is set to yes
++# operation will stop at first permission denied message.
++# Default is no.
++#StopAtFirstPermissionDenied=no
++
++# Set CVSServerRunAsUser to a system user, in order CVS server
++# to run as.
++#CVSServerRunAsUser=runascvsuser
+diff -urN cvs-1.11.17.orig/src/Makefile.am cvs-1.11.17/src/Makefile.am
+--- cvs-1.11.17.orig/src/Makefile.am 2004-02-03 20:05:36.000000000 +0100
++++ cvs-1.11.17/src/Makefile.am 2004-06-23 21:02:34.000000000 +0200
+@@ -29,6 +29,7 @@
+
+ # The cvs executable
+ cvs_SOURCES = \
++ acl.c \
+ add.c \
+ admin.c \
+ annotate.c \
+diff -urN cvs-1.11.17.orig/src/Makefile.in cvs-1.11.17/src/Makefile.in
+--- cvs-1.11.17.orig/src/Makefile.in 2004-06-09 16:46:19.000000000 +0200
++++ cvs-1.11.17/src/Makefile.in 2004-06-23 21:02:34.000000000 +0200
+@@ -153,6 +153,7 @@
+
+ # The cvs executable
+ cvs_SOURCES = \
++ acl.c \
+ add.c \
+ admin.c \
+ annotate.c \
+@@ -253,11 +254,11 @@
+ bin_PROGRAMS = cvs$(EXEEXT)
+ PROGRAMS = $(bin_PROGRAMS)
+
+-am_cvs_OBJECTS = add.$(OBJEXT) admin.$(OBJEXT) annotate.$(OBJEXT) \
+- buffer.$(OBJEXT) checkin.$(OBJEXT) checkout.$(OBJEXT) \
+- classify.$(OBJEXT) client.$(OBJEXT) commit.$(OBJEXT) \
+- create_adm.$(OBJEXT) cvsrc.$(OBJEXT) diff.$(OBJEXT) \
+- edit.$(OBJEXT) entries.$(OBJEXT) error.$(OBJEXT) \
++am_cvs_OBJECTS = acl.$(OBJEXT) add.$(OBJEXT) admin.$(OBJEXT) \
++ annotate.$(OBJEXT) buffer.$(OBJEXT) checkin.$(OBJEXT) \
++ checkout.$(OBJEXT) classify.$(OBJEXT) client.$(OBJEXT) \
++ commit.$(OBJEXT) create_adm.$(OBJEXT) cvsrc.$(OBJEXT) \
++ diff.$(OBJEXT) edit.$(OBJEXT) entries.$(OBJEXT) error.$(OBJEXT) \
+ expand_path.$(OBJEXT) fileattr.$(OBJEXT) filesubr.$(OBJEXT) \
+ find_names.$(OBJEXT) hardlink.$(OBJEXT) hash.$(OBJEXT) \
+ history.$(OBJEXT) ignore.$(OBJEXT) import.$(OBJEXT) \
+@@ -280,34 +281,34 @@
+ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/add.Po ./$(DEPDIR)/admin.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/annotate.Po ./$(DEPDIR)/buffer.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/checkin.Po ./$(DEPDIR)/checkout.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/classify.Po ./$(DEPDIR)/client.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/commit.Po ./$(DEPDIR)/create_adm.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/cvsrc.Po ./$(DEPDIR)/diff.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/edit.Po ./$(DEPDIR)/entries.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/error.Po ./$(DEPDIR)/expand_path.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/fileattr.Po ./$(DEPDIR)/filesubr.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/find_names.Po ./$(DEPDIR)/hardlink.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/hash.Po ./$(DEPDIR)/history.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/ignore.Po ./$(DEPDIR)/import.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/lock.Po ./$(DEPDIR)/log.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/login.Po ./$(DEPDIR)/logmsg.Po \
+-@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)/rcscmds.Po ./$(DEPDIR)/recurse.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/release.Po ./$(DEPDIR)/remove.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/repos.Po ./$(DEPDIR)/root.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/run.Po ./$(DEPDIR)/scramble.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/server.Po ./$(DEPDIR)/stack.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/status.Po ./$(DEPDIR)/subr.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/tag.Po ./$(DEPDIR)/update.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/vers_ts.Po ./$(DEPDIR)/version.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/watch.Po ./$(DEPDIR)/wrapper.Po \
+-@AMDEP_TRUE@ ./$(DEPDIR)/zlib.Po
++@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/acl.Po ./$(DEPDIR)/add.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/admin.Po ./$(DEPDIR)/annotate.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/buffer.Po ./$(DEPDIR)/checkin.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/checkout.Po ./$(DEPDIR)/classify.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/client.Po ./$(DEPDIR)/commit.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/create_adm.Po ./$(DEPDIR)/cvsrc.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/diff.Po ./$(DEPDIR)/edit.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/entries.Po ./$(DEPDIR)/error.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/expand_path.Po ./$(DEPDIR)/fileattr.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/filesubr.Po ./$(DEPDIR)/find_names.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/hardlink.Po ./$(DEPDIR)/hash.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/history.Po ./$(DEPDIR)/ignore.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/import.Po ./$(DEPDIR)/lock.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/log.Po ./$(DEPDIR)/login.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/logmsg.Po ./$(DEPDIR)/main.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/mkmodules.Po ./$(DEPDIR)/modules.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/myndbm.Po ./$(DEPDIR)/no_diff.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/parseinfo.Po ./$(DEPDIR)/patch.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/rcs.Po ./$(DEPDIR)/rcscmds.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/recurse.Po ./$(DEPDIR)/release.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/remove.Po ./$(DEPDIR)/repos.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/root.Po ./$(DEPDIR)/run.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/scramble.Po ./$(DEPDIR)/server.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/stack.Po ./$(DEPDIR)/status.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/subr.Po ./$(DEPDIR)/tag.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/update.Po ./$(DEPDIR)/vers_ts.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/version.Po ./$(DEPDIR)/watch.Po \
++@AMDEP_TRUE@ ./$(DEPDIR)/wrapper.Po ./$(DEPDIR)/zlib.Po
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+@@ -381,6 +382,7 @@
+ distclean-compile:
+ -rm -f *.tab.c
+
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/admin.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/annotate.Po@am__quote@
+diff -urN cvs-1.11.17.orig/src/acl.c cvs-1.11.17/src/acl.c
+--- cvs-1.11.17.orig/src/acl.c 1970-01-01 01:00:00.000000000 +0100
++++ cvs-1.11.17/src/acl.c 2004-06-17 14:55:00.000000000 +0200
+@@ -0,0 +1,2022 @@
+/*
+ *
+ * CVS ACCESS CONTROL LIST EXTENSION
+ *
+ * http://cvsacl.sourceforge.net/
+ *
-+ * CVSACL is a patch for CVS
++ * CVSACL is a patch for CVS versions
++ * - cvs-1.11.17
++ *
+ * It adds two new subcommands (acl & racl) to cvs for access control
+ * list management.
+ * It provides advanced ACL definitions per modules, directories,
+char *cvs_acl_default_permissions;
+int use_cvs_groups = 0;
+int use_system_groups = 0;
-+int use_seperate_acl_file_for_each_dir = 0;
++int use_separate_acl_file_for_each_dir = 0;
+char *cvs_acl_file_location = NULL;
+char *cvs_groups_file_location = NULL;
+char *cvs_server_run_as = NULL;
+
+ for (accessfilecount = intcount; accessfilecount >= 0 && !oneaccessfile; accessfilecount--)
+ {
-+ if (!use_seperate_acl_file_for_each_dir)
++ if (!use_separate_acl_file_for_each_dir)
+ oneaccessfile = 1;
-+ else if (use_seperate_acl_file_for_each_dir)
++ else if (use_separate_acl_file_for_each_dir)
+ oneaccessfile = 0;
+
+ if (oneaccessfile)
+ {
+ while (getline (&line, &line_allocated, accessfp) >= 0)
+ {
-+ int x;
-+
+ if (line[0] == '#' || line[0] == '\0' || line[0] == '\n')
+ continue;
+
++ int x;
++
+ xline = xstrdup (line);
+ part_type = strtok (line, ":\t");
+ part_object = strtok (NULL, ":\t");
+ {
+ foundline = 1;
+
-+ if (listacl)
++ if (listacl || acldir || aclfile)
+ {
+ *mline = xstrdup (xline);
+ *mpos = ftell (accessfp);
+ {
+ argv[0] = xstrdup (".");
+ defaultperms = 1;
-+ if (!use_seperate_acl_file_for_each_dir)
++ if (!use_separate_acl_file_for_each_dir)
+ {
+ recursive = 0;
+ }
+ char *accessfile;
+ FILE *accessfp;
+
-+ if (!use_seperate_acl_file_for_each_dir)
++ if (!use_separate_acl_file_for_each_dir)
+ {
+ if (cvs_acl_file_location == NULL)
+ {
+ if (!access_allowed (finfo->file, finfo->repository, tag, 5, &line, &pos, 0))
+ error (1,0,"You do not have admin rights on '%s'", frepository);
+
-+ /*if (line == NULL) {
-+ acldir = 1;
-+ inherited = 1;
-+ if (!access_allowed (NULL, finfo->repository, tag, 5, &line, &pos, 0))
-+ error (1, 0, "You do not have admin rights on '%s'", frepository);
-+ acldir = 0;
-+ }
-+*/
+ acllist_print (line, filefullname);
+
+ return (0);
+ }
+
+}
-diff -urN cvs-1.11.15/src/add.c cvs-1.11.15-cvsacl/src/add.c
---- cvs-1.11.15/src/add.c 2004-03-22 16:44:26.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/add.c 2004-04-25 20:04:51.687856256 +0200
-@@ -410,6 +410,24 @@
+diff -urN cvs-1.11.17.orig/src/add.c cvs-1.11.17/src/add.c
+--- cvs-1.11.17.orig/src/add.c 2004-05-10 16:35:54.000000000 +0200
++++ cvs-1.11.17/src/add.c 2004-06-23 21:02:34.000000000 +0200
+@@ -400,6 +400,24 @@
}
else
{
/* There is a user file, so build the entry for it */
if (build_entry (repository, finfo.file, vers->options,
message, entries, vers->tag) != 0)
-@@ -666,6 +684,26 @@
+@@ -656,6 +674,26 @@
&& isdir (finfo.file)
&& !wrap_name_has (finfo.file, WRAP_TOCVS))
{
err += add_directory (&finfo);
}
else
-diff -urN cvs-1.11.15/src/annotate.c cvs-1.11.15-cvsacl/src/annotate.c
---- cvs-1.11.15/src/annotate.c 2004-03-22 16:44:27.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/annotate.c 2004-04-25 20:04:51.689855952 +0200
+diff -urN cvs-1.11.17.orig/src/annotate.c cvs-1.11.17/src/annotate.c
+--- cvs-1.11.17.orig/src/annotate.c 2004-03-22 16:44:27.000000000 +0100
++++ cvs-1.11.17/src/annotate.c 2004-06-23 21:02:34.000000000 +0200
@@ -276,6 +276,25 @@
if (version == NULL)
return 0;
/* Distinguish output for various files if we are processing
several files. */
cvs_outerr ("\nAnnotations for ", 0);
-diff -urN cvs-1.11.15/src/commit.c cvs-1.11.15-cvsacl/src/commit.c
---- cvs-1.11.15/src/commit.c 2004-04-01 20:53:22.000000000 +0200
-+++ cvs-1.11.15-cvsacl/src/commit.c 2004-04-25 20:04:51.696854888 +0200
-@@ -1276,6 +1276,34 @@
- return (0);
+diff -urN cvs-1.11.17.orig/src/commit.c cvs-1.11.17/src/commit.c
+--- cvs-1.11.17.orig/src/commit.c 2004-06-09 16:34:54.000000000 +0200
++++ cvs-1.11.17/src/commit.c 2004-06-23 21:02:34.000000000 +0200
+@@ -1299,6 +1299,34 @@
+ return 0;
ci = p->data;
+
if (ci->status == T_MODIFIED)
{
if (finfo->rcs == NULL)
-diff -urN cvs-1.11.15/src/cvs.h cvs-1.11.15-cvsacl/src/cvs.h
---- cvs-1.11.15/src/cvs.h 2004-04-01 20:53:22.000000000 +0200
-+++ cvs-1.11.15-cvsacl/src/cvs.h 2004-04-25 20:05:38.416752384 +0200
-@@ -191,6 +191,11 @@
+diff -urN cvs-1.11.17.orig/src/cvs.h cvs-1.11.17/src/cvs.h
+--- cvs-1.11.17.orig/src/cvs.h 2004-06-09 16:34:54.000000000 +0200
++++ cvs-1.11.17/src/cvs.h 2004-06-23 21:02:34.000000000 +0200
+@@ -195,6 +195,11 @@
#define CVSROOTADM_PASSWD "passwd"
#define CVSROOTADM_CONFIG "config"
#define CVSNULLREPOS "Emptydir" /* an empty directory */
/* Other CVS file names */
-@@ -567,6 +572,18 @@
+@@ -571,6 +576,18 @@
/* LockDir setting from CVSROOT/config. */
extern char *lock_dir;
+extern char *cvs_acl_default_permissions;
+extern int use_cvs_groups;
+extern int use_system_groups;
-+extern int use_seperate_acl_file_for_each_dir;
++extern int use_separate_acl_file_for_each_dir;
+extern char *cvs_acl_file_location;
+extern char *cvs_groups_file_location;
+extern char *cvs_server_run_as;
void Scratch_Entry PROTO((List * list, const char *fname));
void ParseTag PROTO((char **tagp, char **datep, int *nonbranchp));
void WriteTag PROTO ((const char *dir, const char *tag, const char *date,
-@@ -863,6 +880,10 @@
+@@ -866,6 +883,10 @@
int editors PROTO ((int argc, char **argv));
int watchers PROTO ((int argc, char **argv));
extern int annotate PROTO ((int argc, char **argv));
extern int add PROTO ((int argc, char **argv));
extern int admin PROTO ((int argc, char **argv));
extern int checkout PROTO ((int argc, char **argv));
-diff -urN cvs-1.11.15/src/diff.c cvs-1.11.15-cvsacl/src/diff.c
---- cvs-1.11.15/src/diff.c 2004-03-20 03:06:45.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/diff.c 2004-04-25 20:04:51.708853064 +0200
+diff -urN cvs-1.11.17.orig/src/diff.c cvs-1.11.17/src/diff.c
+--- cvs-1.11.17.orig/src/diff.c 2004-03-20 03:06:45.000000000 +0100
++++ cvs-1.11.17/src/diff.c 2004-06-23 21:02:34.000000000 +0200
@@ -474,6 +474,43 @@
{
/* Skip all the following checks regarding the user file; we're
if (!quiet)
error (0, 0, "Diffing %s", update_dir);
return (R_PROCESS);
-diff -urN cvs-1.11.15/src/import.c cvs-1.11.15-cvsacl/src/import.c
---- cvs-1.11.15/src/import.c 2004-04-02 20:55:49.000000000 +0200
-+++ cvs-1.11.15-cvsacl/src/import.c 2004-04-25 20:04:51.714852152 +0200
+diff -urN cvs-1.11.17.orig/src/import.c cvs-1.11.17/src/import.c
+--- cvs-1.11.17.orig/src/import.c 2004-04-02 20:55:49.000000000 +0200
++++ cvs-1.11.17/src/import.c 2004-06-23 21:02:34.000000000 +0200
@@ -304,6 +304,20 @@
error (1, 0, "attempt to import the repository");
}
/*
* Make all newly created directories writable. Should really use a more
* sophisticated security mechanism here.
-diff -urN cvs-1.11.15/src/log.c cvs-1.11.15-cvsacl/src/log.c
---- cvs-1.11.15/src/log.c 2004-04-06 20:54:52.000000000 +0200
-+++ cvs-1.11.15-cvsacl/src/log.c 2004-04-25 20:04:51.722850936 +0200
+diff -urN cvs-1.11.17.orig/src/log.c cvs-1.11.17/src/log.c
+--- cvs-1.11.17.orig/src/log.c 2004-05-10 15:37:16.000000000 +0200
++++ cvs-1.11.17/src/log.c 2004-06-23 21:02:34.000000000 +0200
@@ -837,6 +837,25 @@
return 1;
}
if (log_data->sup_header || !log_data->nameonly)
{
-diff -urN cvs-1.11.15/src/main.c cvs-1.11.15-cvsacl/src/main.c
---- cvs-1.11.15/src/main.c 2004-03-22 16:44:27.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/main.c 2004-04-25 20:04:51.726850328 +0200
+diff -urN cvs-1.11.17.orig/src/main.c cvs-1.11.17/src/main.c
+--- cvs-1.11.17.orig/src/main.c 2004-03-22 16:44:27.000000000 +0100
++++ cvs-1.11.17/src/main.c 2004-06-23 21:02:34.000000000 +0200
@@ -104,6 +104,10 @@
} cmds[] =
}
#ifdef CLIENT_SUPPORT
-diff -urN cvs-1.11.15/src/Makefile.am cvs-1.11.15-cvsacl/src/Makefile.am
---- cvs-1.11.15/src/Makefile.am 2004-02-03 20:05:36.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/Makefile.am 2004-04-25 20:04:51.728850024 +0200
-@@ -29,6 +29,7 @@
-
- # The cvs executable
- cvs_SOURCES = \
-+ acl.c \
- add.c \
- admin.c \
- annotate.c \
-diff -urN cvs-1.11.15/src/Makefile.in cvs-1.11.15-cvsacl/src/Makefile.in
---- cvs-1.11.15/src/Makefile.in 2004-04-14 04:42:00.000000000 +0200
-+++ cvs-1.11.15-cvsacl/src/Makefile.in 2004-04-25 20:04:51.732849416 +0200
-@@ -153,6 +153,7 @@
-
- # The cvs executable
- cvs_SOURCES = \
-+ acl.c \
- add.c \
- admin.c \
- annotate.c \
-@@ -253,11 +254,11 @@
- bin_PROGRAMS = cvs$(EXEEXT)
- PROGRAMS = $(bin_PROGRAMS)
-
--am_cvs_OBJECTS = add.$(OBJEXT) admin.$(OBJEXT) annotate.$(OBJEXT) \
-- buffer.$(OBJEXT) checkin.$(OBJEXT) checkout.$(OBJEXT) \
-- classify.$(OBJEXT) client.$(OBJEXT) commit.$(OBJEXT) \
-- create_adm.$(OBJEXT) cvsrc.$(OBJEXT) diff.$(OBJEXT) \
-- edit.$(OBJEXT) entries.$(OBJEXT) error.$(OBJEXT) \
-+am_cvs_OBJECTS = acl.$(OBJEXT) add.$(OBJEXT) admin.$(OBJEXT) \
-+ annotate.$(OBJEXT) buffer.$(OBJEXT) checkin.$(OBJEXT) \
-+ checkout.$(OBJEXT) classify.$(OBJEXT) client.$(OBJEXT) \
-+ commit.$(OBJEXT) create_adm.$(OBJEXT) cvsrc.$(OBJEXT) \
-+ diff.$(OBJEXT) edit.$(OBJEXT) entries.$(OBJEXT) error.$(OBJEXT) \
- expand_path.$(OBJEXT) fileattr.$(OBJEXT) filesubr.$(OBJEXT) \
- find_names.$(OBJEXT) hardlink.$(OBJEXT) hash.$(OBJEXT) \
- history.$(OBJEXT) ignore.$(OBJEXT) import.$(OBJEXT) \
-@@ -280,34 +281,34 @@
- DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
- depcomp = $(SHELL) $(top_srcdir)/depcomp
- am__depfiles_maybe = depfiles
--@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/add.Po ./$(DEPDIR)/admin.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/annotate.Po ./$(DEPDIR)/buffer.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/checkin.Po ./$(DEPDIR)/checkout.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/classify.Po ./$(DEPDIR)/client.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/commit.Po ./$(DEPDIR)/create_adm.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/cvsrc.Po ./$(DEPDIR)/diff.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/edit.Po ./$(DEPDIR)/entries.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/error.Po ./$(DEPDIR)/expand_path.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/fileattr.Po ./$(DEPDIR)/filesubr.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/find_names.Po ./$(DEPDIR)/hardlink.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/hash.Po ./$(DEPDIR)/history.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/ignore.Po ./$(DEPDIR)/import.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/lock.Po ./$(DEPDIR)/log.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/login.Po ./$(DEPDIR)/logmsg.Po \
--@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)/rcscmds.Po ./$(DEPDIR)/recurse.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/release.Po ./$(DEPDIR)/remove.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/repos.Po ./$(DEPDIR)/root.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/run.Po ./$(DEPDIR)/scramble.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/server.Po ./$(DEPDIR)/stack.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/status.Po ./$(DEPDIR)/subr.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/tag.Po ./$(DEPDIR)/update.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/vers_ts.Po ./$(DEPDIR)/version.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/watch.Po ./$(DEPDIR)/wrapper.Po \
--@AMDEP_TRUE@ ./$(DEPDIR)/zlib.Po
-+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/acl.Po ./$(DEPDIR)/add.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/admin.Po ./$(DEPDIR)/annotate.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/buffer.Po ./$(DEPDIR)/checkin.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/checkout.Po ./$(DEPDIR)/classify.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/client.Po ./$(DEPDIR)/commit.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/create_adm.Po ./$(DEPDIR)/cvsrc.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/diff.Po ./$(DEPDIR)/edit.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/entries.Po ./$(DEPDIR)/error.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/expand_path.Po ./$(DEPDIR)/fileattr.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/filesubr.Po ./$(DEPDIR)/find_names.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/hardlink.Po ./$(DEPDIR)/hash.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/history.Po ./$(DEPDIR)/ignore.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/import.Po ./$(DEPDIR)/lock.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/log.Po ./$(DEPDIR)/login.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/logmsg.Po ./$(DEPDIR)/main.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/mkmodules.Po ./$(DEPDIR)/modules.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/myndbm.Po ./$(DEPDIR)/no_diff.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/parseinfo.Po ./$(DEPDIR)/patch.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/rcs.Po ./$(DEPDIR)/rcscmds.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/recurse.Po ./$(DEPDIR)/release.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/remove.Po ./$(DEPDIR)/repos.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/root.Po ./$(DEPDIR)/run.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/scramble.Po ./$(DEPDIR)/server.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/stack.Po ./$(DEPDIR)/status.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/subr.Po ./$(DEPDIR)/tag.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/update.Po ./$(DEPDIR)/vers_ts.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/version.Po ./$(DEPDIR)/watch.Po \
-+@AMDEP_TRUE@ ./$(DEPDIR)/wrapper.Po ./$(DEPDIR)/zlib.Po
- COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
- CCLD = $(CC)
-@@ -381,6 +382,7 @@
- distclean-compile:
- -rm -f *.tab.c
-
-+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/admin.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/annotate.Po@am__quote@
-diff -urN cvs-1.11.15/src/mkmodules.c cvs-1.11.15-cvsacl/src/mkmodules.c
---- cvs-1.11.15/src/mkmodules.c 2004-02-03 15:39:40.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/mkmodules.c 2004-04-25 20:04:51.736848808 +0200
+diff -urN cvs-1.11.17.orig/src/mkmodules.c cvs-1.11.17/src/mkmodules.c
+--- cvs-1.11.17.orig/src/mkmodules.c 2004-02-03 15:39:40.000000000 +0100
++++ cvs-1.11.17/src/mkmodules.c 2004-06-23 21:02:34.000000000 +0200
@@ -311,6 +311,44 @@
NULL
};
+ "# If you want to use a different location, define it below.\n",
+ "#CVSGroupsFileLocation=/path/to/cvs/group\n",
+ "\n",
-+ "# Set UseSeperateACLFileForEachDir to yes in order to use a\n",
-+ "# seperate 'access' file for each directory.\n",
++ "# Set UseSeparateACLFileForEachDir to yes in order to use a\n",
++ "# separate 'access' file for each directory.\n",
+ "# This increased the performance if you have really big repository.\n",
-+ "#UseSeperateACLFileForEachDir=no\n",
++ "#UseSeparateACLFileForEachDir=no\n",
+ "\n",
+ "# If StopAtFirstPermissionDenied is set to yes\n",
+ "# operation will stop at first permission denied message.\n",
/* Make an empty val-tags file to prevent problems creating it later. */
strcpy (info, adm);
-diff -urN cvs-1.11.15/src/parseinfo.c cvs-1.11.15-cvsacl/src/parseinfo.c
---- cvs-1.11.15/src/parseinfo.c 2004-03-19 21:36:39.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/parseinfo.c 2004-04-25 20:04:51.740848200 +0200
+diff -urN cvs-1.11.17.orig/src/parseinfo.c cvs-1.11.17/src/parseinfo.c
+--- cvs-1.11.17.orig/src/parseinfo.c 2004-03-19 21:36:39.000000000 +0100
++++ cvs-1.11.17/src/parseinfo.c 2004-06-23 21:02:34.000000000 +0200
@@ -448,3 +448,192 @@
free (line);
return -1;
+ goto error_return;
+ }
+ }
-+ else if (strcmp (line, "UseSeperateACLFileForEachDir") == 0)
++ else if (strcmp (line, "UseSeparateACLFileForEachDir") == 0)
+ {
+ if (strcmp (p, "no") == 0)
-+ use_seperate_acl_file_for_each_dir = 0;
++ use_separate_acl_file_for_each_dir = 0;
+ else if (strcmp (p, "yes") == 0)
-+ use_seperate_acl_file_for_each_dir = 1;
++ use_separate_acl_file_for_each_dir = 1;
+ else
+ {
-+ error (0, 0, "unrecognized value '%s' for UseSeperateACLFileForEachDir", p);
++ error (0, 0, "unrecognized value '%s' for UseSeparateACLFileForEachDir", p);
+ goto error_return;
+ }
+ }
+ return -1;
+}
+
-diff -urN cvs-1.11.15/src/patch.c cvs-1.11.15-cvsacl/src/patch.c
---- cvs-1.11.15/src/patch.c 2004-04-02 21:25:32.000000000 +0200
-+++ cvs-1.11.15-cvsacl/src/patch.c 2004-04-25 20:04:51.744847592 +0200
+diff -urN cvs-1.11.17.orig/src/patch.c cvs-1.11.17/src/patch.c
+--- cvs-1.11.17.orig/src/patch.c 2004-04-02 21:25:32.000000000 +0200
++++ cvs-1.11.17/src/patch.c 2004-06-23 21:02:34.000000000 +0200
@@ -498,6 +498,43 @@
goto out2;
}
/* Create 3 empty files. I'm not really sure there is any advantage
* to doing so now rather than just waiting until later.
*
-diff -urN cvs-1.11.15/src/remove.c cvs-1.11.15-cvsacl/src/remove.c
---- cvs-1.11.15/src/remove.c 2004-03-20 03:34:32.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/remove.c 2004-04-25 20:04:51.746847288 +0200
+diff -urN cvs-1.11.17.orig/src/remove.c cvs-1.11.17/src/remove.c
+--- cvs-1.11.17.orig/src/remove.c 2004-03-20 03:34:32.000000000 +0100
++++ cvs-1.11.17/src/remove.c 2004-06-23 21:02:34.000000000 +0200
@@ -250,6 +250,25 @@
{
char *fname;
/* Re-register it with a negative version number. */
fname = xmalloc (strlen (vers->vn_user) + 5);
(void) strcpy (fname, "-");
-diff -urN cvs-1.11.15/src/server.c cvs-1.11.15-cvsacl/src/server.c
---- cvs-1.11.15/src/server.c 2004-04-06 22:20:55.000000000 +0200
-+++ cvs-1.11.15-cvsacl/src/server.c 2004-04-25 20:30:27.889318136 +0200
+diff -urN cvs-1.11.17.orig/src/server.c cvs-1.11.17/src/server.c
+--- cvs-1.11.17.orig/src/server.c 2004-06-09 16:34:55.000000000 +0200
++++ cvs-1.11.17/src/server.c 2004-06-23 21:02:34.000000000 +0200
@@ -773,6 +773,10 @@
nothing. But for rsh, we need to do it now. */
parse_config (current_parsed_root->directory);
path = xmalloc (strlen (current_parsed_root->directory)
+ sizeof (CVSROOTADM)
+ 2);
-@@ -3667,6 +3671,23 @@
+@@ -3761,6 +3765,23 @@
do_cvs_command ("rlog", cvslog);
}
+serve_racl (arg)
+ char *arg;
+{
-+ cvs_cmd_name = "racl";
++ cvs_cmd_name = "racl";
+ do_cvs_command ("racl", cvsacl);
+}
+
static void
serve_add (arg)
char *arg;
-@@ -4726,6 +4747,11 @@
+@@ -4820,6 +4841,11 @@
REQ_LINE("diff", serve_diff, 0),
REQ_LINE("log", serve_log, 0),
REQ_LINE("rlog", serve_rlog, 0),
REQ_LINE("add", serve_add, 0),
REQ_LINE("remove", serve_remove, 0),
REQ_LINE("update-patches", serve_ignore, 0),
-@@ -5199,6 +5225,10 @@
+@@ -5293,6 +5319,10 @@
{
struct passwd *pw;
pw = getpwnam (username);
if (pw == NULL)
{
-@@ -5781,6 +5811,9 @@
+@@ -5875,6 +5905,9 @@
in a new CVSROOT/config file to fix the broken one! */
parse_config (repository);
/* We need the real cleartext before we hash it. */
descrambled_password = descramble (password);
host_user = check_password (username, descrambled_password, repository);
-diff -urN cvs-1.11.15/src/status.c cvs-1.11.15-cvsacl/src/status.c
---- cvs-1.11.15/src/status.c 2004-03-20 02:40:12.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/status.c 2004-04-25 20:04:51.767844096 +0200
+diff -urN cvs-1.11.17.orig/src/status.c cvs-1.11.17/src/status.c
+--- cvs-1.11.17.orig/src/status.c 2004-03-20 02:40:12.000000000 +0100
++++ cvs-1.11.17/src/status.c 2004-06-23 21:02:34.000000000 +0200
@@ -128,7 +128,27 @@
status = Classify_File (finfo, (char *) NULL, (char *) NULL, (char *) NULL,
switch (status)
{
case T_UNKNOWN:
-diff -urN cvs-1.11.15/src/tag.c cvs-1.11.15-cvsacl/src/tag.c
---- cvs-1.11.15/src/tag.c 2004-04-06 20:37:10.000000000 +0200
-+++ cvs-1.11.15-cvsacl/src/tag.c 2004-04-25 20:04:51.772843336 +0200
+diff -urN cvs-1.11.17.orig/src/tag.c cvs-1.11.17/src/tag.c
+--- cvs-1.11.17.orig/src/tag.c 2004-04-06 20:37:10.000000000 +0200
++++ cvs-1.11.17/src/tag.c 2004-06-23 21:02:34.000000000 +0200
@@ -660,6 +660,25 @@
* correctly without breaking your link!
*/
if (delete_flag)
{
-diff -urN cvs-1.11.15/src/update.c cvs-1.11.15-cvsacl/src/update.c
---- cvs-1.11.15/src/update.c 2004-03-22 18:20:26.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/update.c 2004-04-25 20:04:51.782841816 +0200
-@@ -594,6 +594,26 @@
+diff -urN cvs-1.11.17.orig/src/update.c cvs-1.11.17/src/update.c
+--- cvs-1.11.17.orig/src/update.c 2004-05-04 19:25:54.000000000 +0200
++++ cvs-1.11.17/src/update.c 2004-06-23 21:02:34.000000000 +0200
+@@ -596,6 +596,26 @@
status = Classify_File (finfo, tag, date, options, force_tag_match,
aflag, &vers, pipeout);
/* Keep track of whether TAG is a branch tag.
Note that if it is a branch tag in some files and a nonbranch tag
in others, treat it as a nonbranch tag. It is possible that case
-diff -urN cvs-1.11.15/src/version.c cvs-1.11.15-cvsacl/src/version.c
---- cvs-1.11.15/src/version.c 2004-02-03 15:37:56.000000000 +0100
-+++ cvs-1.11.15-cvsacl/src/version.c 2004-04-25 20:04:51.783841664 +0200
+diff -urN cvs-1.11.17.orig/src/version.c cvs-1.11.17/src/version.c
+--- cvs-1.11.17.orig/src/version.c 2004-02-03 15:37:56.000000000 +0100
++++ cvs-1.11.17/src/version.c 2004-06-23 21:02:34.000000000 +0200
@@ -26,7 +26,8 @@
#endif
#endif