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