Package: amd Version: upl102-1 Hi, I've prepared some fixes for amd. The fixes come in three patchfiles from which only the first and the second are essential. The first patch is from Tonny Madsen <Tonny.Madsen@netman.dk> and fixes a really nasty bug (ever tried find /net or cd /net/<some_prefix><TAB> ?). The second patch enhances mount_linux.c for newer kernels and multihomed hosts (this mimicks the fix to mount, see Bug#2482) and fixes some other bugs I found. The third patch is the largest and contains mostly cosmetic fixes to reduce the amount of compiler warnings (add prototypes to most functions, add typecasts for xdrproc_t and a lot of changes like the following: - if (fs = mf->mf_server) + fs = mf->mf_server; + if (fs) ). I hope these patches will be included into the next Debian-release of amd (at least 1 and 2). Greetings, Swen
From Tonny.Madsen@netman.dkWed Mar 6 10:40:40 1996 Date: Thu, 1 Jun 1995 08:24:13 +0200 From: Tonny Madsen <Tonny.Madsen@netman.dk> To: AMD Mailing List <amd-workers@acl.lanl.gov> Subject: A number of changes and patches to amd-upd102 Hello world of automounter managers, I have been playing a great deal with amd (upd 102) lately in order to make it better for our local environment. Basicaly I've made the following changes (included below in a single patch file): - I have made NEW_TOPLVL_READDIR work! I found a nasty error in make_entry_chain, that ment a bogus pointer was returned if no entries was found in the map -- which of cause normally only can happen if the cache:=all assignment is missing for the map. [changes to amd/mapc.c] - I have made NEW_TOPLVL_READDIR work for type:=auto too. This basically means make_entry_chain now understands about prefix strings as specified with pref:=something. [changes to amd/afs_ops.c and amd/mapc.c] - I have done some cleanup around the mixed use of M_NEWTYPE and MTYPE_TYPE. [changes to amd/cdfs_ops.c, amd/lofs_ops.c, amd/pcfs_ops.c and config/os-linux.h] - I have done some cleanup around the mixed use of HAS_CDFS and MTAB_TYPE_CDFS. [changes to amd/restart.c, config/os-sos4.h, config/os-sos5.h, amd/cdfs_ops.c, config/os-defaults.h, config/os-osf1.h] - I made OSF/1 understand cdfs. [changes to config/os-osf1.h] - I have enhanced the passwd map to reduce the number of performed NFS mounts. This change is described further below. [changes to amd/info_passwd.c] I also have some changes that have not made into this patch: - I have a new part for amd (upd 102) that will make a shared library for OSF/1 that implements a new set of pwd functions (getcwd and getwd), which knows about automount points and can handle these correctly. I would like to find a way to include this functionality in the system version of libc.so before I release anything. - I have started on some general clean up of the code. Maybe 1/3 of all the preprocessor symbols can be eliminated if some work is done about it. - I have a first cut for NFS V3 mount functionality. I still have a couple of things I need to figure out, but it is comming along nicely. All of the changes in this patch has been working here for 3-4 weeks now and seem to be pretty stable apart from one annoying little problem. The '.' entry of all amd managed directories now seem to be stale when ever it is stat'ed. It isn't a major problem here, but I hope to get the time to look into it later this week. [It seemed to work allright with the old version of afs_readdir, so there must be a significant difference between this function and new_afs_readdir...] The extension to the passwd map allow one to specify the location that should be returned by passwd_search within some limitations. The new format for the passwd map name is /etc/passwd[:<location>] If no :<location> part is specified, a default is used that make the passwd map behave as before. The location has access to four variables that are constructed from the home directory of the referenced user. A home directory, /anydir/dom1/dom2/dom3/user, is choped up as follows: var0:=anydir var1:=dom3.dom2.dom1 var2:=user var3:=/anydir/dom1/dom2/dom3/user These variables are then concatenated and prepended to the location from the map name, before the resulting string is returned from passwd_search. You can now use these variables in your location in order to customize the way user directories are handled. Note that the location string can not be a location-list, but only a single location -- this is due to the way varx variable are handled in opts.c. The default value for the location is type:=nfs;rfs:=/${var0}/${var1};rhost:=${var1};sublink:=${var2};fs:=${autodir}${var3} I always use the location type:=link;fs:=${var3} (e.g the map name is "/etc/passwd:type:=link;fs:=$$$${var3}") as all home directories are already mounted on all machines and I don't want (or need) yet another NFS mount the remote disk! [All my home directories are found as /homes/<machine>/<user> (yes, you are likely to have seen this before!), and I use the above map for the amd managed directory /usr/users for historical reasons.] Note that all $'s in the location has to be quaddupled in the passwd map name, as the map name is evaluated twice before the location part is used in the passwd_search function. Btw, maybe it is time to convert the current configuration of amd to GNU autoconf. As it is, it's very, very difficult to chance anything in the configuration part of amd and still believe it works for machine to which one don't have access... If you find any problems with the above, you should be more than welcome to mail me :-> -- tonny
Attachment:
amd.patch1.gz
Description: Tonnys patch
Attachment:
amd.patch2.gz
Description: Fix for multihomed hosts and assorted bugfixes
Attachment:
amd.patch3.gz
Description: Fixes for compiler warnings and cosmetic changes