15 dawes 220.127.116.11 Notable changes in release 14.1:
17 For both the client and the server, there is now a "-c collDir"
18 command line option for overriding the name of the subdirectory
19 where the collection information is maintained. The name used
20 to be hard-wired to "sup", and that is still the default.
22 If the client's prefix directory for a collection doesn't exist,
23 it is no longer a fatal error. A warning is produced and the
24 offending collection is skipped, but the others are still processed
25 normally. If the prefix is a symbolic link pointing to "SKIP",
26 the warning is suppressed.
28 Fixed a server problem that caused certain pathological updates in
29 checkout mode to take damned near forever.
31 Fixed a problem that caused fixups to be performed for certain
32 RCS files that were corrupted to begin with. The files had incorrect
33 dates on some revisions, because they had been hacked up by hand.
34 That caused the client to write out the delta texts in the wrong
35 order. Since there was a way to work around this dubious situation, I
36 dawes 18.104.22.168 implemented it.
38 Changed the logic surrounding the time stamp comparisons between
39 files on the client and files on the server, eliminating a
40 miniscule possibility of missed updates. Now, the system can
41 detect it if a file happens to have been modified independently
42 on both the client and the server at exactly the same time. The
43 file is recognized as possibly needing an update, even though
44 its time stamp is the same on the client and the server.
46 Fixed the client's lock file handling ("-l" option) so that the
47 lock remains held during the intervals between retries. Formerly,
48 the lock was released during those intervals, rendering it fairly
49 useless for avoiding multiple stacked up processes from cron
52 Added a check to make sure it is possible to get the client host's
53 own IP address before starting up the GUI. Formerly, misconfigured
54 hosts (e.g., incorrect host name) would result in a baffling
55 "IP.FatalError" message.
57 dawes 22.214.171.124 Changed the priorities for syslog messages from the server so
58 that messages associated with individual client connections are
59 logged at "info" level rather than "notice". For simple syslog.conf
60 setups, that takes these mostly informational messages out of
61 /var/log/messages, where they caused a lot of clutter. The
62 logging still isn't perfect, as a few more serious messages now
63 also come out at "info" level. Nevertheless, the new situation
64 is an improvement.
66 Added a new "-k" command line option for the client, intended
67 for debugging. This option causes the bad temporary files to be
68 saved for files requiring fixups due to incorrect edits. The
69 fixups are still performed, regardless.
71 Further improved the server's handling of corrupted RCS files.
72 In virtually all circumstances, the server should now be able to
73 issue warnings for corrupted RCS files and carry on with the
74 remaining updates.
76 Beefed up the semantic checking of RCS files, to detect some more
77 pernicious kinds of corruption.
78 dawes 126.96.36.199
79 Added a "norsync" option which can be specified in the server's
80 "releases" files. It allows the server to disable the use of
81 the rsync algorithm for selected collections and releases. This
82 is beneficial for CVS repositories, where CVSup's "append" updates
83 work better and more efficiently than the rsync algorithm.
85 Added additional server checks of the filenames received from
86 the client, to ensure that the server cannot be spoofed into
87 delivering files from outside its collections.
89 dawes 1.1 Notable changes in release 14.0:
91 CVSup now uses Tridgell & Mackerras' "rsync" algorithm for updating
92 non-RCS files. It is enabled by default, though it can be turned
93 off for individual collections by specifying the "norysnc" keyword.
95 The supfile can now have special collections named "*default" to
96 specify default parameters for subsequent collections.
98 The "base" and "host" supfile settings can now be overridden on
99 the client's command line.
101 The client now supports multiple "refuse" files: a global one
102 which applies to all collections; a per-collection one; and one
103 that is specific to a release+tag within its collection.
105 There is now a client option to specify a lock file, to prevent
106 multiple cvsup processes from interfering with each other. It
107 is useful when the client is run periodically from cron, to avoid
108 trouble if a job runs unusually long because of network problems.
110 dawes 1.1 The client now refuses to create the "base" or "prefix" directory
111 for any collection. Instead, it emits a diagnostic if either
112 directory doesn't exist. As a special case, if the "prefix" is
113 a symbolic link pointing to a nonexistent file named "SKIP", the
114 associated collection will be skipped without complaint.
116 The default "base" for the client is now "/usr/local/etc/cvsup".
118 Both the server's and client's "prefix" directories are now
119 interpreted relative to their base directories, if they are not
120 absolute pathnames.
122 The client now silently refuses to set the setuid, setgid, and
123 sticky bits in files that it creates or updates.
125 The client now does a better job of cleaning up its temporary
126 files when it is killed by a signal.
128 The client now tries harder to look up the IP address of the
129 server host.
131 dawes 1.1 There is a new "keywordprefix" keyword for the server's "releases"
132 file. It specifies a prefix that is used when constructing the
133 pathnames generated by the Header and Source RCS keywords. This
134 allows the actual repositories to be in different places on
135 different machines, while still producing identical expansions
136 of the RCS keywords.
138 The server will now accept connections from certain "friends"
139 listed in a configuration file, regardless of whether the maximum
140 number of simultaneous connections has been exceeded.
142 The server can now do its logging via syslog.
144 The server log messages have been cleaned up quite a bit.
146 The server now logs any repository problems that it notices,
147 e.g., unparsable RCS files, non-RCS files in the Attic, and so
150 The server now ignores any "hostbase" specified in the client's
151 supfile. A new server argument "-b base" specifies the base
152 dawes 1.1 directory. The default is now "/usr/local/etc/cvsup".
154 The server now validates all collection names to make sure they
155 contain no slashes and are not equal to "." or "..".
157 The server now checks for certain errors earlier, before becoming
158 a daemon.
160 All of the programs except the server now install into
161 "/usr/local/bin". The server still installs into "/usr/local/sbin".
163 Fixed a bug in the ordering of the "branches" list in the RCS file,
164 which on very rare occasions caused a "fixup" to be required.
166 Fixed a bug which could cause the client to hang trying to flush
167 its network buffers after the user pressed the "stop" button in
168 the GUI.
170 Fixed a bug that caused the client to complain "file exists" when
171 trying to create directories leading up to a new file, if the
172 pathname contained a "." (current directory) component in it.
173 dawes 1.1 This prevented "upgrade ." from being used in the server collection
174 list files. Unfortunately, since it's a client-side bug, such
175 lines still should not be used for a while, until older releases
176 of the client have evaporated away.
178 Fixed a bug which produced a misleading error message when a
179 failure occurred in making the directories leading up to the
180 temporary file that is used for the list file in the client.
182 When bad tokens or protocol errors are encountered, the offending
183 text is no longer included in the error message. Sometimes it
184 contained voluminous amounts of garbage.
186 Messages reporting errors in the client-side list files are
187 accompanied by line numbers now.
189 Notable changes in release 13.5:
191 Support SOCKS, using a new add-on library in ports/lang/modula-3-socks.
193 Add command line options "-z" and "-Z" for directly controlling the
194 dawes 1.1 "compress" option, overriding what is in the supfile. Likewise, add
195 "-d" and "-D" for overriding the "delete" option.
197 Make the client retry automatically when transient failures occur.
198 This is done only in batch (non-GUI) mode. Retries use randomized
199 exponential backoff. The retry delay starts out at about 5 minutes,
200 and increases to a maximum of about 2 hours.
202 Programs are now built fully dynamically linked by default. If
203 "-DSTATIC" is in the "M3FLAGS" environment variable, then they are
204 linked fully static. If "-DM3STATIC" is present, then the Modula-3
205 libraries are linked statically, and the system libraries are linked
206 dynamically. (This used to be the default.)
208 It is now possible to build the client without the GUI, by adding
209 "-DNOGUI" to the "M3FLAGS" environment variable.
211 Notable changes in release 13.4:
213 Detect and send changes to the RCS keyword expansion mode.
214 Formerly, these (rare) changes were ignored. That caused checksum
215 dawes 1.1 mismatches, which slowed down updates because the whole files had
216 to be sent as fixups.
218 Report 0-byte appends as what they really are, i.e., touches.
219 Add a new statistics line for them.
221 Make the command line option handling comply better with POSIX.
223 Fix supconv to handle recent changes to the example "ports-supfile"
224 in FreeBSD-current.
226 Add a timeout to kill a server process when it has been inactive
227 too long (15 minutes). This replaces the TCP keepalives that were
228 added in the previous release.
230 Add a hack to the server to make it easier to shut it down in a
231 controlled manner. If a file "cvsupd-HALT" exists in the directory
232 from which the server was started, and if it is newer than the
233 time when the server was started, then the server will reject
234 all new incoming connection requests.
236 dawes 1.1 Make some changes to the zlib interface to eliminate the potential for
237 an unsafe interaction with the garbage collector.
239 FreeBSD binary releases are now built with a new version of the
240 Modula-3 runtime that has a thread-safe version of malloc built
241 into it. This cures some vexing core dumps that had been happening
242 from time to time.
244 Add work-arounds for the worst of the problems associated with malloc
245 packages that are not thread-safe. These are not complete, however.
246 I will probably incorporate a (hopefully portable) thread-safe malloc
247 in the next release.
249 Eliminate several FreeBSD-specific constructs that caused
250 portability problems on other platforms. There is a good chance
251 now that this software will compile and run out-of-the-box on
252 most POSIX systems with standard SRC Modula-3 installations.
254 Notable changes in release 13.3:
256 Implement a passive mode for establishing the data connection,
257 dawes 1.1 to help people who live behind firewalls. Passive mode is similar
258 to ftp's passive mode: all TCP connections are initiated from
259 the client. See the "-P -" option in cvsup(1).
261 Make the system much more resiliant in the face of errors in the
262 server's CVS repository, such as unreadable files and garbled
263 RCS files. Almost all such situations now lead to simple warnings,
264 rather than fatal errors.
266 Make it a warning rather than a fatal error when the client
267 specifies an invalid collection.
269 Fix the broken "refuse" file handling.
271 Make the server refuse to run as root, for security reasons.
273 Fix a bug that could cause a fatal error to occur in certain
274 situations involving local check-ins to RCS files in the CVS
277 Fix a server bug encountered during SOCKS testing. Note: This
278 dawes 1.1 release of CVSup still does not work with SOCKS.
280 Enable TCP keepalives on the server.
282 Notable changes in release 13.2:
284 Fix a bug that caused the server to give up when an RCS file in the
285 repository got really out of whack. This happened only when it was
286 trying to update a client file in checkout mode. Now the server falls
287 back upon checking out a fresh copy of the file.
289 Notable changes in release 13.1:
291 Fix a bug that caused the server to leave zombie processes under
294 Fix a bug that caused the build to fail on a manual page problem
295 under FreeBSD-current.
297 Permit more control over which TCP ports are used, making it more
298 convenient to use the client behind a firewall. See the new "-P"
299 dawes 1.1 option in cvsup(1).
301 Support building static, dynamic, or partly dynamic executables.
302 "Partly dynamic" means the system libraries are dynamic, but the
303 Modula-3 runtime libraries are static. See "Install" for details.
304 For now, I am still putting fully static executables in the binary
307 Respond more quickly to the interrupt button on the client GUI.
309 Fix the supconv utility to handle the ports collection better.
311 Make supconv install properly, and add a manual page for it.
313 Add various enhancements to the manual pages.
315 Release 13.0:
317 Initial public release.