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