This patch is by David Newall <davidn@rebel.net.au>.  It modifies the ppp
daemon (ppp-2.2.0f) so that you do not need to have a secret in the secrets
file if you are going to login using PAP + /etc/passwd (specify the login
option).  It also works with shadow passwords, at least for RH4.2.

--- ./pppd/auth.c.orig	Mon Aug  3 18:24:01 1998
+++ ./pppd/auth.c	Sun Aug  2 19:35:13 1998
@@ -53,6 +53,6 @@
 #include <shadow.h>
-#include <shadow/pwauth.h>
+/*#include <shadow/pwauth.h>
 #ifndef PW_PPP
 #define PW_PPP PW_LOGIN
-#endif
+#endif*/
 #endif
@@ -405,3 +405,4 @@
 	check_access(f, filename);
-	if (scan_authfile(f, user, our_name, secret, &addrs, filename) < 0
+	if ((scan_authfile(f, user, our_name, secret, &addrs, filename) < 0
+		&& !uselogin)
 	    || (secret[0] != 0 && (cryptpap || strcmp(passwd, secret) != 0)
@@ -558,2 +559,4 @@
     if (pw->pw_passwd) {
+#define pw_encrypt crypt
+/*
 	if (pw->pw_passwd[0] == '@') {
@@ -562,3 +565,3 @@
 	    }
-	} else {
+	} else */ {
 	    epasswd = pw_encrypt(passwd, pw->pw_passwd);
--- ./pppd/Makefile.linux.orig	Mon Aug  3 18:24:01 1998
+++ ./pppd/Makefile.linux	Sun Aug  2 19:35:42 1998
@@ -32,5 +32,3 @@
 
-ifdef USE_MS_DNS
 CFLAGS   += -DUSE_MS_DNS=1
-endif
 
@@ -41,6 +39,4 @@
 
-ifdef HAS_SHADOW
 CFLAGS   += -DHAS_SHADOW
-LIBS     += -lshadow
-endif
+#LIBS     += -lshadow
 
