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