Name Date Size #Lines LOC

..--

amd/H09-Jul-2024-29,99917,634

amq/H09-Jul-2024-2,1571,482

conf/H09-Jul-2024-23,42415,267

doc/H09-Jul-2024-19,16816,735

fixmount/H09-Jul-2024-816530

fsinfo/H09-Jul-2024-4,0342,470

hlfsd/H09-Jul-2024-3,0432,028

include/H09-Jul-2024-4,5722,983

libamu/H09-Jul-2024-8,1215,550

m4/H09-Jul-2024-6,2175,433

mk-amd-map/H09-Jul-2024-519318

scripts/H09-Jul-2024-2,8461,920

wire-test/H09-Jul-2024-253128

AUTHORSH A D09-Jul-202415 KiB428280

BUGSH A D09-Jul-202412.8 KiB304223

COPYINGH A D09-Jul-20241.7 KiB3329

ChangeLogH A D09-Jul-2024461.3 KiB13,0928,901

FAQH A D09-Jul-20242.9 KiB7050

INSTALLH A D09-Jul-202415.4 KiB371289

INSTALL.am-utilsH A D09-Jul-20245.1 KiB125113

LSM.am-utilsH A D09-Jul-2024721 2120

MIRRORS.htmlH A D09-Jul-20242.7 KiB10782

MIRRORS.txtH A D09-Jul-20241.9 KiB6155

Makefile.amH A D09-Jul-20249.7 KiB353323

NEWSH A D09-Jul-202458 KiB1,5681,191

READMEH A D09-Jul-20243.8 KiB10473

README.attrcacheH A D09-Jul-20246.4 KiB130103

README.autofsH A D09-Jul-20247.7 KiB177130

README.ldapH A D09-Jul-20241.5 KiB5835

README.osxH A D09-Jul-20241.6 KiB7553

README.releaseH A D09-Jul-2024679 1615

README.release-announceH A D09-Jul-20241.5 KiB4737

README.sun2amdH A D09-Jul-20244.3 KiB14397

README.y2kH A D09-Jul-20241.1 KiB2720

aux_conf.h.inH A D09-Jul-20242 KiB5951

bootstrapH A D09-Jul-20241.3 KiB6544

buildallH A D09-Jul-20248.6 KiB365265

commitH A D09-Jul-20246 KiB234164

config.guessH A D09-Jul-202443 KiB1,4641,271

config.guess.longH A D09-Jul-20242.1 KiB8470

config.subH A D09-Jul-202435.5 KiB1,8291,691

configure.acH A D09-Jul-202441.9 KiB1,5121,453

cvs-server.txtH A D09-Jul-20241.5 KiB4126

depcompH A D09-Jul-202423 KiB792502

install-shH A D09-Jul-202413.7 KiB528351

ldap-id.msH A D09-Jul-20249.3 KiB307241

ldap-id.txtH A D09-Jul-202410.6 KiB361217

ldap.schemaH A D09-Jul-20241.5 KiB5343

ltmain.shH A D09-Jul-2024277 KiB9,6627,310

missingH A D09-Jul-20246.7 KiB216143

mkinstalldirsH A D09-Jul-20243.5 KiB163112

tasksH A D09-Jul-20243.3 KiB11270

vers.m4H A D09-Jul-20249 21

ylwrapH A D09-Jul-20247 KiB267160

ylwrap.amdH A D09-Jul-20247 KiB267160

README

1This is the official version of am-utils.
2
3See the file NEWS for news on this and previous releases.
4
5*** General Notes to alpha/beta testers:
6
7[A] as alpha/beta testers, I expect you to be able to find certain things on
8your own (especially look at the sources to figure out how things work).
9
10[B] if you intend to modify any files, first find out if the file you want
11to modify gets autogenerated from some other place.  If so, modify it at the
12source.
13
14You can adjust some of the configuration of am-utils after it has been
15auto-configured by putting whatever definitions you wish in a file called
16localconfig.h, located in the top build directory (the same one where
17config.h is created for you).
18
19[C] there are several ways you can build am-utils:
20
21(1) run the buildall script as follows:
22
23	./buildall
24
25This would build all the applications inside a special directory relative to
26the root of the source tree, called A.<cpu-company-system>, where the <>
27part is filled in by GNU's config.guess script.  This is the preferred
28method, for it will separate the build from the sources, and allow you to
29run buildall for multiple architectures concurrently.
30
31You can run "buildall -h" to see what options it takes.
32
33(2) run the configure script such as:
34
35	./configure
36
37and then run
38
39	make
40
41This would configure amd in the directory you've run the configure script,
42and build it there.  Run "make install" to install all the necessary files.
43
44Note that this is good for building only one version of amd on one
45architecture!  Don't try this for multiple architectures.  If you must, then
46after doing one such build, run "make distclean" and then reconfigure for
47another architecture.
48
49(3) run the configure script for build in a different location.  Let's say
50that /src/am-utils-6.0 is where you unpacked the sources.  So you could
51
52	mkdir /src/build/sunos5
53	cd /src/build/sunos5
54	/src/am-utils-6.0/configure --srcdir=/src/am-utils-6.0
55	make
56
57This is a manual method that will let you build in any directory outside the
58am-utils source tree.  It requires that your "make" program understand
59VPATH.  This can be used multiple times to build am-utils concurrently in
60multiple (but different) directories.  In fact, the buildall script
61described above does precisely that, using the A.* subdirectories.
62
63(4) If you need to configure am-utils with extra libraries and/or headers,
64for example to add hesiod support, do so as follows:
65
66	configure --enable-libs="-lhesiod -lresolv" \
67		--enable-ldflags="-L/usr/local/hesiod/lib" \
68		--enable-cppflags="-I/usr/local/hesiod/include"
69
70[D] If you modify any of the *.[chyl] sources in the directories amd, amq,
71hlfsd, lib, etc, all you need to do to get a new version of am-utils is run
72make.
73
74If you modify any of the files in the m4/ or conf/ directories, or any *.in
75or *.am file, then you must rebuild the configure script, Makefile.in files,
76aclocal.m4, etc.  The best way to do so is to run
77
78	./bootstrap
79or
80	./buildall -K
81
82To be a developer and be able to run "bootstrap", you must have
83autoconf-2.68, automake-1.11.1, and libtool 2.2.6b installed on your system (or
84later versions thereof).  You no longer need to get my special version of
85automake.  Contact me if you'd like to be a maintainer and get access to the
86CVS server.
87
88After you've remade the basic configuration files you must rerun the
89buildall script to rerun configure and then remake the binaries.
90
91Modifying M4 macros may not be very intuitive to anyone that has not done so
92before.  Let me know if you are having any problems with them.  I fully
93expect, at least initially, to have to be the sole developer of the M4
94macros and let others concentrate on C sources.
95
96[E] Report all bugs via Bugzilla or the am-utils list (see
97www.am-utils.org).  Avoid reporting to my personal email address.  It is
98important to involve the whole list in bug fixes etc.
99
100Good luck.
101
102Erez Zadok,
103Maintainer, am-utils.
104

README.attrcache

1		 NFS Attribute Caching OS Problems and Amd
2		      Last updated September 18, 2005
3
4* Summary:
5
6Some OSs don't seem to have a way to turn off the NFS attribute cache, which
7breaks the Amd automounter so badly that it is not recommend using Amd on
8such OS for heavy use, not until this is fixed.
9
10
11* Details:
12
13Amd is a user-level NFSv2 server that manages automounts of all other file
14systems.  The kernel contacts Amd via RPCs, and Amd in turn performs the
15actual mounts, and then responds back to the kernel's RPCs.  Every kernel
16caches attributes of files, in a cache called the Directory Name Lookup
17Cache (DNLC), or a Directory Cache (dcache).
18
19Amd manages its namespace in the user level, but the kernel caches names
20itself.  So the two must coordinate to ensure that both namespaces are in
21sync.  If the kernel uses a cached entry from the DNLC, without consulting
22Amd, users may see corruption of the automounter namespace (symlinks
23pointing to the wrong places, ESTALE errors, and more).  For example,
24suppose Amd timed out an entry and removed the entry from Amd's namespace.
25Amd has to tell the kernel to purge its corresponding DNLC entry too.  The
26way Amd often does that is by incrementing the last modification time
27(mtime) of the parent directory.  This is the most common method for kernels
28to check if their DNLC entries are stale: if the parent directory mtime is
29newer, the kernel will discard all cached entries for that directory, and
30will re-issue lookup methods.  Those lookups will result in
31NFS_GETATTR/NFS_LOOKUP calls sent from the kernel down to Amd, and Amd can
32then properly inform the kernel of the new state of automounted entries.
33
34In order to ensure that Amd is "in charge" of its namespace without
35interference from the kernel, Amd will try to turn off the NFS attribute
36cache.  It does so by using the NFSMNT_NOAC flag, if it exists, or by
37setting various "cache timeout" fields in struct nfs_args to 0 (acregmin,
38acregmax, acdirmin, or acdirmax).
39
40We have released a major new version of am-utils, version 6.1, in June 2005.
41Since then, a lot of people have experimented with Amd, in anticipation of
42migrating from the very old am-utils 6.0 to the new 6.1.  For a couple of
43months since the release of 6.1, we have received reports of problems with
44Amd, especially under heavy use.  Users reported getting ESTALE errors from
45time to time, or seeing automounted entries whose symlinks don't point to
46where it should be.  After much debugging, we traced it to a few places in
47Amd where it wasn't updating the parent directory mtime as it should have;
48in some places where Amd was indeed updating the mtime, it was using a
49resolution of only 1 second, which was not fine enough under heavy load.  We
50fixed this problem and switched to using a microsecond resolution mtime.
51
52After fixing this in Amd, we went on to verify that things work for other
53OSs.  When we got to test certain BSDs, we found out that they always cache
54directory entries, and there is no way to turn it off completely.
55Specifically, if we set the ac{reg,dir}{min,max} fields in struct nfs_args
56all to zero, the kernel seems to cache the entries for a default number of
57seconds (something like 5-30 seconds).  On some OSs, setting these four
58fields to 0 turns off the attribute cache, but not on some BSDs.  We were
59able to verify this using Amd and a script that exercises the interaction of
60the kernel's attrcache and Amd.  (If you're interested, the script can be
61made available.)
62
63We then experimented by setting the ac{reg,dir}{min,max} fields in struct
64nfs_args all to 1, the smallest non-zero value we could.  When we ran the
65Amd exercising script, we found that the value of 1 reduced the race between
66the DNLC and Amd, and the script took a little longer to run before it
67detected an incoherency.  That makes sense: the smaller the DNLC cache
68interval is, the shorter the window of vulnerability is.  (BTW, the man
69pages on some OSs say that the ac{reg,dir}{min,max} fields use a 1 second
70resolution, but experimentation indicated it was in 0.1 second units.)
71
72Clearly, setting the ac{reg,dir}{min,max} fields to 0 is worse than setting
73it to 1 on those OSs that don't have a way to turn off the attribute cache.
74So the current workaround I've implemented in am-utils is to create a
75configuration parameter called "broken_attrcache" which, if turned on, will
76set these nfs_args fields to 1 instead of 0.  I wish I didn't have to create
77such ugly workaround features in Amd, but I've got no choice.
78
79The near term solution is for every OS to support a true 'noac' flag, which
80can be added fairly easily.  This'd make Amd work reliably.
81
82The long term solution is to implement Autofs support for all OSs and to
83support it in Amd.  Currently, Amd supports autofs on Solaris and Linux;
84FreeBSD is next.  Still, we found that even with autofs support, many
85sysadmins still prefer to use the good 'ol non-autofs mode.
86
87
88* Confirmed Status
89
90This is the confirmed status of various OSs' vulnerability to this attribute
91cache bug.  We are slowly checking the status of other OSs.  The status of
92any OS not listed is unknown as of the date at the top of this file.
93
94** Not Vulnerable (support a proper "noac" flag):
95
96Sun Solaris 8 and 9 (10 probably works fine)
97Linux: 2.6.11 kernel (2.4.latest probably works fine)
98FreeBSD 5.4 and 6.0-SNAP001 (older versions probably work fine)
99OpenBSD 3.7 (older versions probably work fine)
100
101** Vulnerable (don't support a proper "noac" flag natively):
102
103NetBSD 2.0.2 (older versions are also probably affected)
104
105Note: NetBSD has promised to support a noac flag hopefully after 2.1.0 is
106released (maybe in 3.0 or 2.2).  In the mean time, you can apply one of
107these two kernel patchs to support a 'noac' flag in NetBSD 2.x or 3.x:
108	ftp://ftp.netbsd.org/pub/NetBSD/misc/christos/2x.nfs.noac.diff
109	ftp://ftp.netbsd.org/pub/NetBSD/misc/christos/3x.nfs.noac.diff
110After applying this patch and rebuilding your kernel, reboot with the new
111kernel.  Then copy the new nfs.h and nfsmount.h from /sys/nfs/ to
112/usr/include/nfs/, and finally rebuild am-utils from scratch.
113
114** Testing
115
116When you build am-utils, a script named scripts/test-attrcache is built,
117which can be used to test the NFS attribute cache behavior of the current
118OS.  You can run this script as root as follows:
119
120# make install
121# cd scripts
122# sh test-attrcache
123
124If you run this script on an OS whose status is known (and not listed
125above), please report it to us via Bugzilla or the am-utils mailing list
126(see www.am-utils.org), so we can record it in this file.
127
128Sincerely,
129Erez.
130

README.autofs

1# This file is README.autofs
2# am-utils-6.1
3# Erez Zadok <ezk AT cs.columbia.edu> a.k.a. "Darth Autoconf"
4#
5# modified by
6# Ion Badulescu <ib42 At cs.columbia.edu> a.k.a. "The Autofs Master"
7
8** General notes about the autofs support in am-utils
9
10- The autofs code in am-utils is gamma quality for Linux, beta quality for
11  Solaris 2.5+ and non-working for all the other systems.
12
13- Link, lofs, ufs, nfs, nfsl, and auto mounts were tested and work properly;
14  the others should work, but were not tested.
15
16* Caveats:
17
18- [this applies to Solaris/IRIX 6/HP-UX/AIX] Amd acts as *both* automountd and
19automount.  There's no way to distinguish between the two.  When amd starts,
20it first registers itself as an autofs server (automountd's job), then
21parses its own maps, and decides which autofs-type mounts to make
22(automount's job).  After the autofs mounts are made, amd listens for
23requests from the kernel-based autofs, and acts upon them. Since there can
24be only one autofs listener on a system, this means that automountd and amd
25cannot run at the same time; nor can two amd's run at the same time if they
26are both using autofs mounts.
27
28- Linux support is available and fairly stable. Solaris 2.5+ support is
29newer and less tested, but seems pretty stable as well. IRIX 6 and HP-UX
30autofs support will probably be very easy once we get Solaris 2.5 to work,
31as they use the same protocol and almost identical data structures. AIX
32seems to be using the Solaris 2.5 protocol as well, but they don't provide
33any headers or documentation so getting autofs to work will be tricky at best.
34
35- Killing amd can become a problem if there are active mounts. Since mounts
36are done "in place", we can't just unmount our mount points and go away. For
37now, amd simply tells the kernel that it is dying; we need to think this
38further.  It would be nice to "take over" the old mountpoints, there is
39support for this in Solaris (due to is RPC nature) and is easy to add to
40the Linux kernel (an ioctl on the mountpoint).
41
42- The Solaris 2.5 implementation of the autofs v1 protocol is NON-REENTRANT,
43and ignoring this limitation results in a DEADLOCK between the kernel and
44the daemon. This is a serious problem, although only for the lofs and link
45mount types. In other words, suppose the daemon is trying a lofs/link mount
46whose destination crosses another autofs mountpoint. If that mountpoint is
47not yet mounted, it will trigger another autofs lookup which will deadlock
48inside the kernel -- because the kernel is waiting for the previous request
49to return. This is not even something specific to amd, Sun's own automountd
50has the exact same problem. Ctrl-C breaks the deadlock, so it's not fatal,
51but the lofs/link entry is in effect unusable.
52
53- Solaris 2.8 (at least) doesn't like getting to get out-of-order replies to
54mount requests, and ignores the late ones. It's only a minor annoyance (read
55delay), because the RPC is retried by the kernel and it succeeds the second
56time around.
57
58* Solaris:
59
60- Amd w/ autofs mounts will fight over the listener port with Sun's
61  automountd, so running both simultaneously is a really bad idea.
62
63- Browsable_dirs is possible and implemented for Solaris 2.6+.
64
65- Direct mounts are implemented and work correctly.
66
67- Host maps are implemented and work correctly.
68
69- On Solaris 2.6+, symlinks over autofs are inefficient. The kernel seems to
70  time them out immediately after receiving them, so each access to a
71  symlink causes a call to userspace. Needless to say, this negates the
72  whole point of using autofs. Automountd seems to always use lofs mounts
73  instead of symlinks, we do the same unless the admin requests
74  "autofs_use_lofs = no" in amd.conf.
75
76- Solaris 2.5/2.5.1 do not support symlinks over autofs, so links are always
77  mounted as lofs mounts, subject to the limitation described in the caveats
78  section above.
79
80- Restarting autofs mounts is possible, but not yet implemented.
81
82* Linux:
83
84- Amd should work fine even when the Linux automounter is running, the
85  mechanism being used prevents any kind of (evil) interaction between them.
86
87- Browsing is not available if autofs support is used, due to limitations in
88  the kernel<->daemon protocol used by Linux 2.2 and 2.4. Only already-mounted
89  nodes will appear in the autofs directory, and this is implemented entirely
90  in the kernel.
91
92- Host maps are supported with all autofs versions.
93
94- Direct maps cannot be supported since there is no kernel support for them;
95  we might be able to get something eventually, but don't hold your breath.
96  If anything, we may do it using a regular NFS mountpoint and bind-mount on
97  top of it.
98
99- Inherit doesn't make much sense because we can't restart a hung autofs
100  mount point, due to kernel limitations. This needs to be fixed in the
101  Linux kernel; it's not particularly difficult, and we might provide a
102  patch at some point.
103
104- Link (and lofs) mounts will use the new bind-mount support in Linux
105  2.4+. No more symlinks! And /bin/pwd works great too.
106
107- Auto maps are actually mounted as a separate autofs filesystem. Since each
108  autofs filesystem consumes 2 file descriptors, and amd has at most 1024
109  file descriptors available, there can be at most 512 of them mounted at
110  the same time. Because of this, extensive use of auto maps is discouraged
111  when using autofs on Linux.
112
113* amd.conf requirements:
114
115To tell amd to use an autofs-style mount point and mounts for a map, add
116
117	mount_type = autofs
118
119either to the global section, or to the sections of the individual maps you
120selected. Mixing autofs and normal amd mount points in the same amd.conf
121file *does* work.
122
123* Map changes:
124
125No changes are necessary. If a map is marked as autofs in amd.conf, mounts
126are done "in place" and the "fs" parameter is ignored most of the time.
127
128* Todo:
129
130We are looking for volunteers to improve the autofs code!
131
132(1) These fixes are needed:
133
134- sublinks are broken
135
136- when the mount type is 'link', transparently translate it into a loopback
137file system mount (lofs), that would mount in place, rather than supply a
138symlink, at least on systems whose autofs doesn't support symlinks. Linux
139does support symlinks, Solaris 2.6+ does too, but Solaris 2.5/2.5.1 doesn't
140and neither does IRIX 6. Moreover, Sun's automountd always uses lofs for
141link mounts, even on 2.6+, because symlinks are not cached in the kernel and
142thus are not particularly efficient. [done]
143
144- complain if certain incompatible options (autofs and ...) are used. Direct
145maps on Linux is one such case of incompatible options. Browsable_dirs on
146Linux is another such case.
147
148- if amd is killed or dies, the autofs mounts will remain intact as required
149(your system is _not_ hung, yay!).  However, if you restart amd, it will not
150correctly 'restart' the autofs mounts as the Sun automounter does.  Rather,
151it might cause another mount to happen, which leaves your /etc/mnttab
152cluttered with older mounts entries which cannot be unmounted. It might also
153just pretend everything is ok, when in fact it isn't.
154
155(2) Code expansion:
156
157- [Solaris only] implement the sockets version of amu_get_autofs_address()
158and create_autofs_service(), in conf/transp/transp_sockets.c. Not sure if
159it's necessary, Solaris it still biased towards TLI/STREAMS in
160userspace. [mostly done, untested, might be used on AIX 5.x+ and IRIX 6]
161
162- Implement the restarting of autofs mount points. This is already doable on
163Solaris; on Linux, the kernel needs to be patched to allow it.
164
165(3) Testing and porting to other systems:
166
167- nothing has been tested on IRIX 6, which reportedly has a similarly
168functioning autofs to Solaris 2.5.  The code compiles, but has not been run
169yet and is most likely broken.
170
171- support for Linux autofs is stable, we need testers!
172
173- support for Solaris 2.6+ is pretty stable, so we need testers for it, too!
174
175- we did not test any version of Solaris on x86. It will probably work, but
176you have been warned. Testers are welcome.
177

README.ldap

1LDAP support for am-utils was originally done by Leif Johansson
2<leifj AT it.su.se>.  He no longer maintains it.
3
4The current LDAP support for am-utils is for LDAPv2 only.  Reportedly,
5LDAPv3 mostly works.  Volunteers and patches are welcome.
6
7The IANA has assigned the following Private Enterprise Number to:
8
9	10180  Am-utils Organization   Erez Zadok	ezk AT am-utils.org
10
11There are three files in this directory that relate to LDAP:
12
13ldap.schema:
14
15	This is the most current schema.
16
17ldap-id.txt:
18
19	This is an experimental schema for amd mount maps in LDAP.  Since
20	LDAP isn't maintained now, this code may not match with either the
21	current ldap_info.c code or with Amd mount maps in general.
22
23	The schema is written in the form of an internet-draft but it has
24	not been published as such.  We need volunteers who know and use
25	LDAP to clean it up and further its process of submission.
26
27ldap-id.ms:
28
29	This is the NROFF source of the draft.  To generate the text from
30	it, run "nroff -ms ldap-id.ms > ldap-id.txt"
31
32Erez.
33
34------- Forwarded Message
35
36From: "IANA Private Enterprise Number" <iana-pen AT icann.org>
37To: "Erez Zadok" <ezk AT cs.columbia.edu>
38Subject: RE: Application for Enterprise-number (10180)
39Date: Sun, 15 Jul 2001 14:43:45 -0700
40
41Dear Erez,
42
43The IANA has assigned the following Private Enterprise
44Number to:
45
4610180  Am-utils Organization   Erez Zadok                 ezk AT am-utils.org
47
48Please notify the IANA if there is a change in your contact
49or company information.
50
51Thank you,
52
53Bill Huang
54IANA - Private Enterprise Numbers
55
56------- End of Forwarded Message
57
58

README.osx

1Here some unconfirmed instructions for how to setup Amd on a MAC OS-X
2machine.  Please direct all comments about this information, as well fixes,
3updates, and corrections to the am-utils mailing list (see
4www.am-utils.org).
5
6Thanks,
7Erez.
8
9--cut--here----cut--here----cut--here----cut--here----cut--here----cut--here--
10
11
12Date: Fri, 28 Jan 2005 06:53:50 -0800
13From: Kevin Layer
14
15The stock amd didn't work for us in Mac OS X 10.3.
16Here's how we installed am-utils-6.1-20031025:
17
18./configure --prefix=/usr
19make
20make install
21
22Create /System/Library/StartupItems/AMD with the files:
23
24AMD
25Resources/	-- copy from other directories in ..
26StartupParameters.plist
27
28Then, make sure that AMDSERVER=-YES- is added to /etc/hostconfig.
29
30******************* the file AMD:
31
32#!/bin/sh
33
34##
35# Start AMD
36##
37
38. /etc/rc.common
39
40if [ "${AMDSERVER:=-NO-}" = "-YES-" ]; then
41    ConsoleMessage "Starting AMD server"
42
43    if [ ! -f /etc/amd.conf -a -r /etc/amd.conf.template ]; then
44        cp /etc/amd.conf.template /etc/amd.conf
45    fi
46    if [ ! -f /etc/amd.map -a -r /etc/amd.map.template ]; then
47        cp /etc/amd.map.template /etc/amd.map
48    fi
49    /usr/sbin/amd
50fi
51
52******************* the file StartupParameters.plist:
53
54{
55  Description     = "AMD server";
56  Provides        = ("AMD");
57  Requires        = ("Resolver");
58  OrderPreference = "None";
59  Messages =
60  {
61    start = "Starting AMD server";
62    stop  = "Stopping AMD server";
63  };
64}
65
66*******************
67
68With the beta's of 10.4 (64-bit) we're having issues with realpath()
69and amd mounted directories, but hopefully this is just a bug that
70they'll fix.
71
72--
73Kevin Layer                     http://www.franz.com/
74
75

README.release

1- update vers.m4 to the new version you want to release: then rerun ./bootstrap
2- update NEWS w/ appropriate items
3- ./bootstrap && ./buildall && cd A.$ARCH.$VENDOR.$OSVERSION. && make check
4- cd A.$ARCH.$VENDOR.$OSVERSION make distcheck
5  That generates a tar.gz w/ version number to drop into the ftp/http server
6- Make sure that all your files are committed at this point
7- Now tag the current trunk:
8	git tag -a am-utils-X_Y[abc]Z
9  or
10	git tag -a am-utils-X_Y_rcZ
11  If you want to move the tag, use --force
12- Push all commits and tags to the master repository
13	git push --all
14- email announcement to am-utils-announce@am-utils.org.  See
15  README.release-announce as sample.
16

README.release-announce

1To: am-utils-announce@am-utils.org
2Cc: am-utils@am-utils.org
3Subject: am-utils-6.2-rc1 released
4
5We've released am-utils-6.2-rc1, first and only release candidate in the
66.2 series (with nfsv4 support, autofs supports, and quite a few more
7features).  This will be the first official release since 2006, so expect a
8lot of bug fixes and improvements.
9
10You can download am-utils-6.2-rc1 as well as other releases from:
11
12	http://www.am-utils.org/
13
14*** Notes specific to am-utils version 6.2-rc1
15
16Filesystem Support:
17    - Add support for NFSv4
18    - Add support for Lustre
19    - Add support for ext{2,3,4}
20    - Add support for linux autofs version 5
21    - Add support for TMPFS and UDF
22New features:
23    - Add amq -i (prints information about maps)
24    - Add synchronous unmount code for amq -uu
25    - Allow a comma-separated list of LDAP servers for failover
26Changes in behavior:
27    - Empty variable assignments, now unset the variable value.
28    - Share LDAP connections between different maps to save resources
29Portability fixes:
30    - Changes to work with Linux-2.6.x, Linux-3.x and NetBSD-5.x, NetBSD-6.x,
31      FreeBSD 7.x, Solaris
32Bug fixes:
33    - Many bug fixes, see ChangeLog
34
35- minor new ports:
36	* Please send us the 'config.guess' and 'amd -v' outputs
37	  so we can complete this list.
38
39- Bugs fixed:
40	* many race conditions found and fixed by Krisztian Kovacs.
41
42Cheers,
43The am-utils team.
44
45PS. Many thanks for Christos Zoulas for a huge amount of work he put in
46towards this long-awaited release.
47

README.sun2amd

1		Sun-style Automounter Syntax Support in Amd
2		       Last updated: October 10, 2005
3
4
5* Summary
6
7The goal of this effort is to provide a drop in replacement for the Sun
8automounter.  This is implemented in two ways.  (1) A new parser built into
9Amd.  (2) a standalone sun2amd Unix filter tool that can convert Sun-style
10maps to Amd maps.
11
12Support for Sun-style maps in Amd (including this document) is a
13work-in-progress.  This feature as a whole has not been throughly tested and
14is "alpha" quality as of the date posted at the top of this document.
15
16* Status
17
18Currently sun2amd supports most of the basic syntax features of Sun maps.
19However, support for Sun auto.master maps does not yet exists at any level.
20Below is a list of supported and not-yet supported features.
21
221. Supported Sun map features:
23
24- Simple map entry format: <key> [mount_options] location ...
25	locations take the form of host:pathname
26
27- Map Key Substitution: <key> <hostname>:/tmp/&
28	the & expands to <key>
29
30- Wildcard Key: * <hostname>:/tmp
31	This is is a catch-all entry.
32
33- Variable Substitution:
34	$ARCH, $CPU, $HOST, $OSNAME, $OSREL, $OSVERS, $NATISA
35
36- Multiple Mount format:
37	<key> [mount_options] [mountpoint] [mount-options locations...]...
38
39	ex.
40		pluto -ro /tmp1 host1:/tmp1 /tmp2 host2:/tmp2
41
42- HSFS file-system (cdrom): <key> -fstype=hsfs,ro :/dev/cdrom
43
44
452. Not-yet supported Sun map features:
46
47- Replicated File Systems: <hostname>,<hostname>...:<pathname>
48	This is a feature of Solaris that allows a user to specify a
49	set of hosts to appear as one in a map entry.  When a host
50	does not respond the kernel will switch to an alternate
51	server.  Amd will supports the syntax for replicated file
52	systems by creating multiple hosts, however, Amd will not
53	perform any kind of fail over.
54
55- CacheFS (although Amd supports type:=cachefs, sun2amd doesn't yet parse
56  it).
57
58- AutoFS (although Amd supports Autofs mounts and type:=auto, sun2amd
59  may not parse it fully).
60
61- Included maps: +<map_name>
62	This will include the contents of a map into another map.
63
64- Sun master maps: auto.master
65	Amd still relies and amd.conf.  Any feature in auto.master
66        must be duplicated using Amd equivalent features in amd.conf.
67
68- /net mount point:
69	The automounter is suppose to dynamically create map entries
70        under this mount point corresponding to NFS server(s) exported
71        file systems.  While this isn't parser by sun2amd, Amd does support
72	host maps (type:=host).
73
74- Federated Naming Service (FNS) (-xfn):
75	A naming server that wraps a number of other naming service
76        under one interface.
77
78- "-null" map option: A way to cancel maps in the auto.master file.
79
80- nsswitch.conf:
81	This file provides a way to specify what lookup service to use
82        for a number of systems including Sun's automounter.  In amd
83        lookup services for map files are define in the amd.conf file.
84
85
86* Setup
87
88To enable Sun-style maps in Amd, set "sun_map_syntax = yes" in your amd.conf
89file.  When this flag is set in [global], all maps read by Amd are assumed
90to be Sun style maps.  You can set this on a per map basis, thus mixing
91Sun-style and Amd-style maps.  For more information about amd.conf please
92see the Amd documentation.
93
94Example:
95
96# file: amd.conf
97################
98[ global ]
99sun_map_syntax = yes
100
101[ /home ]
102map_name = /etc/amd.sun_map
103map_type = file
104
105
106* sun2amd command line utility
107
108In addition to build-in Amd support there also exists the sun2amd command
109line utility that converts Sun maps to Amd maps.  This can be useful in
110migrating one or more Sun maps to the Amd syntax in one step.
111
112Example usage:
113
114$ sun2amd -i sun_map -o amd_map
115
116This line tells sun2amd to read the file sun_map and redirect its output to
117a file called amd_map.  By default sun2amd reads from stdin and writes to
118stdout (i.e., traditional Unix filter).
119
120
121* FAQ
122
123Q1: I know "/net" is not supported, but how can I achieve the same
124    functionality with Amd?
125
126A1: In short, you must create the '/net' entry as a Amd entry of type host
127    by hand.  Below is an example of how to do this.  See the Amd
128    documentation on type autofs for more information.
129
130Example:
131
132# file: amd.conf
133################
134[ /net ]
135map_name = /etc/amd.net
136
137# file: /etc/amd.net
138###############
139/defaults  fs:=${autodir}/${rhost}/root/${rfs}
140*          rhost:=${key};type:=host;rfs:=/
141
142(more FAQ entries to come...)
143

README.y2k

1		       AM-UTILS YEAR-2000 COMPLIANCE
2
3Most likely am-utils is y2k compliant.
4
5I do not know for sure because I have not certified am-utils myself, nor do
6I have the time for it.  I do not think that amd will be affected by y2k at
7all, because it does not do anything with dates other than print the date on
8the log file, in whatever format is provided by your os/libc --- especially
9the ctime(3) call.
10
11However, on Friday, September 18th 1998, Matthew Crosby <mcrosby AT ms.com>
12reported that they evaluated 6.0a16 and found it to be compliant.
13
14On March 26, 1999, Paul Balyoz <pbalyoz AT sedona.ch.intel.com> submitted a
15patch to lostaltmail which makes it print Y2K compliant dates.  He used a
16code scanner and manually "eyeballed" the code and could not find any more
17problems.  Paul's patch is included in am-utils-6.0.1s7 and newer versions.
18Paul also said that other 2-digit years used in am-utils are "harmless."
19
20NOTE: NONE OF THE PERSONS MENTIONED HERE, AUTHOR INCLUDED, ARE WILLING TO
21CERTIFY AM-UTILS AS Y2K COMPLIANT.  USE AT YOUR OWN RISK.
22
23---
24Erez Zadok.
25Maintainer, am-utils package and am-utils list.
26WWW:   http://www.am-utils.org
27