Wed Oct 1 12:43:46 2008 UTC ()
mention the delete bug in the man page. prompted by perry.


(christos)
diff -r1.14 -r1.15 src/usr.sbin/sup/source/sup.1

cvs diff -r1.14 -r1.15 src/usr.sbin/sup/source/Attic/sup.1 (switch to unified diff)

--- src/usr.sbin/sup/source/Attic/sup.1 2003/01/02 00:22:31 1.14
+++ src/usr.sbin/sup/source/Attic/sup.1 2008/10/01 12:43:46 1.15
@@ -1,857 +1,869 @@ @@ -1,857 +1,869 @@
1.\" $NetBSD: sup.1,v 1.14 2003/01/02 00:22:31 jschauma Exp $ 1.\" $NetBSD: sup.1,v 1.15 2008/10/01 12:43:46 christos Exp $
2.\" 2.\"
3.\" Copyright (c) 1992 Carnegie Mellon University 3.\" Copyright (c) 1992 Carnegie Mellon University
4.\" All Rights Reserved. 4.\" All Rights Reserved.
5.\" 5.\"
6.\" Permission to use, copy, modify and distribute this software and its 6.\" Permission to use, copy, modify and distribute this software and its
7.\" documentation is hereby granted, provided that both the copyright 7.\" documentation is hereby granted, provided that both the copyright
8.\" notice and this permission notice appear in all copies of the 8.\" notice and this permission notice appear in all copies of the
9.\" software, derivative works or modified versions, and any portions 9.\" software, derivative works or modified versions, and any portions
10.\" thereof, and that both notices appear in supporting documentation. 10.\" thereof, and that both notices appear in supporting documentation.
11.\" 11.\"
12.\" CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 12.\" CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13.\" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 13.\" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14.\" ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 14.\" ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15.\" 15.\"
16.\" Carnegie Mellon requests users of this software to return to 16.\" Carnegie Mellon requests users of this software to return to
17.\" 17.\"
18.\" Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 18.\" Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
19.\" School of Computer Science 19.\" School of Computer Science
20.\" Carnegie Mellon University 20.\" Carnegie Mellon University
21.\" Pittsburgh PA 15213-3890 21.\" Pittsburgh PA 15213-3890
22.\" 22.\"
23.\" any improvements or extensions that they make and grant Carnegie Mellon 23.\" any improvements or extensions that they make and grant Carnegie Mellon
24.\" the rights to redistribute these changes. 24.\" the rights to redistribute these changes.
25.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 25.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
26.\" HISTORY 26.\" HISTORY
27.\" Revision 1.4 92/08/11 12:08:40 mrt 27.\" Revision 1.4 92/08/11 12:08:40 mrt
28.\" .TP 28.\" .TP
29.\" Add description of releases and use-rel-suffix 29.\" Add description of releases and use-rel-suffix
30.\" [92/07/31 mrt] 30.\" [92/07/31 mrt]
31.\" 31.\"
32.\" Revision 1.3 92/02/08 18:24:31 mja 32.\" Revision 1.3 92/02/08 18:24:31 mja
33.\" Added description of -k and -K switches and "keep" option. 33.\" Added description of -k and -K switches and "keep" option.
34.\" [92/01/17 vdelvecc] 34.\" [92/01/17 vdelvecc]
35.\" 35.\"
36.\" 10-May-86 Glenn Marcy (gm0w) at Carnegie-Mellon University 36.\" 10-May-86 Glenn Marcy (gm0w) at Carnegie-Mellon University
37.\" Replaced reference to /usr/cmu with /usr/cs. 37.\" Replaced reference to /usr/cmu with /usr/cs.
38.\" 38.\"
39.\" 29-Mar-86 Glenn Marcy (gm0w) at Carnegie-Mellon University 39.\" 29-Mar-86 Glenn Marcy (gm0w) at Carnegie-Mellon University
40.\" Updated manual entry to version 5.14 of sup. 40.\" Updated manual entry to version 5.14 of sup.
41.\" 41.\"
42.\" 14-Jan-86 Glenn Marcy (gm0w) at Carnegie-Mellon University 42.\" 14-Jan-86 Glenn Marcy (gm0w) at Carnegie-Mellon University
43.\" Updated manual entry to version 5.7 of sup. 43.\" Updated manual entry to version 5.7 of sup.
44.\" 44.\"
45.\" 04-Apr-85 Steven Shafer (sas) at Carnegie-Mellon University 45.\" 04-Apr-85 Steven Shafer (sas) at Carnegie-Mellon University
46.\" Created. 46.\" Created.
47.\" 47.\"
48.TH SUP 1 02/08/92 48.TH SUP 1 10/01/08
49.CM 4 49.CM 4
50.SH "NAME" 50.SH "NAME"
51sup \- software upgrade protocol 51sup \- software upgrade protocol
52.SH "SYNOPSIS" 52.SH "SYNOPSIS"
53\fBsup\fR [ \fIflags\fR ] [ \fIsupfile\fR ] [ \fIcollection\fR ...] 53\fBsup\fR [ \fIflags\fR ] [ \fIsupfile\fR ] [ \fIcollection\fR ...]
54.SH "DESCRIPTION" 54.SH "DESCRIPTION"
55.I Sup 55.I Sup
56is a program used for upgrading collections of files from other machines 56is a program used for upgrading collections of files from other machines
57to your machine. You execute 57to your machine. You execute
58.IR sup , 58.IR sup ,
59the 59the
60.I client 60.I client
61program, which talks over the network using IP/TCP to a 61program, which talks over the network using IP/TCP to a
62.I file server 62.I file server
63process. 63process.
64The file server process cooperates with 64The file server process cooperates with
65.I sup 65.I sup
66to determine which files of the collection need to be upgraded on 66to determine which files of the collection need to be upgraded on
67your machine. 67your machine.
68 68
69Sup collections can have multiple releases. One use for such releases is 69Sup collections can have multiple releases. One use for such releases is
70to provide different versions of the same files. At CMU, for example, 70to provide different versions of the same files. At CMU, for example,
71system binaries have alpha, beta and default release corresponding to 71system binaries have alpha, beta and default release corresponding to
72different staging levels of the software. We also use release names 72different staging levels of the software. We also use release names
73default and minimal to provide complete releases or subset releases. 73default and minimal to provide complete releases or subset releases.
74In both of these cases, it only makes sense to sup one release of the 74In both of these cases, it only makes sense to sup one release of the
75collections. Releases have also been used in private or external sups to 75collections. Releases have also been used in private or external sups to
76provide subsets of collections where it makes sense to pick up several 76provide subsets of collections where it makes sense to pick up several
77of the releases. For example the Mach 3.0 kernel sources has a default 77of the releases. For example the Mach 3.0 kernel sources has a default
78release of machine independent sources and separate releases of 78release of machine independent sources and separate releases of
79machine dependent sources for each supported platform. 79machine dependent sources for each supported platform.
80 80
81In performing an upgrade, the file server constructs a list of 81In performing an upgrade, the file server constructs a list of
82files included in the specified release of the collection. The list is sent to your machine, 82files included in the specified release of the collection. The list is sent to your machine,
83which determines which files are needed. Those files are then sent 83which determines which files are needed. Those files are then sent
84from the file server. 84from the file server.
85It will be most useful to run 85It will be most useful to run
86.I sup 86.I sup
87as a daemon each night so you will continually have the latest version of the 87as a daemon each night so you will continually have the latest version of the
88files in the needed collections. 88files in the needed collections.
89 89
90The only required argument to 90The only required argument to
91.I sup 91.I sup
92is the name of a supfile. It must either be given explicitly on the command 92is the name of a supfile. It must either be given explicitly on the command
93line, or the 93line, or the
94.B -s 94.B -s
95flag must be specified. If the 95flag must be specified. If the
96.B -s 96.B -s
97flag is given, the system supfile will be used and a supfile command argument 97flag is given, the system supfile will be used and a supfile command argument
98should not be specified. The list of collections is optional and if specified 98should not be specified. The list of collections is optional and if specified
99will be the only collections upgraded. The following flags affect all 99will be the only collections upgraded. The following flags affect all
100collections specified: 100collections specified:
101.TP 101.TP
102.B -s 102.B -s
103As described above. 103As described above.
104.TP 104.TP
105.B -t 105.B -t
106When this flag is given, 106When this flag is given,
107.I sup 107.I sup
108will print the time 108will print the time
109that each collection was last upgraded, rather than 109that each collection was last upgraded, rather than
110performing actual upgrades. 110performing actual upgrades.
111.TP 111.TP
112.B -u 112.B -u
113When this flag is given, 113When this flag is given,
114.I sup 114.I sup
115will not try to restore the user access and modified times of files in 115will not try to restore the user access and modified times of files in
116the collections from the server. 116the collections from the server.
117.TP 117.TP
118.B -S 118.B -S
119Operate silently printing messages only on errors. 119Operate silently printing messages only on errors.
120.TP 120.TP
121.B -N 121.B -N
122.I Sup 122.I Sup
123will trace network messages sent and received that implement the 123will trace network messages sent and received that implement the
124.I sup 124.I sup
125network protocol. 125network protocol.
126.TP 126.TP
127.B -P 127.B -P
128Sup will use a set of non-privileged network 128Sup will use a set of non-privileged network
129ports reserved for debugging purposes. 129ports reserved for debugging purposes.
130.i0 130.i0
131.DT 131.DT
132.PP 132.PP
133 133
134The remaining flags affect all collections unless an explicit list 134The remaining flags affect all collections unless an explicit list
135of collections are given with the flags. Multiple flags may be 135of collections are given with the flags. Multiple flags may be
136specified together that affect the same collections. For the sake 136specified together that affect the same collections. For the sake
137of convenience, any flags that always affect all collections can be 137of convenience, any flags that always affect all collections can be
138specified with flags that affect only some collections. For 138specified with flags that affect only some collections. For
139example, 139example,
140.B sup -sde=coll1,coll2 140.B sup -sde=coll1,coll2
141would perform a system upgrade, 141would perform a system upgrade,
142and the first two collections would allow both file deletions and 142and the first two collections would allow both file deletions and
143command executions. Note that this is not the same command as 143command executions. Note that this is not the same command as
144.B sup -sde=coll1 coll2, 144.B sup -sde=coll1 coll2,
145which would perform a system upgrade of 145which would perform a system upgrade of
146just the coll2 collection and would ignore the flags given for the 146just the coll2 collection and would ignore the flags given for the
147coll1 collection. 147coll1 collection.
148.TP 148.TP
149.B -a 149.B -a
150All files in the collection will be copied from 150All files in the collection will be copied from
151the repository, regardless of their status on the 151the repository, regardless of their status on the
152current machine. Because of this, it is a very 152current machine. Because of this, it is a very
153expensive operation and should only be done for 153expensive operation and should only be done for
154small collections if data corruption is suspected 154small collections if data corruption is suspected
155and been confirmed. In most cases, the 155and been confirmed. In most cases, the
156.B -o 156.B -o
157flag should be sufficient. 157flag should be sufficient.
158.TP 158.TP
159.B -b 159.B -b
160If the 160If the
161.B -b 161.B -b
162flag if given, or the 162flag if given, or the
163.B backup 163.B backup
164supfile 164supfile
165option is specified, the contents of regular files 165option is specified, the contents of regular files
166on the local system will be saved before they are 166on the local system will be saved before they are
167overwritten with new data. The file collection maintainer 167overwritten with new data. The file collection maintainer
168can designate specific files to be 168can designate specific files to be
169worthy of backing up whenever they are upgraded. 169worthy of backing up whenever they are upgraded.
170However, such 170However, such
171backup will only take place if you specify this flag or the 171backup will only take place if you specify this flag or the
172.B backup 172.B backup
173option to allow 173option to allow
174backups for a file collection on your machine. 174backups for a file collection on your machine.
175The backup mechanism 175The backup mechanism
176will create a copy of the current version of a file immediately 176will create a copy of the current version of a file immediately
177before a new copy is received from the file server; the copy is 177before a new copy is received from the file server; the copy is
178given the same name as the original file but is put into a directory 178given the same name as the original file but is put into a directory
179called 179called
180.B 180.B
181BACKUP 181BACKUP
182within the directory containing the original file. 182within the directory containing the original file.
183For example, 183For example,
184.B 184.B
185/usr/sas/src/foo.c 185/usr/sas/src/foo.c
186would have a backup copy called 186would have a backup copy called
187.B 187.B
188/usr/sas/src/BACKUP/foo.c. 188/usr/sas/src/BACKUP/foo.c.
189There is no provision for automatically maintaining multiple old 189There is no provision for automatically maintaining multiple old
190versions of files; you would have to do this yourself. 190versions of files; you would have to do this yourself.
191.TP 191.TP
192.B -B 192.B -B
193The 193The
194.B -B 194.B -B
195flag overrides and disables the 195flag overrides and disables the
196.B -b 196.B -b
197flag and the 197flag and the
198.B backup 198.B backup
199supfile option. 199supfile option.
200.TP 200.TP
201.B -d 201.B -d
202Files that are no longer in the collection on the 202Files that are no longer in the collection on the
203repository will be deleted if present on the local 203repository will be deleted if present on the local
204machine and were put there by a previous sup. 204machine and were put there by a previous sup.
205This may also be specified in a supfile with the 205This may also be specified in a supfile with the
206.B delete 206.B delete
207option. 207option.
208.TP 208.TP
209.B -D 209.B -D
210The 210The
211.B -D 211.B -D
212flag overrides and disables the 212flag overrides and disables the
213.B -d 213.B -d
214flag and the 214flag and the
215.B delete 215.B delete
216supfile option. 216supfile option.
217.TP 217.TP
218.B -e 218.B -e
219Sup will execute commands sent from the repository 219Sup will execute commands sent from the repository
220that should be run when a file is upgraded. If 220that should be run when a file is upgraded. If
221the 221the
222.B -e 222.B -e
223flag is omitted, Sup will print a message 223flag is omitted, Sup will print a message
224that specifies the command to execute. This may 224that specifies the command to execute. This may
225also be specified in a supfile with the 225also be specified in a supfile with the
226.B execute 226.B execute
227option. 227option.
228.TP 228.TP
229.B -E 229.B -E
230The 230The
231.B -E 231.B -E
232flag overrides and disables the 232flag overrides and disables the
233.B -e 233.B -e
234flag and the 234flag and the
235.B execute 235.B execute
236supfile option. 236supfile option.
237.TP 237.TP
238.B -f 238.B -f
239A 239A
240.I list-only 240.I list-only
241upgrade will be performed. Messages 241upgrade will be performed. Messages
242will be printed that indicate what would happen if 242will be printed that indicate what would happen if
243an actual upgrade were done. 243an actual upgrade were done.
244.TP 244.TP
245.B -k 245.B -k
246.I Sup 246.I Sup
247will check the modification times of 247will check the modification times of
248files on the local disk before updating them. Only files which are 248files on the local disk before updating them. Only files which are
249newer on the repository than on the local disk will be updated; 249newer on the repository than on the local disk will be updated;
250files that are newer on the local disk will be kept as they are. 250files that are newer on the local disk will be kept as they are.
251This may also be specified in a supfile with the 251This may also be specified in a supfile with the
252.B keep 252.B keep
253option. 253option.
254.TP 254.TP
255.B -K 255.B -K
256The 256The
257.B -K 257.B -K
258flag overrides and disables the 258flag overrides and disables the
259.B -k 259.B -k
260flag and the 260flag and the
261.B keep 261.B keep
262supfile option. 262supfile option.
263.TP 263.TP
264.B -l 264.B -l
265Normally, 265Normally,
266.I sup 266.I sup
267will not upgrade a collection if the 267will not upgrade a collection if the
268repository is on the same machine. This allows 268repository is on the same machine. This allows
269users to run upgrades on all machines without 269users to run upgrades on all machines without
270having to make special checks for the repository 270having to make special checks for the repository
271machine. If the 271machine. If the
272.B -l 272.B -l
273flag is specified, collections 273flag is specified, collections
274will be upgraded even if the repository is local. 274will be upgraded even if the repository is local.
275.TP 275.TP
276.B -m 276.B -m
277Normally, 277Normally,
278.I sup 278.I sup
279used standard output for messages. 279used standard output for messages.
280If the 280If the
281.B -m 281.B -m
282flag if given, 282flag if given,
283.I sup 283.I sup
284will send mail to the user running 284will send mail to the user running
285.IR sup , 285.IR sup ,
286or a user specified with the 286or a user specified with the
287.B notify 287.B notify
288supfile option, that contains messages 288supfile option, that contains messages
289printed by 289printed by
290.IR sup . 290.IR sup .
291.TP 291.TP
292.B -o 292.B -o
293.I Sup 293.I Sup
294will normally only upgrade files that have 294will normally only upgrade files that have
295changed on the repository since the last time an 295changed on the repository since the last time an
296upgrade was performed. That is, if the file in the 296upgrade was performed. That is, if the file in the
297repository is newer than the date stored in the 297repository is newer than the date stored in the
298.I when 298.I when
299file on the client. The 299file on the client. The
300.B -o 300.B -o
301flag, or the 301flag, or the
302.B old 302.B old
303supfile option, will cause 303supfile option, will cause
304.I sup 304.I sup
305to check all files 305to check all files
306in the collection for changes instead of just the 306in the collection for changes instead of just the
307new ones. 307new ones.
308.TP 308.TP
309.B -O 309.B -O
310The 310The
311.B -O 311.B -O
312flag overrides and disables the 312flag overrides and disables the
313.B -o 313.B -o
314flag and the 314flag and the
315.B old 315.B old
316supfile option. 316supfile option.
317.TP 317.TP
318.B -z 318.B -z
319Normally sup transfers files directly without any 319Normally sup transfers files directly without any
320other processing, but with the 320other processing, but with the
321.B -z 321.B -z
322flag, or the 322flag, or the
323.B compress 323.B compress
324supfile option, sup will compress the file 324supfile option, sup will compress the file
325before sending it across the network and 325before sending it across the network and
326uncompress it and restore all the correct 326uncompress it and restore all the correct
327file attributes at the receiving end. 327file attributes at the receiving end.
328.TP 328.TP
329.B -Z 329.B -Z
330The 330The
331.B -Z 331.B -Z
332flag overrides and disables the 332flag overrides and disables the
333.B -z 333.B -z
334flag and the 334flag and the
335.B compress 335.B compress
336supfile option. 336supfile option.
337.TP 337.TP
338.B -v 338.B -v
339Normally, 339Normally,
340.I sup 340.I sup
341will only print messages if there 341will only print messages if there
342are problems. This flag causes 342are problems. This flag causes
343.I sup 343.I sup
344to also print 344to also print
345messages during normal progress showing what 345messages during normal progress showing what
346.I sup 346.I sup
347is doing. 347is doing.
348.i0 348.i0
349.DT 349.DT
350.PP 350.PP
351.SH "SETTING UP UPGRADES" 351.SH "SETTING UP UPGRADES"
352Each file collection to be upgraded must have a 352Each file collection to be upgraded must have a
353.I base directory 353.I base directory
354which contains a subdirectory called 354which contains a subdirectory called
355.B sup 355.B sup
356that will be used by the 356that will be used by the
357.I sup 357.I sup
358program; it will be created automatically if you do not create it. 358program; it will be created automatically if you do not create it.
359.I Sup 359.I Sup
360will put subdirectories and files into this directory as needed. 360will put subdirectories and files into this directory as needed.
361 361
362.I Sup 362.I Sup
363will look for a subdirectory with the same name as the 363will look for a subdirectory with the same name as the
364collection within the 364collection within the
365.B sup 365.B sup
366subdirectory of the 366subdirectory of the
367.I base directory. 367.I base directory.
368If it exists it may contain any of the following files: 368If it exists it may contain any of the following files:
369.TP 369.TP
370.B when.\*[Lt]rel-suffix\*[Gt] 370.B when.\*[Lt]rel-suffix\*[Gt]
371This file is automatically updated by 371This file is automatically updated by
372.I sup 372.I sup
373when a collection is successfully upgraded and contains the 373when a collection is successfully upgraded and contains the
374time that the file server, or possibly 374time that the file server, or possibly
375.IR supscan , 375.IR supscan ,
376created the list of files in the upgrade list. 376created the list of files in the upgrade list.
377.I Sup 377.I Sup
378will send this time to the file server for generating the list 378will send this time to the file server for generating the list
379of files that have been changed on the repository machine. 379of files that have been changed on the repository machine.
380.TP 380.TP
381.B refuse 381.B refuse
382This file contains a list of files and directories, one per line, that 382This file contains a list of files and directories, one per line, that
383the client is not interested in that should not be upgraded. 383the client is not interested in that should not be upgraded.
384.TP 384.TP
385.B lock 385.B lock
386This file is used by 386This file is used by
387.I sup 387.I sup
388to lock a collection while it is being upgraded. 388to lock a collection while it is being upgraded.
389.I Sup 389.I Sup
390will get exclusive access to the lock file using 390will get exclusive access to the lock file using
391.IR flock (2), 391.IR flock (2),
392preventing more than one 392preventing more than one
393.I sup 393.I sup
394from upgrading the same collection at the same time. 394from upgrading the same collection at the same time.
395.TP 395.TP
396.B last.\*[Lt]rel-suffix\*[Gt] 396.B last.\*[Lt]rel-suffix\*[Gt]
397This file contains a list of files and directories, one per line, that 397This file contains a list of files and directories, one per line, that
398have been upgraded by 398have been upgraded by
399.I sup 399.I sup
400in the past. This information is used when the 400in the past. This information is used when the
401.B delete 401.B delete
402option, or the 402option, or the
403.B -d 403.B -d
404flag is used to locate files previously upgraded that are no longer 404flag is used to locate files previously upgraded that are no longer
405in the collection that should be deleted. 405in the collection that should be deleted.
406.i0 406.i0
407.DT 407.DT
408.PP 408.PP
409 409
410Each file collection must also be described in one or more supfiles. 410Each file collection must also be described in one or more supfiles.
411When 411When
412.I sup 412.I sup
413is executed, it reads the specified supfile to determine what file 413is executed, it reads the specified supfile to determine what file
414collections and releases to upgrade. 414collections and releases to upgrade.
415Each collection-release set is described by a single 415Each collection-release set is described by a single
416line of text in the supfile; this line must contain the name of the 416line of text in the supfile; this line must contain the name of the
417collection, and possibly one or more options separated by spaces. 417collection, and possibly one or more options separated by spaces.
418The options are: 418The options are:
419.TP 419.TP
420.BI release= releasename 420.BI release= releasename
421If a collection contains multiple releases, you need to specify which 421If a collection contains multiple releases, you need to specify which
422release you want. You can only specify one release per line, so 422release you want. You can only specify one release per line, so
423if you want multiple releases from the same collections, you will need 423if you want multiple releases from the same collections, you will need
424to specify the collection more than once. In this case, you should use 424to specify the collection more than once. In this case, you should use
425the 425the
426.I use-rel-suffix 426.I use-rel-suffix
427option in the supfile 427option in the supfile
428to keep the last and when files for the two releases separate. 428to keep the last and when files for the two releases separate.
429.TP 429.TP
430.BI base= directory 430.BI base= directory
431The usual default name of the base directory for a collection is 431The usual default name of the base directory for a collection is
432described below (see FILES); if you want to specify another 432described below (see FILES); if you want to specify another
433directory name, use this option specifying the desired 433directory name, use this option specifying the desired
434directory. 434directory.
435.TP 435.TP
436.BI prefix= directory 436.BI prefix= directory
437Each collection may also have an associated 437Each collection may also have an associated
438.I prefix directory 438.I prefix directory
439which is used instead of the base directory to specify in what 439which is used instead of the base directory to specify in what
440directory files within the collection will be placed. 440directory files within the collection will be placed.
441.TP 441.TP
442.BI host= hostname 442.BI host= hostname
443.br 443.br
444.ns 444.ns
445.TP 445.TP
446.BI hostbase= directory 446.BI hostbase= directory
447.br 447.br
448.I System 448.I System
449collections are supported by the system maintainers, and 449collections are supported by the system maintainers, and
450.I sup 450.I sup
451will automatically find out the name of the host machine and 451will automatically find out the name of the host machine and
452base directory on that machine. 452base directory on that machine.
453However, you can also upgrade 453However, you can also upgrade
454.I private 454.I private
455collections; you simply specify with these options 455collections; you simply specify with these options
456the 456the
457.I hostname 457.I hostname
458of the machine containing the files and the 458of the machine containing the files and the
459.I directory 459.I directory
460used as a base directory for the file server on that machine. 460used as a base directory for the file server on that machine.
461Details of setting up a file collection are given in the section 461Details of setting up a file collection are given in the section
462below. 462below.
463.TP 463.TP
464.BI login= accountid 464.BI login= accountid
465.br 465.br
466.ns 466.ns
467.TP 467.TP
468.BI password= password 468.BI password= password
469.br 469.br
470.br 470.br
471.ns 471.ns
472.TP 472.TP
473.BI crypt= key 473.BI crypt= key
474.br 474.br
475Files on the file server may be protected, and network transmissions 475Files on the file server may be protected, and network transmissions
476may be encrypted. 476may be encrypted.
477This prevents unauthorized access to files via 477This prevents unauthorized access to files via
478.IR sup . 478.IR sup .
479When files are not accessible to the default account (e.g. 479When files are not accessible to the default account (e.g.
480the 480the
481.B anon 481.B anon
482anonymous account), you can specify an alternative 482anonymous account), you can specify an alternative
483.I accountid 483.I accountid
484and 484and
485.I password 485.I password
486for the file server to use on the repository host. 486for the file server to use on the repository host.
487Network 487Network
488transmission of the password will be always be encrypted. 488transmission of the password will be always be encrypted.
489You can 489You can
490also have the actual file data encrypted by specifying a 490also have the actual file data encrypted by specifying a
491.IR key ; 491.IR key ;
492the file collection on the repository must specify the same key 492the file collection on the repository must specify the same key
493or else 493or else
494.I sup 494.I sup
495will not be able to upgrade files from that collection. 495will not be able to upgrade files from that collection.
496In this case, the default account used by the file server on the 496In this case, the default account used by the file server on the
497repository machine will be the owner of the encryption key 497repository machine will be the owner of the encryption key
498file (see FILES) rather than the 498file (see FILES) rather than the
499.B anon 499.B anon
500anonymous account. 500anonymous account.
501.TP 501.TP
502.BI notify= address 502.BI notify= address
503If you use the 503If you use the
504.B 504.B
505-m 505-m
506option to receive log messages by mail, you can have the mail 506option to receive log messages by mail, you can have the mail
507sent to different user, possibly on another host, than the user 507sent to different user, possibly on another host, than the user
508running the sup program. 508running the sup program.
509Messages will be sent to the specified 509Messages will be sent to the specified
510.IR address , 510.IR address ,
511which can be any legal netmail address. 511which can be any legal netmail address.
512In particular, a 512In particular, a
513project maintainer can be designated to receive mail for that 513project maintainer can be designated to receive mail for that
514project's file collection from all users running 514project's file collection from all users running
515.I sup 515.I sup
516to upgrade that collection. 516to upgrade that collection.
517.TP 517.TP
518.B backup 518.B backup
519As described above under the 519As described above under the
520.B -b 520.B -b
521flag. 521flag.
522.TP 522.TP
523.B delete 523.B delete
524As described above under the 524As described above under the
525.B -d 525.B -d
526flag. 526flag.
527.TP 527.TP
528.B execute 528.B execute
529As described above under the 529As described above under the
530.B -e 530.B -e
531flag. 531flag.
532.TP 532.TP
533.B keep 533.B keep
534As described above under the 534As described above under the
535.B -k 535.B -k
536flag. 536flag.
537.TP 537.TP
538.B old 538.B old
539As described above under the 539As described above under the
540.B -o 540.B -o
541flag. 541flag.
542.TP 542.TP
543.B use-rel-suffix 543.B use-rel-suffix
544Causes the release name to be used as a suffix to the 544Causes the release name to be used as a suffix to the
545.I last 545.I last
546and 546and
547.I when 547.I when
548files. This is necessary whenever you are supping more than one 548files. This is necessary whenever you are supping more than one
549release in the same collection. 549release in the same collection.
550.i0 550.i0
551.DT 551.DT
552.PP 552.PP
553.SH "PREPARING A FILE COLLECTION REPOSITORY" 553.SH "PREPARING A FILE COLLECTION REPOSITORY"
554A set of files residing on a repository must be prepared before 554A set of files residing on a repository must be prepared before
555.I sup 555.I sup
556client processes can upgrade those files. 556client processes can upgrade those files.
557The collection must 557The collection must
558be given a 558be given a
559.I name 559.I name
560and a 560and a
561.I base directory. 561.I base directory.
562If it is a private collection, client users 562If it is a private collection, client users
563must be told the name of the collection, repository host, and 563must be told the name of the collection, repository host, and
564base directory; 564base directory;
565these will be specified in the supfile via the 565these will be specified in the supfile via the
566.B host 566.B host
567and 567and
568.B hostbase 568.B hostbase
569options. 569options.
570For a system-maintained file collection, entries must be 570For a system-maintained file collection, entries must be
571placed into the host list file and directory list file as described 571placed into the host list file and directory list file as described
572in 572in
573.IR supservers (8). 573.IR supservers (8).
574 574
575Within the base directory, a subdirectory must be created called 575Within the base directory, a subdirectory must be created called
576.B sup . 576.B sup .
577Within this directory there must be a subdirectory for each 577Within this directory there must be a subdirectory for each
578collection using that base directory, whose name is the name of the 578collection using that base directory, whose name is the name of the
579collection; within each of these directories will be a 579collection; within each of these directories will be a
580list file and possibly a prefix file, a host file, an encryption key 580list file and possibly a prefix file, a host file, an encryption key
581file, a log file and 581file, a log file and
582a scan file. 582a scan file.
583The filenames are listed under FILES below. 583The filenames are listed under FILES below.
584.TP 584.TP
585.B prefix 585.B prefix
586Normally, all files in the collection are relative to the base directory. 586Normally, all files in the collection are relative to the base directory.
587This file contains a single line which is the name of a directory to be 587This file contains a single line which is the name of a directory to be
588used in place of the base directory for file references. 588used in place of the base directory for file references.
589.TP 589.TP
590.B host 590.B host
591Normally, 591Normally,
592all remote host machines are allowed access to a file collection. 592all remote host machines are allowed access to a file collection.
593If you wish to restrict access to specific remote hosts for this 593If you wish to restrict access to specific remote hosts for this
594collection, 594collection,
595put each allowed hostname on a 595put each allowed hostname on a
596separate line of text in this file. 596separate line of text in this file.
597If a host has more than one name, only one of its names needs to be 597If a host has more than one name, only one of its names needs to be
598listed. 598listed.
599The name 599The name
600.B LOCAL 600.B LOCAL
601can be used to grant access to all hosts on the local 601can be used to grant access to all hosts on the local
602network. The host name may be a numeric network address 602network. The host name may be a numeric network address
603or a network name. If a crypt appears on the same line as 603or a network name. If a crypt appears on the same line as
604the host name, that crypt will be used for that host. Otherwise, 604the host name, that crypt will be used for that host. Otherwise,
605the crypt appearing in the 605the crypt appearing in the
606.I crypt 606.I crypt
607file, if any will be used. 607file, if any will be used.
608.TP 608.TP
609.B crypt 609.B crypt
610If you wish to use the 610If you wish to use the
611.I sup 611.I sup
612data encryption mechanism, create an encryption file containing, 612data encryption mechanism, create an encryption file containing,
613on a single line of text, the desired encryption key. 613on a single line of text, the desired encryption key.
614Client 614Client
615processes must then specify the same key with the 615processes must then specify the same key with the
616.B crypt 616.B crypt
617option in the supfile or they will be denied access to the files. 617option in the supfile or they will be denied access to the files.
618In addition, actual network transmission of file contents and 618In addition, actual network transmission of file contents and
619filenames will be encrypted. 619filenames will be encrypted.
620.TP 620.TP
621.B list 621.B list
622This file describes the actual list of files to be included in this 622This file describes the actual list of files to be included in this
623file collection, in a format described below. 623file collection, in a format described below.
624.TP 624.TP
625.B releases 625.B releases
626This file describes any releases that the collection may have. Each 626This file describes any releases that the collection may have. Each
627line starts with the release name and then may specify any of the following 627line starts with the release name and then may specify any of the following
628files: 628files:
629.I prefix=\*[Lt]dirname\*[Gt] 629.I prefix=\*[Lt]dirname\*[Gt]
630to use a different parent directory for the files in this release. 630to use a different parent directory for the files in this release.
631.I list=\*[Lt]listname\*[Gt] 631.I list=\*[Lt]listname\*[Gt]
632to specify the list of files in the release. 632to specify the list of files in the release.
633.I scan=\*[Lt]scanfile\*[Gt] 633.I scan=\*[Lt]scanfile\*[Gt]
634must be used in multi-release collections that are scanned to keep 634must be used in multi-release collections that are scanned to keep
635the scan files for the different releases separate. 635the scan files for the different releases separate.
636.I host=\*[Lt]hostfile\*[Gt] 636.I host=\*[Lt]hostfile\*[Gt]
637to allow different host restrictions for this release. 637to allow different host restrictions for this release.
638.I next=\*[Lt]release\*[Gt] 638.I next=\*[Lt]release\*[Gt]
639used to chain releases together. This has the effect of making one release 639used to chain releases together. This has the effect of making one release
640be a combination of several other releases. If the same file appears in 640be a combination of several other releases. If the same file appears in
641more than one chained release, the first one found will be used. 641more than one chained release, the first one found will be used.
642If these files are not specified for a release the default names: 642If these files are not specified for a release the default names:
643prefix,list,scan and host will be used. 643prefix,list,scan and host will be used.
644.TP 644.TP
645.B scan 645.B scan
646This file, created by 646This file, created by
647.IR supscan , 647.IR supscan ,
648is the list of filenames that correspond to the instructions in the 648is the list of filenames that correspond to the instructions in the
649list file. The scan file is only used for frequently updated file 649list file. The scan file is only used for frequently updated file
650collections; it makes the file server run much faster. See 650collections; it makes the file server run much faster. See
651.IR supservers (8) 651.IR supservers (8)
652for more information. 652for more information.
653.TP 653.TP
654.B lock 654.B lock
655As previously mentioned, this file is used to indicate that the 655As previously mentioned, this file is used to indicate that the
656collection should be locked while upgrades are in progress. All 656collection should be locked while upgrades are in progress. All
657file servers will try to get shared access to the lock file with 657file servers will try to get shared access to the lock file with
658.IR flock (2). 658.IR flock (2).
659.TP 659.TP
660.B logfile 660.B logfile
661If a log file exists in the collection directory, the file server 661If a log file exists in the collection directory, the file server
662will append the last time an upgrade was successfully completed, 662will append the last time an upgrade was successfully completed,
663the time the last upgrade started and finished, and the name of 663the time the last upgrade started and finished, and the name of
664the host requesting the upgrade. 664the host requesting the upgrade.
665.i0 665.i0
666.DT 666.DT
667.PP 667.PP
668It should be noted that 668It should be noted that
669.I sup 669.I sup
670allows several different named collections to use the same base 670allows several different named collections to use the same base
671directory. Separate encryption, remote host access, and file lists 671directory. Separate encryption, remote host access, and file lists
672are used for each collection, since these files reside in subdirectories 672are used for each collection, since these files reside in subdirectories
673.I \*[Lt]basedir\*[Gt]/sup/\*[Lt]coll.name\*[Gt]. 673.I \*[Lt]basedir\*[Gt]/sup/\*[Lt]coll.name\*[Gt].
674 674
675The list file is a text file with one command on each line. 675The list file is a text file with one command on each line.
676Each command 676Each command
677contains a keyword and a number of operands separated by spaces. 677contains a keyword and a number of operands separated by spaces.
678All filenames in the list file are evaluated on the repository machine 678All filenames in the list file are evaluated on the repository machine
679relative to the host's base directory, or prefix directory if one is 679relative to the host's base directory, or prefix directory if one is
680specified, and on your machine with respect 680specified, and on your machine with respect
681to the base, or prefix, directory for the client. 681to the base, or prefix, directory for the client.
682The 682The
683.I filenames 683.I filenames
684below (except \fIexec-command\fR) 684below (except \fIexec-command\fR)
685may all include wild-cards and meta-characters as used by 685may all include wild-cards and meta-characters as used by
686.IR csh (1) 686.IR csh (1)
687including *, ?, [...], and {...}. The commands are: 687including *, ?, [...], and {...}. The commands are:
688.TP 688.TP
689\fBupgrade\fR \fIfilename\fR ... 689\fBupgrade\fR \fIfilename\fR ...
690The specified file(s) (or directories) will be included in the list 690The specified file(s) (or directories) will be included in the list
691of files to be upgraded. 691of files to be upgraded.
692If a directory name is given, it recursively 692If a directory name is given, it recursively
693includes all subdirectories and files within that directory. 693includes all subdirectories and files within that directory.
694.TP 694.TP
695\fBalways\fR \fIfilename\fR ... 695\fBalways\fR \fIfilename\fR ...
696The always command is identical to upgrade, except that omit and 696The always command is identical to upgrade, except that omit and
697omitany commands do not affect filenames specified with the always 697omitany commands do not affect filenames specified with the always
698command. 698command.
699.TP 699.TP
700\fBomit\fR \fIfilename\fR ... 700\fBomit\fR \fIfilename\fR ...
701The specified file(s) (or directories) will be excluded from the 701The specified file(s) (or directories) will be excluded from the
702list of files to be upgraded. 702list of files to be upgraded.
703For example, by specifying 703For example, by specifying
704.B upgrade /usr/vision 704.B upgrade /usr/vision
705and 705and
706.B omit /usr/vision/exp, 706.B omit /usr/vision/exp,
707the generated list 707the generated list
708of files would include all subdirectories and files of /usr/vision 708of files would include all subdirectories and files of /usr/vision
709except /usr/vision/exp (and its subdirectories and files). 709except /usr/vision/exp (and its subdirectories and files).
710.TP 710.TP
711\fBomitany\fR \fIpattern\fR ... 711\fBomitany\fR \fIpattern\fR ...
712The specified patterns are compared against the files in the upgrade 712The specified patterns are compared against the files in the upgrade
713list. If a pattern matches, the file is omitted. The omitany command 713list. If a pattern matches, the file is omitted. The omitany command
714currently supports all wild-card patterns except {...}. Also, the 714currently supports all wild-card patterns except {...}. Also, the
715pattern must match the entire filename, so a leading */, or a trailing /*, 715pattern must match the entire filename, so a leading */, or a trailing /*,
716may be necessary in the pattern. 716may be necessary in the pattern.
717.TP 717.TP
718\fBbackup\fR \fIfilename\fR ... 718\fBbackup\fR \fIfilename\fR ...
719The specified file(s) are marked for backup; if they are upgraded 719The specified file(s) are marked for backup; if they are upgraded
720and the client has specified the 720and the client has specified the
721.B backup 721.B backup
722option in the corresponding 722option in the corresponding
723line of the supfile, then backup copies will be created as described 723line of the supfile, then backup copies will be created as described
724above. 724above.
725Directories may not be specified, and no recursive filename 725Directories may not be specified, and no recursive filename
726construction is performed; you must specify the names of the specific 726construction is performed; you must specify the names of the specific
727files to be backed up before upgrading. 727files to be backed up before upgrading.
728.TP 728.TP
729\fBnoaccount\fR \fIfilename\fR ... 729\fBnoaccount\fR \fIfilename\fR ...
730The accounting information of the specified file(s) will not be 730The accounting information of the specified file(s) will not be
731preserved by 731preserved by
732.IR sup . 732.IR sup .
733Accounting information consists of the owner, 733Accounting information consists of the owner,
734group, mode and modified time of a file. 734group, mode and modified time of a file.
735.TP 735.TP
736\fBsymlink\fR \fIfilename\fR ... 736\fBsymlink\fR \fIfilename\fR ...
737The specified file(s) are to be treated as symbolic links 737The specified file(s) are to be treated as symbolic links
738and will be transferred as such and not followed. By default, 738and will be transferred as such and not followed. By default,
739.I sup 739.I sup
740will follow symbolic links. 740will follow symbolic links.
741.TP 741.TP
742\fBrsymlink\fR \fIdirname\fR ... 742\fBrsymlink\fR \fIdirname\fR ...
743All symbolic links in the specified directory and its 743All symbolic links in the specified directory and its
744subdirectories are to be treated as symbolic links. That 744subdirectories are to be treated as symbolic links. That
745is the links will be transferred and not the files to which 745is the links will be transferred and not the files to which
746they point. 746they point.
747.TP 747.TP
748\fBexecute\fR \fIexec-command\fR (\fIfilename\fR ...) 748\fBexecute\fR \fIexec-command\fR (\fIfilename\fR ...)
749The 749The
750.I exec-command 750.I exec-command
751you specified will be executed on the client process 751you specified will be executed on the client process
752whenever any of the files listed in parentheses are upgraded. 752whenever any of the files listed in parentheses are upgraded.
753A special token, 753A special token,
754.B %s, 754.B %s,
755may be specified in the 755may be specified in the
756.I exec-command 756.I exec-command
757and will be replaced by the name of the file that was upgraded. 757and will be replaced by the name of the file that was upgraded.
758For example, if you say 758For example, if you say
759\fBexecute ranlib %s (libc.a)\fR, 759\fBexecute ranlib %s (libc.a)\fR,
760then whenever libc.a is upgraded, the client machine will execute 760then whenever libc.a is upgraded, the client machine will execute
761.B 761.B
762ranlib libc.a. 762ranlib libc.a.
763As described above, the client must invoke 763As described above, the client must invoke
764.I sup 764.I sup
765with the 765with the
766.B -e 766.B -e
767flag to allow the automatic execution of command files. 767flag to allow the automatic execution of command files.
768.TP 768.TP
769\fBinclude\fR \fIlistfile\fR ... 769\fBinclude\fR \fIlistfile\fR ...
770The specified 770The specified
771.I listfiles 771.I listfiles
772will be read at this point. This is useful 772will be read at this point. This is useful
773when one collection subsumes other collections; the larger collection 773when one collection subsumes other collections; the larger collection
774can simply specify the listfiles for the smaller collections contained 774can simply specify the listfiles for the smaller collections contained
775within it. 775within it.
776.i0 776.i0
777.DT 777.DT
778.PP 778.PP
779The order in which the command lines appear in the list file does not 779The order in which the command lines appear in the list file does not
780matter. Blank lines may appear freely in the list file. 780matter. Blank lines may appear freely in the list file.
781.SH "FILES" 781.SH "FILES"
782Files on the client machine for 782Files on the client machine for
783.IR sup : 783.IR sup :
784.TP 784.TP
785.B /etc/supfiles/coll.list 785.B /etc/supfiles/coll.list
786supfile used for -s flag 786supfile used for -s flag
787.TP 787.TP
788.B /etc/supfiles/coll.what 788.B /etc/supfiles/coll.what
789supfile used for -s flag when -t flag is also specified 789supfile used for -s flag when -t flag is also specified
790.TP 790.TP
791.B /etc/supfiles/coll.host 791.B /etc/supfiles/coll.host
792host name list for system collections 792host name list for system collections
793.TP 793.TP
794\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/last\fR\*[Lt]\fI.release\fR\*[Gt] 794\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/last\fR\*[Lt]\fI.release\fR\*[Gt]
795recorded list of files in collection as of last upgrade 795recorded list of files in collection as of last upgrade
796.TP 796.TP
797\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/lock 797\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/lock
798file used to lock collection 798file used to lock collection
799.TP 799.TP
800\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/refuse 800\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/refuse
801list of files to refuse in collection 801list of files to refuse in collection
802.TP 802.TP
803\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/when\fR\*[Lt]\fI.release\fR\*[Gt] 803\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/when\fR\*[Lt]\fI.release\fR\*[Gt]
804recorded time of last upgrade 804recorded time of last upgrade
805.TP 805.TP
806\fB/usr/sup/\fR\*[Lt]\fIcollection\fR\*[Gt] 806\fB/usr/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]
807default base directory for file collection 807default base directory for file collection
808.i0 808.i0
809.DT 809.DT
810.PP 810.PP
811 811
812Files needed on each repository machine for the file server: 812Files needed on each repository machine for the file server:
813.TP 813.TP
814.B /etc/supfiles/coll.dir 814.B /etc/supfiles/coll.dir
815base directory list for system 815base directory list for system
816collections 816collections
817.TP 817.TP
818\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/crypt 818\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/crypt
819data encryption key for a 819data encryption key for a
820collection. the owner of this file is the 820collection. the owner of this file is the
821default account used when data encryption is specified 821default account used when data encryption is specified
822.TP 822.TP
823\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/host 823\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/host
824list of remote hosts allowed to 824list of remote hosts allowed to
825upgrade a collection 825upgrade a collection
826.TP 826.TP
827\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/list 827\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/list
828list file for a collection 828list file for a collection
829.TP 829.TP
830\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/lock 830\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/lock
831lock file for a collection 831lock file for a collection
832.TP 832.TP
833\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/logfile 833\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/logfile
834log file for a collection 834log file for a collection
835.TP 835.TP
836\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/prefix 836\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/prefix
837file containing the name of the prefix directory 837file containing the name of the prefix directory
838for a collection 838for a collection
839.TP 839.TP
840\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/scan 840\*[Lt]\fIbase-directory\fR\*[Gt]\fB/sup/\fR\*[Lt]\fIcollection\fR\*[Gt]\fB/scan
841scan file for a collection 841scan file for a collection
842.TP 842.TP
843\fB/usr/\fR\*[Lt]\fIcollection\fR\*[Gt] 843\fB/usr/\fR\*[Lt]\fIcollection\fR\*[Gt]
844default base directory for a file collection 844default base directory for a file collection
845.i0 845.i0
846.DT 846.DT
847.PP 847.PP
848.SH "SEE ALSO" 848.SH "SEE ALSO"
849.IR supservers (8) 849.IR supservers (8)
850.br 850.br
851\fIThe SUP Software Upgrade Protocol\fR, S. A. Shafer, 851\fIThe SUP Software Upgrade Protocol\fR, S. A. Shafer,
852CMU Computer Science Department, 1985. 852CMU Computer Science Department, 1985.
853.SH "EXAMPLE" 853.SH "EXAMPLE"
854\*[Lt]example\*[Gt] 854\*[Lt]example\*[Gt]
855.SH "BUGS" 855.SH "BUGS"
856The encryption mechanism should be strengthened, although it's 856The encryption mechanism should be strengthened, although it's
857not trivial. 857not trivial.
 858.Pp
 859.I sup
 860can delete files it should not with the delete option.
 861This is because in the delete pass, it tries to delete all files
 862in the old list that don't exist in the new list.
 863This is a problem when a directory becomes a symlink to a hierarchy
 864that contains the same names.
 865Then sup will cross the symlink and start deleting files and directories
 866from the destination.
 867This is not easily fixed.
 868Don't use sup with symlink/rsymlink and the delete
 869option at the same time or *be careful*!