NEWS revision 38494
1*** Notes specific to am-utils version 6.0a16:
2
3- new ports:
4	hppa1.0-hp-hpux11.00 (works, not NFS V.3 due to missing headers)
5	mips-dec-ultrix4.3 (working, unverified)
6
7- new minor ports:
8	i386-pc-bsdi3.1
9	i386-unknown-netbsd1.3.1
10	alpha-dec-osf2.1
11
12- new options addopt:=ARG will "smartly" add and override options specified
13in opts:=
14
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
19		when amd exits.
20
21- amd.conf file is parsed after all other command line options.  If no
22options specified at all, then use /etc/amd.conf by default.
23
24- some variables' values are now compared case-insensitive as per specs,
25such as host names, domain names, and more.
26
27- NIS service uses a new isup() function to detect if the service is up
28before using it.  Used to ensure amd doesn't clear the existing maps before
29reloading them, unless the remote info service is working.
30
31- new cdfs mount options: rrip, noversion, defperm, nodefperm (OSF)
32
33- support efs/xfs separately on irix
34
35- new -D info trace option to turn on info specific debugging, such as
36RES_DEBUG for hesiod services.
37
38- document updates and fixes
39
40- new file MIRRORS lists official mirror sites (also in am-utils home page)
41
42- new file BUGS lists known amd/OS bugs
43
44- source restructuring: rename all Amd file-systems' sources to amfs_ARG.c
45such that it matches the type:=ARG as well.  Free names afs/dfs for Andrew
46F/S and Distributed F/S.
47
48- checkpoint config.guess several times during the long configure, so that
49if it is aborted midway, the bulk of the features discovered will be re-read
50from the config.cache file.
51
52- more systems support shared libraries (libtool 1.2)
53
54- using automake 1.3 + more fixes
55
56- bugs fixed:
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
70
71*** Notes specific to am-utils version 6.0a15:
72
73- new ports:
74	alpha-unknown-linux-gnu: works
75	i386-unknown-netbsd1.3: fully working
76	*-sun-sunos3: compiles, not tested
77
78- updated ports:
79	m68k-next-nextstep3: cleaner compile, works.
80
81- new file system type nfsl (NFS Link).  Uses nfs if file system is remote,
82and link if it is local (based on if $rhost equals the host name).
83
84- support for Solaris cachefs.  Requires setting fs, rfs, and a new variable
85cachedir.  See documentation for explanation, examples, and caveats.
86
87- support negated selector functions such as !exists(/foo/bar)
88
89- wire, network, netnumber, in_network() selectors now match against all
90locally attached networks (by either name or number), not just the first two
91interfaces.
92
93- new program pawd (and man page for it) --- Print Automounter Working
94Directory, to print the proper pathname of the cwd or any other pathname,
95adjusted for automounter paths, while avoiding mount points.
96
97- two new switches to amq: -U will force using UDP only; -T will force using
98only TCP to communicate with amd.  If neither (or both) are specified, amq
99will try TCP first, and if that failed, will try UDP.
100
101- support syslog facilities, using "amd -l syslog:facility".  Old behavior
102when using only -l syslog is to use the LOG_DAEMON facility.
103
104- you may specify browsable_dirs=full, to get a listing of all entries
105(other than /default), including those with '*' wildcard and '/'
106characters.
107
108- amd -D trace now also includes as much of struct nfs_args as can be
109displayed.  Useful in figuring out what the kernel really gets during a
110mount(2), as opposed to what the /etc/mnttab file says.  -D trace also
111traces the xdr_* functions.
112
113- support for versions of shared libamu version.  upped version from 0.0.0
114to 1.0.0.  each am-utils release that will change the library will also
115update its version.
116
117- amd/ops_TEMPLATE.c: a new template file for those brave enough to try and
118implement a new amd file system.  Includes comments and other info useful
119for developers.
120
121- if localconfig.h exists in the current directory during the run of
122configure, it is included in all am-utils sources.  This allows courageous
123developers to make certain modifications during compilations, and especially
124turn off undesired features (not very recommended).
125
126- documentation types and updates for all new features, ports, etc.
127
128- bugs fixed:
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
146
147*** Notes specific to am-utils version 6.0a14:
148
149- updated ports:
150	powerpc-ibm-aix4.2.1.0: NFS V.3 works
151
152- minor new ports:
153	sparc-sun-sunos4.1.3C
154	m68k-sun-sunos4.1.1 (sun3)
155	mips-sgi-irix5.2
156
157- new option to amd, -O ARG, will override the operating systems *name* with
158ARG.  Corrected documentation for amd -o ARG --- it overrides the operating
159system *version* and not the name as the docs incorrectly stated.
160
161- logging now behave more like syslog: will not print repeated strings, but
162rather a count such as "last message repeated N times".  (N will not exceed
163100.)
164
165- restructured the code which deals with the numerous possible fields and
166flags that are set in struct nfs_args.  That code was moved to libamu as
167the functions compute_nfs_args() and compute_automounter_nfs_args().
168
169- bugs fixed:
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
178
179*** Notes specific to am-utils version 6.0a13:
180
181- new in_network(ARG) nomadic selector, true if ARG is the name (or number)
182of any of this host's network interfaces.
183
184- removed variables primnetname, primnetnum, subsnetname, and subsnetnum.
185(Kept "wire" and its alias "network", and "netnumber".)
186
187- include am-utils.dvi and am-utils.ps in distribution.
188
189- hlfsd supports new option -P ARG, for reading password map off of file
190ARG.  Allows you to use the hlfs redirector using paths other than user's
191home directories.
192
193- use a replacement yp_all for some systems (irix) known to have a broken
194one which leaks a file descriptor each time called.
195
196- if remote NFS server is down or does not support portmap, downgrade
197machine to NFS V.2 and retry again later.
198
199- bugs:
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
206
207- minor code cleanups for netbsd
208
209- html docs now in http://www.cs.columbia.edu/~ezk/am-utils/
210
211- added README file in binaries ftp directory
212
213*** Notes specific to am-utils version 6.0a12:
214
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).
223
224- new ports:
225	powerpc-ibm-aix4.2.1.0:	compiles w/ NFS V.3, untested.
226
227- wire-test also checks for combinations of NFS protocol/version from the
228client to a remote (or local) host.
229
230- conf/mtab/mtab_file.c: use flock() to lock the file, and fcntl() if
231flock() is not available.  (Used to prefer fcntl() over flock().)
232
233- bug fixes:
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)
242
243*** Notes specific to am-utils version 6.0a11:
244
245- bug fixes:
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
248
249*** Notes specific to am-utils version 6.0a10:
250
251- MAJOR DOCUMENTATION UPDATE! (first time in 6 years)
252
253- new ports:
254	m68k-next-nextstep3: configures, compiles, not tested.
255
256- preliminary autofs support.  See README.autofs for details.
257
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
261
262- detect down remote hosts faster
263
264- log output of "amd -v" at startup
265
266- removed $osver override for solaris: now it is 2.5.1, not 5.5.1
267
268- buildall will use gmake first if available
269
270- bugs fixed:
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
279
280*** Notes specific to am-utils version 6.0a9:
281
282- new ports:
283	sparc-sun-solaris2.4:
284		 configures/compiles, and runs (no NFS V3)
285	i386-unknown-openbsd2.1:
286		configures/compiles, runs (NFS V3)
287
288- updated ports:
289	i486-ncr-sysv4.3.03: configures/compiles, not tested
290
291- Multiple amd support: new amd.conf [global] key "portmap_program" can be
292used to specify an alternate RPC program number for amd to un/register.
293Allowed numbers range from 300019 to 300029.  A matching new option for amq:
294-P prognum, will use an alternate program number to contact.
295
296- man pages:
297	amd.conf.5	new
298	mk-amd-map.8	new
299	amd.8		updated
300	amq.8		updated
301	(other man pages required minor updates)
302
303- shared libraries support expanded.  Using GNU libtool-1.0.  You can build
304a shared version of libamu, and link with it accordingly, by specifying
305--enable-shared to configure.  Default is --enable-static --disable-shared,
306and you can mix and match.  See "INSTALL" file for listing of systems on
307which shared libraries seem to build and work fine.
308
309- new option: amq -p, will return the PID of the running amd (local or
310remote).  Uses a new RPC message.  Useful especially in "ctl-amd stop".
311
312- new configure script options --enable-ldflags, for specifying -L flags.
313The older --enable-libs is to be used only for -l options.
314
315- two new LDAP map options for amd.conf: ldap_cache_seconds and
316ldap_cache_maxmem.
317
318- new script, am-eject from Debian linux's version of amd-upl102.
319
320- additional passwd map support using var[0-3], from Debian folks.
321
322- hesiod code cleanup.  works for hesiod 1.3 as well as 3.0.
323
324- removed defunct -h option from amd.
325
326- started using automake-1.2.  This fixed several bugs that caused some
327versions of yacc/lex and non-GNU make to fail.
328
329- bug fixes:
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
340
341
342*** Notes specific to am-utils version 6.0a8:
343
344- new ports:
345	i386-unknown-netbsd1.2.1: configures/compiles (with NFS V.3), works,
346				  but some OS stability problems exist.
347
348- updated ports:
349	hppa1.1-hp-hpux9.01:
350			now tested and working
351	rs6000-ibm-aix3.2 and rs6000-ibm-aix3.2.5:
352			now tested and working
353
354- fixed browsable directories (readdir) code.
355
356- better methods to find amd/hlfsd pid to kill in ctl-{amd,hlfsd}
357
358- "ignore/auto" mount types fixed for irix, sunos, and others, so "df" does not
359show amd mounts by default (but GNU df -a does).
360
361- each time amd is built, a new "build" version is incremented.  See amd -v.
362
363- man page for fsinfo added
364
365- empty fillers for new file (bsd44) systems: nullfs, unionfs, umapfs.
366
367- when amd is not running, or portmapper is down, make amq timeout faster (5
368sec) than system default, usually 4-5 minutes.
369
370- bug fixes:
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
379
380- assorted code cleanup
381
382
383*** Notes specific to am-utils version 6.0a7:
384
385- new ports:
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
392
393- updated ports:
394	i386-pc-bsdi3.0:
395			NFS V.3 works
396			look for hesiod in libc
397	mips-sgi-irix5.3:
398			fully functional with NFS V.3
399
400- LDAP support!  New [global] amd.conf options ldap_base and ldap_hostports.
401Also includes a new script amd2ldif to convert amd maps into plain text LDAP
402object files.
403
404- the following amd.conf variables: browsable_dirs, map_options, map_type,
405mount_type, and search_path --- can now be specified in [global] as well as
406the map entry itself.  That way you can declare them only once in [global],
407and override them as needed per map.
408
409- option "cluster" added to [global] (HPUX clusters ala "amd -C").
410
411- assorted info_hesiod map fixes and cleanup.  removed HESIOD_RELOAD code.
412
413- added netgrp(name) function to amd map syntax to see if current host is in
414the <name> netgroup.
415
416- removed unused option "amd -m".
417
418- filled in "tasks" file with todo items.
419
420- filled "COPYING" file with legal stuff.
421
422- cleanup: all global variables are now in one big structure (struct
423amu_global_options) that's easy to identify and enhance.  Also migrated
424several flags that used be an integer each into one unsigned integer that's
425used as a bit-flag.
426
427- big fixes:
428	xdr_mountres3 should compile only if has NFS V3
429	lex/yacc macros show full pathname (to tell if correct one runs)
430	misc fixes/cleanup
431
432
433*** Notes specific to am-utils version 6.0a6:
434
435- amd configuration file!
436
437See scripts/amd.conf-sample for help and some explanation.  This new conf
438file allows for the following new features:
439
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).
448	and more goodies...
449
450- enable-default-selectors: No longer turned on by the configure script or
451optionally compiled.  Code made dynamic and can be turned on or off from the
452amd.conf file.  This code is off by default, and must be turned on by
453amd.conf's [global] section.
454
455- new ports:
456	mips-sgi-irix5.3:	configure/compile, not tested
457	i486-ncr-sysv4.3.03:	configure/compile, not tested
458
459- updated ports:
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"
464
465- better NFS3 port, including more support for proto= and vers=, and
466automatic determination of proto/vers combination.
467
468- conf/nfs_prot/nfs_prot_*.h: all of the NFS protocol header files had to be
469redone, because of the osf4 port.  OSF used very different names for these,
470and they conflicted with am-utils'.  The only solution was to more or less
471conform to OSF4's naming, and change all the others.
472
473- ctl-amd script:
474	improved to look for amd.conf in $prefix/etc and /etc
475	better methods for finding the pid of amd to kill
476
477- autoconf support for LDAP.  amd/info_ldap.c needs to be written.
478
479- wire-test also reports the local IP address.  Some systems have multiple,
480buggy version of get_myaddress(), esp. SunOS and Irix.  Note that Solaris
481x86 has a buggy htonl().
482
483- amd -H prints usage.
484
485- bugs fixed:
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
491
492
493*** Notes specific to am-utils version 6.0a5:
494
495- NFS Version 3 support!!!
496
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.
500
501Will fall back to V2 mounts when V3 is not available.  Will also use TCP if
502possible, UDP otherwise.
503
504- Ports to new platforms:
505
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)
510
511- New scripts added:
512
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
521
522- "amd -v" now includes more info and "amq -v" lists all of it.
523
524- new parser for linux specific mount options.
525
526- Main bugs fixed:
527
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
534
535
536*** Notes specific to am-utils version 6.0a4:
537
538- amd services both TCP and UDP amq requests.  This will help because of the
539limited UDP message size.
540
541- "amq -M" code is disabled by default because it is insecure.  It is
542rarely used.  Users who wish to use it should run
543"configure --enable-amq-mount".
544
545
546*** Notes specific to am-utils version 6.0a3:
547
548- New tested ports (configures, compiles, and runs):
549
550	i386-unknown-freebsd2.2
551
552- New ports (configures and compiles correctly, not tested):
553
554	rs6000-ibm-aix3.2.5
555	rs6000-ibm-aix4.1.5.0
556
557- More am-utils programs ported to all existing platforms: hlfsd, fsinfo,
558mk-amd-map, and fixmount.
559
560- Shared libraries: a new configure option --enable-shared will build a
561shared libamu.so, link applications with it, and use it.  Reduces binary
562sizes by 20-30%.  This is the first step towards loadable modules, as many
563changes had to be done to be able to compile and use PIC code.  This is code
564that obviously needs to be generalized to be able to build shared libraries
565on many other platforms.  It was only tested on Solaris 5.5.1.
566
567- the file INSTALL contains the latest compatibility table of which
568platforms am-utils configures, compiles and runs on.
569
570- Trimmed down the size of the configure script.  Some tests that are not
571used anywhere were removed.
572
573
574*** Notes specific to am-utils version 6.0a2:
575
576- New ports (configures and compiles correctly, not tested):
577
578	i386-pc-bsdi2.1
579	hppa1.1-hp-hpux9.01
580	hppa1.1-hp-hpux10.20
581
582- new configure options:
583
584	--enable-cppflags[=ARG]
585		configure/compile with ARG (-I) preprocessor flags
586	--enable-libs[=ARG]
587		configure/compile with ARG (-L/-l) library flags
588
589- filesystem, mount table entries, and mount type tests can now look in
590/lib/modules and /proc/filesystems for statically/dyadically loadable kernel
591modules (linux)
592
593- prefer vfat over msdos/pc/etc filesystem for PCFS.
594
595- moved all fixed headers to include/am_defs.  Left only #define/#undef
596entries in aux/acconfig.h.
597
598- make more sense of systems that have full, partial, or no NFS protocol
599headers.
600
601- minor fixes for NetBSD (untested platform).
602
603- hesiod map fixed.
604
605- buildall -D: new option to run even stricter developer options.
606
607- lots of other bugs fixed (see ChangeLog).
608
609
610*** Notes specific to am-utils version 6.0a1:
611
612I have it configure and build correctly for the following systems:
613
614	i386-pc-solaris2.5.1
615	i386-unknown-freebsd2.1.0
616	mips-sgi-irix6.2
617	sparc-sun-solaris2.5.1
618	sparc-sun-sunos4.1.3
619
620Amq, wire-test, and "amd -v" work on all of the above.  A real running amd
621was only tested and confirmed working on
622
623	i386-pc-solaris2.5.1
624	sparc-sun-solaris2.5.1
625
626Many things are still missing: options, features, etc.  But for now, let's
627concentrate on getting the basic functionality working on the more popular
628systems.
629