1 *** Notes specific to am-utils version 6.0a16:
4 hppa1.0-hp-hpux11.00 (works, not NFS V.3 due to missing headers)
5 mips-dec-ultrix4.3 (working, unverified)
9 i386-unknown-netbsd1.3.1
12 - new options addopt:=ARG will "smartly" add and override options specified
15 - new amd.conf options:
16 pid_file: specifies the file to store the PID
17 hesiod_base: specifies the base for the Hesiod service
18 unmount_on_exit: if 'yes' will attempt to unmount all file systems
21 - amd.conf file is parsed after all other command line options. If no
22 options specified at all, then use /etc/amd.conf by default.
24 - some variables' values are now compared case-insensitive as per specs,
25 such as host names, domain names, and more.
27 - NIS service uses a new isup() function to detect if the service is up
28 before using it. Used to ensure amd doesn't clear the existing maps before
29 reloading them, unless the remote info service is working.
31 - new cdfs mount options: rrip, noversion, defperm, nodefperm (OSF)
33 - support efs/xfs separately on irix
35 - new -D info trace option to turn on info specific debugging, such as
36 RES_DEBUG for hesiod services.
38 - document updates and fixes
40 - new file MIRRORS lists official mirror sites (also in am-utils home page)
42 - new file BUGS lists known amd/OS bugs
44 - source restructuring: rename all Amd file-systems' sources to amfs_ARG.c
45 such that it matches the type:=ARG as well. Free names afs/dfs for Andrew
46 F/S and Distributed F/S.
48 - checkpoint config.guess several times during the long configure, so that
49 if it is aborted midway, the bulk of the features discovered will be re-read
50 from the config.cache file.
52 - more systems support shared libraries (libtool 1.2)
54 - using automake 1.3 + more fixes
57 use dynamic buffer for list of interfaces, not fixed size
58 output of amd -H duplicated if >2 interfaces
59 -D mem for hlfsd not on by default (so it will daemonize)
60 linux looks for ext2fs before ufs
61 CDFS looks for 'isofs' mount type as well
62 compile on Solaris 2.6 with /opt/SUNWspro/bin/cc
63 various additional fixes which gcc 2.8.x reported
64 print syslog help string based on what's supported
65 correctly ignore loopback interface on SunOS 3.x
66 don't use -lucb for strcasecmp
67 hlfsd's dump file securely written in /usr/tmp/hlfsd.dump.XXXXXX
68 inherit NFS V.3 mounts correctly
69 write pid file securely
71 *** Notes specific to am-utils version 6.0a15:
74 alpha-unknown-linux-gnu: works
75 i386-unknown-netbsd1.3: fully working
76 *-sun-sunos3: compiles, not tested
79 m68k-next-nextstep3: cleaner compile, works.
81 - new file system type nfsl (NFS Link). Uses nfs if file system is remote,
82 and link if it is local (based on if $rhost equals the host name).
84 - support for Solaris cachefs. Requires setting fs, rfs, and a new variable
85 cachedir. See documentation for explanation, examples, and caveats.
87 - support negated selector functions such as !exists(/foo/bar)
89 - wire, network, netnumber, in_network() selectors now match against all
90 locally attached networks (by either name or number), not just the first two
93 - new program pawd (and man page for it) --- Print Automounter Working
94 Directory, to print the proper pathname of the cwd or any other pathname,
95 adjusted for automounter paths, while avoiding mount points.
97 - two new switches to amq: -U will force using UDP only; -T will force using
98 only TCP to communicate with amd. If neither (or both) are specified, amq
99 will try TCP first, and if that failed, will try UDP.
101 - support syslog facilities, using "amd -l syslog:facility". Old behavior
102 when using only -l syslog is to use the LOG_DAEMON facility.
104 - you may specify browsable_dirs=full, to get a listing of all entries
105 (other than /default), including those with '*' wildcard and '/'
108 - amd -D trace now also includes as much of struct nfs_args as can be
109 displayed. Useful in figuring out what the kernel really gets during a
110 mount(2), as opposed to what the /etc/mnttab file says. -D trace also
111 traces the xdr_* functions.
113 - support for versions of shared libamu version. upped version from 0.0.0
114 to 1.0.0. each am-utils release that will change the library will also
117 - amd/ops_TEMPLATE.c: a new template file for those brave enough to try and
118 implement a new amd file system. Includes comments and other info useful
121 - if localconfig.h exists in the current directory during the run of
122 configure, it is included in all am-utils sources. This allows courageous
123 developers to make certain modifications during compilations, and especially
124 turn off undesired features (not very recommended).
126 - documentation types and updates for all new features, ports, etc.
129 support NFS mount options grpid and maxgrps
130 nextstep: set NFS success code to 0 (NFS_OK), not 1 (EPERM)
131 bsdi2: set NFS success code to 0 (NFS_OK), not 1 (EPERM)
132 set NFS V.3 mount table names to "nfs" if vers/proto exist
133 use mkstemp() if possible (more secure)
134 ctl-amd looks for amd.conf in ${prefix}/etc after /etc
135 hpux: use "ignore" mount table type
136 openbsd2.2: turn off "noconn" mount option, so only connected used
137 fixed memory leak in hlfsd (don't setpwent after endpwent)
138 all NFS3 systems should have proto/vers mount/amd options
139 DEBUG_MEM compiles and prints something more useful
140 uninit_mntfs(): free() mf_private *after* it is used
141 browsable_readdir: fewer bytes sent back to kernel for each chunk
142 mount_toplvl: don't free() an automatic variable!
143 amd should chdir() to / before daemonzing (for core dumps etc)
144 cdfs should be called 'cdfs' not whatever the mnttab type is
145 amd -v: don't print "FS:" list twice when >=2 net interfaces
147 *** Notes specific to am-utils version 6.0a14:
150 powerpc-ibm-aix4.2.1.0: NFS V.3 works
153 sparc-sun-sunos4.1.3C
154 m68k-sun-sunos4.1.1 (sun3)
157 - new option to amd, -O ARG, will override the operating systems *name* with
158 ARG. Corrected documentation for amd -o ARG --- it overrides the operating
159 system *version* and not the name as the docs incorrectly stated.
161 - logging now behave more like syslog: will not print repeated strings, but
162 rather a count such as "last message repeated N times". (N will not exceed
165 - restructured the code which deals with the numerous possible fields and
166 flags that are set in struct nfs_args. That code was moved to libamu as
167 the functions compute_nfs_args() and compute_automounter_nfs_args().
170 mnttab name ufs/cdfs/pcfs/etc filesystems corrected
171 use pmap_ping for amq (a must for secure portmappers, bsdi2/3)
172 test for xfs (irix) as a disk-based filesystem
173 set correct nfs_prot headers for Solaris 2.5
174 removed stale code from lostaltmail.in
175 lostaltmail will look for conf file in multiple locations
176 assorted documentation corrections
177 amq does not print "get_secure_amd_client" if run as root
179 *** Notes specific to am-utils version 6.0a13:
181 - new in_network(ARG) nomadic selector, true if ARG is the name (or number)
182 of any of this host's network interfaces.
184 - removed variables primnetname, primnetnum, subsnetname, and subsnetnum.
185 (Kept "wire" and its alias "network", and "netnumber".)
187 - include am-utils.dvi and am-utils.ps in distribution.
189 - hlfsd supports new option -P ARG, for reading password map off of file
190 ARG. Allows you to use the hlfs redirector using paths other than user's
193 - use a replacement yp_all for some systems (irix) known to have a broken
194 one which leaks a file descriptor each time called.
196 - if remote NFS server is down or does not support portmap, downgrade
197 machine to NFS V.2 and retry again later.
200 don't redefine yywrap on systems using a modified flex
201 use correct "ignore" mnttab/mount option on hpux for df(1)
202 use nfs_args' fsname field (hpux) to avoid syncer/mount(1) problems
203 don't add ops_ufs.o twice to Makefile's $(OBJS)
204 don't fail if autofs listener fails to initialize
205 hlfsd should test if run as root after usage() and getopt
207 - minor code cleanups for netbsd
209 - html docs now in http://www.cs.columbia.edu/~ezk/am-utils/
211 - added README file in binaries ftp directory
213 *** Notes specific to am-utils version 6.0a12:
215 - minor or updated/broken ports fixed:
216 hppa1.1-hp-hpux10.10: compiles, untested (probably works).
217 hppa1.1-hp-hpux9.05: compiles, untested (probably works).
218 hppa1.1-hp-hpux9.07: compiles, untested (probably works).
219 m68k-hp-hpux9.00: compiles, untested (probably works).
220 rs6000-ibm-aix4.1.4.0: compiles, untested.
221 sparc-sun-solaris2.6: works w/ NFS V.3.
222 sparc-sun-sunos4.1.4: compiles, untested (probably works).
225 powerpc-ibm-aix4.2.1.0: compiles w/ NFS V.3, untested.
227 - wire-test also checks for combinations of NFS protocol/version from the
228 client to a remote (or local) host.
230 - conf/mtab/mtab_file.c: use flock() to lock the file, and fcntl() if
231 flock() is not available. (Used to prefer fcntl() over flock().)
234 tli get_nfs_version() gets into an infinite loop
235 tli get_nfs_version() should time out faster
236 sockets get_nfs_version() should work w/ secure portmappers
237 ESTALE returned for NFS mounts for SunOS 4.x fixed
238 do not exceed HOSTNAMESZ for nfs_args.hostname (get ENAMETOOLONG)
239 properly initialize some mntent_t fields (fsck, freq, mnt_time)
240 properly initialize some pcfs_args fields (mask, uid, gid)
241 properly initialize some cdfs_args fields (ssector)
243 *** Notes specific to am-utils version 6.0a11:
246 amd could not NFS mount v.2 servers from v.3 clients
247 hlfsd will only use first occurrence of home dir for same uid
249 *** Notes specific to am-utils version 6.0a10:
251 - MAJOR DOCUMENTATION UPDATE! (first time in 6 years)
254 m68k-next-nextstep3: configures, compiles, not tested.
256 - preliminary autofs support. See README.autofs for details.
258 - new amd.conf [global] yes/no keywords:
259 show_statfs_entries: shows number of entries for df(1)
260 fully_qualified_hosts: use FQHN for NFS/RPC authentication
262 - detect down remote hosts faster
264 - log output of "amd -v" at startup
266 - removed $osver override for solaris: now it is 2.5.1, not 5.5.1
268 - buildall will use gmake first if available
271 amd core dumped when remote host was down
272 allow up to 1024 entries back from readdir()
273 amd.conf works even if only [global] option defined
274 avoid using bad memcmp() implementations
275 fixed meaning of plock [global] option (was reversed)
276 hlfsd infinite loop unless compiled with --enable-debug
277 NIS code works with NIS+ servers in NIS compatibility mode
278 reset tag fields in amd.conf so they don't carry to other entries
280 *** Notes specific to am-utils version 6.0a9:
283 sparc-sun-solaris2.4:
284 configures/compiles, and runs (no NFS V3)
285 i386-unknown-openbsd2.1:
286 configures/compiles, runs (NFS V3)
289 i486-ncr-sysv4.3.03: configures/compiles, not tested
291 - Multiple amd support: new amd.conf [global] key "portmap_program" can be
292 used to specify an alternate RPC program number for amd to un/register.
293 Allowed numbers range from 300019 to 300029. A matching new option for amq:
294 -P prognum, will use an alternate program number to contact.
301 (other man pages required minor updates)
303 - shared libraries support expanded. Using GNU libtool-1.0. You can build
304 a shared version of libamu, and link with it accordingly, by specifying
305 --enable-shared to configure. Default is --enable-static --disable-shared,
306 and you can mix and match. See "INSTALL" file for listing of systems on
307 which shared libraries seem to build and work fine.
309 - new option: amq -p, will return the PID of the running amd (local or
310 remote). Uses a new RPC message. Useful especially in "ctl-amd stop".
312 - new configure script options --enable-ldflags, for specifying -L flags.
313 The older --enable-libs is to be used only for -l options.
315 - two new LDAP map options for amd.conf: ldap_cache_seconds and
318 - new script, am-eject from Debian linux's version of amd-upl102.
320 - additional passwd map support using var[0-3], from Debian folks.
322 - hesiod code cleanup. works for hesiod 1.3 as well as 3.0.
324 - removed defunct -h option from amd.
326 - started using automake-1.2. This fixed several bugs that caused some
327 versions of yacc/lex and non-GNU make to fail.
330 amd/hlfsd mounts should be hidden from df(1)
331 use "noconn" option for nfs mounts (multi-homed hosts)
332 don't use connected sockets on linux before 1.3.10 (from Debian)
333 better checks for [gn]dbm
334 forbid excessive retries after timeouts (from Debian)
335 readdir(): don't skip over map entries with prefix, and include it
336 more assorted linux fixes from Debian folks
337 lofs mount on svr4 was broken
338 find default value of $karch from uname() not $arch
339 hlfsd failed to mount itself on some little-endians
342 *** Notes specific to am-utils version 6.0a8:
345 i386-unknown-netbsd1.2.1: configures/compiles (with NFS V.3), works,
346 but some OS stability problems exist.
350 now tested and working
351 rs6000-ibm-aix3.2 and rs6000-ibm-aix3.2.5:
352 now tested and working
354 - fixed browsable directories (readdir) code.
356 - better methods to find amd/hlfsd pid to kill in ctl-{amd,hlfsd}
358 - "ignore/auto" mount types fixed for irix, sunos, and others, so "df" does not
359 show amd mounts by default (but GNU df -a does).
361 - each time amd is built, a new "build" version is incremented. See amd -v.
363 - man page for fsinfo added
365 - empty fillers for new file (bsd44) systems: nullfs, unionfs, umapfs.
367 - when amd is not running, or portmapper is down, make amq timeout faster (5
368 sec) than system default, usually 4-5 minutes.
371 hlfsd mount got "protocol not supported"
372 first regular map in amd.conf didn't inherit global options
373 make "bad" versions of lex still work with amd/conf_parse.l
374 check for 'nodev' option, not 'nondev'
375 typo in "ro" option, and fillers to ac{reg,dir}{min,max} and others
376 amd.conf parsing done before switching default log/debug options
377 allow doubly-quoted values in amd.conf
378 hesiod-reload code cleanup
380 - assorted code cleanup
383 *** Notes specific to am-utils version 6.0a7:
386 i386-unknown-freebsd3.0:
387 fully functional with NFS V.3
388 sparc-sun-solaris2.3:
389 fully functional (should work for 2.4)
390 sparc-unknown-netbsd1.2E:
391 configures/compiles (with NFS V.3), untested
396 look for hesiod in libc
398 fully functional with NFS V.3
400 - LDAP support! New [global] amd.conf options ldap_base and ldap_hostports.
401 Also includes a new script amd2ldif to convert amd maps into plain text LDAP
404 - the following amd.conf variables: browsable_dirs, map_options, map_type,
405 mount_type, and search_path --- can now be specified in [global] as well as
406 the map entry itself. That way you can declare them only once in [global],
407 and override them as needed per map.
409 - option "cluster" added to [global] (HPUX clusters ala "amd -C").
411 - assorted info_hesiod map fixes and cleanup. removed HESIOD_RELOAD code.
413 - added netgrp(name) function to amd map syntax to see if current host is in
416 - removed unused option "amd -m".
418 - filled in "tasks" file with todo items.
420 - filled "COPYING" file with legal stuff.
422 - cleanup: all global variables are now in one big structure (struct
423 amu_global_options) that's easy to identify and enhance. Also migrated
424 several flags that used be an integer each into one unsigned integer that's
428 xdr_mountres3 should compile only if has NFS V3
429 lex/yacc macros show full pathname (to tell if correct one runs)
433 *** Notes specific to am-utils version 6.0a6:
435 - amd configuration file!
437 See scripts/amd.conf-sample for help and some explanation. This new conf
438 file allows for the following new features:
440 default selectors can be turned on/off globally.
441 browsable_dirs/readdir() support can be turned on per map.
442 search paths for file type maps.
443 can force the map type to file, nis, ndbm, etc. rather than default
444 to looking at all of them.
445 tag each map for "amd -T tag", useful for grouping maps.
446 can override $os and others (so if you don't like "sunos5" default
447 naming, set os=sos5 and it will work with your old maps).
450 - enable-default-selectors: No longer turned on by the configure script or
451 optionally compiled. Code made dynamic and can be turned on or off from the
452 amd.conf file. This code is off by default, and must be turned on by
453 amd.conf's [global] section.
456 mips-sgi-irix5.3: configure/compile, not tested
457 i486-ncr-sysv4.3.03: configure/compile, not tested
460 alpha-dec-osf4.0: major code redone
461 sparc-sun-sunos4.1.3: fixed and working
462 mips-sgi-irix6.2: tested with gcc and "cc -32 -Wl,-woff,84"
463 mips-sgi-irix6.4: tested with gcc and "cc -32 -Wl,-woff,84"
465 - better NFS3 port, including more support for proto= and vers=, and
466 automatic determination of proto/vers combination.
468 - conf/nfs_prot/nfs_prot_*.h: all of the NFS protocol header files had to be
469 redone, because of the osf4 port. OSF used very different names for these,
470 and they conflicted with am-utils'. The only solution was to more or less
471 conform to OSF4's naming, and change all the others.
474 improved to look for amd.conf in $prefix/etc and /etc
475 better methods for finding the pid of amd to kill
477 - autoconf support for LDAP. amd/info_ldap.c needs to be written.
479 - wire-test also reports the local IP address. Some systems have multiple,
480 buggy version of get_myaddress(), esp. SunOS and Irix. Note that Solaris
481 x86 has a buggy htonl().
483 - amd -H prints usage.
486 minor TLI problem in fwd_socket
487 mount options properly comma delimited
488 LIBS is set only to the right set of libraries to include
489 selectors-on-default code ignored last selector ent in /defaults
490 assorted code cleanups
493 *** Notes specific to am-utils version 6.0a5:
495 - NFS Version 3 support!!!
497 Works on Solaris 2.5.1.
498 Minimal testing done on Irix 6.
499 Compiles cleanly on DU-4.0 but no tests performed.
501 Will fall back to V2 mounts when V3 is not available. Will also use TCP if
502 possible, UDP otherwise.
504 - Ports to new platforms:
506 alpha-dec-osf4.0 (not tested)
507 i386-pc-bsdi3.0 (tested and working)
508 i386-unknown-freebsd2.2.1 (tested and working)
509 sparc-unknown-linux-gnu (tested and working)
513 amd2sun: convert amd maps to Sun automount maps
514 ctl-amd: script to start/stop/restart amd
515 ctl-hlfsd: script to start/stop/restart hlfsd
516 expn: expand mail alias (used by hlfsd)
517 lostaltmail: redeliver "lost" mail redirected by hlfsd
518 lostaltmail.conf-sample: sample conf file for lostaltmail
519 wait4amd: run a command once amd is up on a host
520 wait4amd2die: wait for an amd process to die before returning
522 - "amd -v" now includes more info and "amq -v" lists all of it.
524 - new parser for linux specific mount options.
528 "new toplvl readdir" bug caused amd to dump core
529 handler for SIGCHLD didn't check for all possible children
530 hlfsd leaking file descriptors when home file system was full
531 cdfs/pcfs mounts should not timeout by default
532 hesiod domain names should be compared in case-insensitive manner
533 several printfs in amq were missing \n
536 *** Notes specific to am-utils version 6.0a4:
538 - amd services both TCP and UDP amq requests. This will help because of the
539 limited UDP message size.
541 - "amq -M" code is disabled by default because it is insecure. It is
542 rarely used. Users who wish to use it should run
543 "configure --enable-amq-mount".
546 *** Notes specific to am-utils version 6.0a3:
548 - New tested ports (configures, compiles, and runs):
550 i386-unknown-freebsd2.2
552 - New ports (configures and compiles correctly, not tested):
555 rs6000-ibm-aix4.1.5.0
557 - More am-utils programs ported to all existing platforms: hlfsd, fsinfo,
558 mk-amd-map, and fixmount.
560 - Shared libraries: a new configure option --enable-shared will build a
561 shared libamu.so, link applications with it, and use it. Reduces binary
562 sizes by 20-30%. This is the first step towards loadable modules, as many
563 changes had to be done to be able to compile and use PIC code. This is code
564 that obviously needs to be generalized to be able to build shared libraries
565 on many other platforms. It was only tested on Solaris 5.5.1.
567 - the file INSTALL contains the latest compatibility table of which
568 platforms am-utils configures, compiles and runs on.
570 - Trimmed down the size of the configure script. Some tests that are not
571 used anywhere were removed.
574 *** Notes specific to am-utils version 6.0a2:
576 - New ports (configures and compiles correctly, not tested):
582 - new configure options:
584 --enable-cppflags[=ARG]
585 configure/compile with ARG (-I) preprocessor flags
587 configure/compile with ARG (-L/-l) library flags
589 - filesystem, mount table entries, and mount type tests can now look in
590 /lib/modules and /proc/filesystems for statically/dyadically loadable kernel
593 - prefer vfat over msdos/pc/etc filesystem for PCFS.
595 - moved all fixed headers to include/am_defs. Left only #define/#undef
596 entries in aux/acconfig.h.
598 - make more sense of systems that have full, partial, or no NFS protocol
601 - minor fixes for NetBSD (untested platform).
605 - buildall -D: new option to run even stricter developer options.
607 - lots of other bugs fixed (see ChangeLog).
610 *** Notes specific to am-utils version 6.0a1:
612 I have it configure and build correctly for the following systems:
615 i386-unknown-freebsd2.1.0
617 sparc-sun-solaris2.5.1
620 Amq, wire-test, and "amd -v" work on all of the above. A real running amd
621 was only tested and confirmed working on
624 sparc-sun-solaris2.5.1
626 Many things are still missing: options, features, etc. But for now, let's
627 concentrate on getting the basic functionality working on the more popular