winediag:SECUR32_initNTLMSP ntlm_auth was not found

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
hackuracy
Newbie
Newbie
Posts: 1
Joined: Sat Nov 20, 2021 5:52 am

winediag:SECUR32_initNTLMSP ntlm_auth was not found

Post by hackuracy »

Hi,
I try to install caesar4 with steam.
While i try to install dotnet2 ( NetFx64.exe )with protontricks, I get the common issue:

Code: Select all

00bc:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
I already search about this issue, and I already have ntlm_auth binary installed (and REINSTALLED) with windbind package.

Code: Select all

dpkg -l |grep winbind
ii  libwbclient-dev:amd64                      2:4.13.14+dfsg-0ubuntu0.20.04.1       amd64        Samba winbind client library - development files
ii  libwbclient0:amd64                         2:4.13.14+dfsg-0ubuntu0.20.04.1       amd64        Samba winbind client library
ii  winbind                                    2:4.13.14+dfsg-0ubuntu0.20.04.1       amd64        service to resolve user and group information from Windows NT servers
I also tried with all samba suite installed, it's the same issue.

I take a look after source code which raise this error :

Code: Select all

static NTSTATUS ntlm_check_version( void *args )
{
    struct ntlm_ctx ctx = { 0 };
    char *argv[3], buf[80];
    NTSTATUS status = STATUS_DLL_NOT_FOUND;
    struct fork_params params = { &ctx, argv };
    int len;

    argv[0] = (char *)"
    ";
    argv[1] = (char *)"--version";
    argv[2] = NULL;
    if (ntlm_fork( &params ) != SEC_E_OK) return status;

    if ((len = read( ctx.pipe_in, buf, sizeof(buf) - 1 )) > 8)
    {
        char *newline;
        int major = 0, minor = 0, micro = 0;

        if ((newline = memchr( buf, '\n', len ))) *newline = 0;
        else buf[len] = 0;

        if (sscanf( buf, "Version %d.%d.%d", &major, &minor, &micro ) == 3)
        {
            if (((major > NTLM_AUTH_MAJOR_VERSION) ||
                 (major == NTLM_AUTH_MAJOR_VERSION && minor > NTLM_AUTH_MINOR_VERSION) ||
                 (major == NTLM_AUTH_MAJOR_VERSION && minor == NTLM_AUTH_MINOR_VERSION &&
                  micro >= NTLM_AUTH_MICRO_VERSION)))
            {
                TRACE( "detected ntlm_auth version %d.%d.%d\n", major, minor, micro );
                status = STATUS_SUCCESS;
            }
        }
    }

    if (status) ERR_(winediag)( "ntlm_auth was not found or is outdated. "
                              "Make sure that ntlm_auth >= %d.%d.%d is in your path. "
                              "Usually, you can find it in the winbind package of your distribution.\n",
                              NTLM_AUTH_MAJOR_VERSION, NTLM_AUTH_MINOR_VERSION, NTLM_AUTH_MICRO_VERSION );
    ntlm_cleanup( &ctx );
    return status;
}

This function seems to call

Code: Select all

ntlm_auth --version
and look for "Version %d.%d.%d".
My ubuntu binary returns Version 4.13.14-Ubuntu

I tried to wrap binary to override version and remove -Ubuntu from version string. With no success.

If anyone can help me.
Best regards
Locked