To clarify, you should (as a test ONLY) replace this
whole
block:
# if defined(ultrix) || defined(__ultrix__)
if (authenticate_user( p, curpass, NULL
) < 0)
# elif defined(HAVE_CRYPT)
if (strcmp( crypt( curpass,
p->pw_passwd ), p->pw_passwd ))
# else
if (strcmp( curpass, p->pw_passwd ))
# endif
With this single line:
if (strcmp( crypt( curpass, p->pw_passwd ),
p->pw_passwd ))
Nope. :(
First I tried this (as you posted):
-# if defined(ultrix) || defined(__ultrix__)
- if (authenticate_user( p, curpass, NULL ) < 0)
-# elif defined(HAVE_CRYPT)
- if (strcmp( crypt( curpass, p->pw_passwd ), p->pw_passwd ))
-# else
- if (strcmp( curpass, p->pw_passwd ))
-# endif
+if (strcmp( crypt( curpass, p->pw_passwd ), p->pw_passwd ))
That FTBFS. :( Hoping what you typed was a copy-and-paste error, next I tried this:
+if (strcmp( curpass, p->pw_passwd ))
That built. :)
But I still could not login. The log showed the same error.
I looked at the 3.5.12 and 3.5.10 code. That snippet is exactly the same in all three
versions.
As you mentioned, the problem likely is how the package builds with cmake and not the code
itself.
Next I tried the test patch again, but with the build option -DWITH_SHADOW=OFF. Still
can't login. :(
If you have a proposed patch for cmake I will backport and test right away.
Darrell