1*** Notes specific to am-utils version 6.1.5
2
3New amd.conf global parameter: nfs_allow_any_interface.  By default it is
4set to 'no' which means that Amd accepts local NFS packets only from
5127.0.0.1.  If set to 'yes' then Amd will accept local NFS packets from any
6local interface; this is useful on hosts that may have multiple interfaces
7where the system is forced to send all outgoing packets (even those bound to
8the same host) via an address other than 127.0.0.1.
9
10Add support for specifying the host to match in the mount selectors netgrp
11and netgrpd.  Now one can use either netgrp(<group-name>) or
12netgrp(<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
29Support new mount options for type:=pcfs mounts: longname, nowin95,
30shortname, user=N, group=N, mask=N, and dirmask=N.
31
32Two new amd.conf [global] parameters: nfs_retry_interval_toplvl and
33nfs_retransmit_counter_toplvl.  They are similar to nfs_retry_interval and
34nfs_retransmit_counter, and allow you to set the "timeo" and "retrans" NFS
35mount parameters, respectively, but ONLY for Amd's top-level mounts (which
36are NFSv2/UDP currently).  This is useful because on some systems you may
37wish to set these parameters differently than the OS default, so as to
38better 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
66Moved pawd's path-matching functionality into Amd, where it can be done a
67lot more efficiently (we no longer need to construct and send the whole
68mounted tree, only to match small parts of it).  This will lessen the CPU
69and network load on systems that use pawd heavily, and also minimize the
70chance 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
83MAJOR BUG FIXES: Synchronize Amd's view of its file systems with the
84kernel's NFS client-side DNLC/dcache.  Amd changes its view when it reloads
85maps (automatically or via "amq -f") because new map entries could be added,
86old one removed, or existing ones changed.  Amd also changes its view when a
87simple entry has expired and was flushed, or was forced out via "amq -u".
88Amd was not updating the mtime of its parent directory (often the amd
89automount point): this resulted in the kernel re-using cached entries, which
90are now possibly stale.  Many users had seen this problem in the form of
91occasional ESTALE errors, or dangling/broken automounted symlinks,
92especially on systems under heavy use.  To tell the kernel to ignore (flush)
93its 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
95unfortunately it was using time(2) which only provides a one-second
96resolution clock: this was fine a decade ago, but not good enough on today's
97fast systems; using only a one-second resolution clock meant that on busy
98systems that invoke Amd many times a second, some rapidly changing entries
99do not get flushed from the kernel, and the kernel thus uses stale entries.
100The solution to all of these was to rework the whole clock timer updates to
101use gettimeofday(), using a micro-second resolution timer, and to use that
102time whenever Amd needs to update an mtime/atime/ctime of any node.
103Finally, 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
106Warning: some OSs, we discovered, are incapable of turning off their
107NFS attribute cache entirely.  This means that Amd cannot work fully
108reliability on these systems, not under heavy load.  This is documented in
109detail in the README.attrcache file included with this distribution.
110
111Include test-attrcache script to test the NFS attribute cache behavior using
112Amd.
113
114Tell syslog not to log automatically to /dev/console; it's unfriendly.  If
115user 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
127New 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
129attempt to use them if it gets any of three serious error conditions when
130trying to unmount an existing mount point or mount on top of one: EIO,
131ESTALE, or EBUSY.  This could be useful to recover from serious conditions
132such as hardware failure of mounted disks, or NFS servers which are down
133permanently, were migrated, or changed their IP address.  Only
134"type:=toplvl" mounts hung with EBUSY are forcibly unmounted using this
135option: this is useful to ensure that a new Amd can mount itself even if a
136previous Amd died and left its mount points hung, or to force Amd to
137shutdown cleanly, even if some processes (i.e., user shells) have their CWD
138on Amd's own mount point.  This functionality is available for Linux, BSD44
139systems, Solaris, OSF/1, and partially for AIX.
140
141New 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
143startup.  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
145the 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
171Also, if you want to know what's new in 6.1 compared to 6.0.x, it's
172EVERYTHING 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
176Remove alloca from am-utils, and rewrite code that used it.
177
178Assorted 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
207For NetBSD systems, $os used to say "netbsdelf1" or "netbsdelf2."  Now it
208just 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
225Minor fix to configure.in.  Reran bootstrap to get a working configure
226script that indeed checks for certain Linux nfs/autofs headers.
227
228*** Notes specific to am-utils version 6.1-rc2
229
230New amd.conf global parameter: normalize_slashes (default to "yes").  If set
231to "no," then Amd will not condense repeated slashes or remove trailing ones
232from strings representing pathnames.  This is sometimes useful with SMB
233mounts, which often require multiple slash characters in pathnames.
234
235Using a custom version of strlcpy instead of strncpy (but only where it
236makes sense), to minimize string overflow changes.  Audited all use of
237strncpy/strlcpy to ensure safety.
238
239On Apple machines, use "powerpc" for $arch, instead of "Power Macintosh".
240Also, use sw_vers to find out more appropriate OS name (macosx) and OS
241version (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
874in 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
883options specified at all, then use /etc/amd.conf by default.
884
885- some variables' values are now compared case-insensitive as per specs,
886such as host names, domain names, and more.
887
888- NIS service uses a new isup() function to detect if the service is up
889before using it.  Used to ensure amd doesn't clear the existing maps before
890reloading 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
897RES_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
906such that it matches the type:=ARG as well.  Free names afs/dfs for Andrew
907F/S and Distributed F/S.
908
909- checkpoint config.guess several times during the long configure, so that
910if it is aborted midway, the bulk of the features discovered will be re-read
911from 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,
943and 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
946cachedir.  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
951locally attached networks (by either name or number), not just the first two
952interfaces.
953
954- new program pawd (and man page for it) --- Print Automounter Working
955Directory, to print the proper pathname of the cwd or any other pathname,
956adjusted for automounter paths, while avoiding mount points.
957
958- two new switches to amq: -U will force using UDP only; -T will force using
959only TCP to communicate with amd.  If neither (or both) are specified, amq
960will try TCP first, and if that failed, will try UDP.
961
962- support syslog facilities, using "amd -l syslog:facility".  Old behavior
963when 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 '/'
967characters.
968
969- amd -D trace now also includes as much of struct nfs_args as can be
970displayed.  Useful in figuring out what the kernel really gets during a
971mount(2), as opposed to what the /etc/mnttab file says.  -D trace also
972traces the xdr_* functions.
973
974- support for versions of shared libamu version.  upped version from 0.0.0
975to 1.0.0.  each am-utils release that will change the library will also
976update its version.
977
978- amd/ops_TEMPLATE.c: a new template file for those brave enough to try and
979implement a new amd file system.  Includes comments and other info useful
980for developers.
981
982- if localconfig.h exists in the current directory during the run of
983configure, it is included in all am-utils sources.  This allows courageous
984developers to make certain modifications during compilations, and especially
985turn 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
1019ARG.  Corrected documentation for amd -o ARG --- it overrides the operating
1020system *version* and not the name as the docs incorrectly stated.
1021
1022- logging now behave more like syslog: will not print repeated strings, but
1023rather a count such as "last message repeated N times".  (N will not exceed
1024100.)
1025
1026- restructured the code which deals with the numerous possible fields and
1027flags that are set in struct nfs_args.  That code was moved to libamu as
1028the 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)
1043of 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
1051ARG.  Allows you to use the hlfs redirector using paths other than user's
1052home directories.
1053
1054- use a replacement yp_all for some systems (irix) known to have a broken
1055one which leaks a file descriptor each time called.
1056
1057- if remote NFS server is down or does not support portmap, downgrade
1058machine 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
1089client to a remote (or local) host.
1090
1091- conf/mtab/mtab_file.c: use flock() to lock the file, and fcntl() if
1092flock() 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
1153used to specify an alternate RPC program number for amd to un/register.
1154Allowed 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
1165a shared version of libamu, and link with it accordingly, by specifying
1166--enable-shared to configure.  Default is --enable-static --disable-shared,
1167and you can mix and match.  See "INSTALL" file for listing of systems on
1168which shared libraries seem to build and work fine.
1169
1170- new option: amq -p, will return the PID of the running amd (local or
1171remote).  Uses a new RPC message.  Useful especially in "ctl-amd stop".
1172
1173- new configure script options --enable-ldflags, for specifying -L flags.
1174The 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
1177ldap_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
1188versions 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
1220show 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
1229sec) 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.
1262Also includes a new script amd2ldif to convert amd maps into plain text LDAP
1263object files.
1264
1265- the following amd.conf variables: browsable_dirs, map_options, map_type,
1266mount_type, and search_path --- can now be specified in [global] as well as
1267the map entry itself.  That way you can declare them only once in [global],
1268and 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
1275the <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
1284amu_global_options) that's easy to identify and enhance.  Also migrated
1285several flags that used be an integer each into one unsigned integer that's
1286used 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
1298See scripts/amd.conf-sample for help and some explanation.  This new conf
1299file 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
1312optionally compiled.  Code made dynamic and can be turned on or off from the
1313amd.conf file.  This code is off by default, and must be turned on by
1314amd.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
1327automatic determination of proto/vers combination.
1328
1329- conf/nfs_prot/nfs_prot_*.h: all of the NFS protocol header files had to be
1330redone, because of the osf4 port.  OSF used very different names for these,
1331and they conflicted with am-utils'.  The only solution was to more or less
1332conform 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,
1341buggy version of get_myaddress(), esp. SunOS and Irix.  Note that Solaris
1342x86 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
1362Will fall back to V2 mounts when V3 is not available.  Will also use TCP if
1363possible, 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
1400limited UDP message size.
1401
1402- "amq -M" code is disabled by default because it is insecure.  It is
1403rarely 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,
1419mk-amd-map, and fixmount.
1420
1421- Shared libraries: a new configure option --enable-shared will build a
1422shared libamu.so, link applications with it, and use it.  Reduces binary
1423sizes by 20-30%.  This is the first step towards loadable modules, as many
1424changes had to be done to be able to compile and use PIC code.  This is code
1425that obviously needs to be generalized to be able to build shared libraries
1426on many other platforms.  It was only tested on Solaris 5.5.1.
1427
1428- the file INSTALL contains the latest compatibility table of which
1429platforms am-utils configures, compiles and runs on.
1430
1431- Trimmed down the size of the configure script.  Some tests that are not
1432used 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
1452modules (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
1457entries in aux/acconfig.h.
1458
1459- make more sense of systems that have full, partial, or no NFS protocol
1460headers.
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
1473I 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
1481Amq, wire-test, and "amd -v" work on all of the above.  A real running amd
1482was only tested and confirmed working on
1483
1484	i386-pc-solaris2.5.1
1485	sparc-sun-solaris2.5.1
1486
1487Many things are still missing: options, features, etc.  But for now, let's
1488concentrate on getting the basic functionality working on the more popular
1489systems.
1490