1*** Notes specific to am-utils version 6.2 2 3 - Removed license advertising clause 4 - Removed expn program 5 6*** Notes specific to am-utils version 6.2-rc1 7 8Filesystem Support: 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 14New features: 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 18Changes in behavior: 19 - Empty variable assignments, now unset the variable value. 20 - Share LDAP connections between different maps to save resources 21Portability fixes: 22 - Changes to work with Linux-2.6.x, Linux-3.x and NetBSD-5.x, NetBSD-6.x, 23 FreeBSD 7.x, Solaris 24Bug fixes: 25 - Many bug fixes, see ChangeLog 26 27*** Notes specific to am-utils version 6.2a3 28 29- minor new ports: 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 36 37- Bugs fixed: 38 * reduce annoying warnings from xstrlcpy when expanding options. 39 * translate '*' Sun maps correctly with "${key}" 40 41*** Notes specific to am-utils version 6.2a2 42 43New amd.conf global parameter: nfs_allow_any_interface. By default it is 44set to 'no' which means that Amd accepts local NFS packets only from 45127.0.0.1. If set to 'yes' then Amd will accept local NFS packets from any 46local interface; this is useful on hosts that may have multiple interfaces 47where the system is forced to send all outgoing packets (even those bound to 48the same host) via an address other than 127.0.0.1. 49 50Add support for specifying the host to match in the mount selectors netgrp 51and netgrpd. Now one can use either netgrp(<group-name>) or 52netgrp(<group-name>,<host-name>). 53 54Support new mount options for type:=pcfs mounts: longname, nowin95, 55shortname, user=N, group=N, mask=N, and dirmask=N. 56 57Two new amd.conf [global] parameters: nfs_retry_interval_toplvl and 58nfs_retransmit_counter_toplvl. They are similar to nfs_retry_interval and 59nfs_retransmit_counter, and allow you to set the "timeo" and "retrans" NFS 60mount parameters, respectively, but ONLY for Amd's top-level mounts (which 61are NFSv2/UDP currently). This is useful because on some systems you may 62wish to set these parameters differently than the OS default, so as to 63better tune Amd's responsiveness under heavy scheduler loads. 64 65- minor new ports: 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 76 77- Bugs fixed: 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 83 than 28 chars) 84 * use-after-free bug in amfs_lookup_mntfs (Coverity) 85 * don't turn off attribute cache for regular NFS mounts (improves 86 performance) 87 * detect G/DBM support via gdbm_compat library (Debian) 88 * detect NDBM support in libc (FreeBSD 6) 89 90*** Notes specific to am-utils version 6.2a1 91 92MAJOR BUG FIXES: Synchronize Amd's view of its file systems with the 93kernel's NFS client-side DNLC/dcache. Amd changes its view when it reloads 94maps (automatically or via "amq -f") because new map entries could be added, 95old one removed, or existing ones changed. Amd also changes its view when a 96simple entry has expired and was flushed, or was forced out via "amq -u". 97Amd was not updating the mtime of its parent directory (often the amd 98automount point): this resulted in the kernel re-using cached entries, which 99are now possibly stale. Many users had seen this problem in the form of 100occasional ESTALE errors, or dangling/broken automounted symlinks, 101especially on systems under heavy use. To tell the kernel to ignore (flush) 102its 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 104unfortunately it was using time(2) which only provides a one-second 105resolution clock: this was fine a decade ago, but not good enough on today's 106fast systems; using only a one-second resolution clock meant that on busy 107systems that invoke Amd many times a second, some rapidly changing entries 108do not get flushed from the kernel, and the kernel thus uses stale entries. 109The solution to all of these was to rework the whole clock timer updates to 110use gettimeofday(), using a micro-second resolution timer, and to use that 111time whenever Amd needs to update an mtime/atime/ctime of any node. 112Finally, 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). 114 115Warning: some OSs, we discovered, are incapable of turning off their 116NFS attribute cache entirely. This means that Amd cannot work fully 117reliability on these systems, not under heavy load. This is documented in 118detail in the README.attrcache file included with this distribution. 119 120Include test-attrcache script to test the NFS attribute cache behavior using 121Amd. 122 123Tell syslog not to log automatically to /dev/console; it's unfriendly. If 124user really wants to, they can set it in /etc/syslog.conf. 125 126Moved pawd's path-matching functionality into Amd, where it can be done a 127lot more efficiently (we no longer need to construct and send the whole 128mounted tree, only to match small parts of it). This will lessen the CPU 129and network load on systems that use pawd heavily, and also minimize the 130chance that we exceed default or hard-coded UDP/TCP RPC packet sizes. 131 132Changed slightly how Amd behaves when you try to change log_options after 133Amd started (options can be turned on/off via "amq -x ARG"). It used to be 134that Amd won't let you turn off options which were on when Amd started. 135That limited users' ability to reduce Amd's logging levels to a minimum. 136Now, Amd will allow you to turn on/off any option, other than the two 137options "fatal" and "error." Both are on by default and considered 138mandatory. These two don't produce a lot of log messages, so your logs will 139remain small, but they are important to keep on, so Amd can report serious 140problems (including errors relating to incorrectly setting other log 141options). 142 143Amd now understands a new log_option called "defaults" which is synonymous 144with "fatal,error,user,warning,info" (and is also what logging happens by 145default). 146 147Amd now understands a new debug_option called "defaults" which is synonymous 148with "all,nohrtime,nomtab,noxdrtrace". 149 150Changed the misleading inverted logic of certain debug_options: 151 1521. "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). 156 1572. 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." 161 1623. 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. 167 1684. 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. 170 1715. 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. 176 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. 184 185- minor new ports: 186 i386-pc-linux-deb3.1 187 i386-unknown-netbsdelf3.0 (BETA) 188 powerpc-apple-darwin8.2.0 189 190- Bugs fixed: 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 194 README.attrcache 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 202 203*** Notes specific to am-utils version 6.1.1 204 205New 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 207attempt to use them if it gets any of three serious error conditions when 208trying to unmount an existing mount point or mount on top of one: EIO, 209ESTALE, or EBUSY. This could be useful to recover from serious conditions 210such as hardware failure of mounted disks, or NFS servers which are down 211permanently, were migrated, or changed their IP address. Only 212"type:=toplvl" mounts hung with EBUSY are forcibly unmounted using this 213option: this is useful to ensure that a new Amd can mount itself even if a 214previous Amd died and left its mount points hung, or to force Amd to 215shutdown cleanly, even if some processes (i.e., user shells) have their CWD 216on Amd's own mount point. This functionality is available for Linux, BSD44 217systems, Solaris, OSF/1, and partially for AIX. 218 219New 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 221startup. 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 223the same file. 224 225- minor new ports: 226 i386-pc-linux-fc4 227 i386-pc-linux-suse9.3 228 i386-pc-linuxoldld-deb3.1 229 230- bugs fixed: 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. 239 * aix4 clean build. 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. 243 244*** Notes specific to am-utils version 6.1 245 246- bugs fixed: 247 * set timeo/retrans for type:=nfs only if user asked 248 249Also, if you want to know what's new in 6.1 compared to 6.0.x, it's 250EVERYTHING below this line, up to "6.0.4." Yes, that's a lot of stuff. 251 252*** Notes specific to am-utils version 6.1-rc7 253 254Remove alloca from am-utils, and rewrite code that used it. 255 256Assorted minor code cleanups. 257 258- minor new ports: 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 264 265- bugs fixed: 266 * getwire() detects networks correctly on OSF/1 267 268*** Notes specific to am-utils version 6.1-rc6 269 270- minor new ports: 271 i386-pc-linux-deb3.0 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 278 279- bugs fixed: 280 * minor compile error of nfs_subr.c on some systems. 281 * AIX 5.2/5.3 PPC compile fixes. 282 283*** Notes specific to am-utils version 6.1-rc5 284 285For NetBSD systems, $os used to say "netbsdelf1" or "netbsdelf2." Now it 286just says "netbsd." 287 288- minor new ports: 289 powerpc-apple-darwin7.9.0 290 291- bugs fixed: 292 * silly (but nasty) null pointer dereferencing 293 * improved fix for '-opts' syntax for resetting map options 294 295*** Notes specific to am-utils version 6.1-rc4 296 297- bugs fixed: 298 * check for "macosx" in M4 macros properly 299 * minor memory leaks (thanks to Valgrind) 300 301*** Notes specific to am-utils version 6.1-rc3 302 303Minor fix to configure.in. Reran bootstrap to get a working configure 304script that indeed checks for certain Linux nfs/autofs headers. 305 306*** Notes specific to am-utils version 6.1-rc2 307 308New amd.conf global parameter: normalize_slashes (default to "yes"). If set 309to "no," then Amd will not condense repeated slashes or remove trailing ones 310from strings representing pathnames. This is sometimes useful with SMB 311mounts, which often require multiple slash characters in pathnames. 312 313Using a custom version of strlcpy instead of strncpy (but only where it 314makes sense), to minimize string overflow changes. Audited all use of 315strncpy/strlcpy to ensure safety. 316 317On Apple machines, use "powerpc" for $arch, instead of "Power Macintosh". 318Also, use sw_vers to find out more appropriate OS name (macosx) and OS 319version (10.3.x) than uname(3) reports. 320 321- minor new ports: 322 powerpc64-unknown-linux-rhel4 323 powerpc64-unknown-linux-sles9 324 325- bugs fixed: 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 332 333*** Notes specific to am-utils version 6.1-rc1 334 335- minor new ports: 336 i386-pc-linux-fc2 (Fedora Core 2). 337 i386-pc-linux-fc3 (Fedora Core 3). 338 i386-pc-linux-rhel3 339 i386-pc-linux-rhel4 340 i386-pc-linux-suse8.2 341 i386-pc-linux-suse9.1 342 i386-pc-solaris2.10 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 355 ia64-hp-hpux11.20 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 366 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. 373 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 376 unprivileged ports. 377 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 380 and RPC server. 381 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. 386 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. 396 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. 403 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. 407 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". 410 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 413 selector). 414 415- support restarting the automounter's own mount points (only over NFS, 416 for now). 417 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. 421 422- restructured the restarting of already-mounted filesystems, in the process 423 also fixing a problem with restarting nfsx components. 424 425- support escaped slashes, needed for SMB mounts. Use '\\\/\\\/' in a 426 string to get a double slash. 427 428- amd -v now prints domain, host, and hostd values: foo, example.com, and 429 foo.example.com, respectively. 430 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 434 reboot. 435 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 447 hang. 448 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). 451 452- for type:=program, the "umount" program doesn't have to be defined; it'll 453 default to "unmount ${fs}". 454 455- "amd -v" now prints the distribution name if it's known (e.g., rh9, fc3, 456 suse8, etc.). 457 458- bugs fixed: 459 * various memory management problems (leaks, etc) 460 * fixed nfsx support 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 468 daemonizing. 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 478 479*** Notes specific to am-utils version 6.1b4 480 481- minor new ports: 482 i686-apple-darwin6.6 483 484- speed up the recovery of inherited (restarted) filesystems by using the 485 proper waiting channels 486 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. 490 491- pseudo-mount option "ignore_portmapper" renamed to "webnfs" 492 493- bugs fixed: 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 501 502*** Notes specific to am-utils version 6.1b3 503 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. 510 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). 515 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. 518 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. 524 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. 528 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 531 nfsd. 532 533- amd will no longer query the portmapper for all possible NFS versions and 534 protocols if the user requested to use specific ones. 535 536- increased the major number for the library, so that 6.0 and 6.1 can't 537 share libraries anymore. 538 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" 542 by default. 543 544- support NULL entries in Hesiod maps, if they start with a ".". 545 546- code reorganization 547 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 551 page. 552 553- minor new ports: 554 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 560 i386-pc-solaris2.9 561 562- bugs fixed: 563 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 576 header file) 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 585 586*** Notes specific to am-utils version 6.1b2 587 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". 592 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. 595 596- minor new ports: 597 598 i386-apple-darwin6.0 599 i386-pc-linux-rh8.0 600 ia64-unknown-linux-rh2.1AW 601 sparc-sun-solaris2.9 602 603- automatic support for loop mounts on Linux (deprecates the "loop" mount 604 option) 605 606- new amd.conf parameter ldap_proto_version (default 2) for setting the LDAP 607 protocol version to use. 608 609- bugs fixed: 610 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 619 (for real this time) 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 623 624*** Notes specific to am-utils version 6.1b1 625 626- Major Autofs work 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 632 633- Minor new ports: 634 powerpc-ibm-aix5.1.0.0 635 i386-unknown-netbsd1.6A 636 637- Work around IBM's NFSv3 ABI change in aix4.3 638 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. 642 643- new command line option "amd -A arch" to overwrite the value of $arch. 644 645- bugs fixed: 646 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. 654 655*** Notes specific to am-utils version 6.1a5: 656 657- browsable_dirs support for Solaris autofs, *without* mount storms! 658 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). 662 663- "amd -v" now lists bug-reporting address. 664 665- assorted code cleanups and porting to use latest versions of GNU 666 Autotools. 667 668- opts:=loop works for type:=cdfs, for mounting ISO-9660 files on Linux. 669 670- bugs fixed: 671 672 * fixed sublink support in Linux autofs (broken in a4) 673 * hlfsd takes uid 0's home from root's passwd entry instead of 674 defaulting to '/' 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. 686 687*** Notes specific to am-utils version 6.1a4: 688 689- full autofs support for Solaris 2.[67], including symlinks, sublinks and 690 direct mounts 691 692- fixed mount/umount deadlock in Linux autofs 693 694- fixed sublinks in Linux autofs 695 696- support for network/netmask pairs in the in_network() selector 697 698- support disabling LDAP and Hesiod support using configure 699 700- forward-ported all the fixes from the stable branch (MacOS X support, 701 minor Linux fixes) 702 703- bind-mount support for type==link and type==lofs with Linux 2.4+ 704 705- FiST lofs support under Linux (also in 6.0.6s2) 706 707*** Notes specific to am-utils version 6.1a3: 708 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) 713 714*** Notes specific to am-utils version 6.1a2: 715 716- working autofs support for Solaris 2.[67], but incomplete 717 718- forward-ported all the changes up to 6.0.5s2 719 720- removed support for amq -M 721 722- known bugs 723 nfsx support is broken 724 linux NFS codes fixes 725 NFS cache aliasing fixes 726 lots of stuff ported from 6.0 branch 727 728*** Notes specific to am-utils version 6.1a1: 729 730- working autofs (v3 and v4) support for Linux! 731 732- forward-ported all the changes in 6.0.4s4 733 734- bugs fixed 735 client-side fail-over to NFSv2/UDP 736 737- known bugs 738 autofs v3 will probably break with host maps 739 740*** Notes specific to am-utils version 6.0.4: 741 742- NFSv3 support for Linux and HPUX-11 743 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 747 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) 753 754- new amq options: 755 -H: shows usage 756 -w: translate getpwd() into an Amd path 757 758- new map syntax: 759 ${dollar}: to include a literal '$' in assignments 760 761- new "opts:=" options: 762 ver3: turns on NFS version 3 on some systems (linux) 763 764- updated or minor new ports: 765 alpha-dec-osf4.0f 766 alphaev6-dec-osf5.0 767 i386-pc-linux-rh6.2 768 i386-unknown-freebsd3.4 769 770- bugs fixed: 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} 779 780*** Notes specific to am-utils version 6.0.3: 781 782- updated or minor new ports: 783 hppa1.0-hp-hpux11.00 784 i386-pc-bsdi4.1 785 i386-unknown-netbsd1.4.1 786 sparc-sun-solaris2.8 787 i*86-pc-linux-gnu-rh6.1 788 (some preparations for Compaq Tru64) 789 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. 792 793- automake now uses automatic dependency tracking 794 795- new mount options: optionstr, noexec, nomnttab 796 797- maps of type:=auto are now browsable (using map option "browsable") 798 799- ctl-amd has "status" argument (same as RedHat) 800 801- bugs fixed: 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 807 808*** Notes specific to am-utils version 6.0.2: 809 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. 814 815- amq -f now also forces a (safe) map reload, but only if the timestamp on 816 the maps was updated. 817 818- two new selector variables: ${vendor} and ${full_os}, which are the same 819 as the output seen in "amd -v". 820 821- documentation fixes and updates 822 823- updated or minor new ports: 824 i386-unknown-freebsdelf3.3 825 826- support 'ignore' flags (automntfs) in bsdi-4.1 827 828- bugs fixed: 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) 833 834*** Notes specific to am-utils version 6.0.1: 835 836- updated or minor new ports: 837 i386-pc-bsdi4.0.1 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 845 846- automount2amd added, a new script to convert Sun automount maps to Amd maps 847 848- new map function netgrpd(ARG), same as netgrp() but matches FQHN 849 850- 'ignore' is a generic mount option 851 852- hesiod info service isup() function to check if service is up 853 854- more Y2K fixes (see README.y2k for the full story) 855 856- using alloca.c on systems that don't have it (hpux9 with /bin/cc) 857 858- configure script reduced in size by using M4/sh loops instead of repeated 859 entries 860 861- documentation updates 862 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 891 892*** Notes specific to am-utils version 6.0: 893 894- updated or minor new ports: 895 hppa2.0w-hp-hpux11.00, 896 i386-pc-bsdi4.0 897 i386-unknown-freebsd2.2.8 898 i386-unknown-netbsd1.3.3 899 i386-unknown-openbsd2.4 900 mips-sgi-irix6.5 901 powerpc-ibm-aix4.3.1.0 902 i386-unknown-freebsd3.0 now supports nfs v.3 903 904- ctl-amd and ctl-hlfsd now compatible with RedHat's chkconfig utility 905 906- ctl-amd stop will now wait until amd is down 907 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 911 libraries. 912 913- use latest autoconf, automake, and libtool (off of cygnus' CVS server) to 914 support shared libraries on many more platforms. 915 916- posix code cleanups 917 918- bugs fixed: 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 923 924*** Notes specific to am-utils version 6.0b1: 925 926- updated or minor new ports: 927 - *-pc-linux-gnu (glibc2 systems such as RedHat 5.1) 928 - sparc-sun-solaris2.7 929 - i386-pc-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) 932 933- bugs fixed: 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 939 940*** Notes specific to am-utils version 6.0a16: 941 942- new ports: 943 hppa1.0-hp-hpux11.00 (works, not NFS V.3 due to missing headers) 944 mips-dec-ultrix4.3 (working, unverified) 945 946- new minor ports: 947 i386-pc-bsdi3.1 948 i386-unknown-netbsd1.3.1 949 alpha-dec-osf2.1 950 951- new options addopt:=ARG will "smartly" add and override options specified 952in opts:= 953 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 958 when amd exits. 959 960- amd.conf file is parsed after all other command line options. If no 961options specified at all, then use /etc/amd.conf by default. 962 963- some variables' values are now compared case-insensitive as per specs, 964such as host names, domain names, and more. 965 966- NIS service uses a new isup() function to detect if the service is up 967before using it. Used to ensure amd doesn't clear the existing maps before 968reloading them, unless the remote info service is working. 969 970- new cdfs mount options: rrip, noversion, defperm, nodefperm (OSF) 971 972- support efs/xfs separately on irix 973 974- new -D info trace option to turn on info specific debugging, such as 975RES_DEBUG for hesiod services. 976 977- document updates and fixes 978 979- new file MIRRORS lists official mirror sites (also in am-utils home page) 980 981- new file BUGS lists known amd/OS bugs 982 983- source restructuring: rename all Amd file-systems' sources to amfs_ARG.c 984such that it matches the type:=ARG as well. Free names afs/dfs for Andrew 985F/S and Distributed F/S. 986 987- checkpoint config.guess several times during the long configure, so that 988if it is aborted midway, the bulk of the features discovered will be re-read 989from the config.cache file. 990 991- more systems support shared libraries (libtool 1.2) 992 993- using automake 1.3 + more fixes 994 995- bugs fixed: 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 1009 1010*** Notes specific to am-utils version 6.0a15: 1011 1012- new ports: 1013 alpha-unknown-linux-gnu: works 1014 i386-unknown-netbsd1.3: fully working 1015 *-sun-sunos3: compiles, not tested 1016 1017- updated ports: 1018 m68k-next-nextstep3: cleaner compile, works. 1019 1020- new file system type nfsl (NFS Link). Uses nfs if file system is remote, 1021and link if it is local (based on if $rhost equals the host name). 1022 1023- support for Solaris cachefs. Requires setting fs, rfs, and a new variable 1024cachedir. See documentation for explanation, examples, and caveats. 1025 1026- support negated selector functions such as !exists(/foo/bar) 1027 1028- wire, network, netnumber, in_network() selectors now match against all 1029locally attached networks (by either name or number), not just the first two 1030interfaces. 1031 1032- new program pawd (and man page for it) --- Print Automounter Working 1033Directory, to print the proper pathname of the cwd or any other pathname, 1034adjusted for automounter paths, while avoiding mount points. 1035 1036- two new switches to amq: -U will force using UDP only; -T will force using 1037only TCP to communicate with amd. If neither (or both) are specified, amq 1038will try TCP first, and if that failed, will try UDP. 1039 1040- support syslog facilities, using "amd -l syslog:facility". Old behavior 1041when using only -l syslog is to use the LOG_DAEMON facility. 1042 1043- you may specify browsable_dirs=full, to get a listing of all entries 1044(other than /default), including those with '*' wildcard and '/' 1045characters. 1046 1047- amd -D trace now also includes as much of struct nfs_args as can be 1048displayed. Useful in figuring out what the kernel really gets during a 1049mount(2), as opposed to what the /etc/mnttab file says. -D trace also 1050traces the xdr_* functions. 1051 1052- support for versions of shared libamu version. upped version from 0.0.0 1053to 1.0.0. each am-utils release that will change the library will also 1054update its version. 1055 1056- amd/ops_TEMPLATE.c: a new template file for those brave enough to try and 1057implement a new amd file system. Includes comments and other info useful 1058for developers. 1059 1060- if localconfig.h exists in the current directory during the run of 1061configure, it is included in all am-utils sources. This allows courageous 1062developers to make certain modifications during compilations, and especially 1063turn off undesired features (not very recommended). 1064 1065- documentation types and updates for all new features, ports, etc. 1066 1067- bugs fixed: 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 1085 1086*** Notes specific to am-utils version 6.0a14: 1087 1088- updated ports: 1089 powerpc-ibm-aix4.2.1.0: NFS V.3 works 1090 1091- minor new ports: 1092 sparc-sun-sunos4.1.3C 1093 m68k-sun-sunos4.1.1 (sun3) 1094 mips-sgi-irix5.2 1095 1096- new option to amd, -O ARG, will override the operating systems *name* with 1097ARG. Corrected documentation for amd -o ARG --- it overrides the operating 1098system *version* and not the name as the docs incorrectly stated. 1099 1100- logging now behave more like syslog: will not print repeated strings, but 1101rather a count such as "last message repeated N times". (N will not exceed 1102100.) 1103 1104- restructured the code which deals with the numerous possible fields and 1105flags that are set in struct nfs_args. That code was moved to libamu as 1106the functions compute_nfs_args() and compute_automounter_nfs_args(). 1107 1108- bugs fixed: 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 1117 1118*** Notes specific to am-utils version 6.0a13: 1119 1120- new in_network(ARG) nomadic selector, true if ARG is the name (or number) 1121of any of this host's network interfaces. 1122 1123- removed variables primnetname, primnetnum, subsnetname, and subsnetnum. 1124(Kept "wire" and its alias "network", and "netnumber".) 1125 1126- include am-utils.dvi and am-utils.ps in distribution. 1127 1128- hlfsd supports new option -P ARG, for reading password map off of file 1129ARG. Allows you to use the hlfs redirector using paths other than user's 1130home directories. 1131 1132- use a replacement yp_all for some systems (irix) known to have a broken 1133one which leaks a file descriptor each time called. 1134 1135- if remote NFS server is down or does not support portmap, downgrade 1136machine to NFS V.2 and retry again later. 1137 1138- bugs: 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 1145 1146- minor code cleanups for netbsd 1147 1148- html docs now in http://www.am-utils.org 1149 1150- added README file in binaries ftp directory 1151 1152*** Notes specific to am-utils version 6.0a12: 1153 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). 1162 1163- new ports: 1164 powerpc-ibm-aix4.2.1.0: compiles w/ NFS V.3, untested. 1165 1166- wire-test also checks for combinations of NFS protocol/version from the 1167client to a remote (or local) host. 1168 1169- conf/mtab/mtab_file.c: use flock() to lock the file, and fcntl() if 1170flock() is not available. (Used to prefer fcntl() over flock().) 1171 1172- bug fixes: 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) 1181 1182*** Notes specific to am-utils version 6.0a11: 1183 1184- bug fixes: 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 1187 1188*** Notes specific to am-utils version 6.0a10: 1189 1190- MAJOR DOCUMENTATION UPDATE! (first time in 6 years) 1191 1192- new ports: 1193 m68k-next-nextstep3: configures, compiles, not tested. 1194 1195- preliminary autofs support. See README.autofs for details. 1196 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 1200 1201- detect down remote hosts faster 1202 1203- log output of "amd -v" at startup 1204 1205- removed $osver override for solaris: now it is 2.5.1, not 5.5.1 1206 1207- buildall will use gmake first if available 1208 1209- bugs fixed: 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 1218 1219*** Notes specific to am-utils version 6.0a9: 1220 1221- new ports: 1222 sparc-sun-solaris2.4: 1223 configures/compiles, and runs (no NFS V3) 1224 i386-unknown-openbsd2.1: 1225 configures/compiles, runs (NFS V3) 1226 1227- updated ports: 1228 i486-ncr-sysv4.3.03: configures/compiles, not tested 1229 1230- Multiple amd support: new amd.conf [global] key "portmap_program" can be 1231used to specify an alternate RPC program number for amd to un/register. 1232Allowed numbers range from 300019 to 300029. A matching new option for amq: 1233-P prognum, will use an alternate program number to contact. 1234 1235- man pages: 1236 amd.conf.5 new 1237 mk-amd-map.8 new 1238 amd.8 updated 1239 amq.8 updated 1240 (other man pages required minor updates) 1241 1242- shared libraries support expanded. Using GNU libtool-1.0. You can build 1243a shared version of libamu, and link with it accordingly, by specifying 1244--enable-shared to configure. Default is --enable-static --disable-shared, 1245and you can mix and match. See "INSTALL" file for listing of systems on 1246which shared libraries seem to build and work fine. 1247 1248- new option: amq -p, will return the PID of the running amd (local or 1249remote). Uses a new RPC message. Useful especially in "ctl-amd stop". 1250 1251- new configure script options --enable-ldflags, for specifying -L flags. 1252The older --enable-libs is to be used only for -l options. 1253 1254- two new LDAP map options for amd.conf: ldap_cache_seconds and 1255ldap_cache_maxmem. 1256 1257- new script, am-eject from Debian linux's version of amd-upl102. 1258 1259- additional passwd map support using var[0-3], from Debian folks. 1260 1261- hesiod code cleanup. works for hesiod 1.3 as well as 3.0. 1262 1263- removed defunct -h option from amd. 1264 1265- started using automake-1.2. This fixed several bugs that caused some 1266versions of yacc/lex and non-GNU make to fail. 1267 1268- bug fixes: 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 1279 1280 1281*** Notes specific to am-utils version 6.0a8: 1282 1283- new ports: 1284 i386-unknown-netbsd1.2.1: configures/compiles (with NFS V.3), works, 1285 but some OS stability problems exist. 1286 1287- updated ports: 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 1292 1293- fixed browsable directories (readdir) code. 1294 1295- better methods to find amd/hlfsd pid to kill in ctl-{amd,hlfsd} 1296 1297- "ignore/auto" mount types fixed for irix, sunos, and others, so "df" does not 1298show amd mounts by default (but GNU df -a does). 1299 1300- each time amd is built, a new "build" version is incremented. See amd -v. 1301 1302- man page for fsinfo added 1303 1304- empty fillers for new file (bsd44) systems: nullfs, unionfs, umapfs. 1305 1306- when amd is not running, or portmapper is down, make amq timeout faster (5 1307sec) than system default, usually 4-5 minutes. 1308 1309- bug fixes: 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 1318 1319- assorted code cleanup 1320 1321 1322*** Notes specific to am-utils version 6.0a7: 1323 1324- new ports: 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 1331 1332- updated ports: 1333 i386-pc-bsdi3.0: 1334 NFS V.3 works 1335 look for hesiod in libc 1336 mips-sgi-irix5.3: 1337 fully functional with NFS V.3 1338 1339- LDAP support! New [global] amd.conf options ldap_base and ldap_hostports. 1340Also includes a new script amd2ldif to convert amd maps into plain text LDAP 1341object files. 1342 1343- the following amd.conf variables: browsable_dirs, map_options, map_type, 1344mount_type, and search_path --- can now be specified in [global] as well as 1345the map entry itself. That way you can declare them only once in [global], 1346and override them as needed per map. 1347 1348- option "cluster" added to [global] (HPUX clusters ala "amd -C"). 1349 1350- assorted info_hesiod map fixes and cleanup. removed HESIOD_RELOAD code. 1351 1352- added netgrp(name) function to amd map syntax to see if current host is in 1353the <name> netgroup. 1354 1355- removed unused option "amd -m". 1356 1357- filled in "tasks" file with todo items. 1358 1359- filled "COPYING" file with legal stuff. 1360 1361- cleanup: all global variables are now in one big structure (struct 1362amu_global_options) that's easy to identify and enhance. Also migrated 1363several flags that used be an integer each into one unsigned integer that's 1364used as a bit-flag. 1365 1366- big fixes: 1367 xdr_mountres3 should compile only if has NFS V3 1368 lex/yacc macros show full pathname (to tell if correct one runs) 1369 misc fixes/cleanup 1370 1371 1372*** Notes specific to am-utils version 6.0a6: 1373 1374- amd configuration file! 1375 1376See scripts/amd.conf-sample for help and some explanation. This new conf 1377file allows for the following new features: 1378 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). 1387 and more goodies... 1388 1389- enable-default-selectors: No longer turned on by the configure script or 1390optionally compiled. Code made dynamic and can be turned on or off from the 1391amd.conf file. This code is off by default, and must be turned on by 1392amd.conf's [global] section. 1393 1394- new ports: 1395 mips-sgi-irix5.3: configure/compile, not tested 1396 i486-ncr-sysv4.3.03: configure/compile, not tested 1397 1398- updated ports: 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" 1403 1404- better NFS3 port, including more support for proto= and vers=, and 1405automatic determination of proto/vers combination. 1406 1407- conf/nfs_prot/nfs_prot_*.h: all of the NFS protocol header files had to be 1408redone, because of the osf4 port. OSF used very different names for these, 1409and they conflicted with am-utils'. The only solution was to more or less 1410conform to OSF4's naming, and change all the others. 1411 1412- ctl-amd script: 1413 improved to look for amd.conf in $prefix/etc and /etc 1414 better methods for finding the pid of amd to kill 1415 1416- autoconf support for LDAP. amd/info_ldap.c needs to be written. 1417 1418- wire-test also reports the local IP address. Some systems have multiple, 1419buggy version of get_myaddress(), esp. SunOS and Irix. Note that Solaris 1420x86 has a buggy htonl(). 1421 1422- amd -H prints usage. 1423 1424- bugs fixed: 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 1430 1431 1432*** Notes specific to am-utils version 6.0a5: 1433 1434- NFS Version 3 support!!! 1435 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. 1439 1440Will fall back to V2 mounts when V3 is not available. Will also use TCP if 1441possible, UDP otherwise. 1442 1443- Ports to new platforms: 1444 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) 1449 1450- New scripts added: 1451 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 1460 1461- "amd -v" now includes more info and "amq -v" lists all of it. 1462 1463- new parser for linux specific mount options. 1464 1465- Main bugs fixed: 1466 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 1473 1474 1475*** Notes specific to am-utils version 6.0a4: 1476 1477- amd services both TCP and UDP amq requests. This will help because of the 1478limited UDP message size. 1479 1480- "amq -M" code is disabled by default because it is insecure. It is 1481rarely used. Users who wish to use it should run 1482"configure --enable-amq-mount". 1483 1484 1485*** Notes specific to am-utils version 6.0a3: 1486 1487- New tested ports (configures, compiles, and runs): 1488 1489 i386-unknown-freebsd2.2 1490 1491- New ports (configures and compiles correctly, not tested): 1492 1493 rs6000-ibm-aix3.2.5 1494 rs6000-ibm-aix4.1.5.0 1495 1496- More am-utils programs ported to all existing platforms: hlfsd, fsinfo, 1497mk-amd-map, and fixmount. 1498 1499- Shared libraries: a new configure option --enable-shared will build a 1500shared libamu.so, link applications with it, and use it. Reduces binary 1501sizes by 20-30%. This is the first step towards loadable modules, as many 1502changes had to be done to be able to compile and use PIC code. This is code 1503that obviously needs to be generalized to be able to build shared libraries 1504on many other platforms. It was only tested on Solaris 5.5.1. 1505 1506- the file INSTALL contains the latest compatibility table of which 1507platforms am-utils configures, compiles and runs on. 1508 1509- Trimmed down the size of the configure script. Some tests that are not 1510used anywhere were removed. 1511 1512 1513*** Notes specific to am-utils version 6.0a2: 1514 1515- New ports (configures and compiles correctly, not tested): 1516 1517 i386-pc-bsdi2.1 1518 hppa1.1-hp-hpux9.01 1519 hppa1.1-hp-hpux10.20 1520 1521- new configure options: 1522 1523 --enable-cppflags[=ARG] 1524 configure/compile with ARG (-I) preprocessor flags 1525 --enable-libs[=ARG] 1526 configure/compile with ARG (-L/-l) library flags 1527 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 1530modules (linux) 1531 1532- prefer vfat over msdos/pc/etc file system for PCFS. 1533 1534- moved all fixed headers to include/am_defs. Left only #define/#undef 1535entries in aux/acconfig.h. 1536 1537- make more sense of systems that have full, partial, or no NFS protocol 1538headers. 1539 1540- minor fixes for NetBSD (untested platform). 1541 1542- hesiod map fixed. 1543 1544- buildall -D: new option to run even stricter developer options. 1545 1546- lots of other bugs fixed (see ChangeLog). 1547 1548 1549*** Notes specific to am-utils version 6.0a1: 1550 1551I have it configure and build correctly for the following systems: 1552 1553 i386-pc-solaris2.5.1 1554 i386-unknown-freebsd2.1.0 1555 mips-sgi-irix6.2 1556 sparc-sun-solaris2.5.1 1557 sparc-sun-sunos4.1.3 1558 1559Amq, wire-test, and "amd -v" work on all of the above. A real running amd 1560was only tested and confirmed working on 1561 1562 i386-pc-solaris2.5.1 1563 sparc-sun-solaris2.5.1 1564 1565Many things are still missing: options, features, etc. But for now, let's 1566concentrate on getting the basic functionality working on the more popular 1567systems. 1568