xref: /netbsd-src/external/bsd/am-utils/dist/NEWS (revision 46f5119e40af2e51998f686b2fdcc76b5488f7f3)
1*** Notes specific to am-utils version 6.2a3
2
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
10
11- Bugs fixed:
12	* reduce annoying warnings from xstrlcpy when expanding options.
13	* translate '*' Sun maps correctly with "${key}"
14
15*** Notes specific to am-utils version 6.2a2
16
17New amd.conf global parameter: nfs_allow_any_interface.  By default it is
18set to 'no' which means that Amd accepts local NFS packets only from
19127.0.0.1.  If set to 'yes' then Amd will accept local NFS packets from any
20local interface; this is useful on hosts that may have multiple interfaces
21where the system is forced to send all outgoing packets (even those bound to
22the same host) via an address other than 127.0.0.1.
23
24Add support for specifying the host to match in the mount selectors netgrp
25and netgrpd.  Now one can use either netgrp(<group-name>) or
26netgrp(<group-name>,<host-name>).
27
28Support new mount options for type:=pcfs mounts: longname, nowin95,
29shortname, user=N, group=N, mask=N, and dirmask=N.
30
31Two new amd.conf [global] parameters: nfs_retry_interval_toplvl and
32nfs_retransmit_counter_toplvl.  They are similar to nfs_retry_interval and
33nfs_retransmit_counter, and allow you to set the "timeo" and "retrans" NFS
34mount parameters, respectively, but ONLY for Amd's top-level mounts (which
35are NFSv2/UDP currently).  This is useful because on some systems you may
36wish to set these parameters differently than the OS default, so as to
37better tune Amd's responsiveness under heavy scheduler loads.
38
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
50
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)
63
64*** Notes specific to am-utils version 6.2a1
65
66MAJOR BUG FIXES: Synchronize Amd's view of its file systems with the
67kernel's NFS client-side DNLC/dcache.  Amd changes its view when it reloads
68maps (automatically or via "amq -f") because new map entries could be added,
69old one removed, or existing ones changed.  Amd also changes its view when a
70simple entry has expired and was flushed, or was forced out via "amq -u".
71Amd was not updating the mtime of its parent directory (often the amd
72automount point): this resulted in the kernel re-using cached entries, which
73are now possibly stale.  Many users had seen this problem in the form of
74occasional ESTALE errors, or dangling/broken automounted symlinks,
75especially on systems under heavy use.  To tell the kernel to ignore (flush)
76its 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
78unfortunately it was using time(2) which only provides a one-second
79resolution clock: this was fine a decade ago, but not good enough on today's
80fast systems; using only a one-second resolution clock meant that on busy
81systems that invoke Amd many times a second, some rapidly changing entries
82do not get flushed from the kernel, and the kernel thus uses stale entries.
83The solution to all of these was to rework the whole clock timer updates to
84use gettimeofday(), using a micro-second resolution timer, and to use that
85time whenever Amd needs to update an mtime/atime/ctime of any node.
86Finally, 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).
88
89Warning: some OSs, we discovered, are incapable of turning off their
90NFS attribute cache entirely.  This means that Amd cannot work fully
91reliability on these systems, not under heavy load.  This is documented in
92detail in the README.attrcache file included with this distribution.
93
94Include test-attrcache script to test the NFS attribute cache behavior using
95Amd.
96
97Tell syslog not to log automatically to /dev/console; it's unfriendly.  If
98user really wants to, they can set it in /etc/syslog.conf.
99
100Moved pawd's path-matching functionality into Amd, where it can be done a
101lot more efficiently (we no longer need to construct and send the whole
102mounted tree, only to match small parts of it).  This will lessen the CPU
103and network load on systems that use pawd heavily, and also minimize the
104chance that we exceed default or hard-coded UDP/TCP RPC packet sizes.
105
106Changed slightly how Amd behaves when you try to change log_options after
107Amd started (options can be turned on/off via "amq -x ARG").  It used to be
108that Amd won't let you turn off options which were on when Amd started.
109That limited users' ability to reduce Amd's logging levels to a minimum.
110Now, Amd will allow you to turn on/off any option, other than the two
111options "fatal" and "error."  Both are on by default and considered
112mandatory.  These two don't produce a lot of log messages, so your logs will
113remain small, but they are important to keep on, so Amd can report serious
114problems (including errors relating to incorrectly setting other log
115options).
116
117Amd now understands a new log_option called "defaults" which is synonymous
118with "fatal,error,user,warning,info" (and is also what logging happens by
119default).
120
121Amd now understands a new debug_option called "defaults" which is synonymous
122with "all,nohrtime,nomtab,noxdrtrace".
123
124Changed the misleading inverted logic of certain debug_options:
125
1261. "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).
130
1312. 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."
135
1363. 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.
141
1424. 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.
144
1455. 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.
150
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.
158
159- minor new ports:
160	i386-pc-linux-deb3.1
161	i386-unknown-netbsdelf3.0 (BETA)
162	powerpc-apple-darwin8.2.0
163
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
176
177*** Notes specific to am-utils version 6.1.1
178
179New 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
181attempt to use them if it gets any of three serious error conditions when
182trying to unmount an existing mount point or mount on top of one: EIO,
183ESTALE, or EBUSY.  This could be useful to recover from serious conditions
184such as hardware failure of mounted disks, or NFS servers which are down
185permanently, were migrated, or changed their IP address.  Only
186"type:=toplvl" mounts hung with EBUSY are forcibly unmounted using this
187option: this is useful to ensure that a new Amd can mount itself even if a
188previous Amd died and left its mount points hung, or to force Amd to
189shutdown cleanly, even if some processes (i.e., user shells) have their CWD
190on Amd's own mount point.  This functionality is available for Linux, BSD44
191systems, Solaris, OSF/1, and partially for AIX.
192
193New 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
195startup.  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
197the same file.
198
199- minor new ports:
200	i386-pc-linux-fc4
201	i386-pc-linux-suse9.3
202	i386-pc-linuxoldld-deb3.1
203
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.
217
218*** Notes specific to am-utils version 6.1
219
220- bugs fixed:
221	* set timeo/retrans for type:=nfs only if user asked
222
223Also, if you want to know what's new in 6.1 compared to 6.0.x, it's
224EVERYTHING below this line, up to "6.0.4."  Yes, that's a lot of stuff.
225
226*** Notes specific to am-utils version 6.1-rc7
227
228Remove alloca from am-utils, and rewrite code that used it.
229
230Assorted minor code cleanups.
231
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
238
239- bugs fixed:
240	* getwire() detects networks correctly on OSF/1
241
242*** Notes specific to am-utils version 6.1-rc6
243
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
252
253- bugs fixed:
254	* minor compile error of nfs_subr.c on some systems.
255	* AIX 5.2/5.3 PPC compile fixes.
256
257*** Notes specific to am-utils version 6.1-rc5
258
259For NetBSD systems, $os used to say "netbsdelf1" or "netbsdelf2."  Now it
260just says "netbsd."
261
262- minor new ports:
263	powerpc-apple-darwin7.9.0
264
265- bugs fixed:
266	* silly (but nasty) null pointer dereferencing
267	* improved fix for '-opts' syntax for resetting map options
268
269*** Notes specific to am-utils version 6.1-rc4
270
271- bugs fixed:
272	* check for "macosx" in M4 macros properly
273	* minor memory leaks (thanks to Valgrind)
274
275*** Notes specific to am-utils version 6.1-rc3
276
277Minor fix to configure.in.  Reran bootstrap to get a working configure
278script that indeed checks for certain Linux nfs/autofs headers.
279
280*** Notes specific to am-utils version 6.1-rc2
281
282New amd.conf global parameter: normalize_slashes (default to "yes").  If set
283to "no," then Amd will not condense repeated slashes or remove trailing ones
284from strings representing pathnames.  This is sometimes useful with SMB
285mounts, which often require multiple slash characters in pathnames.
286
287Using a custom version of strlcpy instead of strncpy (but only where it
288makes sense), to minimize string overflow changes.  Audited all use of
289strncpy/strlcpy to ensure safety.
290
291On Apple machines, use "powerpc" for $arch, instead of "Power Macintosh".
292Also, use sw_vers to find out more appropriate OS name (macosx) and OS
293version (10.3.x) than uname(3) reports.
294
295- minor new ports:
296	powerpc64-unknown-linux-rhel4
297	powerpc64-unknown-linux-sles9
298
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
306
307*** Notes specific to am-utils version 6.1-rc1
308
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
340
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.
347
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.
351
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.
355
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.
360
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.
370
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.
377
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.
381
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".
384
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).
388
389- support restarting the automounter's own mount points (only over NFS,
390  for now).
391
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.
395
396- restructured the restarting of already-mounted filesystems, in the process
397  also fixing a problem with restarting nfsx components.
398
399- support escaped slashes, needed for SMB mounts.  Use '\\\/\\\/' in a
400  string to get a double slash.
401
402- amd -v now prints domain, host, and hostd values: foo, example.com, and
403  foo.example.com, respectively.
404
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.
409
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.
422
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).
425
426- for type:=program, the "umount" program doesn't have to be defined; it'll
427  default to "unmount ${fs}".
428
429- "amd -v" now prints the distribution name if it's known (e.g., rh9, fc3,
430  suse8, etc.).
431
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
452
453*** Notes specific to am-utils version 6.1b4
454
455- minor new ports:
456	i686-apple-darwin6.6
457
458- speed up the recovery of inherited (restarted) filesystems by using the
459  proper waiting channels
460
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.
464
465- pseudo-mount option "ignore_portmapper" renamed to "webnfs"
466
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
475
476*** Notes specific to am-utils version 6.1b3
477
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.
484
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).
489
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.
492
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.
498
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.
502
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.
506
507- amd will no longer query the portmapper for all possible NFS versions and
508  protocols if the user requested to use specific ones.
509
510- increased the major number for the library, so that 6.0 and 6.1 can't
511  share libraries anymore.
512
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.
517
518- support NULL entries in Hesiod maps, if they start with a ".".
519
520- code reorganization
521
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.
526
527- minor new ports:
528
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
535
536- bugs fixed:
537
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
559
560*** Notes specific to am-utils version 6.1b2
561
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".
566
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.
569
570- minor new ports:
571
572	i386-apple-darwin6.0
573	i386-pc-linux-rh8.0
574	ia64-unknown-linux-rh2.1AW
575	sparc-sun-solaris2.9
576
577- automatic support for loop mounts on Linux (deprecates the "loop" mount
578  option)
579
580- new amd.conf parameter ldap_proto_version (default 2) for setting the LDAP
581  protocol version to use.
582
583- bugs fixed:
584
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
597
598*** Notes specific to am-utils version 6.1b1
599
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
606
607- Minor new ports:
608	powerpc-ibm-aix5.1.0.0
609	i386-unknown-netbsd1.6A
610
611- Work around IBM's NFSv3 ABI change in aix4.3
612
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.
616
617- new command line option "amd -A arch" to overwrite the value of $arch.
618
619- bugs fixed:
620
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.
628
629*** Notes specific to am-utils version 6.1a5:
630
631- browsable_dirs support for Solaris autofs, *without* mount storms!
632
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).
636
637- "amd -v" now lists bug-reporting address.
638
639- assorted code cleanups and porting to use latest versions of GNU
640  Autotools.
641
642- opts:=loop works for type:=cdfs, for mounting ISO-9660 files on Linux.
643
644- bugs fixed:
645
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.
660
661*** Notes specific to am-utils version 6.1a4:
662
663- full autofs support for Solaris 2.[67], including symlinks, sublinks and
664  direct mounts
665
666- fixed mount/umount deadlock in Linux autofs
667
668- fixed sublinks in Linux autofs
669
670- support for network/netmask pairs in the in_network() selector
671
672- support disabling LDAP and Hesiod support using configure
673
674- forward-ported all the fixes from the stable branch (MacOS X support,
675  minor Linux fixes)
676
677- bind-mount support for type==link and type==lofs with Linux 2.4+
678
679- FiST lofs support under Linux (also in 6.0.6s2)
680
681*** Notes specific to am-utils version 6.1a3:
682
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)
687
688*** Notes specific to am-utils version 6.1a2:
689
690- working autofs support for Solaris 2.[67], but incomplete
691
692- forward-ported all the changes up to 6.0.5s2
693
694- removed support for amq -M
695
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
701
702*** Notes specific to am-utils version 6.1a1:
703
704- working autofs (v3 and v4) support for Linux!
705
706- forward-ported all the changes in 6.0.4s4
707
708- bugs fixed
709	client-side fail-over to NFSv2/UDP
710
711- known bugs
712	autofs v3 will probably break with host maps
713
714*** Notes specific to am-utils version 6.0.4:
715
716- NFSv3 support for Linux and HPUX-11
717
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
721
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)
727
728- new amq options:
729	-H: shows usage
730	-w: translate getpwd() into an Amd path
731
732- new map syntax:
733	${dollar}: to include a literal '$' in assignments
734
735- new "opts:=" options:
736	ver3: turns on NFS version 3 on some systems (linux)
737
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
743
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}
753
754*** Notes specific to am-utils version 6.0.3:
755
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)
763
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.
766
767- automake now uses automatic dependency tracking
768
769- new mount options: optionstr, noexec, nomnttab
770
771- maps of type:=auto are now browsable (using map option "browsable")
772
773- ctl-amd has "status" argument (same as RedHat)
774
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
781
782*** Notes specific to am-utils version 6.0.2:
783
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.
788
789- amq -f now also forces a (safe) map reload, but only if the timestamp on
790  the maps was updated.
791
792- two new selector variables: ${vendor} and ${full_os}, which are the same
793  as the output seen in "amd -v".
794
795- documentation fixes and updates
796
797- updated or minor new ports:
798	i386-unknown-freebsdelf3.3
799
800- support 'ignore' flags (automntfs) in bsdi-4.1
801
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)
807
808*** Notes specific to am-utils version 6.0.1:
809
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
819
820- automount2amd added, a new script to convert Sun automount maps to Amd maps
821
822- new map function netgrpd(ARG), same as netgrp() but matches FQHN
823
824- 'ignore' is a generic mount option
825
826- hesiod info service isup() function to check if service is up
827
828- more Y2K fixes (see README.y2k for the full story)
829
830- using alloca.c on systems that don't have it (hpux9 with /bin/cc)
831
832- configure script reduced in size by using M4/sh loops instead of repeated
833  entries
834
835- documentation updates
836
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
865
866*** Notes specific to am-utils version 6.0:
867
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
877
878- ctl-amd and ctl-hlfsd now compatible with RedHat's chkconfig utility
879
880- ctl-amd stop will now wait until amd is down
881
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.
886
887- use latest autoconf, automake, and libtool (off of cygnus' CVS server) to
888  support shared libraries on many more platforms.
889
890- posix code cleanups
891
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
897
898*** Notes specific to am-utils version 6.0b1:
899
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)
906
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
913
914*** Notes specific to am-utils version 6.0a16:
915
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)
919
920- new minor ports:
921	i386-pc-bsdi3.1
922	i386-unknown-netbsd1.3.1
923	alpha-dec-osf2.1
924
925- new options addopt:=ARG will "smartly" add and override options specified
926in opts:=
927
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.
933
934- amd.conf file is parsed after all other command line options.  If no
935options specified at all, then use /etc/amd.conf by default.
936
937- some variables' values are now compared case-insensitive as per specs,
938such as host names, domain names, and more.
939
940- NIS service uses a new isup() function to detect if the service is up
941before using it.  Used to ensure amd doesn't clear the existing maps before
942reloading them, unless the remote info service is working.
943
944- new cdfs mount options: rrip, noversion, defperm, nodefperm (OSF)
945
946- support efs/xfs separately on irix
947
948- new -D info trace option to turn on info specific debugging, such as
949RES_DEBUG for hesiod services.
950
951- document updates and fixes
952
953- new file MIRRORS lists official mirror sites (also in am-utils home page)
954
955- new file BUGS lists known amd/OS bugs
956
957- source restructuring: rename all Amd file-systems' sources to amfs_ARG.c
958such that it matches the type:=ARG as well.  Free names afs/dfs for Andrew
959F/S and Distributed F/S.
960
961- checkpoint config.guess several times during the long configure, so that
962if it is aborted midway, the bulk of the features discovered will be re-read
963from the config.cache file.
964
965- more systems support shared libraries (libtool 1.2)
966
967- using automake 1.3 + more fixes
968
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
983
984*** Notes specific to am-utils version 6.0a15:
985
986- new ports:
987	alpha-unknown-linux-gnu: works
988	i386-unknown-netbsd1.3: fully working
989	*-sun-sunos3: compiles, not tested
990
991- updated ports:
992	m68k-next-nextstep3: cleaner compile, works.
993
994- new file system type nfsl (NFS Link).  Uses nfs if file system is remote,
995and link if it is local (based on if $rhost equals the host name).
996
997- support for Solaris cachefs.  Requires setting fs, rfs, and a new variable
998cachedir.  See documentation for explanation, examples, and caveats.
999
1000- support negated selector functions such as !exists(/foo/bar)
1001
1002- wire, network, netnumber, in_network() selectors now match against all
1003locally attached networks (by either name or number), not just the first two
1004interfaces.
1005
1006- new program pawd (and man page for it) --- Print Automounter Working
1007Directory, to print the proper pathname of the cwd or any other pathname,
1008adjusted for automounter paths, while avoiding mount points.
1009
1010- two new switches to amq: -U will force using UDP only; -T will force using
1011only TCP to communicate with amd.  If neither (or both) are specified, amq
1012will try TCP first, and if that failed, will try UDP.
1013
1014- support syslog facilities, using "amd -l syslog:facility".  Old behavior
1015when using only -l syslog is to use the LOG_DAEMON facility.
1016
1017- you may specify browsable_dirs=full, to get a listing of all entries
1018(other than /default), including those with '*' wildcard and '/'
1019characters.
1020
1021- amd -D trace now also includes as much of struct nfs_args as can be
1022displayed.  Useful in figuring out what the kernel really gets during a
1023mount(2), as opposed to what the /etc/mnttab file says.  -D trace also
1024traces the xdr_* functions.
1025
1026- support for versions of shared libamu version.  upped version from 0.0.0
1027to 1.0.0.  each am-utils release that will change the library will also
1028update its version.
1029
1030- amd/ops_TEMPLATE.c: a new template file for those brave enough to try and
1031implement a new amd file system.  Includes comments and other info useful
1032for developers.
1033
1034- if localconfig.h exists in the current directory during the run of
1035configure, it is included in all am-utils sources.  This allows courageous
1036developers to make certain modifications during compilations, and especially
1037turn off undesired features (not very recommended).
1038
1039- documentation types and updates for all new features, ports, etc.
1040
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
1059
1060*** Notes specific to am-utils version 6.0a14:
1061
1062- updated ports:
1063	powerpc-ibm-aix4.2.1.0: NFS V.3 works
1064
1065- minor new ports:
1066	sparc-sun-sunos4.1.3C
1067	m68k-sun-sunos4.1.1 (sun3)
1068	mips-sgi-irix5.2
1069
1070- new option to amd, -O ARG, will override the operating systems *name* with
1071ARG.  Corrected documentation for amd -o ARG --- it overrides the operating
1072system *version* and not the name as the docs incorrectly stated.
1073
1074- logging now behave more like syslog: will not print repeated strings, but
1075rather a count such as "last message repeated N times".  (N will not exceed
1076100.)
1077
1078- restructured the code which deals with the numerous possible fields and
1079flags that are set in struct nfs_args.  That code was moved to libamu as
1080the functions compute_nfs_args() and compute_automounter_nfs_args().
1081
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
1091
1092*** Notes specific to am-utils version 6.0a13:
1093
1094- new in_network(ARG) nomadic selector, true if ARG is the name (or number)
1095of any of this host's network interfaces.
1096
1097- removed variables primnetname, primnetnum, subsnetname, and subsnetnum.
1098(Kept "wire" and its alias "network", and "netnumber".)
1099
1100- include am-utils.dvi and am-utils.ps in distribution.
1101
1102- hlfsd supports new option -P ARG, for reading password map off of file
1103ARG.  Allows you to use the hlfs redirector using paths other than user's
1104home directories.
1105
1106- use a replacement yp_all for some systems (irix) known to have a broken
1107one which leaks a file descriptor each time called.
1108
1109- if remote NFS server is down or does not support portmap, downgrade
1110machine to NFS V.2 and retry again later.
1111
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
1119
1120- minor code cleanups for netbsd
1121
1122- html docs now in http://www.am-utils.org
1123
1124- added README file in binaries ftp directory
1125
1126*** Notes specific to am-utils version 6.0a12:
1127
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).
1136
1137- new ports:
1138	powerpc-ibm-aix4.2.1.0:	compiles w/ NFS V.3, untested.
1139
1140- wire-test also checks for combinations of NFS protocol/version from the
1141client to a remote (or local) host.
1142
1143- conf/mtab/mtab_file.c: use flock() to lock the file, and fcntl() if
1144flock() is not available.  (Used to prefer fcntl() over flock().)
1145
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)
1155
1156*** Notes specific to am-utils version 6.0a11:
1157
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
1161
1162*** Notes specific to am-utils version 6.0a10:
1163
1164- MAJOR DOCUMENTATION UPDATE! (first time in 6 years)
1165
1166- new ports:
1167	m68k-next-nextstep3: configures, compiles, not tested.
1168
1169- preliminary autofs support.  See README.autofs for details.
1170
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
1174
1175- detect down remote hosts faster
1176
1177- log output of "amd -v" at startup
1178
1179- removed $osver override for solaris: now it is 2.5.1, not 5.5.1
1180
1181- buildall will use gmake first if available
1182
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
1192
1193*** Notes specific to am-utils version 6.0a9:
1194
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)
1200
1201- updated ports:
1202	i486-ncr-sysv4.3.03: configures/compiles, not tested
1203
1204- Multiple amd support: new amd.conf [global] key "portmap_program" can be
1205used to specify an alternate RPC program number for amd to un/register.
1206Allowed numbers range from 300019 to 300029.  A matching new option for amq:
1207-P prognum, will use an alternate program number to contact.
1208
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)
1215
1216- shared libraries support expanded.  Using GNU libtool-1.0.  You can build
1217a shared version of libamu, and link with it accordingly, by specifying
1218--enable-shared to configure.  Default is --enable-static --disable-shared,
1219and you can mix and match.  See "INSTALL" file for listing of systems on
1220which shared libraries seem to build and work fine.
1221
1222- new option: amq -p, will return the PID of the running amd (local or
1223remote).  Uses a new RPC message.  Useful especially in "ctl-amd stop".
1224
1225- new configure script options --enable-ldflags, for specifying -L flags.
1226The older --enable-libs is to be used only for -l options.
1227
1228- two new LDAP map options for amd.conf: ldap_cache_seconds and
1229ldap_cache_maxmem.
1230
1231- new script, am-eject from Debian linux's version of amd-upl102.
1232
1233- additional passwd map support using var[0-3], from Debian folks.
1234
1235- hesiod code cleanup.  works for hesiod 1.3 as well as 3.0.
1236
1237- removed defunct -h option from amd.
1238
1239- started using automake-1.2.  This fixed several bugs that caused some
1240versions of yacc/lex and non-GNU make to fail.
1241
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
1253
1254
1255*** Notes specific to am-utils version 6.0a8:
1256
1257- new ports:
1258	i386-unknown-netbsd1.2.1: configures/compiles (with NFS V.3), works,
1259				  but some OS stability problems exist.
1260
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
1266
1267- fixed browsable directories (readdir) code.
1268
1269- better methods to find amd/hlfsd pid to kill in ctl-{amd,hlfsd}
1270
1271- "ignore/auto" mount types fixed for irix, sunos, and others, so "df" does not
1272show amd mounts by default (but GNU df -a does).
1273
1274- each time amd is built, a new "build" version is incremented.  See amd -v.
1275
1276- man page for fsinfo added
1277
1278- empty fillers for new file (bsd44) systems: nullfs, unionfs, umapfs.
1279
1280- when amd is not running, or portmapper is down, make amq timeout faster (5
1281sec) than system default, usually 4-5 minutes.
1282
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
1292
1293- assorted code cleanup
1294
1295
1296*** Notes specific to am-utils version 6.0a7:
1297
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
1305
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
1312
1313- LDAP support!  New [global] amd.conf options ldap_base and ldap_hostports.
1314Also includes a new script amd2ldif to convert amd maps into plain text LDAP
1315object files.
1316
1317- the following amd.conf variables: browsable_dirs, map_options, map_type,
1318mount_type, and search_path --- can now be specified in [global] as well as
1319the map entry itself.  That way you can declare them only once in [global],
1320and override them as needed per map.
1321
1322- option "cluster" added to [global] (HPUX clusters ala "amd -C").
1323
1324- assorted info_hesiod map fixes and cleanup.  removed HESIOD_RELOAD code.
1325
1326- added netgrp(name) function to amd map syntax to see if current host is in
1327the <name> netgroup.
1328
1329- removed unused option "amd -m".
1330
1331- filled in "tasks" file with todo items.
1332
1333- filled "COPYING" file with legal stuff.
1334
1335- cleanup: all global variables are now in one big structure (struct
1336amu_global_options) that's easy to identify and enhance.  Also migrated
1337several flags that used be an integer each into one unsigned integer that's
1338used as a bit-flag.
1339
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
1344
1345
1346*** Notes specific to am-utils version 6.0a6:
1347
1348- amd configuration file!
1349
1350See scripts/amd.conf-sample for help and some explanation.  This new conf
1351file allows for the following new features:
1352
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...
1362
1363- enable-default-selectors: No longer turned on by the configure script or
1364optionally compiled.  Code made dynamic and can be turned on or off from the
1365amd.conf file.  This code is off by default, and must be turned on by
1366amd.conf's [global] section.
1367
1368- new ports:
1369	mips-sgi-irix5.3:	configure/compile, not tested
1370	i486-ncr-sysv4.3.03:	configure/compile, not tested
1371
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"
1377
1378- better NFS3 port, including more support for proto= and vers=, and
1379automatic determination of proto/vers combination.
1380
1381- conf/nfs_prot/nfs_prot_*.h: all of the NFS protocol header files had to be
1382redone, because of the osf4 port.  OSF used very different names for these,
1383and they conflicted with am-utils'.  The only solution was to more or less
1384conform to OSF4's naming, and change all the others.
1385
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
1389
1390- autoconf support for LDAP.  amd/info_ldap.c needs to be written.
1391
1392- wire-test also reports the local IP address.  Some systems have multiple,
1393buggy version of get_myaddress(), esp. SunOS and Irix.  Note that Solaris
1394x86 has a buggy htonl().
1395
1396- amd -H prints usage.
1397
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
1404
1405
1406*** Notes specific to am-utils version 6.0a5:
1407
1408- NFS Version 3 support!!!
1409
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.
1413
1414Will fall back to V2 mounts when V3 is not available.  Will also use TCP if
1415possible, UDP otherwise.
1416
1417- Ports to new platforms:
1418
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)
1423
1424- New scripts added:
1425
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
1434
1435- "amd -v" now includes more info and "amq -v" lists all of it.
1436
1437- new parser for linux specific mount options.
1438
1439- Main bugs fixed:
1440
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
1447
1448
1449*** Notes specific to am-utils version 6.0a4:
1450
1451- amd services both TCP and UDP amq requests.  This will help because of the
1452limited UDP message size.
1453
1454- "amq -M" code is disabled by default because it is insecure.  It is
1455rarely used.  Users who wish to use it should run
1456"configure --enable-amq-mount".
1457
1458
1459*** Notes specific to am-utils version 6.0a3:
1460
1461- New tested ports (configures, compiles, and runs):
1462
1463	i386-unknown-freebsd2.2
1464
1465- New ports (configures and compiles correctly, not tested):
1466
1467	rs6000-ibm-aix3.2.5
1468	rs6000-ibm-aix4.1.5.0
1469
1470- More am-utils programs ported to all existing platforms: hlfsd, fsinfo,
1471mk-amd-map, and fixmount.
1472
1473- Shared libraries: a new configure option --enable-shared will build a
1474shared libamu.so, link applications with it, and use it.  Reduces binary
1475sizes by 20-30%.  This is the first step towards loadable modules, as many
1476changes had to be done to be able to compile and use PIC code.  This is code
1477that obviously needs to be generalized to be able to build shared libraries
1478on many other platforms.  It was only tested on Solaris 5.5.1.
1479
1480- the file INSTALL contains the latest compatibility table of which
1481platforms am-utils configures, compiles and runs on.
1482
1483- Trimmed down the size of the configure script.  Some tests that are not
1484used anywhere were removed.
1485
1486
1487*** Notes specific to am-utils version 6.0a2:
1488
1489- New ports (configures and compiles correctly, not tested):
1490
1491	i386-pc-bsdi2.1
1492	hppa1.1-hp-hpux9.01
1493	hppa1.1-hp-hpux10.20
1494
1495- new configure options:
1496
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
1501
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
1504modules (linux)
1505
1506- prefer vfat over msdos/pc/etc file system for PCFS.
1507
1508- moved all fixed headers to include/am_defs.  Left only #define/#undef
1509entries in aux/acconfig.h.
1510
1511- make more sense of systems that have full, partial, or no NFS protocol
1512headers.
1513
1514- minor fixes for NetBSD (untested platform).
1515
1516- hesiod map fixed.
1517
1518- buildall -D: new option to run even stricter developer options.
1519
1520- lots of other bugs fixed (see ChangeLog).
1521
1522
1523*** Notes specific to am-utils version 6.0a1:
1524
1525I have it configure and build correctly for the following systems:
1526
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
1532
1533Amq, wire-test, and "amd -v" work on all of the above.  A real running amd
1534was only tested and confirmed working on
1535
1536	i386-pc-solaris2.5.1
1537	sparc-sun-solaris2.5.1
1538
1539Many things are still missing: options, features, etc.  But for now, let's
1540concentrate on getting the basic functionality working on the more popular
1541systems.
1542