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