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