diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/Makefile.in ./Makefile.in
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/Makefile.in	Sat Sep  2 19:26:04 2000
+++ ./Makefile.in	Sat Jan 19 16:45:16 2002
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
 
 # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
@@ -129,7 +129,7 @@
 
 ubin_PROGRAMS = faillog lastlog  chage chfn chsh expiry gpasswd newgrp passwd
 
-usbin_PROGRAMS = chpasswd dpasswd groupadd groupdel groupmod  logoutd mkpasswd newusers  useradd userdel usermod grpck pwck vipw  grpconv grpunconv pwconv pwunconv
+usbin_PROGRAMS = chpasswd dpasswd groupadd groupdel groupmod  logoutd mkpasswd newusers  useradd userdel usermod grpck pwck vipw  grpconv grpunconv pwconv pwunconv cppw
 
 
 EXTRA_DIST = shadowconfig.sh
@@ -162,7 +162,7 @@
 # chage chfn chsh expiry gpasswd newgrp passwd \
 # sulogin
 
-shlibs = ../lib/libshadow.la
+shlibs = #../lib/libshadow.la
 # With glibc2, almost all programs need libcrypt for some reason,
 # even those that don't actually use crypt().
 LDADD = ${shlibs} ../libmisc/libmisc.a ../lib/libshadow.a @INTLLIBS@ @LIBCRYPT@ @LIBTCFS@ @LIBSKEY@ @LIBMD@
@@ -184,191 +184,164 @@
 LIBS = @LIBS@
 login_SOURCES = login.c
 login_OBJECTS =  login.o
-login_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+login_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 login_LDFLAGS = 
 su_SOURCES = su.c
 su_OBJECTS =  su.o
-su_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+su_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 su_LDFLAGS = 
 groups_SOURCES = groups.c
 groups_OBJECTS =  groups.o
 groups_LDADD = $(LDADD)
-groups_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+groups_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 groups_LDFLAGS = 
 id_SOURCES = id.c
 id_OBJECTS =  id.o
 id_LDADD = $(LDADD)
-id_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+id_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 id_LDFLAGS = 
 sulogin_SOURCES = sulogin.c
 sulogin_OBJECTS =  sulogin.o
 sulogin_LDADD = $(LDADD)
-sulogin_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+sulogin_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 sulogin_LDFLAGS = 
 faillog_SOURCES = faillog.c
 faillog_OBJECTS =  faillog.o
 faillog_LDADD = $(LDADD)
-faillog_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+faillog_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 faillog_LDFLAGS = 
 lastlog_SOURCES = lastlog.c
 lastlog_OBJECTS =  lastlog.o
 lastlog_LDADD = $(LDADD)
-lastlog_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+lastlog_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 lastlog_LDFLAGS = 
 chage_SOURCES = chage.c
 chage_OBJECTS =  chage.o
 chage_LDADD = $(LDADD)
-chage_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+chage_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 chage_LDFLAGS = 
 chfn_SOURCES = chfn.c
 chfn_OBJECTS =  chfn.o
-chfn_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+chfn_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 chfn_LDFLAGS = 
 chsh_SOURCES = chsh.c
 chsh_OBJECTS =  chsh.o
-chsh_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+chsh_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 chsh_LDFLAGS = 
 expiry_SOURCES = expiry.c
 expiry_OBJECTS =  expiry.o
 expiry_LDADD = $(LDADD)
-expiry_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+expiry_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 expiry_LDFLAGS = 
 gpasswd_SOURCES = gpasswd.c
 gpasswd_OBJECTS =  gpasswd.o
 gpasswd_LDADD = $(LDADD)
-gpasswd_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+gpasswd_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 gpasswd_LDFLAGS = 
 newgrp_SOURCES = newgrp.c
 newgrp_OBJECTS =  newgrp.o
 newgrp_LDADD = $(LDADD)
-newgrp_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+newgrp_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 newgrp_LDFLAGS = 
 passwd_SOURCES = passwd.c
 passwd_OBJECTS =  passwd.o
-passwd_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+passwd_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 passwd_LDFLAGS = 
 chpasswd_SOURCES = chpasswd.c
 chpasswd_OBJECTS =  chpasswd.o
 chpasswd_LDADD = $(LDADD)
-chpasswd_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+chpasswd_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 chpasswd_LDFLAGS = 
 dpasswd_SOURCES = dpasswd.c
 dpasswd_OBJECTS =  dpasswd.o
 dpasswd_LDADD = $(LDADD)
-dpasswd_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+dpasswd_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 dpasswd_LDFLAGS = 
 groupadd_SOURCES = groupadd.c
 groupadd_OBJECTS =  groupadd.o
 groupadd_LDADD = $(LDADD)
-groupadd_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+groupadd_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 groupadd_LDFLAGS = 
 groupdel_SOURCES = groupdel.c
 groupdel_OBJECTS =  groupdel.o
 groupdel_LDADD = $(LDADD)
-groupdel_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+groupdel_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 groupdel_LDFLAGS = 
 groupmod_SOURCES = groupmod.c
 groupmod_OBJECTS =  groupmod.o
 groupmod_LDADD = $(LDADD)
-groupmod_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+groupmod_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 groupmod_LDFLAGS = 
 logoutd_SOURCES = logoutd.c
 logoutd_OBJECTS =  logoutd.o
 logoutd_LDADD = $(LDADD)
-logoutd_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+logoutd_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 logoutd_LDFLAGS = 
 mkpasswd_SOURCES = mkpasswd.c
 mkpasswd_OBJECTS =  mkpasswd.o
 mkpasswd_LDADD = $(LDADD)
-mkpasswd_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+mkpasswd_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 mkpasswd_LDFLAGS = 
 newusers_SOURCES = newusers.c
 newusers_OBJECTS =  newusers.o
 newusers_LDADD = $(LDADD)
-newusers_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+newusers_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 newusers_LDFLAGS = 
 useradd_SOURCES = useradd.c
 useradd_OBJECTS =  useradd.o
 useradd_LDADD = $(LDADD)
-useradd_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+useradd_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 useradd_LDFLAGS = 
 userdel_SOURCES = userdel.c
 userdel_OBJECTS =  userdel.o
 userdel_LDADD = $(LDADD)
-userdel_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+userdel_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 userdel_LDFLAGS = 
 usermod_SOURCES = usermod.c
 usermod_OBJECTS =  usermod.o
 usermod_LDADD = $(LDADD)
-usermod_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+usermod_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 usermod_LDFLAGS = 
 grpck_SOURCES = grpck.c
 grpck_OBJECTS =  grpck.o
 grpck_LDADD = $(LDADD)
-grpck_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+grpck_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 grpck_LDFLAGS = 
 pwck_SOURCES = pwck.c
 pwck_OBJECTS =  pwck.o
 pwck_LDADD = $(LDADD)
-pwck_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+pwck_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 pwck_LDFLAGS = 
 vipw_SOURCES = vipw.c
 vipw_OBJECTS =  vipw.o
 vipw_LDADD = $(LDADD)
-vipw_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+vipw_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 vipw_LDFLAGS = 
 grpconv_SOURCES = grpconv.c
 grpconv_OBJECTS =  grpconv.o
 grpconv_LDADD = $(LDADD)
-grpconv_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+grpconv_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 grpconv_LDFLAGS = 
 grpunconv_SOURCES = grpunconv.c
 grpunconv_OBJECTS =  grpunconv.o
 grpunconv_LDADD = $(LDADD)
-grpunconv_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+grpunconv_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 grpunconv_LDFLAGS = 
 pwconv_SOURCES = pwconv.c
 pwconv_OBJECTS =  pwconv.o
 pwconv_LDADD = $(LDADD)
-pwconv_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+pwconv_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 pwconv_LDFLAGS = 
 pwunconv_SOURCES = pwunconv.c
 pwunconv_OBJECTS =  pwunconv.o
 pwunconv_LDADD = $(LDADD)
-pwunconv_DEPENDENCIES =  ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+pwunconv_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
 pwunconv_LDFLAGS = 
+cppw_SOURCES = cppw.c
+cppw_OBJECTS =  cppw.o
+cppw_LDADD = $(LDADD)
+cppw_DEPENDENCIES =  ../libmisc/libmisc.a ../lib/libshadow.a
+cppw_LDFLAGS = 
 CFLAGS = @CFLAGS@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -383,8 +356,8 @@
 
 TAR = tar
 GZIP_ENV = --best
-SOURCES = login.c su.c groups.c id.c sulogin.c faillog.c lastlog.c chage.c chfn.c chsh.c expiry.c gpasswd.c newgrp.c passwd.c chpasswd.c dpasswd.c groupadd.c groupdel.c groupmod.c logoutd.c mkpasswd.c newusers.c useradd.c userdel.c usermod.c grpck.c pwck.c vipw.c grpconv.c grpunconv.c pwconv.c pwunconv.c
-OBJECTS = login.o su.o groups.o id.o sulogin.o faillog.o lastlog.o chage.o chfn.o chsh.o expiry.o gpasswd.o newgrp.o passwd.o chpasswd.o dpasswd.o groupadd.o groupdel.o groupmod.o logoutd.o mkpasswd.o newusers.o useradd.o userdel.o usermod.o grpck.o pwck.o vipw.o grpconv.o grpunconv.o pwconv.o pwunconv.o
+SOURCES = login.c su.c groups.c id.c sulogin.c faillog.c lastlog.c chage.c chfn.c chsh.c expiry.c gpasswd.c newgrp.c passwd.c chpasswd.c dpasswd.c groupadd.c groupdel.c groupmod.c logoutd.c mkpasswd.c newusers.c useradd.c userdel.c usermod.c grpck.c pwck.c vipw.c grpconv.c grpunconv.c pwconv.c pwunconv.c cppw.c
+OBJECTS = login.o su.o groups.o id.o sulogin.o faillog.o lastlog.o chage.o chfn.o chsh.o expiry.o gpasswd.o newgrp.o passwd.o chpasswd.o dpasswd.o groupadd.o groupdel.o groupmod.o logoutd.o mkpasswd.o newusers.o useradd.o userdel.o usermod.o grpck.o pwck.o vipw.o grpconv.o grpunconv.o pwconv.o pwunconv.o cppw.o
 
 all: all-redirect
 .SUFFIXES:
@@ -647,6 +620,10 @@
 	@rm -f pwunconv
 	$(LINK) $(pwunconv_LDFLAGS) $(pwunconv_OBJECTS) $(pwunconv_LDADD) $(LIBS)
 
+cppw: $(cppw_OBJECTS) $(cppw_DEPENDENCIES)
+	@rm -f cppw
+	$(LINK) $(cppw_LDFLAGS) $(cppw_OBJECTS) $(cppw_LDADD) $(LIBS)
+
 tags: TAGS
 
 ID: $(HEADERS) $(SOURCES) $(LISP)
@@ -684,106 +661,13 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
 	    || cp -p $$d/$$file $(distdir)/$$file || :; \
 	  fi; \
 	done
-chage.o: chage.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
-	../lib/shadowio.h
-chfn.o: chfn.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
-	../lib/getdef.h ../lib/pwauth.h
-chpasswd.o: chpasswd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
-	../lib/shadowio.h
-chsh.o: chsh.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
-	../lib/getdef.h ../lib/pwauth.h
-dpasswd.o: dpasswd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/dialup.h
-expiry.o: expiry.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h
-faillog.o: faillog.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/faillog.h
-gpasswd.o: gpasswd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/groupio.h \
-	../lib/sgroupio.h
-groupadd.o: groupadd.c ../config.h ../lib/rcsid.h ../lib/defines.h \
-	../lib/gshadow_.h ../lib/prototypes.h ../libmisc/chkname.h \
-	../lib/getdef.h ../lib/groupio.h ../lib/sgroupio.h
-groupdel.o: groupdel.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/groupio.h \
-	../lib/sgroupio.h
-groupmod.o: groupmod.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
-	../lib/groupio.h ../lib/sgroupio.h
-groups.o: groups.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h
-grpck.o: grpck.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
-	../lib/commonio.h ../lib/groupio.h ../lib/sgroupio.h
-grpconv.o: grpconv.c ../config.h ../lib/prototypes.h ../lib/defines.h \
-	../lib/gshadow_.h ../lib/groupio.h ../lib/sgroupio.h \
-	../lib/rcsid.h
-grpunconv.o: grpunconv.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/groupio.h \
-	../lib/sgroupio.h
-id.o: id.c ../config.h ../lib/rcsid.h ../lib/defines.h ../lib/gshadow_.h
-lastlog.o: lastlog.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h
-login.o: login.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/faillog.h \
-	../libmisc/failure.h ../lib/pwauth.h ../lib/getdef.h \
-	../lib/dialchk.h
-logoutd.o: logoutd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h
-mkpasswd.o: mkpasswd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h
-newgrp.o: newgrp.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h
-newusers.o: newusers.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h \
-	../lib/pwio.h ../lib/groupio.h ../lib/shadowio.h
-passwd.o: passwd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/pwauth.h \
-	../lib/shadowio.h ../lib/pwio.h ../lib/getdef.h
-pwck.o: pwck.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
-	../lib/commonio.h ../lib/pwio.h ../lib/shadowio.h
-pwconv.o: pwconv.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
-	../lib/shadowio.h ../lib/getdef.h
-pwunconv.o: pwunconv.c ../config.h ../lib/rcsid.h ../lib/defines.h \
-	../lib/gshadow_.h ../lib/prototypes.h ../lib/pwio.h \
-	../lib/shadowio.h
-sulogin.o: sulogin.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h \
-	../lib/pwauth.h
-su.o: su.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/pwauth.h \
-	../lib/getdef.h
-useradd.o: useradd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
-	../lib/pwauth.h ../lib/faillog.h ../lib/groupio.h \
-	../lib/sgroupio.h ../lib/pwio.h ../lib/shadowio.h \
-	../lib/getdef.h
-userdel.o: userdel.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h \
-	../lib/pwauth.h ../lib/groupio.h ../lib/pwio.h \
-	../lib/shadowio.h ../lib/sgroupio.h
-usermod.o: usermod.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
-	../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
-	../lib/faillog.h ../lib/pwauth.h ../lib/getdef.h \
-	../lib/groupio.h ../lib/sgroupio.h ../lib/pwio.h \
-	../lib/shadowio.h
-vipw.o: vipw.c ../config.h ../lib/rcsid.h ../lib/defines.h \
-	../lib/gshadow_.h ../lib/prototypes.h ../lib/pwio.h \
-	../lib/shadowio.h ../lib/groupio.h ../lib/sgroupio.h
-
 info-am:
 info: info-am
 dvi-am:
@@ -889,6 +773,7 @@
 	done
 	rm -f $(DESTDIR)$(ubindir)/sg
 	ln -s newgrp $(DESTDIR)$(ubindir)/sg
+	ln -s cpgr $(DESTDIR)$(ubindir)/cppw
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/chage.c ./chage.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/chage.c	Sat Sep  2 18:40:43 2000
+++ ./chage.c	Sat Jan 19 18:48:48 2002
@@ -506,7 +506,7 @@
 	 * to the password file entry for the requested user.
 	 */
 	/* We don't lock the password file if we are not root */
-	if (amroot && !pw_lock()) {
+	if (amroot && !pw_filelock()) {
 		fprintf(stderr, _("%s: can't lock password file\n"), Prog);
 		SYSLOG((LOG_ERR, LOCK_FAIL, PASSWD_FILE));
 		closelog();
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/chfn.c ./chfn.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/chfn.c	Sat Sep  2 18:40:43 2000
+++ ./chfn.c	Sat Jan 19 18:49:12 2002
@@ -518,7 +518,7 @@
 	 * the password file.  Get a lock on the file and open it.
 	 */
 
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf(stderr, _("Cannot lock the password file; try again later.\n"));
 		SYSLOG((LOG_WARN, PWDBUSY2));
 		closelog();
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/chpasswd.c ./chpasswd.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/chpasswd.c	Sat Aug 26 18:27:18 2000
+++ ./chpasswd.c	Sat Jan 19 18:49:00 2002
@@ -116,7 +116,7 @@
 	 * updated.
 	 */
 
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf(stderr, _("%s: can't lock password file\n"), Prog);
 		exit(1);
 	}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/chsh.c ./chsh.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/chsh.c	Sat Sep  2 18:40:43 2000
+++ ./chsh.c	Sat Jan 19 18:49:22 2002
@@ -354,7 +354,7 @@
 	 * the password file.  Get a lock on the file and open it.
 	 */
 
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		SYSLOG((LOG_WARN, PWDBUSY2));
 		closelog();
 		fprintf(stderr,
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/cppw.c ./cppw.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/cppw.c	Sat Feb  2 01:53:37 2002
+++ ./cppw.c	Sat Jan 19 18:49:52 2002
@@ -185,7 +185,7 @@
       cppwcopy(SHADOW_FILE, in_file, spw_lock, spw_unlock);
     else
 #endif
-      cppwcopy(PASSWD_FILE, in_file, pw_lock, pw_unlock);
+      cppwcopy(PASSWD_FILE, in_file, pw_filelock, pw_unlock);
   }
   else {
 #ifdef SHADOWGRP
Binary files /tmp/shadow-20000902/build-tree/shadow-20000902/src/ktrace.out and ./ktrace.out differ
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/lastlog.c ./lastlog.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/lastlog.c	Sat Feb  2 01:53:35 2002
+++ ./lastlog.c	Sat Jan 19 18:52:54 2002
@@ -42,8 +42,8 @@
 #include "defines.h"
 #if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
+//#else
+//#include "lastlog_.h"
 #endif
 
 /*
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/login.c ./login.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/login.c	Sat Feb  2 01:54:05 2002
+++ ./login.c	Sat Jan 19 18:48:01 2002
@@ -48,8 +48,8 @@
 
 #if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
+//#else
+//#include "lastlog_.h"
 #endif
 
 #include "faillog.h"
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/logoutd.c ./logoutd.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/logoutd.c	Sat Feb  2 01:53:40 2002
+++ ./logoutd.c	Sat Jan 19 18:55:23 2002
@@ -275,7 +275,7 @@
 			if ((tty_fd = open (tty_name, O_RDONLY|O_NDELAY)) == -1)
 				continue;
 
-			vhangup (tty_fd);
+	//		vhangup (tty_fd);
 			close (tty_fd);
 #endif  /* BSD || SUN || SUN4 */
 
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/newusers.c ./newusers.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/newusers.c	Sat Sep  2 18:02:07 2000
+++ ./newusers.c	Sat Jan 19 18:57:19 2002
@@ -55,9 +55,9 @@
 
 #ifdef	SHADOWPWD
 #include "shadowio.h"
-
 static int is_shadow;
 #endif
+#undef SHADOWPWD
 
 /* local function prototypes */
 static void usage(void);
@@ -271,11 +271,10 @@
 	 * Shadow files are harder since there are zillions of
 	 * things to do ...
 	 */
-
-	if (!is_shadow) {
-		update_passwd(pwd, passwd);
-		return 0;
-	}
+#ifndef SHADOWPWD	 
+	update_passwd(pwd, passwd);
+	return 0;
+#endif
 
 #ifdef SHADOWPWD
 	/*
@@ -360,7 +359,7 @@
 	 * be locked right away.
 	 */
 
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf (stderr, _("%s: can't lock /etc/passwd.\n"), Prog);
 		exit (1);
 	}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/passwd.c ./passwd.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/passwd.c	Sat Feb  2 01:53:41 2002
+++ ./passwd.c	Sat Jan 19 19:19:20 2002
@@ -58,7 +58,7 @@
 #ifndef CHSH_PROGRAM
 #define CHSH_PROGRAM "chsh"
 #endif
-
+#undef SHADOWPWD
 #include <pwd.h>
 #ifndef	HAVE_USERSEC_H
 #ifdef	SHADOWPWD
@@ -730,7 +730,7 @@
 	char *cp;
 #endif
 
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf(stderr,
 			_("Cannot lock the password file; try again later.\n"));
 		SYSLOG((LOG_WARN, PWDBUSY2));
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwck.c ./pwck.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwck.c	Sat Sep  2 18:40:44 2000
+++ ./pwck.c	Sat Jan 19 18:50:14 2002
@@ -212,7 +212,7 @@
 	 */
 
 	if (!read_only) {
-		if (!pw_lock()) {
+		if (!pw_filelock()) {
 			fprintf(stderr, _("%s: cannot lock file %s\n"),
 				Prog, pwd_file);
 			if (optind == argc)
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwconv.c ./pwconv.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwconv.c	Sat Aug 26 18:27:18 2000
+++ ./pwconv.c	Sat Jan 19 18:50:23 2002
@@ -90,7 +90,7 @@
 	bindtextdomain(PACKAGE, LOCALEDIR);
 	textdomain(PACKAGE);
 
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf(stderr, _("%s: can't lock passwd file\n"), Prog);
 		fail_exit(E_PWDBUSY);
 	}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwunconv.c ./pwunconv.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwunconv.c	Sat Aug 26 18:27:18 2000
+++ ./pwunconv.c	Sat Jan 19 18:50:33 2002
@@ -104,7 +104,7 @@
 		/* shadow not installed, do nothing */
 		exit(0);
 
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf(stderr, _("%s: can't lock passwd file\n"), Prog);
 		fail_exit(5);
 	}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/useradd.c ./useradd.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/useradd.c	Sat Feb  2 01:53:36 2002
+++ ./useradd.c	Sat Jan 19 18:58:39 2002
@@ -48,8 +48,8 @@
 #include "pwauth.h"
 #if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
+//#else
+//#include "lastlog_.h"
 #endif
 #include "faillog.h"
 
@@ -513,9 +513,9 @@
 		} else if (!out_expire && MATCH(buf, EXPIRE)) {
 			fprintf(ofp, EXPIRE "%s\n", def_expire);
 			out_expire++;
-		}
 #endif
-		else if (!out_shell && MATCH(buf, SHELL)) {
+		}
+			else if (!out_shell && MATCH(buf, SHELL)) {
 			fprintf(ofp, SHELL "%s\n", def_shell);
 			out_shell++;
 		}
@@ -1416,7 +1416,7 @@
 static void
 open_files(void)
 {
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf(stderr, _("%s: unable to lock password file\n"), Prog);
 		exit(E_PW_UPDATE);
 	}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/userdel.c ./userdel.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/userdel.c	Sat Feb  2 01:53:56 2002
+++ ./userdel.c	Sat Jan 19 18:50:51 2002
@@ -364,7 +364,7 @@
 static void
 open_files(void)
 {
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf(stderr, _("%s: unable to lock password file\n"), Prog);
 		exit(E_PW_UPDATE);
 	}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/usermod.c ./usermod.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/usermod.c	Sat Sep  2 18:40:44 2000
+++ ./usermod.c	Sat Jan 19 18:59:11 2002
@@ -48,8 +48,8 @@
 #include "faillog.h"
 #if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
+//#else
+//#include "lastlog_.h"
 #endif
 #include "pwauth.h"
 #include "getdef.h"
@@ -1261,7 +1261,7 @@
 static void
 open_files(void)
 {
-	if (!pw_lock()) {
+	if (!pw_filelock()) {
 		fprintf(stderr, _("%s: unable to lock password file\n"), Prog);
 		exit(E_PW_UPDATE);
 	}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/vipw.c ./vipw.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/vipw.c	Sat Aug 26 18:27:19 2000
+++ ./vipw.c	Sat Jan 19 18:51:11 2002
@@ -237,7 +237,7 @@
       vipwedit(SHADOW_FILE, spw_lock, spw_unlock);
     else
 #endif
-      vipwedit(PASSWD_FILE, pw_lock, pw_unlock);
+      vipwedit(PASSWD_FILE, pw_filelock, pw_unlock);
   }
   else {
 #ifdef SHADOWGRP
