1 dawes 126.96.36.199 Notable changes in release 14.2:
3 Added an inactivity timeout to the client, enabled only in non-GUI
4 mode. If 15 minutes pass without any network I/O, the update is
5 terminated with a transient error (so that it will be retried).
6 This is useful when the client is run from cron.
8 Added a new "-r maxRetries" command line option for the client,
9 to cause it to give up after the specified number of retries.
10 This is a generalization of the old "-1" option, which is equivalent
11 to "-r 0".
13 Added checking to ensure that the client-side "checkouts*" file
14 is sorted properly. CVSup always keeps this file in sorted order.
15 But if it gets corrupted such that it is no longer sorted, mass
16 deletions can result. This actually happened on a system that
17 had faulty RAM. A 1-bit error changed a "/" to something else.
19 Added checksumming and fixups for all kinds of file updates.
20 Formerly, this was done only for updates that modified (edited)
21 existing files. Now, even files that are sent verbatim are
22 dawes 188.8.131.52 checked.
24 Fixed a bug in searching for the revision in effect on a certain
25 date. Example: Searching on the trunk. The head is 2.2. The
26 selected revision is 1.7. Because the first components were
27 different, the code erroneously considered the file to be dead
28 on the given date. The fix treats the trunk as a special case.
29 The bug affected just a few files, and only when checkout mode
30 was used on the main branch with "date=yy.mm.dd.hh.mm.ss".
32 Added support for the "execute" keyword, for executing server-specified
33 commands on the client when certain files are updated.
35 Added new client options "-e" and "-E", to enable and disable
36 the "execute" feature.
38 Fixed the server's logging so that it now works to specify "-l
39 /dev/stdout" on the command line.
41 The necessary "libmd" sources are now included in the distribution,
42 so it is no longer necessary to get them separately and install
43 dawes 184.108.40.206 them.
59 dawes 220.127.116.11 Notable changes in release 14.1:
61 For both the client and the server, there is now a "-c collDir"
62 command line option for overriding the name of the subdirectory
63 where the collection information is maintained. The name used
64 to be hard-wired to "sup", and that is still the default.
66 If the client's prefix directory for a collection doesn't exist,
67 it is no longer a fatal error. A warning is produced and the
68 offending collection is skipped, but the others are still processed
69 normally. If the prefix is a symbolic link pointing to "SKIP",
70 the warning is suppressed.
72 Fixed a server problem that caused certain pathological updates in
73 checkout mode to take damned near forever.
75 Fixed a problem that caused fixups to be performed for certain
76 RCS files that were corrupted to begin with. The files had incorrect
77 dates on some revisions, because they had been hacked up by hand.
78 That caused the client to write out the delta texts in the wrong
79 order. Since there was a way to work around this dubious situation, I
80 dawes 18.104.22.168 implemented it.
82 Changed the logic surrounding the time stamp comparisons between
83 files on the client and files on the server, eliminating a
84 miniscule possibility of missed updates. Now, the system can
85 detect it if a file happens to have been modified independently
86 on both the client and the server at exactly the same time. The
87 file is recognized as possibly needing an update, even though
88 its time stamp is the same on the client and the server.
90 Fixed the client's lock file handling ("-l" option) so that the
91 lock remains held during the intervals between retries. Formerly,
92 the lock was released during those intervals, rendering it fairly
93 useless for avoiding multiple stacked up processes from cron
96 Added a check to make sure it is possible to get the client host's
97 own IP address before starting up the GUI. Formerly, misconfigured
98 hosts (e.g., incorrect host name) would result in a baffling
99 "IP.FatalError" message.
101 dawes 22.214.171.124 Changed the priorities for syslog messages from the server so
102 that messages associated with individual client connections are
103 logged at "info" level rather than "notice". For simple syslog.conf
104 setups, that takes these mostly informational messages out of
105 /var/log/messages, where they caused a lot of clutter. The
106 logging still isn't perfect, as a few more serious messages now
107 also come out at "info" level. Nevertheless, the new situation
108 is an improvement.
110 Added a new "-k" command line option for the client, intended
111 for debugging. This option causes the bad temporary files to be
112 saved for files requiring fixups due to incorrect edits. The
113 fixups are still performed, regardless.
115 Further improved the server's handling of corrupted RCS files.
116 In virtually all circumstances, the server should now be able to
117 issue warnings for corrupted RCS files and carry on with the
118 remaining updates.
120 Beefed up the semantic checking of RCS files, to detect some more
121 pernicious kinds of corruption.
122 dawes 126.96.36.199
123 Added a "norsync" option which can be specified in the server's
124 "releases" files. It allows the server to disable the use of
125 the rsync algorithm for selected collections and releases. This
126 is beneficial for CVS repositories, where CVSup's "append" updates
127 work better and more efficiently than the rsync algorithm.
129 Added additional server checks of the filenames received from
130 the client, to ensure that the server cannot be spoofed into
131 delivering files from outside its collections.
133 dawes 1.1 Notable changes in release 14.0:
135 CVSup now uses Tridgell & Mackerras' "rsync" algorithm for updating
136 non-RCS files. It is enabled by default, though it can be turned
137 off for individual collections by specifying the "norysnc" keyword.
139 The supfile can now have special collections named "*default" to
140 specify default parameters for subsequent collections.
142 The "base" and "host" supfile settings can now be overridden on
143 the client's command line.
145 The client now supports multiple "refuse" files: a global one
146 which applies to all collections; a per-collection one; and one
147 that is specific to a release+tag within its collection.
149 There is now a client option to specify a lock file, to prevent
150 multiple cvsup processes from interfering with each other. It
151 is useful when the client is run periodically from cron, to avoid
152 trouble if a job runs unusually long because of network problems.
154 dawes 1.1 The client now refuses to create the "base" or "prefix" directory
155 for any collection. Instead, it emits a diagnostic if either
156 directory doesn't exist. As a special case, if the "prefix" is
157 a symbolic link pointing to a nonexistent file named "SKIP", the
158 associated collection will be skipped without complaint.
160 The default "base" for the client is now "/usr/local/etc/cvsup".
162 Both the server's and client's "prefix" directories are now
163 interpreted relative to their base directories, if they are not
164 absolute pathnames.
166 The client now silently refuses to set the setuid, setgid, and
167 sticky bits in files that it creates or updates.
169 The client now does a better job of cleaning up its temporary
170 files when it is killed by a signal.
172 The client now tries harder to look up the IP address of the
173 server host.
175 dawes 1.1 There is a new "keywordprefix" keyword for the server's "releases"
176 file. It specifies a prefix that is used when constructing the
177 pathnames generated by the Header and Source RCS keywords. This
178 allows the actual repositories to be in different places on
179 different machines, while still producing identical expansions
180 of the RCS keywords.
182 The server will now accept connections from certain "friends"
183 listed in a configuration file, regardless of whether the maximum
184 number of simultaneous connections has been exceeded.
186 The server can now do its logging via syslog.
188 The server log messages have been cleaned up quite a bit.
190 The server now logs any repository problems that it notices,
191 e.g., unparsable RCS files, non-RCS files in the Attic, and so
194 The server now ignores any "hostbase" specified in the client's
195 supfile. A new server argument "-b base" specifies the base
196 dawes 1.1 directory. The default is now "/usr/local/etc/cvsup".
198 The server now validates all collection names to make sure they
199 contain no slashes and are not equal to "." or "..".
201 The server now checks for certain errors earlier, before becoming
202 a daemon.
204 All of the programs except the server now install into
205 "/usr/local/bin". The server still installs into "/usr/local/sbin".
207 Fixed a bug in the ordering of the "branches" list in the RCS file,
208 which on very rare occasions caused a "fixup" to be required.
210 Fixed a bug which could cause the client to hang trying to flush
211 its network buffers after the user pressed the "stop" button in
212 the GUI.
214 Fixed a bug that caused the client to complain "file exists" when
215 trying to create directories leading up to a new file, if the
216 pathname contained a "." (current directory) component in it.
217 dawes 1.1 This prevented "upgrade ." from being used in the server collection
218 list files. Unfortunately, since it's a client-side bug, such
219 lines still should not be used for a while, until older releases
220 of the client have evaporated away.
222 Fixed a bug which produced a misleading error message when a
223 failure occurred in making the directories leading up to the
224 temporary file that is used for the list file in the client.
226 When bad tokens or protocol errors are encountered, the offending
227 text is no longer included in the error message. Sometimes it
228 contained voluminous amounts of garbage.
230 Messages reporting errors in the client-side list files are
231 accompanied by line numbers now.
233 Notable changes in release 13.5:
235 Support SOCKS, using a new add-on library in ports/lang/modula-3-socks.
237 Add command line options "-z" and "-Z" for directly controlling the
238 dawes 1.1 "compress" option, overriding what is in the supfile. Likewise, add
239 "-d" and "-D" for overriding the "delete" option.
241 Make the client retry automatically when transient failures occur.
242 This is done only in batch (non-GUI) mode. Retries use randomized
243 exponential backoff. The retry delay starts out at about 5 minutes,
244 and increases to a maximum of about 2 hours.
246 Programs are now built fully dynamically linked by default. If
247 "-DSTATIC" is in the "M3FLAGS" environment variable, then they are
248 linked fully static. If "-DM3STATIC" is present, then the Modula-3
249 libraries are linked statically, and the system libraries are linked
250 dynamically. (This used to be the default.)
252 It is now possible to build the client without the GUI, by adding
253 "-DNOGUI" to the "M3FLAGS" environment variable.
255 Notable changes in release 13.4:
257 Detect and send changes to the RCS keyword expansion mode.
258 Formerly, these (rare) changes were ignored. That caused checksum
259 dawes 1.1 mismatches, which slowed down updates because the whole files had
260 to be sent as fixups.
262 Report 0-byte appends as what they really are, i.e., touches.
263 Add a new statistics line for them.
265 Make the command line option handling comply better with POSIX.
267 Fix supconv to handle recent changes to the example "ports-supfile"
268 in FreeBSD-current.
270 Add a timeout to kill a server process when it has been inactive
271 too long (15 minutes). This replaces the TCP keepalives that were
272 added in the previous release.
274 Add a hack to the server to make it easier to shut it down in a
275 controlled manner. If a file "cvsupd-HALT" exists in the directory
276 from which the server was started, and if it is newer than the
277 time when the server was started, then the server will reject
278 all new incoming connection requests.
280 dawes 1.1 Make some changes to the zlib interface to eliminate the potential for
281 an unsafe interaction with the garbage collector.
283 FreeBSD binary releases are now built with a new version of the
284 Modula-3 runtime that has a thread-safe version of malloc built
285 into it. This cures some vexing core dumps that had been happening
286 from time to time.
288 Add work-arounds for the worst of the problems associated with malloc
289 packages that are not thread-safe. These are not complete, however.
290 I will probably incorporate a (hopefully portable) thread-safe malloc
291 in the next release.
293 Eliminate several FreeBSD-specific constructs that caused
294 portability problems on other platforms. There is a good chance
295 now that this software will compile and run out-of-the-box on
296 most POSIX systems with standard SRC Modula-3 installations.
298 Notable changes in release 13.3:
300 Implement a passive mode for establishing the data connection,
301 dawes 1.1 to help people who live behind firewalls. Passive mode is similar
302 to ftp's passive mode: all TCP connections are initiated from
303 the client. See the "-P -" option in cvsup(1).
305 Make the system much more resiliant in the face of errors in the
306 server's CVS repository, such as unreadable files and garbled
307 RCS files. Almost all such situations now lead to simple warnings,
308 rather than fatal errors.
310 Make it a warning rather than a fatal error when the client
311 specifies an invalid collection.
313 Fix the broken "refuse" file handling.
315 Make the server refuse to run as root, for security reasons.
317 Fix a bug that could cause a fatal error to occur in certain
318 situations involving local check-ins to RCS files in the CVS
321 Fix a server bug encountered during SOCKS testing. Note: This
322 dawes 1.1 release of CVSup still does not work with SOCKS.
324 Enable TCP keepalives on the server.
326 Notable changes in release 13.2:
328 Fix a bug that caused the server to give up when an RCS file in the
329 repository got really out of whack. This happened only when it was
330 trying to update a client file in checkout mode. Now the server falls
331 back upon checking out a fresh copy of the file.
333 Notable changes in release 13.1:
335 Fix a bug that caused the server to leave zombie processes under
338 Fix a bug that caused the build to fail on a manual page problem
339 under FreeBSD-current.
341 Permit more control over which TCP ports are used, making it more
342 convenient to use the client behind a firewall. See the new "-P"
343 dawes 1.1 option in cvsup(1).
345 Support building static, dynamic, or partly dynamic executables.
346 "Partly dynamic" means the system libraries are dynamic, but the
347 Modula-3 runtime libraries are static. See "Install" for details.
348 For now, I am still putting fully static executables in the binary
351 Respond more quickly to the interrupt button on the client GUI.
353 Fix the supconv utility to handle the ports collection better.
355 Make supconv install properly, and add a manual page for it.
357 Add various enhancements to the manual pages.
359 Release 13.0:
361 Initial public release.