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