]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/amd/NEWS
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / amd / NEWS
1 *** Notes specific to am-utils version 6.1.5
2
3 New amd.conf global parameter: nfs_allow_any_interface.  By default it is
4 set to 'no' which means that Amd accepts local NFS packets only from
5 127.0.0.1.  If set to 'yes' then Amd will accept local NFS packets from any
6 local interface; this is useful on hosts that may have multiple interfaces
7 where the system is forced to send all outgoing packets (even those bound to
8 the same host) via an address other than 127.0.0.1.
9
10 Add support for specifying the host to match in the mount selectors netgrp
11 and netgrpd.  Now one can use either netgrp(<group-name>) or
12 netgrp(<group-name>,<host-name>).
13
14 - Bugs fixed:
15         * handle old-style filehandles correctly (for mount points longer
16           than 28 chars)
17         * don't turn off attribute cache for regular NFS mounts (improves
18           performance)
19         * detect G/DBM support via gdbm_compat library (Debian)
20         * detect NDBM support in libc (FreeBSD 6)
21
22 - minor new ports:
23         i386-unknown-freebsd6.1 (RELEASE)
24         i386-unknown-openbsd3.9
25         powerpc-apple-darwin8.6.0
26
27 *** Notes specific to am-utils version 6.1.4
28
29 Support new mount options for type:=pcfs mounts: longname, nowin95,
30 shortname, user=N, group=N, mask=N, and dirmask=N.
31
32 Two new amd.conf [global] parameters: nfs_retry_interval_toplvl and
33 nfs_retransmit_counter_toplvl.  They are similar to nfs_retry_interval and
34 nfs_retransmit_counter, and allow you to set the "timeo" and "retrans" NFS
35 mount parameters, respectively, but ONLY for Amd's top-level mounts (which
36 are NFSv2/UDP currently).  This is useful because on some systems you may
37 wish to set these parameters differently than the OS default, so as to
38 better tune Amd's responsiveness under heavy scheduler loads.
39
40 - minor new ports:
41         i386-pc-linux-fc5 (Fedora Core 5)
42         i386-pc-linux-suse10.1 (beta 8)
43         i386-unknown-freebsd6.0 (RELEASE)
44         i386-unknown-netbsdelf2.1
45         i386-unknown-netbsdelf3.0 (RELEASE)
46         i386-unknown-openbsd3.8
47         powerpc-apple-darwin8.5.0
48
49 - Bugs fixed:
50         * one serious memory leak in amfs_generic (caught by Coverity)
51         * assorted potential (but rare) NULL pointer dereferences (Coverity)
52         * correctly print nfs_args->addr info (sin_family/port/addr)
53         * pawd should resolve path repeatedly until no more to do
54         * use-after-free bug in amfs_lookup_mntfs (Coverity)
55
56 *** Notes specific to am-utils version 6.1.3
57
58 - Bugs fixed:
59         * amq should de-register properly on exit
60         * convert all sprintf to safer xsnprintf
61         * convert all strcat to safer xstrlcat
62         * convert all strcpy to safer xstrlcpy
63         * fix three buffer overruns in expand_op (amd/opts.c)
64         * pawd was trying UDP only, now try TCP if UDP failed
65
66 Moved pawd's path-matching functionality into Amd, where it can be done a
67 lot more efficiently (we no longer need to construct and send the whole
68 mounted tree, only to match small parts of it).  This will lessen the CPU
69 and network load on systems that use pawd heavily, and also minimize the
70 chance that we exceed default or hard-coded UDP/TCP RPC packet sizes.
71
72 *** Notes specific to am-utils version 6.1.2.1
73
74 - Bugs fixed:
75         * properly turn off the attrcache in freebsd and openbsd
76         * can turn off attrcache on netbsd, but need kernel patch, see
77           README.attrcache
78         * pawd goes into an infinite loop on type:=auto
79         * consistent search for file system mnttab/mount names
80
81 *** Notes specific to am-utils version 6.1.2
82
83 MAJOR BUG FIXES: Synchronize Amd's view of its file systems with the
84 kernel's NFS client-side DNLC/dcache.  Amd changes its view when it reloads
85 maps (automatically or via "amq -f") because new map entries could be added,
86 old one removed, or existing ones changed.  Amd also changes its view when a
87 simple entry has expired and was flushed, or was forced out via "amq -u".
88 Amd was not updating the mtime of its parent directory (often the amd
89 automount point): this resulted in the kernel re-using cached entries, which
90 are now possibly stale.  Many users had seen this problem in the form of
91 occasional ESTALE errors, or dangling/broken automounted symlinks,
92 especially on systems under heavy use.  To tell the kernel to ignore (flush)
93 its old entries for an directory, the mtime of the directory must be updated
94 (monotonically incremented).  Amd was indeed doing so in several places, but
95 unfortunately it was using time(2) which only provides a one-second
96 resolution clock: this was fine a decade ago, but not good enough on today's
97 fast systems; using only a one-second resolution clock meant that on busy
98 systems that invoke Amd many times a second, some rapidly changing entries
99 do not get flushed from the kernel, and the kernel thus uses stale entries.
100 The solution to all of these was to rework the whole clock timer updates to
101 use gettimeofday(), using a micro-second resolution timer, and to use that
102 time whenever Amd needs to update an mtime/atime/ctime of any node.
103 Finally, we now update the mtime in places that were never updated before
104 (when a whole map is flushed or a single entry times out).
105
106 Warning: some OSs, we discovered, are incapable of turning off their
107 NFS attribute cache entirely.  This means that Amd cannot work fully
108 reliability on these systems, not under heavy load.  This is documented in
109 detail in the README.attrcache file included with this distribution.
110
111 Include test-attrcache script to test the NFS attribute cache behavior using
112 Amd.
113
114 Tell syslog not to log automatically to /dev/console; it's unfriendly.  If
115 user really wants to, they can set it in /etc/syslog.conf.
116
117 - minor new ports:
118         i386-pc-linux-deb3.1
119         i386-unknown-netbsdelf3.0
120         powerpc-apple-darwin8.2.0
121
122 - bugs fixed:
123         * minor documentation corrections
124
125 *** Notes specific to am-utils version 6.1.1
126
127 New amd.conf global parameter: forced_unmounts (default to "no").  If set to
128 "yes," and the client OS supports forced or lazy unmounts, then Amd will
129 attempt to use them if it gets any of three serious error conditions when
130 trying to unmount an existing mount point or mount on top of one: EIO,
131 ESTALE, or EBUSY.  This could be useful to recover from serious conditions
132 such as hardware failure of mounted disks, or NFS servers which are down
133 permanently, were migrated, or changed their IP address.  Only
134 "type:=toplvl" mounts hung with EBUSY are forcibly unmounted using this
135 option: this is useful to ensure that a new Amd can mount itself even if a
136 previous Amd died and left its mount points hung, or to force Amd to
137 shutdown cleanly, even if some processes (i.e., user shells) have their CWD
138 on Amd's own mount point.  This functionality is available for Linux, BSD44
139 systems, Solaris, OSF/1, and partially for AIX.
140
141 New amd.conf global parameter: truncate_log (default to "no").  If set to
142 "yes", then Amd will truncate the log file (if it's a regular file) on
143 startup.  This could be useful when conducting extensive testing on Amd maps
144 (or Amd itself) and you don't want to see log data from a previous run in
145 the same file.
146
147 - minor new ports:
148         i386-pc-linux-fc4
149         i386-pc-linux-suse9.3
150         i386-pc-linuxoldld-deb3.1
151
152 - bugs fixed:
153         * safer mtab handling for Linux (locks + handles /proc/mounts)
154         * small compile problems on Solaris 6 (rpcvers_t)
155         * small compile problems on HPUX 10 (h_errno)
156         * possibly missing definition of INADDR_NONE in wire.c
157         * extern for sleep(3) may be missing on older gcc systems
158         * updated nfs_args structure on aix4.
159         * possible running off end of exported_ap[] array.
160         * buffer overflow in pawd.
161         * aix4 clean build.
162         * use strlcat/snprintf in a few places for safety.
163         * recover from IP address change of a down NFS server
164         * don't discard restarted mntfs that was used.
165
166 *** Notes specific to am-utils version 6.1
167
168 - bugs fixed:
169         * set timeo/retrans for type:=nfs only if user asked
170
171 Also, if you want to know what's new in 6.1 compared to 6.0.x, it's
172 EVERYTHING below this line, up to "6.0.4."  Yes, that's a lot of stuff.
173
174 *** Notes specific to am-utils version 6.1-rc7
175
176 Remove alloca from am-utils, and rewrite code that used it.
177
178 Assorted minor code cleanups.
179
180 - minor new ports:
181         alpha-unknown-linux-gentoo1.4.16
182         alphaev56-dec-osf4.0f (using both cc and gcc)
183         mips-sgi-irix6.5 (using both cc and gcc)
184         mips-unknown-linux-gentoo1.4.16
185         sparc64-unknown-linux-gentoo1.4.16
186
187 - bugs fixed:
188         * getwire() detects networks correctly on OSF/1
189
190 *** Notes specific to am-utils version 6.1-rc6
191
192 - minor new ports:
193         i386-pc-linux-deb3.0
194         i386-pc-linux-gentoo1.4.16
195         i386-pc-linux-suse9.2
196         i386-unknown-freebsd5.4
197         i386-unknown-netbsdelf2.0.2
198         i386-unknown-openbsd3.7
199         powerpc-unknown-linux-yellowdog2.3
200
201 - bugs fixed:
202         * minor compile error of nfs_subr.c on some systems.
203         * AIX 5.2/5.3 PPC compile fixes.
204
205 *** Notes specific to am-utils version 6.1-rc5
206
207 For NetBSD systems, $os used to say "netbsdelf1" or "netbsdelf2."  Now it
208 just says "netbsd."
209
210 - minor new ports:
211         powerpc-apple-darwin7.9.0
212
213 - bugs fixed:
214         * silly (but nasty) null pointer dereferencing
215         * improved fix for '-opts' syntax for resetting map options
216
217 *** Notes specific to am-utils version 6.1-rc4
218
219 - bugs fixed:
220         * check for "macosx" in M4 macros properly
221         * minor memory leaks (thanks to Valgrind)
222
223 *** Notes specific to am-utils version 6.1-rc3
224
225 Minor fix to configure.in.  Reran bootstrap to get a working configure
226 script that indeed checks for certain Linux nfs/autofs headers.
227
228 *** Notes specific to am-utils version 6.1-rc2
229
230 New amd.conf global parameter: normalize_slashes (default to "yes").  If set
231 to "no," then Amd will not condense repeated slashes or remove trailing ones
232 from strings representing pathnames.  This is sometimes useful with SMB
233 mounts, which often require multiple slash characters in pathnames.
234
235 Using a custom version of strlcpy instead of strncpy (but only where it
236 makes sense), to minimize string overflow changes.  Audited all use of
237 strncpy/strlcpy to ensure safety.
238
239 On Apple machines, use "powerpc" for $arch, instead of "Power Macintosh".
240 Also, use sw_vers to find out more appropriate OS name (macosx) and OS
241 version (10.3.x) than uname(3) reports.
242
243 - minor new ports:
244         powerpc64-unknown-linux-rhel4
245         powerpc64-unknown-linux-sles9
246
247 - bugs fixed:
248         * pawd handles all file systems
249         * fix double-free in type:=nfsx
250         * timeo and retrans shouldn't be set for type:=toplvl
251         * fix inconsistency in handling filehandle generation number
252         * document proper use of hosts.allow (don't spawn)
253         * single dash '-' map entry now resets the defaults
254
255 *** Notes specific to am-utils version 6.1-rc1
256
257 - minor new ports:
258         i386-pc-linux-fc2 (Fedora Core 2).
259         i386-pc-linux-fc3 (Fedora Core 3).
260         i386-pc-linux-rhel3
261         i386-pc-linux-rhel4
262         i386-pc-linux-suse8.2
263         i386-pc-linux-suse9.1
264         i386-pc-solaris2.10
265         i386-unknown-freebsd4.8
266         i386-unknown-freebsd4.9
267         i386-unknown-freebsd4.10
268         i386-unknown-freebsd4.11
269         i386-unknown-freebsd5.1 (5.1-RELEASE)
270         i386-unknown-freebsd5.2 (5.2-RELEASE)
271         i386-unknown-freebsd5.2.1 (5.2.1-RELEASE)
272         i386-unknown-freebsd5.3 (5.3-RELEASE)
273         i386-unknown-freebsd6.0 (6.0-CURRENT-SNAP001)
274         i386-unknown-netbsdelf1.6.1
275         i386-unknown-netbsdelf2.0
276         i386-unknown-openbsd3.6
277         ia64-hp-hpux11.20
278         ia64-unknown-linux-rhel4
279         mipsel-unknown-linux-rhPS2 (Linux on Sony PlayStation 2)
280         powerpc-apple-darwin7.6.0
281         powerpc-apple-darwin7.7.0
282         powerpc-apple-darwin7.8.0
283         powerpc-ibm-aix5.2.0.0
284         powerpc-ibm-aix5.3.0.0
285         sparc-sun-solaris2.10
286         sparc64-unknown-linux-deb3.0
287         x86_64-unknown-linux-rh2.9.5AS
288
289 - support for executable maps ala Sun automounter.  Set map_type=exec in
290   amd.conf, and map_name to a program/script that takes a key as argv[1],
291   and returns key-value pair on stdout.  See also exec_map_timeout [global]
292   parameter which defines how many seconds (default 10 sec) Amd will wait
293   for an executable map program to return output before timing out.  See
294   am-utils manual for full details.
295
296 - new amd.conf parameter "nfs_allow_insecure_port".  Used to work around
297   bugs in certain kernels, which cause them to try and talk to amd from
298   unprivileged ports.
299
300 - new amd.conf parameter: localhost_address.  Used to override the localhost
301   (often 127.0.0.1) address Amd uses to connect to for the local NFS server
302   and RPC server.
303
304 - new amd.conf [global] parameter: domain_strip (default "yes").  If set to
305   "no," Amd won't strip domain names from host names, which is useful if
306   your Amd maps are served by multiple domains and you want to tell from the
307   logs which exact host did what.
308
309 - new amd.conf [global] parameter: auto_attrcache (default to 0).  Sets
310   Amd's own NFS attribute-cache timeout in seconds.  A value of 0 turns off
311   attribute caching, meaning that Amd will be consulted via a kernel-RPC
312   each time someone stat's the mount point (which could be abused as a
313   denial-of-service attack).  If you're concerned, set this to something
314   greater than zero (a value of 1 second is currently recommended).
315   Warning: if you set this option to any non-zero value, especially a large
316   value, and you get ESTALE errors on your particular OS, then set this
317   value back to 0 seconds.
318
319 - four new amd.conf [global] parameters, similar to nfs_retry_interval and
320   nfs_retransmit_counter, which allow you to set the "timeo" and "retrans"
321   NFS mount parameters, respectively.  Now you can set those parameters
322   globally and separately for UDP vs. TCP, using any of these:
323   nfs_retry_interval_udp, nfs_retransmit_counter_udp nfs_retry_interval_tcp,
324   and nfs_retransmit_counter_tcp.
325
326 - new amd.conf [global] parameter: preferred_amq_port.  Allows you to select
327   the UDP+TCP port that Amd's amq service will use with the RPC portmapper.
328   Useful with firewalls and NAT'ed environments.
329
330 - new amd.conf option "debug_mtab_file".  Allows user to define the mtab
331   file during debug-mtab mode.  The default path is "/tmp/mnttab".
332
333 - new function selector xhost(ARG) which will match ARG against the current
334   host name.  This works even if ARG is a CNAME (unlike the host==ARG
335   selector).
336
337 - support restarting the automounter's own mount points (only over NFS,
338   for now).
339
340 - fully support WebNFS as per RFC 2054.  It now tries v3/TCP first, falling
341   back to v2/UDP if this doesn't work.  The "webnfs" pseudo-mount options
342   has been renamed (again) to "public" to match Solaris 2.
343
344 - restructured the restarting of already-mounted filesystems, in the process
345   also fixing a problem with restarting nfsx components.
346
347 - support escaped slashes, needed for SMB mounts.  Use '\\\/\\\/' in a
348   string to get a double slash.
349
350 - amd -v now prints domain, host, and hostd values: foo, example.com, and
351   foo.example.com, respectively.
352
353 - On Linux, if umount(2) failed with EIO or ESTALE, try the new umount2(2)
354   system call with MNT_FORCE+MNT_DETACH.  This could be quite helpful to
355   unmounting hung mount points that otherwise cannot be fixed without a
356   reboot.
357
358 - The ping=N mount option now works.  N defaults to 30 seconds for all NFS
359   servers.  It can now be set to any value for each server separately.
360   Setting it to a large value can reduce the amount of NFS_NULL chatter on
361   your network considerably, especially in large sites.  Setting this to -1
362   will turn off pings for that server (useful in NFS-HA setups).  Setting N
363   to 0 will pick the default ping value in Amd (currently 30 seconds).  Note
364   that if you have multiple Amd entries using the same file server, and each
365   entry sets a different value of N, then each time Amd mounts a new entry,
366   the ping value will be re-evaluated (and updated, turned off, or turned
367   back on as needed).  Note that NFS_NULL pings are sent for both UDP and
368   TCP mounts, because even a hung TCP mount can cause user processes to
369   hang.
370
371 - file system inheritance code restructured, so it's no longer a pseudo file
372   system, but actually integrated into Amd (as it should have been).
373
374 - for type:=program, the "umount" program doesn't have to be defined; it'll
375   default to "unmount ${fs}".
376
377 - "amd -v" now prints the distribution name if it's known (e.g., rh9, fc3,
378   suse8, etc.).
379
380 - bugs fixed:
381         * various memory management problems (leaks, etc)
382         * fixed nfsx support
383         * fixed a race involving late replies to network queries which
384           arrive after the file system has already been mounted
385         * recognize pcfs_args_t fields in FreeBSD 5
386         * recognize other mount types in pawd: host, linkx, and nfsx
387         * allow exactly one of umount and unmount in type:=program
388         * race condition between calls to mntctl() on AIX
389         * plock/mlockall wasn't inherited by fork(); moved after
390           daemonizing.
391         * fix inconsistency between Socket and TLI RPC timeouts.
392         * don't warn when couldn't rmdir a dir with a readonly ancestor.
393         * avoid hangs of amd in ctl-amd (must chdir to /)
394         * workaround occasional daemonizing problems (parent won't die)
395         * don't hang on exit if debug_options=mtab was used
396         * utimeout=N mount option works with non-nfs types (ufs, pcfs, etc.)
397         * SEGV (null pointer deref) in type:=program and type:=cachefs
398         * unmount_on_exit of type:=program caused amd to hang
399         * match amd2ldif output with ldap.schema
400
401 *** Notes specific to am-utils version 6.1b4
402
403 - minor new ports:
404         i686-apple-darwin6.6
405
406 - speed up the recovery of inherited (restarted) filesystems by using the
407   proper waiting channels
408
409 - added support for mounting webnfs filesystems, see entry below. It doesn't
410   do any probing currently, so it will default to v2/UDP unless another
411   version and/or protocol are explicitly specified.
412
413 - pseudo-mount option "ignore_portmapper" renamed to "webnfs"
414
415 - bugs fixed:
416         * properly time out autofs filesystems on Linux
417         * link mounts with relative targets weren't working on autofs
418         * the link side of the nfsl file system wasn't working on autofs
419         * umount code was accidentally turning all symlinks into directories
420           during attempted umounts, causing stale filehandles
421         * various minor build fixes for "impossible" configurations
422         * prevent ldap code from dereferencing a null pointer
423
424 *** Notes specific to am-utils version 6.1b3
425
426 - new amd.conf option autofs_use_lofs, set by default to "yes".  "yes" means
427   using in-place mounts (lofs, bind mounts, etc.), thus utilizing one of
428   Autofs's main advantages.  "no" means using symlinks instead, which has
429   the "/bin/pwd" problem and certain efficiency issues on Solaris 2.6+ and
430   is also not supported on Solaris Autofs v1 and derivatives; however, the
431   autofs code that uses symlinks is simpler and more thoroughly tested.
432
433 - new amd.conf option map_default (can be used in [global] and overwritten
434   in the per-map section).  This will overwrite the /defaults entry of the
435   map itself, to allow people to set defaults in amd.conf (useful when you
436   cannot control your amd maps, or you'd rather not modify them globally).
437
438 - for type:=program, you can use either unmount:=XXX or umount:=XXX (but not
439   both).  This new 'unmount' name is an alias for convenience.
440
441 - fixed the "multiple matching sub-entries in a map entry" semantics to try
442   mounting those sub-entries one by one, until either one succeeds or all
443   fail.  The old semantics of trying to mount everything in parallel and use
444   the one that mounted fastest hasn't worked in a long time; in fact, 6.0
445   currently simply ignores all but the first matching sub-entry.
446
447 - made amd fail much faster (instantly, in fact) if the remote server
448   doesn't have a functional portmapper or NFS service.  Also reduced the
449   total timeout to 3 seconds for a completely downed server.
450
451 - new pseudo-mount option "ignore_portmapper"; not very useful currently,
452   will make more sense when we also accept hard-coded ports for mountd and
453   nfsd.
454
455 - amd will no longer query the portmapper for all possible NFS versions and
456   protocols if the user requested to use specific ones.
457
458 - increased the major number for the library, so that 6.0 and 6.1 can't
459   share libraries anymore.
460
461 - support tcpd/libwrap tcpwrappers.  If your system supports libwrap, then
462   you can use /etc/hosts.allow and /etc/hosts.deny to control remote Amq
463   access to Amd.  The new amd.conf parameter use_tcpwrappers is set to "yes"
464   by default.
465
466 - support NULL entries in Hesiod maps, if they start with a ".".
467
468 - code reorganization
469
470 - documentation cleanup, corrections, and general updates.  Better
471   references to all man pages.  Support newer texi2html.  Proper building of
472   DVI and PSI files.  Allow building of am-utils manual in one long Web
473   page.
474
475 - minor new ports:
476
477         ia64-unknown-linux-rh2.1AS (Red Hat Itanium Advanced Server)
478         i386-unknown-freebsd5.0 (5.0-RELEASE)
479         sparc64-unknown-linux-suse7.3
480         i386-unknown-netbsdelf1.6.1
481         i386-unknown-openbsd3.3
482         i386-pc-solaris2.9
483
484 - bugs fixed:
485
486         * autofs mode on Linux was segfaulting on a silly error (and noone
487           complained, which proves that I'm probably the only one testing
488           these beta releases, tsk tsk).
489         * fixed handling of host entries over autofs.
490         * fixed handling of nfsl entries over autofs.
491         * the matching in find_mntfs() was causing problems for inherited
492           filesystems, so make an exception for them. Tighten the
493           matching even more, to take into account the f/s type as well.
494         * recognize xlatecookie mnttab option on netbsd
495         * document Solaris lex bug (use flex)
496         * document AIX 5.x NFS bug (need patch)
497         * document Solaris 8 autofs version change (need to fix system
498           header file)
499         * ensure lex doesn't run out of output slots
500         * support GNU flex-2.5.31+
501         * force version.texi to be rebuilt unconditionally
502         * mk-amd-map open db file exclusively (security)
503         * turn off maintainer-only rules in distros
504         * don't core dump if log_file is NULL (Solaris)
505         * don't include malloc.h if stdlib.h exists
506         * recognize file system failures (EIO) upon reading file maps
507
508 *** Notes specific to am-utils version 6.1b2
509
510 - new mount flag "softlookup", which determines how amd will respond to
511   lookups of NFS shares already mounted (return a valid symlink or return
512   EIO). The default, if "softlookup" is not specified, depends on whether the
513   mount is "soft" or "hard".
514
515 - return EIO instead of ENOENT if amd thinks the server is down; this allows
516   well-written applications to sleep and retry the operation.
517
518 - minor new ports:
519
520         i386-apple-darwin6.0
521         i386-pc-linux-rh8.0
522         ia64-unknown-linux-rh2.1AW
523         sparc-sun-solaris2.9
524
525 - automatic support for loop mounts on Linux (deprecates the "loop" mount
526   option)
527
528 - new amd.conf parameter ldap_proto_version (default 2) for setting the LDAP
529   protocol version to use.
530
531 - bugs fixed:
532
533         * redundancy mode (multiple servers for the same share) wasn't working
534         * non-autofs mode had some rather nasty hangs on downed file servers
535         * double-free'ing problem in assign_error_mntfs and free_continuation
536         * free'ing non-malloc'ed memory in amfs_auto_mount
537         * late server ping replies were not ignored
538         * amfs_auto_lookup_mntfs wasn't propagating errors up to callers
539         * autofs-v4 on Solaris 9 works
540         * handle std{in,out,err} correctly when releasing controlling tty
541           (for real this time)
542         * don't cast pointers between enum_t and u_long, it doesn't work on
543           64-bit big-endian platforms
544         * fix compile problem with mlockall() on Darwin
545
546 *** Notes specific to am-utils version 6.1b1
547
548 - Major Autofs work
549         Partial support for Sun Autofs v1
550         Documented known problems with Sun Autofs v1 (possible deadlocks)
551         Fixes for Sun Autofs v2/v3
552         Preliminary support for Sun Autofs v4 (Solaris 9)
553         Kernel-based expirations for Linux Autofs
554
555 - Minor new ports:
556         powerpc-ibm-aix5.1.0.0
557         i386-unknown-netbsd1.6A
558
559 - Work around IBM's NFSv3 ABI change in aix4.3
560
561 - trivial regression test suite started: run "make check" on a built
562   am-utils to execute tests.  Currently only one test which checks to see if
563   "amd -v" executes correctly.
564
565 - new command line option "amd -A arch" to overwrite the value of $arch.
566
567 - bugs fixed:
568
569         * Linux loop mounts of ISO images
570         * assorted LDAP fixes
571         * strerror not found on some systems
572         * small fixes for hpux9 and aix43
573         * exclude ldap/hesiod support unless both libraries+headers exist
574         * fully support "xlatecookie" mount option
575         * security: if -D noamq option, don't listen on socket.
576
577 *** Notes specific to am-utils version 6.1a5:
578
579 - browsable_dirs support for Solaris autofs, *without* mount storms!
580
581 - new amd.conf global parameter: map_reload_interval (default 1 hour).
582   Determines how often Amd checks to see if maps have changed at the source
583   (and then reloading only those that have changed).
584
585 - "amd -v" now lists bug-reporting address.
586
587 - assorted code cleanups and porting to use latest versions of GNU
588   Autotools.
589
590 - opts:=loop works for type:=cdfs, for mounting ISO-9660 files on Linux.
591
592 - bugs fixed:
593
594         * fixed sublink support in Linux autofs (broken in a4)
595         * hlfsd takes uid 0's home from root's passwd entry instead of
596           defaulting to '/'
597         * (not really our bug) Linux ignores the microseconds field in
598           mtime, so hlfsd and amd need to increment the seconds field all
599           the time to prevent symlink caching
600         * generic map parsing bug which was rejecting a numerical mount
601           option if it was the last option in the string.
602         * file descriptor leak in Linux autofs.
603         * "nolock" is an NFS mount option, not a generic one.
604         * use mlockall(2) on systems that have it, for plock=yes.  Now
605           pinning Amd's pages in memory works on Linux.
606         * ctl-amd/ctl-hlfsd correctly refer to @sysconfdir@ for alternate
607           location of configuration files.
608
609 *** Notes specific to am-utils version 6.1a4:
610
611 - full autofs support for Solaris 2.[67], including symlinks, sublinks and
612   direct mounts
613
614 - fixed mount/umount deadlock in Linux autofs
615
616 - fixed sublinks in Linux autofs
617
618 - support for network/netmask pairs in the in_network() selector
619
620 - support disabling LDAP and Hesiod support using configure
621
622 - forward-ported all the fixes from the stable branch (MacOS X support,
623   minor Linux fixes)
624
625 - bind-mount support for type==link and type==lofs with Linux 2.4+
626
627 - FiST lofs support under Linux (also in 6.0.6s2)
628
629 *** Notes specific to am-utils version 6.1a3:
630
631 - various things from the 6.0 branch:
632         compile fixes for Linux 2.4-ac and 2.2.19pre+
633         Darwin/Rhapsody/OS X support
634         much reduced configure script (works around a bug in Darwin's cpp)
635
636 *** Notes specific to am-utils version 6.1a2:
637
638 - working autofs support for Solaris 2.[67], but incomplete
639
640 - forward-ported all the changes up to 6.0.5s2
641
642 - removed support for amq -M
643
644 - known bugs
645         nfsx support is broken
646         linux NFS codes fixes
647         NFS cache aliasing fixes
648         lots of stuff ported from 6.0 branch
649
650 *** Notes specific to am-utils version 6.1a1:
651
652 - working autofs (v3 and v4) support for Linux!
653
654 - forward-ported all the changes in 6.0.4s4
655
656 - bugs fixed
657         client-side fail-over to NFSv2/UDP
658
659 - known bugs
660         autofs v3 will probably break with host maps
661
662 *** Notes specific to am-utils version 6.0.4:
663
664 - NFSv3 support for Linux and HPUX-11
665
666 - new amd.conf [global] options:
667         nfs_vers: force all NFS mounts to version 2 or 3
668         nfs_proto: force all NFS mounts to udp or tcp
669
670 - new debug_options (amd -D):
671         hrtime: turns on high-resolution timer if available
672         readdir: traces browsable_dirs code
673         xdrtrace: traces XDR routines
674         (trace: only traces NFS and RPC)
675
676 - new amq options:
677         -H: shows usage
678         -w: translate getpwd() into an Amd path
679
680 - new map syntax:
681         ${dollar}: to include a literal '$' in assignments
682
683 - new "opts:=" options:
684         ver3: turns on NFS version 3 on some systems (linux)
685
686 - updated or minor new ports:
687         alpha-dec-osf4.0f
688         alphaev6-dec-osf5.0
689         i386-pc-linux-rh6.2
690         i386-unknown-freebsd3.4
691
692 - bugs fixed:
693         symlink mtime fixes to avoid u/mount race conditions
694         update amq -s failed umounts count correctly
695         linux compiles even if efs is available
696         linux works with mount(2) option "intr"
697         linux works with pcfs and cdfs
698         handle std{in,out,err} correctly when releasing controlling tty
699         browsable_readdir works on 64-bit kernel architectures
700         irs/wire routines compile for bsdi{2,3,4}
701
702 *** Notes specific to am-utils version 6.0.3:
703
704 - updated or minor new ports:
705         hppa1.0-hp-hpux11.00
706         i386-pc-bsdi4.1
707         i386-unknown-netbsd1.4.1
708         sparc-sun-solaris2.8
709         i*86-pc-linux-gnu-rh6.1
710         (some preparations for Compaq Tru64)
711
712 - new variables ${uid} and ${gid}, return the numeric UID/GID of the user
713   (not root) who invokes an amd pathname.  Similar to what hlfsd does.
714
715 - automake now uses automatic dependency tracking
716
717 - new mount options: optionstr, noexec, nomnttab
718
719 - maps of type:=auto are now browsable (using map option "browsable")
720
721 - ctl-amd has "status" argument (same as RedHat)
722
723 - bugs fixed:
724         document buggy AIX 4.3 plock() behavior
725         fixes to stale file handle on symlinks
726         reduce race conditions upon rapid umount/mount sequences
727         use vsnprintf, more secure than vsprintf
728         more assorted and smaller bugs
729
730 *** Notes specific to am-utils version 6.0.2:
731
732 - safe map reloads: when a map needs to be reloaded, it is reloaded into a
733   temporary copy first.  Only if the reload was completely successful, Amd
734   discards the old map and uses the new one.  Otherwise Amd continues to use
735   the old maps.  This should help a lot with transient NIS problems.
736
737 - amq -f now also forces a (safe) map reload, but only if the timestamp on
738   the maps was updated.
739
740 - two new selector variables: ${vendor} and ${full_os}, which are the same
741   as the output seen in "amd -v".
742
743 - documentation fixes and updates
744
745 - updated or minor new ports:
746         i386-unknown-freebsdelf3.3
747
748 - support 'ignore' flags (automntfs) in bsdi-4.1
749
750 - bugs fixed:
751         expn.pl uses correct sockaddr_in() not, pack()
752         make sure configure --enable-*args take an argument
753         don't busy-loop trying to rebind to ldap servers
754         use vsnprintf, not vsprintf (security)
755
756 *** Notes specific to am-utils version 6.0.1:
757
758 - updated or minor new ports:
759         i386-pc-bsdi4.0.1
760         i386-unknown-freebsdelf3.0
761         i386-unknown-freebsdelf3.1
762         i386-unknown-freebsdelf3.2
763         i386-unknown-freebsdelf4.0
764         i386-unknown-netbsd1.4
765         i386-unknown-openbsd2.5
766         powerpc-unknown-linux-gnu
767
768 - automount2amd added, a new script to convert Sun automount maps to Amd maps
769
770 - new map function netgrpd(ARG), same as netgrp() but matches FQHN
771
772 - 'ignore' is a generic mount option
773
774 - hesiod info service isup() function to check if service is up
775
776 - more Y2K fixes (see README.y2k for the full story)
777
778 - using alloca.c on systems that don't have it (hpux9 with /bin/cc)
779
780 - configure script reduced in size by using M4/sh loops instead of repeated
781   entries
782
783 - documentation updates
784
785 - too many bugs fixed to list here:
786         'addopts' option works with 'remopts' as well as 'opts'
787         AIX can perform NFS V.3 mounts explicitly
788         NIS is_up fixed, especially for NIS+ running in compatibility mode
789         amd -v incorrectly listing file systems that don't really work
790         amd's own mounts use reserved ports if possible
791         browsable directories works for Linux 2.3 (NFS cookies)
792         bsd44 systems check for isofs flags
793         bsd44 systems check for new options: norrio, gens, and extatt
794         buildall works better on Ultrix's /bin/sh
795         compile and build on Linux kernels 2.2 and newer
796         compile and build on RedHat Linux 6.0 (glibc 2.1)
797         compile and build on Solaris 7 (with or without vendor LDAP)
798         completely eliminate all of amd's amq -M code, when not enabled
799         correctly interpret failure code of unmount of type:=program
800         don't create autofs listener service unless used
801         don't list or process amq's -M option unless feature was turned on
802         don't turn on/off noconn option if it was already in that state
803         ldap info service: don't strcmp null strings
804         lostaltmail correctly sets struct sockaddr_in
805         make sure Linux systems have configured kernel headers
806         test for bsize/namlen fields in nfs_args (linux mount versions 2/3)
807         turn off broken NFS V.3 support for HPUX
808         use getifaddrs() on bsd44 systems makes wire.c more reliable
809         use matching NFS rsize/wsize on Linux 2.0 and 2.[123] kernels.
810         verify that RPC requests come from reserved, privileged local ports
811         warn when Linux kernel headers mismatch with running kernel
812         pawd works for type:=nfsl too
813
814 *** Notes specific to am-utils version 6.0:
815
816 - updated or minor new ports:
817         hppa2.0w-hp-hpux11.00,
818         i386-pc-bsdi4.0
819         i386-unknown-freebsd2.2.8
820         i386-unknown-netbsd1.3.3
821         i386-unknown-openbsd2.4
822         mips-sgi-irix6.5
823         powerpc-ibm-aix4.3.1.0
824         i386-unknown-freebsd3.0 now supports nfs v.3
825
826 - ctl-amd and ctl-hlfsd now compatible with RedHat's chkconfig utility
827
828 - ctl-amd stop will now wait until amd is down
829
830 - libamu.so completely self contained --- does not export any symbols which
831   must be defined by the process linking with it.  This is so shared
832   libraries could be supported on systems that have restrictive shared
833   libraries.
834
835 - use latest autoconf, automake, and libtool (off of cygnus' CVS server) to
836   support shared libraries on many more platforms.
837
838 - posix code cleanups
839
840 - bugs fixed:
841         case insensitive host match in type:=nfsl
842         correct swapped args to kill(2)
843         try to avoid a race condition b/t mounting and unmounting
844         yp_all support is found in libnsl in RH-5.1 systems
845
846 *** Notes specific to am-utils version 6.0b1:
847
848 - updated or minor new ports:
849         - *-pc-linux-gnu (glibc2 systems such as RedHat 5.1)
850         - sparc-sun-solaris2.7
851         - i386-pc-solaris2.7
852         - i386-unknown-freebsd3.0 (official release, post 4.4lite port)
853         - sparc64-unknown-linux-gnu (RH 5.1 on Sun Sparc Ultra)
854
855 - bugs fixed:
856         - major memory leak in processing of /defaults
857         - core dump if map_type given in amd.conf doesn't exist
858         - memory leak in replacement yp_all
859         - don't access uninitialized memory in DU 4.0
860         - other smaller bugs, see ChangeLog
861
862 *** Notes specific to am-utils version 6.0a16:
863
864 - new ports:
865         hppa1.0-hp-hpux11.00 (works, not NFS V.3 due to missing headers)
866         mips-dec-ultrix4.3 (working, unverified)
867
868 - new minor ports:
869         i386-pc-bsdi3.1
870         i386-unknown-netbsd1.3.1
871         alpha-dec-osf2.1
872
873 - new options addopt:=ARG will "smartly" add and override options specified
874 in opts:=
875
876 - new amd.conf options:
877         pid_file: specifies the file to store the PID
878         hesiod_base: specifies the base for the Hesiod service
879         unmount_on_exit: if 'yes' will attempt to unmount all file systems
880                 when amd exits.
881
882 - amd.conf file is parsed after all other command line options.  If no
883 options specified at all, then use /etc/amd.conf by default.
884
885 - some variables' values are now compared case-insensitive as per specs,
886 such as host names, domain names, and more.
887
888 - NIS service uses a new isup() function to detect if the service is up
889 before using it.  Used to ensure amd doesn't clear the existing maps before
890 reloading them, unless the remote info service is working.
891
892 - new cdfs mount options: rrip, noversion, defperm, nodefperm (OSF)
893
894 - support efs/xfs separately on irix
895
896 - new -D info trace option to turn on info specific debugging, such as
897 RES_DEBUG for hesiod services.
898
899 - document updates and fixes
900
901 - new file MIRRORS lists official mirror sites (also in am-utils home page)
902
903 - new file BUGS lists known amd/OS bugs
904
905 - source restructuring: rename all Amd file-systems' sources to amfs_ARG.c
906 such that it matches the type:=ARG as well.  Free names afs/dfs for Andrew
907 F/S and Distributed F/S.
908
909 - checkpoint config.guess several times during the long configure, so that
910 if it is aborted midway, the bulk of the features discovered will be re-read
911 from the config.cache file.
912
913 - more systems support shared libraries (libtool 1.2)
914
915 - using automake 1.3 + more fixes
916
917 - bugs fixed:
918         use dynamic buffer for list of interfaces, not fixed size
919         output of amd -H duplicated if >2 interfaces
920         -D mem for hlfsd not on by default (so it will daemonize)
921         linux looks for ext2fs before ufs
922         CDFS looks for 'isofs' mount type as well
923         compile on Solaris 2.6 with /opt/SUNWspro/bin/cc
924         various additional fixes which gcc 2.8.x reported
925         print syslog help string based on what's supported
926         correctly ignore loopback interface on SunOS 3.x
927         don't use -lucb for strcasecmp
928         hlfsd's dump file securely written in /usr/tmp/hlfsd.dump.XXXXXX
929         inherit NFS V.3 mounts correctly
930         write pid file securely
931
932 *** Notes specific to am-utils version 6.0a15:
933
934 - new ports:
935         alpha-unknown-linux-gnu: works
936         i386-unknown-netbsd1.3: fully working
937         *-sun-sunos3: compiles, not tested
938
939 - updated ports:
940         m68k-next-nextstep3: cleaner compile, works.
941
942 - new file system type nfsl (NFS Link).  Uses nfs if file system is remote,
943 and link if it is local (based on if $rhost equals the host name).
944
945 - support for Solaris cachefs.  Requires setting fs, rfs, and a new variable
946 cachedir.  See documentation for explanation, examples, and caveats.
947
948 - support negated selector functions such as !exists(/foo/bar)
949
950 - wire, network, netnumber, in_network() selectors now match against all
951 locally attached networks (by either name or number), not just the first two
952 interfaces.
953
954 - new program pawd (and man page for it) --- Print Automounter Working
955 Directory, to print the proper pathname of the cwd or any other pathname,
956 adjusted for automounter paths, while avoiding mount points.
957
958 - two new switches to amq: -U will force using UDP only; -T will force using
959 only TCP to communicate with amd.  If neither (or both) are specified, amq
960 will try TCP first, and if that failed, will try UDP.
961
962 - support syslog facilities, using "amd -l syslog:facility".  Old behavior
963 when using only -l syslog is to use the LOG_DAEMON facility.
964
965 - you may specify browsable_dirs=full, to get a listing of all entries
966 (other than /default), including those with '*' wildcard and '/'
967 characters.
968
969 - amd -D trace now also includes as much of struct nfs_args as can be
970 displayed.  Useful in figuring out what the kernel really gets during a
971 mount(2), as opposed to what the /etc/mnttab file says.  -D trace also
972 traces the xdr_* functions.
973
974 - support for versions of shared libamu version.  upped version from 0.0.0
975 to 1.0.0.  each am-utils release that will change the library will also
976 update its version.
977
978 - amd/ops_TEMPLATE.c: a new template file for those brave enough to try and
979 implement a new amd file system.  Includes comments and other info useful
980 for developers.
981
982 - if localconfig.h exists in the current directory during the run of
983 configure, it is included in all am-utils sources.  This allows courageous
984 developers to make certain modifications during compilations, and especially
985 turn off undesired features (not very recommended).
986
987 - documentation types and updates for all new features, ports, etc.
988
989 - bugs fixed:
990         support NFS mount options grpid and maxgrps
991         nextstep: set NFS success code to 0 (NFS_OK), not 1 (EPERM)
992         bsdi2: set NFS success code to 0 (NFS_OK), not 1 (EPERM)
993         set NFS V.3 mount table names to "nfs" if vers/proto exist
994         use mkstemp() if possible (more secure)
995         ctl-amd looks for amd.conf in ${prefix}/etc after /etc
996         hpux: use "ignore" mount table type
997         openbsd2.2: turn off "noconn" mount option, so only connected used
998         fixed memory leak in hlfsd (don't setpwent after endpwent)
999         all NFS3 systems should have proto/vers mount/amd options
1000         DEBUG_MEM compiles and prints something more useful
1001         uninit_mntfs(): free() mf_private *after* it is used
1002         browsable_readdir: fewer bytes sent back to kernel for each chunk
1003         mount_toplvl: don't free() an automatic variable!
1004         amd should chdir() to / before daemonzing (for core dumps etc)
1005         cdfs should be called 'cdfs' not whatever the mnttab type is
1006         amd -v: don't print "FS:" list twice when >=2 net interfaces
1007
1008 *** Notes specific to am-utils version 6.0a14:
1009
1010 - updated ports:
1011         powerpc-ibm-aix4.2.1.0: NFS V.3 works
1012
1013 - minor new ports:
1014         sparc-sun-sunos4.1.3C
1015         m68k-sun-sunos4.1.1 (sun3)
1016         mips-sgi-irix5.2
1017
1018 - new option to amd, -O ARG, will override the operating systems *name* with
1019 ARG.  Corrected documentation for amd -o ARG --- it overrides the operating
1020 system *version* and not the name as the docs incorrectly stated.
1021
1022 - logging now behave more like syslog: will not print repeated strings, but
1023 rather a count such as "last message repeated N times".  (N will not exceed
1024 100.)
1025
1026 - restructured the code which deals with the numerous possible fields and
1027 flags that are set in struct nfs_args.  That code was moved to libamu as
1028 the functions compute_nfs_args() and compute_automounter_nfs_args().
1029
1030 - bugs fixed:
1031         mnttab name ufs/cdfs/pcfs/etc filesystems corrected
1032         use pmap_ping for amq (a must for secure portmappers, bsdi2/3)
1033         test for xfs (irix) as a disk-based file system
1034         set correct nfs_prot headers for Solaris 2.5
1035         removed stale code from lostaltmail.in
1036         lostaltmail will look for conf file in multiple locations
1037         assorted documentation corrections
1038         amq does not print "get_secure_amd_client" if run as root
1039
1040 *** Notes specific to am-utils version 6.0a13:
1041
1042 - new in_network(ARG) nomadic selector, true if ARG is the name (or number)
1043 of any of this host's network interfaces.
1044
1045 - removed variables primnetname, primnetnum, subsnetname, and subsnetnum.
1046 (Kept "wire" and its alias "network", and "netnumber".)
1047
1048 - include am-utils.dvi and am-utils.ps in distribution.
1049
1050 - hlfsd supports new option -P ARG, for reading password map off of file
1051 ARG.  Allows you to use the hlfs redirector using paths other than user's
1052 home directories.
1053
1054 - use a replacement yp_all for some systems (irix) known to have a broken
1055 one which leaks a file descriptor each time called.
1056
1057 - if remote NFS server is down or does not support portmap, downgrade
1058 machine to NFS V.2 and retry again later.
1059
1060 - bugs:
1061         don't redefine yywrap on systems using a modified flex
1062         use correct "ignore" mnttab/mount option on hpux for df(1)
1063         use nfs_args' fsname field (hpux) to avoid syncer/mount(1) problems
1064         don't add ops_ufs.o twice to Makefile's $(OBJS)
1065         don't fail if autofs listener fails to initialize
1066         hlfsd should test if run as root after usage() and getopt
1067
1068 - minor code cleanups for netbsd
1069
1070 - html docs now in http://www.am-utils.org
1071
1072 - added README file in binaries ftp directory
1073
1074 *** Notes specific to am-utils version 6.0a12:
1075
1076 - minor or updated/broken ports fixed:
1077         hppa1.1-hp-hpux10.10:   compiles, untested (probably works).
1078         hppa1.1-hp-hpux9.05:    compiles, untested (probably works).
1079         hppa1.1-hp-hpux9.07:    compiles, untested (probably works).
1080         m68k-hp-hpux9.00:       compiles, untested (probably works).
1081         rs6000-ibm-aix4.1.4.0:  compiles, untested.
1082         sparc-sun-solaris2.6:   works w/ NFS V.3.
1083         sparc-sun-sunos4.1.4:   compiles, untested (probably works).
1084
1085 - new ports:
1086         powerpc-ibm-aix4.2.1.0: compiles w/ NFS V.3, untested.
1087
1088 - wire-test also checks for combinations of NFS protocol/version from the
1089 client to a remote (or local) host.
1090
1091 - conf/mtab/mtab_file.c: use flock() to lock the file, and fcntl() if
1092 flock() is not available.  (Used to prefer fcntl() over flock().)
1093
1094 - bug fixes:
1095         tli get_nfs_version() gets into an infinite loop
1096         tli get_nfs_version() should time out faster
1097         sockets get_nfs_version() should work w/ secure portmappers
1098         ESTALE returned for NFS mounts for SunOS 4.x fixed
1099         do not exceed HOSTNAMESZ for nfs_args.hostname (get ENAMETOOLONG)
1100         properly initialize some mntent_t fields (fsck, freq, mnt_time)
1101         properly initialize some pcfs_args fields (mask, uid, gid)
1102         properly initialize some cdfs_args fields (ssector)
1103
1104 *** Notes specific to am-utils version 6.0a11:
1105
1106 - bug fixes:
1107         amd could not NFS mount v.2 servers from v.3 clients
1108         hlfsd will only use first occurrence of home dir for same uid
1109
1110 *** Notes specific to am-utils version 6.0a10:
1111
1112 - MAJOR DOCUMENTATION UPDATE! (first time in 6 years)
1113
1114 - new ports:
1115         m68k-next-nextstep3: configures, compiles, not tested.
1116
1117 - preliminary autofs support.  See README.autofs for details.
1118
1119 - new amd.conf [global] yes/no keywords:
1120         show_statfs_entries:    shows number of entries for df(1)
1121         fully_qualified_hosts:  use FQHN for NFS/RPC authentication
1122
1123 - detect down remote hosts faster
1124
1125 - log output of "amd -v" at startup
1126
1127 - removed $osver override for solaris: now it is 2.5.1, not 5.5.1
1128
1129 - buildall will use gmake first if available
1130
1131 - bugs fixed:
1132         amd core dumped when remote host was down
1133         allow up to 1024 entries back from readdir()
1134         amd.conf works even if only [global] option defined
1135         avoid using bad memcmp() implementations
1136         fixed meaning of plock [global] option (was reversed)
1137         hlfsd infinite loop unless compiled with --enable-debug
1138         NIS code works with NIS+ servers in NIS compatibility mode
1139         reset tag fields in amd.conf so they don't carry to other entries
1140
1141 *** Notes specific to am-utils version 6.0a9:
1142
1143 - new ports:
1144         sparc-sun-solaris2.4:
1145                  configures/compiles, and runs (no NFS V3)
1146         i386-unknown-openbsd2.1:
1147                 configures/compiles, runs (NFS V3)
1148
1149 - updated ports:
1150         i486-ncr-sysv4.3.03: configures/compiles, not tested
1151
1152 - Multiple amd support: new amd.conf [global] key "portmap_program" can be
1153 used to specify an alternate RPC program number for amd to un/register.
1154 Allowed numbers range from 300019 to 300029.  A matching new option for amq:
1155 -P prognum, will use an alternate program number to contact.
1156
1157 - man pages:
1158         amd.conf.5      new
1159         mk-amd-map.8    new
1160         amd.8           updated
1161         amq.8           updated
1162         (other man pages required minor updates)
1163
1164 - shared libraries support expanded.  Using GNU libtool-1.0.  You can build
1165 a shared version of libamu, and link with it accordingly, by specifying
1166 --enable-shared to configure.  Default is --enable-static --disable-shared,
1167 and you can mix and match.  See "INSTALL" file for listing of systems on
1168 which shared libraries seem to build and work fine.
1169
1170 - new option: amq -p, will return the PID of the running amd (local or
1171 remote).  Uses a new RPC message.  Useful especially in "ctl-amd stop".
1172
1173 - new configure script options --enable-ldflags, for specifying -L flags.
1174 The older --enable-libs is to be used only for -l options.
1175
1176 - two new LDAP map options for amd.conf: ldap_cache_seconds and
1177 ldap_cache_maxmem.
1178
1179 - new script, am-eject from Debian linux's version of amd-upl102.
1180
1181 - additional passwd map support using var[0-3], from Debian folks.
1182
1183 - hesiod code cleanup.  works for hesiod 1.3 as well as 3.0.
1184
1185 - removed defunct -h option from amd.
1186
1187 - started using automake-1.2.  This fixed several bugs that caused some
1188 versions of yacc/lex and non-GNU make to fail.
1189
1190 - bug fixes:
1191         amd/hlfsd mounts should be hidden from df(1)
1192         use "noconn" option for nfs mounts (multi-homed hosts)
1193         don't use connected sockets on linux before 1.3.10 (from Debian)
1194         better checks for [gn]dbm
1195         forbid excessive retries after timeouts (from Debian)
1196         readdir(): don't skip over map entries with prefix, and include it
1197         more assorted linux fixes from Debian folks
1198         lofs mount on svr4 was broken
1199         find default value of $karch from uname() not $arch
1200         hlfsd failed to mount itself on some little-endians
1201
1202
1203 *** Notes specific to am-utils version 6.0a8:
1204
1205 - new ports:
1206         i386-unknown-netbsd1.2.1: configures/compiles (with NFS V.3), works,
1207                                   but some OS stability problems exist.
1208
1209 - updated ports:
1210         hppa1.1-hp-hpux9.01:
1211                         now tested and working
1212         rs6000-ibm-aix3.2 and rs6000-ibm-aix3.2.5:
1213                         now tested and working
1214
1215 - fixed browsable directories (readdir) code.
1216
1217 - better methods to find amd/hlfsd pid to kill in ctl-{amd,hlfsd}
1218
1219 - "ignore/auto" mount types fixed for irix, sunos, and others, so "df" does not
1220 show amd mounts by default (but GNU df -a does).
1221
1222 - each time amd is built, a new "build" version is incremented.  See amd -v.
1223
1224 - man page for fsinfo added
1225
1226 - empty fillers for new file (bsd44) systems: nullfs, unionfs, umapfs.
1227
1228 - when amd is not running, or portmapper is down, make amq timeout faster (5
1229 sec) than system default, usually 4-5 minutes.
1230
1231 - bug fixes:
1232         hlfsd mount got "protocol not supported"
1233         first regular map in amd.conf didn't inherit global options
1234         make "bad" versions of lex still work with amd/conf_parse.l
1235         check for 'nodev' option, not 'nondev'
1236         typo in "ro" option, and fillers to ac{reg,dir}{min,max} and others
1237         amd.conf parsing done before switching default log/debug options
1238         allow doubly-quoted values in amd.conf
1239         hesiod-reload code cleanup
1240
1241 - assorted code cleanup
1242
1243
1244 *** Notes specific to am-utils version 6.0a7:
1245
1246 - new ports:
1247         i386-unknown-freebsd3.0:
1248                         fully functional with NFS V.3
1249         sparc-sun-solaris2.3:
1250                         fully functional (should work for 2.4)
1251         sparc-unknown-netbsd1.2E:
1252                         configures/compiles (with NFS V.3), untested
1253
1254 - updated ports:
1255         i386-pc-bsdi3.0:
1256                         NFS V.3 works
1257                         look for hesiod in libc
1258         mips-sgi-irix5.3:
1259                         fully functional with NFS V.3
1260
1261 - LDAP support!  New [global] amd.conf options ldap_base and ldap_hostports.
1262 Also includes a new script amd2ldif to convert amd maps into plain text LDAP
1263 object files.
1264
1265 - the following amd.conf variables: browsable_dirs, map_options, map_type,
1266 mount_type, and search_path --- can now be specified in [global] as well as
1267 the map entry itself.  That way you can declare them only once in [global],
1268 and override them as needed per map.
1269
1270 - option "cluster" added to [global] (HPUX clusters ala "amd -C").
1271
1272 - assorted info_hesiod map fixes and cleanup.  removed HESIOD_RELOAD code.
1273
1274 - added netgrp(name) function to amd map syntax to see if current host is in
1275 the <name> netgroup.
1276
1277 - removed unused option "amd -m".
1278
1279 - filled in "tasks" file with todo items.
1280
1281 - filled "COPYING" file with legal stuff.
1282
1283 - cleanup: all global variables are now in one big structure (struct
1284 amu_global_options) that's easy to identify and enhance.  Also migrated
1285 several flags that used be an integer each into one unsigned integer that's
1286 used as a bit-flag.
1287
1288 - big fixes:
1289         xdr_mountres3 should compile only if has NFS V3
1290         lex/yacc macros show full pathname (to tell if correct one runs)
1291         misc fixes/cleanup
1292
1293
1294 *** Notes specific to am-utils version 6.0a6:
1295
1296 - amd configuration file!
1297
1298 See scripts/amd.conf-sample for help and some explanation.  This new conf
1299 file allows for the following new features:
1300
1301         default selectors can be turned on/off globally.
1302         browsable_dirs/readdir() support can be turned on per map.
1303         search paths for file type maps.
1304         can force the map type to file, nis, ndbm, etc. rather than default
1305                 to looking at all of them.
1306         tag each map for "amd -T tag", useful for grouping maps.
1307         can override $os and others (so if you don't like "sunos5" default
1308                 naming, set os=sos5 and it will work with your old maps).
1309         and more goodies...
1310
1311 - enable-default-selectors: No longer turned on by the configure script or
1312 optionally compiled.  Code made dynamic and can be turned on or off from the
1313 amd.conf file.  This code is off by default, and must be turned on by
1314 amd.conf's [global] section.
1315
1316 - new ports:
1317         mips-sgi-irix5.3:       configure/compile, not tested
1318         i486-ncr-sysv4.3.03:    configure/compile, not tested
1319
1320 - updated ports:
1321         alpha-dec-osf4.0:       major code redone
1322         sparc-sun-sunos4.1.3:   fixed and working
1323         mips-sgi-irix6.2:       tested with gcc and "cc -32 -Wl,-woff,84"
1324         mips-sgi-irix6.4:       tested with gcc and "cc -32 -Wl,-woff,84"
1325
1326 - better NFS3 port, including more support for proto= and vers=, and
1327 automatic determination of proto/vers combination.
1328
1329 - conf/nfs_prot/nfs_prot_*.h: all of the NFS protocol header files had to be
1330 redone, because of the osf4 port.  OSF used very different names for these,
1331 and they conflicted with am-utils'.  The only solution was to more or less
1332 conform to OSF4's naming, and change all the others.
1333
1334 - ctl-amd script:
1335         improved to look for amd.conf in $prefix/etc and /etc
1336         better methods for finding the pid of amd to kill
1337
1338 - autoconf support for LDAP.  amd/info_ldap.c needs to be written.
1339
1340 - wire-test also reports the local IP address.  Some systems have multiple,
1341 buggy version of get_myaddress(), esp. SunOS and Irix.  Note that Solaris
1342 x86 has a buggy htonl().
1343
1344 - amd -H prints usage.
1345
1346 - bugs fixed:
1347         minor TLI problem in fwd_socket
1348         mount options properly comma delimited
1349         LIBS is set only to the right set of libraries to include
1350         selectors-on-default code ignored last selector ent in /defaults
1351         assorted code cleanups
1352
1353
1354 *** Notes specific to am-utils version 6.0a5:
1355
1356 - NFS Version 3 support!!!
1357
1358         Works on Solaris 2.5.1.
1359         Minimal testing done on Irix 6.
1360         Compiles cleanly on DU-4.0 but no tests performed.
1361
1362 Will fall back to V2 mounts when V3 is not available.  Will also use TCP if
1363 possible, UDP otherwise.
1364
1365 - Ports to new platforms:
1366
1367         alpha-dec-osf4.0                (not tested)
1368         i386-pc-bsdi3.0                 (tested and working)
1369         i386-unknown-freebsd2.2.1       (tested and working)
1370         sparc-unknown-linux-gnu         (tested and working)
1371
1372 - New scripts added:
1373
1374         amd2sun:        convert amd maps to Sun automount maps
1375         ctl-amd:        script to start/stop/restart amd
1376         ctl-hlfsd:      script to start/stop/restart hlfsd
1377         expn:           expand mail alias (used by hlfsd)
1378         lostaltmail:    redeliver "lost" mail redirected by hlfsd
1379         lostaltmail.conf-sample:        sample conf file for lostaltmail
1380         wait4amd:       run a command once amd is up on a host
1381         wait4amd2die:   wait for an amd process to die before returning
1382
1383 - "amd -v" now includes more info and "amq -v" lists all of it.
1384
1385 - new parser for linux specific mount options.
1386
1387 - Main bugs fixed:
1388
1389         "new toplvl readdir" bug caused amd to dump core
1390         handler for SIGCHLD didn't check for all possible children
1391         hlfsd leaking file descriptors when home file system was full
1392         cdfs/pcfs mounts should not timeout by default
1393         hesiod domain names should be compared in case-insensitive manner
1394         several printfs in amq were missing \n
1395
1396
1397 *** Notes specific to am-utils version 6.0a4:
1398
1399 - amd services both TCP and UDP amq requests.  This will help because of the
1400 limited UDP message size.
1401
1402 - "amq -M" code is disabled by default because it is insecure.  It is
1403 rarely used.  Users who wish to use it should run
1404 "configure --enable-amq-mount".
1405
1406
1407 *** Notes specific to am-utils version 6.0a3:
1408
1409 - New tested ports (configures, compiles, and runs):
1410
1411         i386-unknown-freebsd2.2
1412
1413 - New ports (configures and compiles correctly, not tested):
1414
1415         rs6000-ibm-aix3.2.5
1416         rs6000-ibm-aix4.1.5.0
1417
1418 - More am-utils programs ported to all existing platforms: hlfsd, fsinfo,
1419 mk-amd-map, and fixmount.
1420
1421 - Shared libraries: a new configure option --enable-shared will build a
1422 shared libamu.so, link applications with it, and use it.  Reduces binary
1423 sizes by 20-30%.  This is the first step towards loadable modules, as many
1424 changes had to be done to be able to compile and use PIC code.  This is code
1425 that obviously needs to be generalized to be able to build shared libraries
1426 on many other platforms.  It was only tested on Solaris 5.5.1.
1427
1428 - the file INSTALL contains the latest compatibility table of which
1429 platforms am-utils configures, compiles and runs on.
1430
1431 - Trimmed down the size of the configure script.  Some tests that are not
1432 used anywhere were removed.
1433
1434
1435 *** Notes specific to am-utils version 6.0a2:
1436
1437 - New ports (configures and compiles correctly, not tested):
1438
1439         i386-pc-bsdi2.1
1440         hppa1.1-hp-hpux9.01
1441         hppa1.1-hp-hpux10.20
1442
1443 - new configure options:
1444
1445         --enable-cppflags[=ARG]
1446                 configure/compile with ARG (-I) preprocessor flags
1447         --enable-libs[=ARG]
1448                 configure/compile with ARG (-L/-l) library flags
1449
1450 - file system, mount table entries, and mount type tests can now look in
1451 /lib/modules and /proc/filesystems for statically/dyadically loadable kernel
1452 modules (linux)
1453
1454 - prefer vfat over msdos/pc/etc file system for PCFS.
1455
1456 - moved all fixed headers to include/am_defs.  Left only #define/#undef
1457 entries in aux/acconfig.h.
1458
1459 - make more sense of systems that have full, partial, or no NFS protocol
1460 headers.
1461
1462 - minor fixes for NetBSD (untested platform).
1463
1464 - hesiod map fixed.
1465
1466 - buildall -D: new option to run even stricter developer options.
1467
1468 - lots of other bugs fixed (see ChangeLog).
1469
1470
1471 *** Notes specific to am-utils version 6.0a1:
1472
1473 I have it configure and build correctly for the following systems:
1474
1475         i386-pc-solaris2.5.1
1476         i386-unknown-freebsd2.1.0
1477         mips-sgi-irix6.2
1478         sparc-sun-solaris2.5.1
1479         sparc-sun-sunos4.1.3
1480
1481 Amq, wire-test, and "amd -v" work on all of the above.  A real running amd
1482 was only tested and confirmed working on
1483
1484         i386-pc-solaris2.5.1
1485         sparc-sun-solaris2.5.1
1486
1487 Many things are still missing: options, features, etc.  But for now, let's
1488 concentrate on getting the basic functionality working on the more popular
1489 systems.