1 *** Notes specific to am-utils version 6.0:
3 - updated or minor new ports:
6 i386-unknown-freebsd2.2.8
7 i386-unknown-netbsd1.3.3
8 i386-unknown-openbsd2.4
10 powerpc-ibm-aix4.3.1.0
11 i386-unknown-freebsd3.0 now supports nfs v.3
13 - ctl-amd and ctl-hlfsd now compatible with RedHat's chkconfig utility
15 - ctl-amd stop will now wait until amd is down
17 - libamu.so completely self contained --- does not export any symbols which
18 must be defined by the process linking with it. This is so shared
19 libraries could be supported on systems that have restrictive shared
22 - use latest autoconf, automake, and libtool (off of cygnus' CVS server) to
23 support shared libraries on many more platforms.
28 case insensitive host match in type:=nfsl
29 correct swapped args to kill(2)
30 try to avoid a race condition b/t mounting and unmounting
31 yp_all support is found in libnsl in RH-5.1 systems
33 *** Notes specific to am-utils version 6.0b1:
35 - updated or minor new ports:
36 - *-pc-linux-gnu (glibc2 systems such as RedHat 5.1)
37 - sparc-sun-solaris2.7
39 - i386-unknown-freebsd3.0 (official release, post 4.4lite port)
40 - sparc64-unknown-linux-gnu (RH 5.1 on Sun Sparc Ultra)
43 - major memory leak in processing of /defaults
44 - core dump if map_type given in amd.conf doesn't exist
45 - memory leak in replacement yp_all
46 - don't access uninitialized memory in DU 4.0
47 - other smaller bugs, see ChangeLog
49 *** Notes specific to am-utils version 6.0a16:
52 hppa1.0-hp-hpux11.00 (works, not NFS V.3 due to missing headers)
53 mips-dec-ultrix4.3 (working, unverified)
57 i386-unknown-netbsd1.3.1
60 - new options addopt:=ARG will "smartly" add and override options specified
63 - new amd.conf options:
64 pid_file: specifies the file to store the PID
65 hesiod_base: specifies the base for the Hesiod service
66 unmount_on_exit: if 'yes' will attempt to unmount all file systems
69 - amd.conf file is parsed after all other command line options. If no
70 options specified at all, then use /etc/amd.conf by default.
72 - some variables' values are now compared case-insensitive as per specs,
73 such as host names, domain names, and more.
75 - NIS service uses a new isup() function to detect if the service is up
76 before using it. Used to ensure amd doesn't clear the existing maps before
77 reloading them, unless the remote info service is working.
79 - new cdfs mount options: rrip, noversion, defperm, nodefperm (OSF)
81 - support efs/xfs separately on irix
83 - new -D info trace option to turn on info specific debugging, such as
84 RES_DEBUG for hesiod services.
86 - document updates and fixes
88 - new file MIRRORS lists official mirror sites (also in am-utils home page)
90 - new file BUGS lists known amd/OS bugs
92 - source restructuring: rename all Amd file-systems' sources to amfs_ARG.c
93 such that it matches the type:=ARG as well. Free names afs/dfs for Andrew
94 F/S and Distributed F/S.
96 - checkpoint config.guess several times during the long configure, so that
97 if it is aborted midway, the bulk of the features discovered will be re-read
98 from the config.cache file.
100 - more systems support shared libraries (libtool 1.2)
102 - using automake 1.3 + more fixes
105 use dynamic buffer for list of interfaces, not fixed size
106 output of amd -H duplicated if >2 interfaces
107 -D mem for hlfsd not on by default (so it will daemonize)
108 linux looks for ext2fs before ufs
109 CDFS looks for 'isofs' mount type as well
110 compile on Solaris 2.6 with /opt/SUNWspro/bin/cc
111 various additional fixes which gcc 2.8.x reported
112 print syslog help string based on what's supported
113 correctly ignore loopback interface on SunOS 3.x
114 don't use -lucb for strcasecmp
115 hlfsd's dump file securely written in /usr/tmp/hlfsd.dump.XXXXXX
116 inherit NFS V.3 mounts correctly
117 write pid file securely
119 *** Notes specific to am-utils version 6.0a15:
122 alpha-unknown-linux-gnu: works
123 i386-unknown-netbsd1.3: fully working
124 *-sun-sunos3: compiles, not tested
127 m68k-next-nextstep3: cleaner compile, works.
129 - new file system type nfsl (NFS Link). Uses nfs if file system is remote,
130 and link if it is local (based on if $rhost equals the host name).
132 - support for Solaris cachefs. Requires setting fs, rfs, and a new variable
133 cachedir. See documentation for explanation, examples, and caveats.
135 - support negated selector functions such as !exists(/foo/bar)
137 - wire, network, netnumber, in_network() selectors now match against all
138 locally attached networks (by either name or number), not just the first two
141 - new program pawd (and man page for it) --- Print Automounter Working
142 Directory, to print the proper pathname of the cwd or any other pathname,
143 adjusted for automounter paths, while avoiding mount points.
145 - two new switches to amq: -U will force using UDP only; -T will force using
146 only TCP to communicate with amd. If neither (or both) are specified, amq
147 will try TCP first, and if that failed, will try UDP.
149 - support syslog facilities, using "amd -l syslog:facility". Old behavior
150 when using only -l syslog is to use the LOG_DAEMON facility.
152 - you may specify browsable_dirs=full, to get a listing of all entries
153 (other than /default), including those with '*' wildcard and '/'
156 - amd -D trace now also includes as much of struct nfs_args as can be
157 displayed. Useful in figuring out what the kernel really gets during a
158 mount(2), as opposed to what the /etc/mnttab file says. -D trace also
159 traces the xdr_* functions.
161 - support for versions of shared libamu version. upped version from 0.0.0
162 to 1.0.0. each am-utils release that will change the library will also
165 - amd/ops_TEMPLATE.c: a new template file for those brave enough to try and
166 implement a new amd file system. Includes comments and other info useful
169 - if localconfig.h exists in the current directory during the run of
170 configure, it is included in all am-utils sources. This allows courageous
171 developers to make certain modifications during compilations, and especially
172 turn off undesired features (not very recommended).
174 - documentation types and updates for all new features, ports, etc.
177 support NFS mount options grpid and maxgrps
178 nextstep: set NFS success code to 0 (NFS_OK), not 1 (EPERM)
179 bsdi2: set NFS success code to 0 (NFS_OK), not 1 (EPERM)
180 set NFS V.3 mount table names to "nfs" if vers/proto exist
181 use mkstemp() if possible (more secure)
182 ctl-amd looks for amd.conf in ${prefix}/etc after /etc
183 hpux: use "ignore" mount table type
184 openbsd2.2: turn off "noconn" mount option, so only connected used
185 fixed memory leak in hlfsd (don't setpwent after endpwent)
186 all NFS3 systems should have proto/vers mount/amd options
187 DEBUG_MEM compiles and prints something more useful
188 uninit_mntfs(): free() mf_private *after* it is used
189 browsable_readdir: fewer bytes sent back to kernel for each chunk
190 mount_toplvl: don't free() an automatic variable!
191 amd should chdir() to / before daemonzing (for core dumps etc)
192 cdfs should be called 'cdfs' not whatever the mnttab type is
193 amd -v: don't print "FS:" list twice when >=2 net interfaces
195 *** Notes specific to am-utils version 6.0a14:
198 powerpc-ibm-aix4.2.1.0: NFS V.3 works
201 sparc-sun-sunos4.1.3C
202 m68k-sun-sunos4.1.1 (sun3)
205 - new option to amd, -O ARG, will override the operating systems *name* with
206 ARG. Corrected documentation for amd -o ARG --- it overrides the operating
207 system *version* and not the name as the docs incorrectly stated.
209 - logging now behave more like syslog: will not print repeated strings, but
210 rather a count such as "last message repeated N times". (N will not exceed
213 - restructured the code which deals with the numerous possible fields and
214 flags that are set in struct nfs_args. That code was moved to libamu as
215 the functions compute_nfs_args() and compute_automounter_nfs_args().
218 mnttab name ufs/cdfs/pcfs/etc filesystems corrected
219 use pmap_ping for amq (a must for secure portmappers, bsdi2/3)
220 test for xfs (irix) as a disk-based filesystem
221 set correct nfs_prot headers for Solaris 2.5
222 removed stale code from lostaltmail.in
223 lostaltmail will look for conf file in multiple locations
224 assorted documentation corrections
225 amq does not print "get_secure_amd_client" if run as root
227 *** Notes specific to am-utils version 6.0a13:
229 - new in_network(ARG) nomadic selector, true if ARG is the name (or number)
230 of any of this host's network interfaces.
232 - removed variables primnetname, primnetnum, subsnetname, and subsnetnum.
233 (Kept "wire" and its alias "network", and "netnumber".)
235 - include am-utils.dvi and am-utils.ps in distribution.
237 - hlfsd supports new option -P ARG, for reading password map off of file
238 ARG. Allows you to use the hlfs redirector using paths other than user's
241 - use a replacement yp_all for some systems (irix) known to have a broken
242 one which leaks a file descriptor each time called.
244 - if remote NFS server is down or does not support portmap, downgrade
245 machine to NFS V.2 and retry again later.
248 don't redefine yywrap on systems using a modified flex
249 use correct "ignore" mnttab/mount option on hpux for df(1)
250 use nfs_args' fsname field (hpux) to avoid syncer/mount(1) problems
251 don't add ops_ufs.o twice to Makefile's $(OBJS)
252 don't fail if autofs listener fails to initialize
253 hlfsd should test if run as root after usage() and getopt
255 - minor code cleanups for netbsd
257 - html docs now in http://www.cs.columbia.edu/~ezk/am-utils/
259 - added README file in binaries ftp directory
261 *** Notes specific to am-utils version 6.0a12:
263 - minor or updated/broken ports fixed:
264 hppa1.1-hp-hpux10.10: compiles, untested (probably works).
265 hppa1.1-hp-hpux9.05: compiles, untested (probably works).
266 hppa1.1-hp-hpux9.07: compiles, untested (probably works).
267 m68k-hp-hpux9.00: compiles, untested (probably works).
268 rs6000-ibm-aix4.1.4.0: compiles, untested.
269 sparc-sun-solaris2.6: works w/ NFS V.3.
270 sparc-sun-sunos4.1.4: compiles, untested (probably works).
273 powerpc-ibm-aix4.2.1.0: compiles w/ NFS V.3, untested.
275 - wire-test also checks for combinations of NFS protocol/version from the
276 client to a remote (or local) host.
278 - conf/mtab/mtab_file.c: use flock() to lock the file, and fcntl() if
279 flock() is not available. (Used to prefer fcntl() over flock().)
282 tli get_nfs_version() gets into an infinite loop
283 tli get_nfs_version() should time out faster
284 sockets get_nfs_version() should work w/ secure portmappers
285 ESTALE returned for NFS mounts for SunOS 4.x fixed
286 do not exceed HOSTNAMESZ for nfs_args.hostname (get ENAMETOOLONG)
287 properly initialize some mntent_t fields (fsck, freq, mnt_time)
288 properly initialize some pcfs_args fields (mask, uid, gid)
289 properly initialize some cdfs_args fields (ssector)
291 *** Notes specific to am-utils version 6.0a11:
294 amd could not NFS mount v.2 servers from v.3 clients
295 hlfsd will only use first occurrence of home dir for same uid
297 *** Notes specific to am-utils version 6.0a10:
299 - MAJOR DOCUMENTATION UPDATE! (first time in 6 years)
302 m68k-next-nextstep3: configures, compiles, not tested.
304 - preliminary autofs support. See README.autofs for details.
306 - new amd.conf [global] yes/no keywords:
307 show_statfs_entries: shows number of entries for df(1)
308 fully_qualified_hosts: use FQHN for NFS/RPC authentication
310 - detect down remote hosts faster
312 - log output of "amd -v" at startup
314 - removed $osver override for solaris: now it is 2.5.1, not 5.5.1
316 - buildall will use gmake first if available
319 amd core dumped when remote host was down
320 allow up to 1024 entries back from readdir()
321 amd.conf works even if only [global] option defined
322 avoid using bad memcmp() implementations
323 fixed meaning of plock [global] option (was reversed)
324 hlfsd infinite loop unless compiled with --enable-debug
325 NIS code works with NIS+ servers in NIS compatibility mode
326 reset tag fields in amd.conf so they don't carry to other entries
328 *** Notes specific to am-utils version 6.0a9:
331 sparc-sun-solaris2.4:
332 configures/compiles, and runs (no NFS V3)
333 i386-unknown-openbsd2.1:
334 configures/compiles, runs (NFS V3)
337 i486-ncr-sysv4.3.03: configures/compiles, not tested
339 - Multiple amd support: new amd.conf [global] key "portmap_program" can be
340 used to specify an alternate RPC program number for amd to un/register.
341 Allowed numbers range from 300019 to 300029. A matching new option for amq:
342 -P prognum, will use an alternate program number to contact.
349 (other man pages required minor updates)
351 - shared libraries support expanded. Using GNU libtool-1.0. You can build
352 a shared version of libamu, and link with it accordingly, by specifying
353 --enable-shared to configure. Default is --enable-static --disable-shared,
354 and you can mix and match. See "INSTALL" file for listing of systems on
355 which shared libraries seem to build and work fine.
357 - new option: amq -p, will return the PID of the running amd (local or
358 remote). Uses a new RPC message. Useful especially in "ctl-amd stop".
360 - new configure script options --enable-ldflags, for specifying -L flags.
361 The older --enable-libs is to be used only for -l options.
363 - two new LDAP map options for amd.conf: ldap_cache_seconds and
366 - new script, am-eject from Debian linux's version of amd-upl102.
368 - additional passwd map support using var[0-3], from Debian folks.
370 - hesiod code cleanup. works for hesiod 1.3 as well as 3.0.
372 - removed defunct -h option from amd.
374 - started using automake-1.2. This fixed several bugs that caused some
375 versions of yacc/lex and non-GNU make to fail.
378 amd/hlfsd mounts should be hidden from df(1)
379 use "noconn" option for nfs mounts (multi-homed hosts)
380 don't use connected sockets on linux before 1.3.10 (from Debian)
381 better checks for [gn]dbm
382 forbid excessive retries after timeouts (from Debian)
383 readdir(): don't skip over map entries with prefix, and include it
384 more assorted linux fixes from Debian folks
385 lofs mount on svr4 was broken
386 find default value of $karch from uname() not $arch
387 hlfsd failed to mount itself on some little-endians
390 *** Notes specific to am-utils version 6.0a8:
393 i386-unknown-netbsd1.2.1: configures/compiles (with NFS V.3), works,
394 but some OS stability problems exist.
398 now tested and working
399 rs6000-ibm-aix3.2 and rs6000-ibm-aix3.2.5:
400 now tested and working
402 - fixed browsable directories (readdir) code.
404 - better methods to find amd/hlfsd pid to kill in ctl-{amd,hlfsd}
406 - "ignore/auto" mount types fixed for irix, sunos, and others, so "df" does not
407 show amd mounts by default (but GNU df -a does).
409 - each time amd is built, a new "build" version is incremented. See amd -v.
411 - man page for fsinfo added
413 - empty fillers for new file (bsd44) systems: nullfs, unionfs, umapfs.
415 - when amd is not running, or portmapper is down, make amq timeout faster (5
416 sec) than system default, usually 4-5 minutes.
419 hlfsd mount got "protocol not supported"
420 first regular map in amd.conf didn't inherit global options
421 make "bad" versions of lex still work with amd/conf_parse.l
422 check for 'nodev' option, not 'nondev'
423 typo in "ro" option, and fillers to ac{reg,dir}{min,max} and others
424 amd.conf parsing done before switching default log/debug options
425 allow doubly-quoted values in amd.conf
426 hesiod-reload code cleanup
428 - assorted code cleanup
431 *** Notes specific to am-utils version 6.0a7:
434 i386-unknown-freebsd3.0:
435 fully functional with NFS V.3
436 sparc-sun-solaris2.3:
437 fully functional (should work for 2.4)
438 sparc-unknown-netbsd1.2E:
439 configures/compiles (with NFS V.3), untested
444 look for hesiod in libc
446 fully functional with NFS V.3
448 - LDAP support! New [global] amd.conf options ldap_base and ldap_hostports.
449 Also includes a new script amd2ldif to convert amd maps into plain text LDAP
452 - the following amd.conf variables: browsable_dirs, map_options, map_type,
453 mount_type, and search_path --- can now be specified in [global] as well as
454 the map entry itself. That way you can declare them only once in [global],
455 and override them as needed per map.
457 - option "cluster" added to [global] (HPUX clusters ala "amd -C").
459 - assorted info_hesiod map fixes and cleanup. removed HESIOD_RELOAD code.
461 - added netgrp(name) function to amd map syntax to see if current host is in
464 - removed unused option "amd -m".
466 - filled in "tasks" file with todo items.
468 - filled "COPYING" file with legal stuff.
470 - cleanup: all global variables are now in one big structure (struct
471 amu_global_options) that's easy to identify and enhance. Also migrated
472 several flags that used be an integer each into one unsigned integer that's
476 xdr_mountres3 should compile only if has NFS V3
477 lex/yacc macros show full pathname (to tell if correct one runs)
481 *** Notes specific to am-utils version 6.0a6:
483 - amd configuration file!
485 See scripts/amd.conf-sample for help and some explanation. This new conf
486 file allows for the following new features:
488 default selectors can be turned on/off globally.
489 browsable_dirs/readdir() support can be turned on per map.
490 search paths for file type maps.
491 can force the map type to file, nis, ndbm, etc. rather than default
492 to looking at all of them.
493 tag each map for "amd -T tag", useful for grouping maps.
494 can override $os and others (so if you don't like "sunos5" default
495 naming, set os=sos5 and it will work with your old maps).
498 - enable-default-selectors: No longer turned on by the configure script or
499 optionally compiled. Code made dynamic and can be turned on or off from the
500 amd.conf file. This code is off by default, and must be turned on by
501 amd.conf's [global] section.
504 mips-sgi-irix5.3: configure/compile, not tested
505 i486-ncr-sysv4.3.03: configure/compile, not tested
508 alpha-dec-osf4.0: major code redone
509 sparc-sun-sunos4.1.3: fixed and working
510 mips-sgi-irix6.2: tested with gcc and "cc -32 -Wl,-woff,84"
511 mips-sgi-irix6.4: tested with gcc and "cc -32 -Wl,-woff,84"
513 - better NFS3 port, including more support for proto= and vers=, and
514 automatic determination of proto/vers combination.
516 - conf/nfs_prot/nfs_prot_*.h: all of the NFS protocol header files had to be
517 redone, because of the osf4 port. OSF used very different names for these,
518 and they conflicted with am-utils'. The only solution was to more or less
519 conform to OSF4's naming, and change all the others.
522 improved to look for amd.conf in $prefix/etc and /etc
523 better methods for finding the pid of amd to kill
525 - autoconf support for LDAP. amd/info_ldap.c needs to be written.
527 - wire-test also reports the local IP address. Some systems have multiple,
528 buggy version of get_myaddress(), esp. SunOS and Irix. Note that Solaris
529 x86 has a buggy htonl().
531 - amd -H prints usage.
534 minor TLI problem in fwd_socket
535 mount options properly comma delimited
536 LIBS is set only to the right set of libraries to include
537 selectors-on-default code ignored last selector ent in /defaults
538 assorted code cleanups
541 *** Notes specific to am-utils version 6.0a5:
543 - NFS Version 3 support!!!
545 Works on Solaris 2.5.1.
546 Minimal testing done on Irix 6.
547 Compiles cleanly on DU-4.0 but no tests performed.
549 Will fall back to V2 mounts when V3 is not available. Will also use TCP if
550 possible, UDP otherwise.
552 - Ports to new platforms:
554 alpha-dec-osf4.0 (not tested)
555 i386-pc-bsdi3.0 (tested and working)
556 i386-unknown-freebsd2.2.1 (tested and working)
557 sparc-unknown-linux-gnu (tested and working)
561 amd2sun: convert amd maps to Sun automount maps
562 ctl-amd: script to start/stop/restart amd
563 ctl-hlfsd: script to start/stop/restart hlfsd
564 expn: expand mail alias (used by hlfsd)
565 lostaltmail: redeliver "lost" mail redirected by hlfsd
566 lostaltmail.conf-sample: sample conf file for lostaltmail
567 wait4amd: run a command once amd is up on a host
568 wait4amd2die: wait for an amd process to die before returning
570 - "amd -v" now includes more info and "amq -v" lists all of it.
572 - new parser for linux specific mount options.
576 "new toplvl readdir" bug caused amd to dump core
577 handler for SIGCHLD didn't check for all possible children
578 hlfsd leaking file descriptors when home file system was full
579 cdfs/pcfs mounts should not timeout by default
580 hesiod domain names should be compared in case-insensitive manner
581 several printfs in amq were missing \n
584 *** Notes specific to am-utils version 6.0a4:
586 - amd services both TCP and UDP amq requests. This will help because of the
587 limited UDP message size.
589 - "amq -M" code is disabled by default because it is insecure. It is
590 rarely used. Users who wish to use it should run
591 "configure --enable-amq-mount".
594 *** Notes specific to am-utils version 6.0a3:
596 - New tested ports (configures, compiles, and runs):
598 i386-unknown-freebsd2.2
600 - New ports (configures and compiles correctly, not tested):
603 rs6000-ibm-aix4.1.5.0
605 - More am-utils programs ported to all existing platforms: hlfsd, fsinfo,
606 mk-amd-map, and fixmount.
608 - Shared libraries: a new configure option --enable-shared will build a
609 shared libamu.so, link applications with it, and use it. Reduces binary
610 sizes by 20-30%. This is the first step towards loadable modules, as many
611 changes had to be done to be able to compile and use PIC code. This is code
612 that obviously needs to be generalized to be able to build shared libraries
613 on many other platforms. It was only tested on Solaris 5.5.1.
615 - the file INSTALL contains the latest compatibility table of which
616 platforms am-utils configures, compiles and runs on.
618 - Trimmed down the size of the configure script. Some tests that are not
619 used anywhere were removed.
622 *** Notes specific to am-utils version 6.0a2:
624 - New ports (configures and compiles correctly, not tested):
630 - new configure options:
632 --enable-cppflags[=ARG]
633 configure/compile with ARG (-I) preprocessor flags
635 configure/compile with ARG (-L/-l) library flags
637 - filesystem, mount table entries, and mount type tests can now look in
638 /lib/modules and /proc/filesystems for statically/dyadically loadable kernel
641 - prefer vfat over msdos/pc/etc filesystem for PCFS.
643 - moved all fixed headers to include/am_defs. Left only #define/#undef
644 entries in aux/acconfig.h.
646 - make more sense of systems that have full, partial, or no NFS protocol
649 - minor fixes for NetBSD (untested platform).
653 - buildall -D: new option to run even stricter developer options.
655 - lots of other bugs fixed (see ChangeLog).
658 *** Notes specific to am-utils version 6.0a1:
660 I have it configure and build correctly for the following systems:
663 i386-unknown-freebsd2.1.0
665 sparc-sun-solaris2.5.1
668 Amq, wire-test, and "amd -v" work on all of the above. A real running amd
669 was only tested and confirmed working on
672 sparc-sun-solaris2.5.1
674 Many things are still missing: options, features, etc. But for now, let's
675 concentrate on getting the basic functionality working on the more popular