NEWS revision 82794
151292Sobrien# -*- text -*-
251292Sobrien
382794Sobrien*** Notes specific to am-utils version 6.0.7:
482794Sobrien
582794Sobrien- minor new ports: i386-unknown-freebsd5.0
682794Sobrien
782794Sobrien- bug fixes:
882794Sobrien	type:=host, don't fail mount if one share is already mounted
982794Sobrien	don't report NFS NE_IO error as success (Linux)
1082794Sobrien
1182794Sobrien*** Notes specific to am-utils version 6.0.6:
1282794Sobrien
1382794Sobrien- new ports:
1482794Sobrien	Apple OS X support (Darwin, Rhapsody)
1582794Sobrien
1682794Sobrien- reworked autoconf scripts so that newer versions of known OSs will default
1782794Sobrien  their configuration to the last known version (better chance that it will
1882794Sobrien  pass autoconf and work).
1982794Sobrien
2082794Sobrien- linux support for lofs and "bind" mounts, so type:=lofs can work (whether
2182794Sobrien  you're using autofs or not)
2282794Sobrien
2382794Sobrien- renamed amd.conf option "selectors_on_default" to "selectors_in_defaults"
2482794Sobrien  (on -> in, and added "s").  Old name remains in place for compatibility.
2582794Sobrien
2682794Sobrien- lots of cleanups of debugging and logging messages
2782794Sobrien
2882794Sobrien- Bugs fixed:
2982794Sobrien	lots of Linux-related ones, so it compiles for recent kernels
3082794Sobrien	better checking on various mount options of the form foo=N or foo=STR
3182794Sobrien	fixed NFS errno mapping bug which mapped ENOENT to success on Linux
3282794Sobrien
3382794Sobrien*** Notes specific to am-utils version 6.0.5:
3482794Sobrien
3582794Sobrien- Minor ports:
3682794Sobrien	alphaev6-dec-osf5.1
3782794Sobrien	i386-unknown-freebsd4.2
3882794Sobrien	support for Linux 2.4 kernels and newer GLIBC versions
3982794Sobrien	cleanup of AIX and IRIX6 ports
4082794Sobrien
4182794Sobrien- Support new mount options:
4282794Sobrien	proplist (ACLs over NFS, DU-4.0)
4382794Sobrien	kerb, rdirplus, readdirsize, and xlatecookie (NetBSD-1.5K+)
4482794Sobrien	nonlm, lock, nolock (Linux)
4582794Sobrien
4682794Sobrien- Don't force rsize/wsize on Linux 2.2.18+ and 2.4.x.  Improves performance
4782794Sobrien  a lot.
4882794Sobrien
4982794Sobrien- Lots of documentation updates: texinfo, man pages, scripts, and more.
5082794Sobrien
5182794Sobrien- LDAP: included proposed Schema and Internet Draft for LDAP Schema.  See
5282794Sobrien  README.ldap for more information.
5382794Sobrien
5482794Sobrien- Removed all remains of the dangerous amq -M code.
5582794Sobrien
5682794Sobrien- Major bug fix: initialize NFS fileid field correctly, to avoid cache
5782794Sobrien  aliasing problems, esp. on Linux.
5882794Sobrien
5982794Sobrien- Major Linux bug fix: map errnos to NFS errors (mistakenly turned off a
6082794Sobrien  while back).  Also support unused errno 41.
6182794Sobrien
6282794Sobrien- Other bugs fixes:
6382794Sobrien	default MAXHOSTNAMELEN (if undefined) is 256, not 64
6482794Sobrien	truncate hostnames to MAXHOSTNAMELEN (security fix)
6582794Sobrien	alignment problem in getwire() on ALPHA
6682794Sobrien	other buf overflow problems (security fixes)
6782794Sobrien	ctl-amd supports "condrestart" (Red Hat)
6882794Sobrien	bell char is \g not \a
6982794Sobrien	lostaltmail verify MAILDIR is defined
7082794Sobrien	am-eject accepts "floppy" and "cdrom" as args
7182794Sobrien	other assorted small bug fixes
7282794Sobrien
7382794Sobrien*** Notes specific to am-utils version 6.0.4:
7482794Sobrien
7582794Sobrien- NFSv3 support for Linux and HPUX-11
7682794Sobrien
7782794Sobrien- new amd.conf [global] options:
7882794Sobrien	nfs_vers: force all NFS mounts to version 2 or 3
7982794Sobrien	nfs_proto: force all NFS mounts to udp or tcp
8082794Sobrien
8182794Sobrien- new debug_options (amd -D):
8282794Sobrien	hrtime: turns on high-resolution timer if available
8382794Sobrien	readdir: traces browsable_dirs code
8482794Sobrien	xdrtrace: traces XDR routines
8582794Sobrien	(trace: only traces NFS and RPC)
8682794Sobrien
8782794Sobrien- new amq options:
8882794Sobrien	-H: shows usage
8982794Sobrien	-w: translate getpwd() into an Amd path
9082794Sobrien
9182794Sobrien- new map syntax:
9282794Sobrien	${dollar}: to include a literal '$' in assignments
9382794Sobrien
9482794Sobrien- new "opts:=" options:
9582794Sobrien	ver3: turns on NFS version 3 on some systems (linux)
9682794Sobrien
9782794Sobrien- updated or minor new ports:
9882794Sobrien	alpha-dec-osf4.0f
9982794Sobrien	alphaev6-dec-osf5.0
10082794Sobrien	i386-pc-linux-rh6.2
10182794Sobrien	i386-unknown-freebsd3.4
10282794Sobrien
10382794Sobrien- bugs fixed:
10482794Sobrien	symlink mtime fixes to avoid u/mount race conditions
10582794Sobrien	update amq -s failed umounts count correctly
10682794Sobrien	linux compiles even if efs is available
10782794Sobrien	linux works with mount(2) option "intr"
10882794Sobrien	linux works with pcfs and cdfs
10982794Sobrien	handle std{in,out,err} correctly when releasing controlling tty
11082794Sobrien	browsable_readdir works on 64-bit kernel architectures
11182794Sobrien	irs/wire routines compile for bsdi{2,3,4}
11282794Sobrien
11382794Sobrien*** Notes specific to am-utils version 6.0.3:
11482794Sobrien
11582794Sobrien- updated or minor new ports:
11682794Sobrien	hppa1.0-hp-hpux11.00
11782794Sobrien	i386-pc-bsdi4.1
11882794Sobrien	i386-unknown-netbsd1.4.1
11982794Sobrien	sparc-sun-solaris2.8
12082794Sobrien	i*86-pc-linux-gnu-rh6.1
12182794Sobrien	(some preparations for Compaq Tru64)
12282794Sobrien
12382794Sobrien- new variables ${uid} and ${gid}, return the numeric UID/GID of the user
12482794Sobrien  (not root) who invokes an amd pathname.  Similar to what hlfsd does.
12582794Sobrien
12682794Sobrien- automake now uses automatic dependency tracking
12782794Sobrien
12882794Sobrien- new mount options: optionstr, noexec, nomnttab
12982794Sobrien
13082794Sobrien- maps of type:=auto are now browsable (using map option "browsable")
13182794Sobrien
13282794Sobrien- ctl-amd has "status" argument (same as RedHat)
13382794Sobrien
13482794Sobrien- bugs fixed:
13582794Sobrien	document buggy AIX 4.3 plock() behavior
13682794Sobrien	fixes to stale file handle on symlinks
13782794Sobrien	reduce race conditions upon rapid umount/mount sequences
13882794Sobrien	use vsnprintf, more secure than vsprintf
13982794Sobrien	more assorted and smaller bugs
14082794Sobrien
14152894Sobrien*** Notes specific to am-utils version 6.0.2:
14252894Sobrien
14352894Sobrien- safe map reloads: when a map needs to be reloaded, it is reloaded into a
14452894Sobrien  temporary copy first.  Only if the reload was completely successful, Amd
14552894Sobrien  discards the old map and uses the new one.  Otherwise Amd continues to use
14652894Sobrien  the old maps.  This should help a lot with transient NIS problems.
14752894Sobrien
14852894Sobrien- amq -f now also forces a (safe) map reload, but only if the timestamp on
14952894Sobrien  the maps was updated.
15052894Sobrien
15152894Sobrien- two new selector variables: ${vendor} and ${full_os}, which are the same
15252894Sobrien  as the output seen in "amd -v".
15352894Sobrien
15452894Sobrien- documentation fixes and updates
15552894Sobrien
15652894Sobrien- updated or minor new ports:
15752894Sobrien	i386-unknown-freebsdelf3.3
15852894Sobrien
15952894Sobrien- support 'ignore' flags (automntfs) in bsdi-4.1
16052894Sobrien
16152894Sobrien- bugs fixed:
16252894Sobrien	expn.pl uses correct sockaddr_in() not, pack()
16352894Sobrien	make sure configure --enable-*args take an argument
16452894Sobrien	don't busy-loop trying to rebind to ldap servers
16552894Sobrien	use vsnprintf, not vsprintf (security)
16652894Sobrien
16751292Sobrien*** Notes specific to am-utils version 6.0.1:
16851292Sobrien
16951292Sobrien- updated or minor new ports:
17051292Sobrien	i386-pc-bsdi4.0.1
17151292Sobrien	i386-unknown-freebsdelf3.0
17251292Sobrien	i386-unknown-freebsdelf3.1
17351292Sobrien	i386-unknown-freebsdelf3.2
17451292Sobrien	i386-unknown-freebsdelf4.0
17551292Sobrien	i386-unknown-netbsd1.4
17651292Sobrien	i386-unknown-openbsd2.5
17751292Sobrien	powerpc-unknown-linux-gnu
17851292Sobrien
17951292Sobrien- automount2amd added, a new script to convert Sun automount maps to Amd maps
18051292Sobrien
18151292Sobrien- new map function netgrpd(ARG), same as netgrp() but matches FQHN
18251292Sobrien
18351292Sobrien- 'ignore' is a generic mount option
18451292Sobrien
18551292Sobrien- hesiod info service isup() function to check if service is up
18651292Sobrien
18751292Sobrien- more Y2K fixes (see README.y2k for the full story)
18851292Sobrien
18951292Sobrien- using alloca.c on systems that don't have it (hpux9 with /bin/cc)
19051292Sobrien
19151292Sobrien- configure script reduced in size by using M4/sh loops instead of repeated
19251292Sobrien  entries
19351292Sobrien
19451292Sobrien- documentation updates
19551292Sobrien
19651292Sobrien- too many bugs fixed to list here:
19751292Sobrien	'addopts' option works with 'remopts' as well as 'opts'
19851292Sobrien	AIX can perform NFS V.3 mounts explicitly
19951292Sobrien	NIS is_up fixed, especially for NIS+ running in compatibility mode
20051292Sobrien	amd -v incorrectly listing file systems that don't really work
20151292Sobrien	amd's own mounts use reserved ports if possible
20251292Sobrien	browsable directories works for Linux 2.3 (NFS cookies)
20351292Sobrien	bsd44 systems check for isofs flags
20451292Sobrien	bsd44 systems check for new options: norrio, gens, and extatt
20551292Sobrien	buildall works better on Ultrix's /bin/sh
20651292Sobrien	compile and build on Linux kernels 2.2 and newer
20751292Sobrien	compile and build on RedHat Linux 6.0 (glibc 2.1)
20851292Sobrien	compile and build on Solaris 7 (with or without vendor LDAP)
20951292Sobrien	completely eliminate all of amd's amq -M code, when not enabled
21051292Sobrien	correctly interpret failure code of unmount of type:=program
21151292Sobrien	don't create autofs listener service unless used
21251292Sobrien	don't list or process amq's -M option unless feature was turned on
21351292Sobrien	don't turn on/off noconn option if it was already in that state
21451292Sobrien	ldap info service: don't strcmp null strings
21551292Sobrien	lostaltmail correctly sets struct sockaddr_in
21651292Sobrien	make sure Linux systems have configured kernel headers
21751292Sobrien	test for bsize/namlen fields in nfs_args (linux mount versions 2/3)
21851292Sobrien	turn off broken NFS V.3 support for HPUX
21951292Sobrien	use getifaddrs() on bsd44 systems makes wire.c more reliable
22051292Sobrien	use matching NFS rsize/wsize on Linux 2.0 and 2.[123] kernels.
22151292Sobrien	verify that RPC requests come from reserved, privileged local ports
22251292Sobrien	warn when Linux kernel headers mismatch with running kernel
22351292Sobrien	pawd works for type:=nfsl too
22451292Sobrien
22542629Sobrien*** Notes specific to am-utils version 6.0:
22642629Sobrien
22742629Sobrien- updated or minor new ports:
22842629Sobrien	hppa2.0w-hp-hpux11.00,
22942629Sobrien	i386-pc-bsdi4.0
23042629Sobrien	i386-unknown-freebsd2.2.8
23142629Sobrien	i386-unknown-netbsd1.3.3
23242629Sobrien	i386-unknown-openbsd2.4
23342629Sobrien	mips-sgi-irix6.5
23442629Sobrien	powerpc-ibm-aix4.3.1.0
23542629Sobrien	i386-unknown-freebsd3.0 now supports nfs v.3
23642629Sobrien
23742629Sobrien- ctl-amd and ctl-hlfsd now compatible with RedHat's chkconfig utility
23842629Sobrien
23942629Sobrien- ctl-amd stop will now wait until amd is down
24042629Sobrien
24142629Sobrien- libamu.so completely self contained --- does not export any symbols which
24242629Sobrien  must be defined by the process linking with it.  This is so shared
24342629Sobrien  libraries could be supported on systems that have restrictive shared
24442629Sobrien  libraries.
24542629Sobrien
24642629Sobrien- use latest autoconf, automake, and libtool (off of cygnus' CVS server) to
24742629Sobrien  support shared libraries on many more platforms.
24842629Sobrien
24942629Sobrien- posix code cleanups
25042629Sobrien
25142629Sobrien- bugs fixed:
25242629Sobrien	case insensitive host match in type:=nfsl
25342629Sobrien	correct swapped args to kill(2)
25442629Sobrien	try to avoid a race condition b/t mounting and unmounting
25542629Sobrien	yp_all support is found in libnsl in RH-5.1 systems
25642629Sobrien
25741142Sobrien*** Notes specific to am-utils version 6.0b1:
25841142Sobrien
25941142Sobrien- updated or minor new ports:
26041142Sobrien	- *-pc-linux-gnu (glibc2 systems such as RedHat 5.1)
26141142Sobrien	- sparc-sun-solaris2.7
26241142Sobrien	- i386-pc-solaris2.7
26341142Sobrien	- i386-unknown-freebsd3.0 (official release, post 4.4lite port)
26441142Sobrien	- sparc64-unknown-linux-gnu (RH 5.1 on Sun Sparc Ultra)
26541142Sobrien
26641142Sobrien- bugs fixed:
26741142Sobrien	- major memory leak in processing of /defaults
26841142Sobrien	- core dump if map_type given in amd.conf doesn't exist
26941142Sobrien	- memory leak in replacement yp_all
27041142Sobrien	- don't access uninitialized memory in DU 4.0
27141142Sobrien	- other smaller bugs, see ChangeLog
27241142Sobrien
27338494Sobrien*** Notes specific to am-utils version 6.0a16:
27438494Sobrien
27538494Sobrien- new ports:
27638494Sobrien	hppa1.0-hp-hpux11.00 (works, not NFS V.3 due to missing headers)
27738494Sobrien	mips-dec-ultrix4.3 (working, unverified)
27838494Sobrien
27938494Sobrien- new minor ports:
28038494Sobrien	i386-pc-bsdi3.1
28138494Sobrien	i386-unknown-netbsd1.3.1
28238494Sobrien	alpha-dec-osf2.1
28338494Sobrien
28438494Sobrien- new options addopt:=ARG will "smartly" add and override options specified
28538494Sobrienin opts:=
28638494Sobrien
28738494Sobrien- new amd.conf options:
28838494Sobrien	pid_file: specifies the file to store the PID
28938494Sobrien	hesiod_base: specifies the base for the Hesiod service
29038494Sobrien	unmount_on_exit: if 'yes' will attempt to unmount all file systems
29138494Sobrien		when amd exits.
29238494Sobrien
29338494Sobrien- amd.conf file is parsed after all other command line options.  If no
29438494Sobrienoptions specified at all, then use /etc/amd.conf by default.
29538494Sobrien
29638494Sobrien- some variables' values are now compared case-insensitive as per specs,
29738494Sobriensuch as host names, domain names, and more.
29838494Sobrien
29938494Sobrien- NIS service uses a new isup() function to detect if the service is up
30038494Sobrienbefore using it.  Used to ensure amd doesn't clear the existing maps before
30138494Sobrienreloading them, unless the remote info service is working.
30238494Sobrien
30338494Sobrien- new cdfs mount options: rrip, noversion, defperm, nodefperm (OSF)
30438494Sobrien
30538494Sobrien- support efs/xfs separately on irix
30638494Sobrien
30738494Sobrien- new -D info trace option to turn on info specific debugging, such as
30838494SobrienRES_DEBUG for hesiod services.
30938494Sobrien
31038494Sobrien- document updates and fixes
31138494Sobrien
31238494Sobrien- new file MIRRORS lists official mirror sites (also in am-utils home page)
31338494Sobrien
31438494Sobrien- new file BUGS lists known amd/OS bugs
31538494Sobrien
31638494Sobrien- source restructuring: rename all Amd file-systems' sources to amfs_ARG.c
31738494Sobriensuch that it matches the type:=ARG as well.  Free names afs/dfs for Andrew
31838494SobrienF/S and Distributed F/S.
31938494Sobrien
32038494Sobrien- checkpoint config.guess several times during the long configure, so that
32138494Sobrienif it is aborted midway, the bulk of the features discovered will be re-read
32238494Sobrienfrom the config.cache file.
32338494Sobrien
32438494Sobrien- more systems support shared libraries (libtool 1.2)
32538494Sobrien
32638494Sobrien- using automake 1.3 + more fixes
32738494Sobrien
32838494Sobrien- bugs fixed:
32938494Sobrien	use dynamic buffer for list of interfaces, not fixed size
33038494Sobrien	output of amd -H duplicated if >2 interfaces
33138494Sobrien	-D mem for hlfsd not on by default (so it will daemonize)
33238494Sobrien	linux looks for ext2fs before ufs
33338494Sobrien	CDFS looks for 'isofs' mount type as well
33438494Sobrien	compile on Solaris 2.6 with /opt/SUNWspro/bin/cc
33538494Sobrien	various additional fixes which gcc 2.8.x reported
33638494Sobrien	print syslog help string based on what's supported
33738494Sobrien	correctly ignore loopback interface on SunOS 3.x
33838494Sobrien	don't use -lucb for strcasecmp
33938494Sobrien	hlfsd's dump file securely written in /usr/tmp/hlfsd.dump.XXXXXX
34038494Sobrien	inherit NFS V.3 mounts correctly
34138494Sobrien	write pid file securely
34238494Sobrien
34338494Sobrien*** Notes specific to am-utils version 6.0a15:
34438494Sobrien
34538494Sobrien- new ports:
34638494Sobrien	alpha-unknown-linux-gnu: works
34738494Sobrien	i386-unknown-netbsd1.3: fully working
34838494Sobrien	*-sun-sunos3: compiles, not tested
34938494Sobrien
35038494Sobrien- updated ports:
35138494Sobrien	m68k-next-nextstep3: cleaner compile, works.
35238494Sobrien
35338494Sobrien- new file system type nfsl (NFS Link).  Uses nfs if file system is remote,
35438494Sobrienand link if it is local (based on if $rhost equals the host name).
35538494Sobrien
35638494Sobrien- support for Solaris cachefs.  Requires setting fs, rfs, and a new variable
35738494Sobriencachedir.  See documentation for explanation, examples, and caveats.
35838494Sobrien
35938494Sobrien- support negated selector functions such as !exists(/foo/bar)
36038494Sobrien
36138494Sobrien- wire, network, netnumber, in_network() selectors now match against all
36238494Sobrienlocally attached networks (by either name or number), not just the first two
36338494Sobrieninterfaces.
36438494Sobrien
36538494Sobrien- new program pawd (and man page for it) --- Print Automounter Working
36638494SobrienDirectory, to print the proper pathname of the cwd or any other pathname,
36738494Sobrienadjusted for automounter paths, while avoiding mount points.
36838494Sobrien
36938494Sobrien- two new switches to amq: -U will force using UDP only; -T will force using
37038494Sobrienonly TCP to communicate with amd.  If neither (or both) are specified, amq
37138494Sobrienwill try TCP first, and if that failed, will try UDP.
37238494Sobrien
37338494Sobrien- support syslog facilities, using "amd -l syslog:facility".  Old behavior
37438494Sobrienwhen using only -l syslog is to use the LOG_DAEMON facility.
37538494Sobrien
37638494Sobrien- you may specify browsable_dirs=full, to get a listing of all entries
37738494Sobrien(other than /default), including those with '*' wildcard and '/'
37838494Sobriencharacters.
37938494Sobrien
38038494Sobrien- amd -D trace now also includes as much of struct nfs_args as can be
38138494Sobriendisplayed.  Useful in figuring out what the kernel really gets during a
38238494Sobrienmount(2), as opposed to what the /etc/mnttab file says.  -D trace also
38338494Sobrientraces the xdr_* functions.
38438494Sobrien
38538494Sobrien- support for versions of shared libamu version.  upped version from 0.0.0
38638494Sobriento 1.0.0.  each am-utils release that will change the library will also
38738494Sobrienupdate its version.
38838494Sobrien
38938494Sobrien- amd/ops_TEMPLATE.c: a new template file for those brave enough to try and
39038494Sobrienimplement a new amd file system.  Includes comments and other info useful
39138494Sobrienfor developers.
39238494Sobrien
39338494Sobrien- if localconfig.h exists in the current directory during the run of
39438494Sobrienconfigure, it is included in all am-utils sources.  This allows courageous
39538494Sobriendevelopers to make certain modifications during compilations, and especially
39638494Sobrienturn off undesired features (not very recommended).
39738494Sobrien
39838494Sobrien- documentation types and updates for all new features, ports, etc.
39938494Sobrien
40038494Sobrien- bugs fixed:
40138494Sobrien	support NFS mount options grpid and maxgrps
40238494Sobrien	nextstep: set NFS success code to 0 (NFS_OK), not 1 (EPERM)
40338494Sobrien	bsdi2: set NFS success code to 0 (NFS_OK), not 1 (EPERM)
40438494Sobrien	set NFS V.3 mount table names to "nfs" if vers/proto exist
40538494Sobrien	use mkstemp() if possible (more secure)
40638494Sobrien	ctl-amd looks for amd.conf in ${prefix}/etc after /etc
40738494Sobrien	hpux: use "ignore" mount table type
40838494Sobrien	openbsd2.2: turn off "noconn" mount option, so only connected used
40938494Sobrien	fixed memory leak in hlfsd (don't setpwent after endpwent)
41038494Sobrien	all NFS3 systems should have proto/vers mount/amd options
41138494Sobrien	DEBUG_MEM compiles and prints something more useful
41238494Sobrien	uninit_mntfs(): free() mf_private *after* it is used
41338494Sobrien	browsable_readdir: fewer bytes sent back to kernel for each chunk
41438494Sobrien	mount_toplvl: don't free() an automatic variable!
41538494Sobrien	amd should chdir() to / before daemonzing (for core dumps etc)
41638494Sobrien	cdfs should be called 'cdfs' not whatever the mnttab type is
41738494Sobrien	amd -v: don't print "FS:" list twice when >=2 net interfaces
41838494Sobrien
41938494Sobrien*** Notes specific to am-utils version 6.0a14:
42038494Sobrien
42138494Sobrien- updated ports:
42238494Sobrien	powerpc-ibm-aix4.2.1.0: NFS V.3 works
42338494Sobrien
42438494Sobrien- minor new ports:
42538494Sobrien	sparc-sun-sunos4.1.3C
42638494Sobrien	m68k-sun-sunos4.1.1 (sun3)
42738494Sobrien	mips-sgi-irix5.2
42838494Sobrien
42938494Sobrien- new option to amd, -O ARG, will override the operating systems *name* with
43038494SobrienARG.  Corrected documentation for amd -o ARG --- it overrides the operating
43138494Sobriensystem *version* and not the name as the docs incorrectly stated.
43238494Sobrien
43338494Sobrien- logging now behave more like syslog: will not print repeated strings, but
43438494Sobrienrather a count such as "last message repeated N times".  (N will not exceed
43538494Sobrien100.)
43638494Sobrien
43738494Sobrien- restructured the code which deals with the numerous possible fields and
43838494Sobrienflags that are set in struct nfs_args.  That code was moved to libamu as
43938494Sobrienthe functions compute_nfs_args() and compute_automounter_nfs_args().
44038494Sobrien
44138494Sobrien- bugs fixed:
44238494Sobrien	mnttab name ufs/cdfs/pcfs/etc filesystems corrected
44338494Sobrien	use pmap_ping for amq (a must for secure portmappers, bsdi2/3)
44438494Sobrien	test for xfs (irix) as a disk-based filesystem
44538494Sobrien	set correct nfs_prot headers for Solaris 2.5
44638494Sobrien	removed stale code from lostaltmail.in
44738494Sobrien	lostaltmail will look for conf file in multiple locations
44838494Sobrien	assorted documentation corrections
44938494Sobrien	amq does not print "get_secure_amd_client" if run as root
45038494Sobrien
45138494Sobrien*** Notes specific to am-utils version 6.0a13:
45238494Sobrien
45338494Sobrien- new in_network(ARG) nomadic selector, true if ARG is the name (or number)
45438494Sobrienof any of this host's network interfaces.
45538494Sobrien
45638494Sobrien- removed variables primnetname, primnetnum, subsnetname, and subsnetnum.
45738494Sobrien(Kept "wire" and its alias "network", and "netnumber".)
45838494Sobrien
45938494Sobrien- include am-utils.dvi and am-utils.ps in distribution.
46038494Sobrien
46138494Sobrien- hlfsd supports new option -P ARG, for reading password map off of file
46238494SobrienARG.  Allows you to use the hlfs redirector using paths other than user's
46338494Sobrienhome directories.
46438494Sobrien
46538494Sobrien- use a replacement yp_all for some systems (irix) known to have a broken
46638494Sobrienone which leaks a file descriptor each time called.
46738494Sobrien
46838494Sobrien- if remote NFS server is down or does not support portmap, downgrade
46938494Sobrienmachine to NFS V.2 and retry again later.
47038494Sobrien
47138494Sobrien- bugs:
47238494Sobrien	don't redefine yywrap on systems using a modified flex
47338494Sobrien	use correct "ignore" mnttab/mount option on hpux for df(1)
47438494Sobrien	use nfs_args' fsname field (hpux) to avoid syncer/mount(1) problems
47538494Sobrien	don't add ops_ufs.o twice to Makefile's $(OBJS)
47638494Sobrien	don't fail if autofs listener fails to initialize
47738494Sobrien	hlfsd should test if run as root after usage() and getopt
47838494Sobrien
47938494Sobrien- minor code cleanups for netbsd
48038494Sobrien
48182794Sobrien- html docs now in http://www.am-utils.org
48238494Sobrien
48338494Sobrien- added README file in binaries ftp directory
48438494Sobrien
48538494Sobrien*** Notes specific to am-utils version 6.0a12:
48638494Sobrien
48738494Sobrien- minor or updated/broken ports fixed:
48838494Sobrien	hppa1.1-hp-hpux10.10:	compiles, untested (probably works).
48938494Sobrien	hppa1.1-hp-hpux9.05:	compiles, untested (probably works).
49038494Sobrien	hppa1.1-hp-hpux9.07:	compiles, untested (probably works).
49138494Sobrien	m68k-hp-hpux9.00:	compiles, untested (probably works).
49238494Sobrien	rs6000-ibm-aix4.1.4.0:	compiles, untested.
49338494Sobrien	sparc-sun-solaris2.6:	works w/ NFS V.3.
49438494Sobrien	sparc-sun-sunos4.1.4:	compiles, untested (probably works).
49538494Sobrien
49638494Sobrien- new ports:
49738494Sobrien	powerpc-ibm-aix4.2.1.0:	compiles w/ NFS V.3, untested.
49838494Sobrien
49938494Sobrien- wire-test also checks for combinations of NFS protocol/version from the
50038494Sobrienclient to a remote (or local) host.
50138494Sobrien
50238494Sobrien- conf/mtab/mtab_file.c: use flock() to lock the file, and fcntl() if
50338494Sobrienflock() is not available.  (Used to prefer fcntl() over flock().)
50438494Sobrien
50538494Sobrien- bug fixes:
50638494Sobrien	tli get_nfs_version() gets into an infinite loop
50738494Sobrien	tli get_nfs_version() should time out faster
50838494Sobrien	sockets get_nfs_version() should work w/ secure portmappers
50938494Sobrien	ESTALE returned for NFS mounts for SunOS 4.x fixed
51038494Sobrien	do not exceed HOSTNAMESZ for nfs_args.hostname (get ENAMETOOLONG)
51138494Sobrien	properly initialize some mntent_t fields (fsck, freq, mnt_time)
51238494Sobrien	properly initialize some pcfs_args fields (mask, uid, gid)
51338494Sobrien	properly initialize some cdfs_args fields (ssector)
51438494Sobrien
51538494Sobrien*** Notes specific to am-utils version 6.0a11:
51638494Sobrien
51738494Sobrien- bug fixes:
51838494Sobrien	amd could not NFS mount v.2 servers from v.3 clients
51938494Sobrien	hlfsd will only use first occurrence of home dir for same uid
52038494Sobrien
52138494Sobrien*** Notes specific to am-utils version 6.0a10:
52238494Sobrien
52338494Sobrien- MAJOR DOCUMENTATION UPDATE! (first time in 6 years)
52438494Sobrien
52538494Sobrien- new ports:
52638494Sobrien	m68k-next-nextstep3: configures, compiles, not tested.
52738494Sobrien
52838494Sobrien- preliminary autofs support.  See README.autofs for details.
52938494Sobrien
53038494Sobrien- new amd.conf [global] yes/no keywords:
53138494Sobrien	show_statfs_entries:	shows number of entries for df(1)
53238494Sobrien	fully_qualified_hosts:	use FQHN for NFS/RPC authentication
53338494Sobrien
53438494Sobrien- detect down remote hosts faster
53538494Sobrien
53638494Sobrien- log output of "amd -v" at startup
53738494Sobrien
53838494Sobrien- removed $osver override for solaris: now it is 2.5.1, not 5.5.1
53938494Sobrien
54038494Sobrien- buildall will use gmake first if available
54138494Sobrien
54238494Sobrien- bugs fixed:
54338494Sobrien	amd core dumped when remote host was down
54438494Sobrien	allow up to 1024 entries back from readdir()
54538494Sobrien	amd.conf works even if only [global] option defined
54638494Sobrien	avoid using bad memcmp() implementations
54738494Sobrien	fixed meaning of plock [global] option (was reversed)
54838494Sobrien	hlfsd infinite loop unless compiled with --enable-debug
54938494Sobrien	NIS code works with NIS+ servers in NIS compatibility mode
55038494Sobrien	reset tag fields in amd.conf so they don't carry to other entries
55138494Sobrien
55238494Sobrien*** Notes specific to am-utils version 6.0a9:
55338494Sobrien
55438494Sobrien- new ports:
55538494Sobrien	sparc-sun-solaris2.4:
55638494Sobrien		 configures/compiles, and runs (no NFS V3)
55738494Sobrien	i386-unknown-openbsd2.1:
55838494Sobrien		configures/compiles, runs (NFS V3)
55938494Sobrien
56038494Sobrien- updated ports:
56138494Sobrien	i486-ncr-sysv4.3.03: configures/compiles, not tested
56238494Sobrien
56338494Sobrien- Multiple amd support: new amd.conf [global] key "portmap_program" can be
56438494Sobrienused to specify an alternate RPC program number for amd to un/register.
56538494SobrienAllowed numbers range from 300019 to 300029.  A matching new option for amq:
56638494Sobrien-P prognum, will use an alternate program number to contact.
56738494Sobrien
56838494Sobrien- man pages:
56938494Sobrien	amd.conf.5	new
57038494Sobrien	mk-amd-map.8	new
57138494Sobrien	amd.8		updated
57238494Sobrien	amq.8		updated
57338494Sobrien	(other man pages required minor updates)
57438494Sobrien
57538494Sobrien- shared libraries support expanded.  Using GNU libtool-1.0.  You can build
57638494Sobriena shared version of libamu, and link with it accordingly, by specifying
57738494Sobrien--enable-shared to configure.  Default is --enable-static --disable-shared,
57838494Sobrienand you can mix and match.  See "INSTALL" file for listing of systems on
57938494Sobrienwhich shared libraries seem to build and work fine.
58038494Sobrien
58138494Sobrien- new option: amq -p, will return the PID of the running amd (local or
58238494Sobrienremote).  Uses a new RPC message.  Useful especially in "ctl-amd stop".
58338494Sobrien
58438494Sobrien- new configure script options --enable-ldflags, for specifying -L flags.
58538494SobrienThe older --enable-libs is to be used only for -l options.
58638494Sobrien
58738494Sobrien- two new LDAP map options for amd.conf: ldap_cache_seconds and
58838494Sobrienldap_cache_maxmem.
58938494Sobrien
59038494Sobrien- new script, am-eject from Debian linux's version of amd-upl102.
59138494Sobrien
59238494Sobrien- additional passwd map support using var[0-3], from Debian folks.
59338494Sobrien
59438494Sobrien- hesiod code cleanup.  works for hesiod 1.3 as well as 3.0.
59538494Sobrien
59638494Sobrien- removed defunct -h option from amd.
59738494Sobrien
59838494Sobrien- started using automake-1.2.  This fixed several bugs that caused some
59938494Sobrienversions of yacc/lex and non-GNU make to fail.
60038494Sobrien
60138494Sobrien- bug fixes:
60238494Sobrien	amd/hlfsd mounts should be hidden from df(1)
60338494Sobrien	use "noconn" option for nfs mounts (multi-homed hosts)
60438494Sobrien	don't use connected sockets on linux before 1.3.10 (from Debian)
60538494Sobrien	better checks for [gn]dbm
60638494Sobrien	forbid excessive retries after timeouts (from Debian)
60738494Sobrien	readdir(): don't skip over map entries with prefix, and include it
60838494Sobrien	more assorted linux fixes from Debian folks
60938494Sobrien	lofs mount on svr4 was broken
61038494Sobrien	find default value of $karch from uname() not $arch
61138494Sobrien	hlfsd failed to mount itself on some little-endians
61238494Sobrien
61338494Sobrien
61438494Sobrien*** Notes specific to am-utils version 6.0a8:
61538494Sobrien
61638494Sobrien- new ports:
61738494Sobrien	i386-unknown-netbsd1.2.1: configures/compiles (with NFS V.3), works,
61838494Sobrien				  but some OS stability problems exist.
61938494Sobrien
62038494Sobrien- updated ports:
62138494Sobrien	hppa1.1-hp-hpux9.01:
62238494Sobrien			now tested and working
62338494Sobrien	rs6000-ibm-aix3.2 and rs6000-ibm-aix3.2.5:
62438494Sobrien			now tested and working
62538494Sobrien
62638494Sobrien- fixed browsable directories (readdir) code.
62738494Sobrien
62838494Sobrien- better methods to find amd/hlfsd pid to kill in ctl-{amd,hlfsd}
62938494Sobrien
63038494Sobrien- "ignore/auto" mount types fixed for irix, sunos, and others, so "df" does not
63138494Sobrienshow amd mounts by default (but GNU df -a does).
63238494Sobrien
63338494Sobrien- each time amd is built, a new "build" version is incremented.  See amd -v.
63438494Sobrien
63538494Sobrien- man page for fsinfo added
63638494Sobrien
63738494Sobrien- empty fillers for new file (bsd44) systems: nullfs, unionfs, umapfs.
63838494Sobrien
63938494Sobrien- when amd is not running, or portmapper is down, make amq timeout faster (5
64038494Sobriensec) than system default, usually 4-5 minutes.
64138494Sobrien
64238494Sobrien- bug fixes:
64338494Sobrien	hlfsd mount got "protocol not supported"
64438494Sobrien	first regular map in amd.conf didn't inherit global options
64538494Sobrien	make "bad" versions of lex still work with amd/conf_parse.l
64638494Sobrien	check for 'nodev' option, not 'nondev'
64738494Sobrien	typo in "ro" option, and fillers to ac{reg,dir}{min,max} and others
64838494Sobrien	amd.conf parsing done before switching default log/debug options
64938494Sobrien	allow doubly-quoted values in amd.conf
65038494Sobrien	hesiod-reload code cleanup
65138494Sobrien
65238494Sobrien- assorted code cleanup
65338494Sobrien
65438494Sobrien
65538494Sobrien*** Notes specific to am-utils version 6.0a7:
65638494Sobrien
65738494Sobrien- new ports:
65838494Sobrien	i386-unknown-freebsd3.0:
65938494Sobrien			fully functional with NFS V.3
66038494Sobrien	sparc-sun-solaris2.3:
66138494Sobrien			fully functional (should work for 2.4)
66238494Sobrien	sparc-unknown-netbsd1.2E:
66338494Sobrien			configures/compiles (with NFS V.3), untested
66438494Sobrien
66538494Sobrien- updated ports:
66638494Sobrien	i386-pc-bsdi3.0:
66738494Sobrien			NFS V.3 works
66838494Sobrien			look for hesiod in libc
66938494Sobrien	mips-sgi-irix5.3:
67038494Sobrien			fully functional with NFS V.3
67138494Sobrien
67238494Sobrien- LDAP support!  New [global] amd.conf options ldap_base and ldap_hostports.
67338494SobrienAlso includes a new script amd2ldif to convert amd maps into plain text LDAP
67438494Sobrienobject files.
67538494Sobrien
67638494Sobrien- the following amd.conf variables: browsable_dirs, map_options, map_type,
67738494Sobrienmount_type, and search_path --- can now be specified in [global] as well as
67838494Sobrienthe map entry itself.  That way you can declare them only once in [global],
67938494Sobrienand override them as needed per map.
68038494Sobrien
68138494Sobrien- option "cluster" added to [global] (HPUX clusters ala "amd -C").
68238494Sobrien
68338494Sobrien- assorted info_hesiod map fixes and cleanup.  removed HESIOD_RELOAD code.
68438494Sobrien
68538494Sobrien- added netgrp(name) function to amd map syntax to see if current host is in
68638494Sobrienthe <name> netgroup.
68738494Sobrien
68838494Sobrien- removed unused option "amd -m".
68938494Sobrien
69038494Sobrien- filled in "tasks" file with todo items.
69138494Sobrien
69238494Sobrien- filled "COPYING" file with legal stuff.
69338494Sobrien
69438494Sobrien- cleanup: all global variables are now in one big structure (struct
69538494Sobrienamu_global_options) that's easy to identify and enhance.  Also migrated
69638494Sobrienseveral flags that used be an integer each into one unsigned integer that's
69738494Sobrienused as a bit-flag.
69838494Sobrien
69938494Sobrien- big fixes:
70038494Sobrien	xdr_mountres3 should compile only if has NFS V3
70138494Sobrien	lex/yacc macros show full pathname (to tell if correct one runs)
70238494Sobrien	misc fixes/cleanup
70338494Sobrien
70438494Sobrien
70538494Sobrien*** Notes specific to am-utils version 6.0a6:
70638494Sobrien
70738494Sobrien- amd configuration file!
70838494Sobrien
70938494SobrienSee scripts/amd.conf-sample for help and some explanation.  This new conf
71038494Sobrienfile allows for the following new features:
71138494Sobrien
71238494Sobrien	default selectors can be turned on/off globally.
71338494Sobrien	browsable_dirs/readdir() support can be turned on per map.
71438494Sobrien	search paths for file type maps.
71538494Sobrien	can force the map type to file, nis, ndbm, etc. rather than default
71638494Sobrien		to looking at all of them.
71738494Sobrien	tag each map for "amd -T tag", useful for grouping maps.
71838494Sobrien	can override $os and others (so if you don't like "sunos5" default
71938494Sobrien		naming, set os=sos5 and it will work with your old maps).
72038494Sobrien	and more goodies...
72138494Sobrien
72238494Sobrien- enable-default-selectors: No longer turned on by the configure script or
72338494Sobrienoptionally compiled.  Code made dynamic and can be turned on or off from the
72438494Sobrienamd.conf file.  This code is off by default, and must be turned on by
72538494Sobrienamd.conf's [global] section.
72638494Sobrien
72738494Sobrien- new ports:
72838494Sobrien	mips-sgi-irix5.3:	configure/compile, not tested
72938494Sobrien	i486-ncr-sysv4.3.03:	configure/compile, not tested
73038494Sobrien
73138494Sobrien- updated ports:
73238494Sobrien	alpha-dec-osf4.0:	major code redone
73338494Sobrien	sparc-sun-sunos4.1.3:	fixed and working
73438494Sobrien	mips-sgi-irix6.2:	tested with gcc and "cc -32 -Wl,-woff,84"
73538494Sobrien	mips-sgi-irix6.4:	tested with gcc and "cc -32 -Wl,-woff,84"
73638494Sobrien
73738494Sobrien- better NFS3 port, including more support for proto= and vers=, and
73838494Sobrienautomatic determination of proto/vers combination.
73938494Sobrien
74038494Sobrien- conf/nfs_prot/nfs_prot_*.h: all of the NFS protocol header files had to be
74138494Sobrienredone, because of the osf4 port.  OSF used very different names for these,
74238494Sobrienand they conflicted with am-utils'.  The only solution was to more or less
74338494Sobrienconform to OSF4's naming, and change all the others.
74438494Sobrien
74538494Sobrien- ctl-amd script:
74638494Sobrien	improved to look for amd.conf in $prefix/etc and /etc
74738494Sobrien	better methods for finding the pid of amd to kill
74838494Sobrien
74938494Sobrien- autoconf support for LDAP.  amd/info_ldap.c needs to be written.
75038494Sobrien
75138494Sobrien- wire-test also reports the local IP address.  Some systems have multiple,
75238494Sobrienbuggy version of get_myaddress(), esp. SunOS and Irix.  Note that Solaris
75338494Sobrienx86 has a buggy htonl().
75438494Sobrien
75538494Sobrien- amd -H prints usage.
75638494Sobrien
75738494Sobrien- bugs fixed:
75838494Sobrien	minor TLI problem in fwd_socket
75938494Sobrien	mount options properly comma delimited
76038494Sobrien	LIBS is set only to the right set of libraries to include
76138494Sobrien	selectors-on-default code ignored last selector ent in /defaults
76238494Sobrien	assorted code cleanups
76338494Sobrien
76438494Sobrien
76538494Sobrien*** Notes specific to am-utils version 6.0a5:
76638494Sobrien
76738494Sobrien- NFS Version 3 support!!!
76838494Sobrien
76938494Sobrien	Works on Solaris 2.5.1.
77038494Sobrien	Minimal testing done on Irix 6.
77138494Sobrien	Compiles cleanly on DU-4.0 but no tests performed.
77238494Sobrien
77338494SobrienWill fall back to V2 mounts when V3 is not available.  Will also use TCP if
77438494Sobrienpossible, UDP otherwise.
77538494Sobrien
77638494Sobrien- Ports to new platforms:
77738494Sobrien
77838494Sobrien	alpha-dec-osf4.0		(not tested)
77938494Sobrien	i386-pc-bsdi3.0			(tested and working)
78038494Sobrien	i386-unknown-freebsd2.2.1	(tested and working)
78138494Sobrien	sparc-unknown-linux-gnu		(tested and working)
78238494Sobrien
78338494Sobrien- New scripts added:
78438494Sobrien
78538494Sobrien	amd2sun:	convert amd maps to Sun automount maps
78638494Sobrien	ctl-amd:	script to start/stop/restart amd
78738494Sobrien	ctl-hlfsd:	script to start/stop/restart hlfsd
78838494Sobrien	expn:		expand mail alias (used by hlfsd)
78938494Sobrien	lostaltmail:	redeliver "lost" mail redirected by hlfsd
79038494Sobrien	lostaltmail.conf-sample:	sample conf file for lostaltmail
79138494Sobrien	wait4amd:	run a command once amd is up on a host
79238494Sobrien	wait4amd2die:	wait for an amd process to die before returning
79338494Sobrien
79438494Sobrien- "amd -v" now includes more info and "amq -v" lists all of it.
79538494Sobrien
79638494Sobrien- new parser for linux specific mount options.
79738494Sobrien
79838494Sobrien- Main bugs fixed:
79938494Sobrien
80038494Sobrien	"new toplvl readdir" bug caused amd to dump core
80138494Sobrien	handler for SIGCHLD didn't check for all possible children
80238494Sobrien	hlfsd leaking file descriptors when home file system was full
80338494Sobrien	cdfs/pcfs mounts should not timeout by default
80438494Sobrien	hesiod domain names should be compared in case-insensitive manner
80538494Sobrien	several printfs in amq were missing \n
80638494Sobrien
80738494Sobrien
80838494Sobrien*** Notes specific to am-utils version 6.0a4:
80938494Sobrien
81038494Sobrien- amd services both TCP and UDP amq requests.  This will help because of the
81138494Sobrienlimited UDP message size.
81238494Sobrien
81338494Sobrien- "amq -M" code is disabled by default because it is insecure.  It is
81438494Sobrienrarely used.  Users who wish to use it should run
81538494Sobrien"configure --enable-amq-mount".
81638494Sobrien
81738494Sobrien
81838494Sobrien*** Notes specific to am-utils version 6.0a3:
81938494Sobrien
82038494Sobrien- New tested ports (configures, compiles, and runs):
82138494Sobrien
82238494Sobrien	i386-unknown-freebsd2.2
82338494Sobrien
82438494Sobrien- New ports (configures and compiles correctly, not tested):
82538494Sobrien
82638494Sobrien	rs6000-ibm-aix3.2.5
82738494Sobrien	rs6000-ibm-aix4.1.5.0
82838494Sobrien
82938494Sobrien- More am-utils programs ported to all existing platforms: hlfsd, fsinfo,
83038494Sobrienmk-amd-map, and fixmount.
83138494Sobrien
83238494Sobrien- Shared libraries: a new configure option --enable-shared will build a
83338494Sobrienshared libamu.so, link applications with it, and use it.  Reduces binary
83438494Sobriensizes by 20-30%.  This is the first step towards loadable modules, as many
83538494Sobrienchanges had to be done to be able to compile and use PIC code.  This is code
83638494Sobrienthat obviously needs to be generalized to be able to build shared libraries
83738494Sobrienon many other platforms.  It was only tested on Solaris 5.5.1.
83838494Sobrien
83938494Sobrien- the file INSTALL contains the latest compatibility table of which
84038494Sobrienplatforms am-utils configures, compiles and runs on.
84138494Sobrien
84238494Sobrien- Trimmed down the size of the configure script.  Some tests that are not
84338494Sobrienused anywhere were removed.
84438494Sobrien
84538494Sobrien
84638494Sobrien*** Notes specific to am-utils version 6.0a2:
84738494Sobrien
84838494Sobrien- New ports (configures and compiles correctly, not tested):
84938494Sobrien
85038494Sobrien	i386-pc-bsdi2.1
85138494Sobrien	hppa1.1-hp-hpux9.01
85238494Sobrien	hppa1.1-hp-hpux10.20
85338494Sobrien
85438494Sobrien- new configure options:
85538494Sobrien
85638494Sobrien	--enable-cppflags[=ARG]
85738494Sobrien		configure/compile with ARG (-I) preprocessor flags
85838494Sobrien	--enable-libs[=ARG]
85938494Sobrien		configure/compile with ARG (-L/-l) library flags
86038494Sobrien
86138494Sobrien- filesystem, mount table entries, and mount type tests can now look in
86238494Sobrien/lib/modules and /proc/filesystems for statically/dyadically loadable kernel
86338494Sobrienmodules (linux)
86438494Sobrien
86538494Sobrien- prefer vfat over msdos/pc/etc filesystem for PCFS.
86638494Sobrien
86738494Sobrien- moved all fixed headers to include/am_defs.  Left only #define/#undef
86838494Sobrienentries in aux/acconfig.h.
86938494Sobrien
87038494Sobrien- make more sense of systems that have full, partial, or no NFS protocol
87138494Sobrienheaders.
87238494Sobrien
87338494Sobrien- minor fixes for NetBSD (untested platform).
87438494Sobrien
87538494Sobrien- hesiod map fixed.
87638494Sobrien
87738494Sobrien- buildall -D: new option to run even stricter developer options.
87838494Sobrien
87938494Sobrien- lots of other bugs fixed (see ChangeLog).
88038494Sobrien
88138494Sobrien
88238494Sobrien*** Notes specific to am-utils version 6.0a1:
88338494Sobrien
88438494SobrienI have it configure and build correctly for the following systems:
88538494Sobrien
88638494Sobrien	i386-pc-solaris2.5.1
88738494Sobrien	i386-unknown-freebsd2.1.0
88838494Sobrien	mips-sgi-irix6.2
88938494Sobrien	sparc-sun-solaris2.5.1
89038494Sobrien	sparc-sun-sunos4.1.3
89138494Sobrien
89238494SobrienAmq, wire-test, and "amd -v" work on all of the above.  A real running amd
89338494Sobrienwas only tested and confirmed working on
89438494Sobrien
89538494Sobrien	i386-pc-solaris2.5.1
89638494Sobrien	sparc-sun-solaris2.5.1
89738494Sobrien
89838494SobrienMany things are still missing: options, features, etc.  But for now, let's
89938494Sobrienconcentrate on getting the basic functionality working on the more popular
90038494Sobriensystems.
901