[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re: Building libssh with GSSAPI support on Windows?


On Tue, Aug 3, 2021 at 12:26 PM Kerrison, Adam <Adam_Kerrison@xxxxxxx>
wrote:

> I meant to follow up on this. I have made it build on Windows 😊
>
>
>
> I needed to extend the FindGSSAPI.cmake file as I said, the final addition
> looks like this:
>
>
>
> if (WIN32)
>
>     if (EXISTS "C:\Program Files\\MIT\\Kerberos")
>
>         set(GSSAPI_FLAVOR_MIT TRUE)
>
>         set(GSSAPI_ROOT_DIR "C:\\Program Files\\MIT\\Kerberos")
>
>         set(GSSAPI_INCLUDE_DIR ${GSSAPI_ROOT_DIR}\\include)
>
>         set(GSSAPI_LIBRARIES ${GSSAPI_ROOT_DIR}\\lib\\amd64\\gssapi64.lib
> ${GSSAPI_ROOT_DIR}\\lib\\amd64\\krb5_64.lib
> ${GSSAPI_ROOT_DIR}\\lib\\amd64\\comerr64.lib)
>
>     endif()
>
> endif (WIN32)
>
>
>
> All the compilation errors related to the joy that is Winsock – windows.h
> includes winsock.h (winsock 1.x) so if you include winsock2.h (like
> Kerberos) then it blows up. You can avoid it by defining
> WIN32_LEAN_AND_MEAN which I simply added to gssapi.c to make it work. My
> cmake knowledge is pretty limited so I wasn’t sure how to pass
> WIN32_LEAN_AND_MEAN another way.
>
or you could do it the 'right way' to explicitly include winsock2.h before
windows.h :-)

Look at the begining of winsock2.h:
----------------8<-----------------
#ifndef _WINSOCK2API_
#define _WINSOCK2API_
#define _WINSOCKAPI_   /* Prevent inclusion of winsock.h in windows.h */
----------------8<-----------------

Zdenek OGAR Skalak


> Ideally it would be nice to be able to define the GSSAPI_ROOT_DIR like we
> can for zlib/openssl but the hardcoded path works for now. Also its
> hardcoded for a 64 bit build …
>
>
>
> I’d produce some patches but my current changes feel a bit hacky. If
> something can help me do this properly with cmake I’ll see what I can do
>
>
>
> Adam
>
>
>
> *From:* Aris Adamantiadis <aris@xxxxxxxxxx>
> *Sent:* 03 August 2021 11:12
> *To:* libssh@xxxxxxxxxx
> *Subject:* [EXTERNAL] Re: Building libssh with GSSAPI support on Windows?
>
>
>
> Hi Adam,
>
> I'm afraid I don't have a good answer. Afaik no one tried to compile
> GSSAPI support on windows before. The problems you have seem to come from
> the windows headers themselves. Maybe try to remove a few network-related
> headers in gssapi.c until it doesn't complain about redefinitions.
>
> For the other warnings, you can ignore them even if it would be better in
> the long run to fix them.
>
>
>
> Aris
>
>
>
> Le 29/07/21 à 10:15, Kerrison, Adam a écrit :
>
> Hello
>
>
>
> As the subject says, I am attempting to build libssh 0.9.5 with GSSAPI
> support on Windows. From what I’ve figure out, this hasn’t been done
> before, as the FindGSSAPI.cmake module doesn’t even attempt to find the
> libs on anything but UNIX.
>
>
>
> I’ve got the Kerberos for Windows package installed so I’ve added a
> section to the FindGSSAPI.cmake module which allows the cmake generator to
> run:
>
>
>
> if (WIN32)
>
>     if (EXISTS "C:\Program Files\\MIT\\Kerberos")
>
>         set(GSSAPI_FLAVOR_MIT TRUE)
>
>         set(GSSAPI_ROOT_DIR "C:\\Program Files\\MIT\\Kerberos")
>
>         set(GSSAPI_LIBRARIES "gssapi64.lib krb5_64.lib comerr64.lib")
>
>     endif()
>
> endif (WIN32)
>
>
>
> It reports GSSAPI: ON 😊
>
>
>
> However, when the actual build runs its all fine until it reaches the
> gssapi.c then it just fails with a myriad of warnings and errors. Some
> examples:
>
>
>
> C:\Program Files (x86)\Windows Kits\8.1\Include\shared\ws2def.h(100):
> warning C4005: 'AF_IPX': macro redefinition
> [C:\src\buildroot\src\ssh.vcxproj]
>
>   C:\Program Files (x86)\Windows Kits\8.1\Include\um\winsock.h(452): note:
> see previous definition of 'AF_IPX'
>
> C:\Program Files (x86)\Windows Kits\8.1\Include\shared\ws2def.h(421):
> error C2059: syntax error: 'constant' [C:\src\buildroot\src\ssh.vcxproj]
>
> C:\Program Files (x86)\Windows Kits\8.1\Include\um\winsock2.h(2499): error
> C2375: 'WSACancelBlockingCall': redefinition; different linkage
> [C:\src\buildroot\src\ssh.vcxproj]
>
>
>
> Also, quite a few other files complain about a possible loss of data (it’s
> a 64 bit build), for example:
>
>
>
> C:\src \libssh-0.9.5\src\base64.c(191): warning C4244: '=': conversion
> from '__int64' to 'unsigned int', possible loss of data
> [C:\src\buildroot\src\ssh.vcxproj]
>
>
>
> Has anyone tried to build libssh with GSSAPI support on Windows? Does
> anyone have a clue what is wrong here? I’ve built plenty of packages on
> Linux and Windows but I’m not very experienced with MS Visual Studio and
> the vxproj files seem like voodoo to me ☹
>
>
>
> Thanks
>
>
>
> Adam
>
>
>
> BMC Software Limited Registered Office: Building E2, Eskdale Road,
> Winnersh, Wokingham, Berkshire, United Kingdom, RG41 5TS Registered in
> England No. 1927903 The content of this email is confidential. If you are
> not the addressee, you may not distribute, copy or disclose any part of it.
> If you receive this message in error, please delete this from your system
> and notify the sender immediately.
>
> BMC Software Limited Registered Office: Building E2, Eskdale Road,
> Winnersh, Wokingham, Berkshire, United Kingdom, RG41 5TS Registered in
> England No. 1927903 The content of this email is confidential. If you are
> not the addressee, you may not distribute, copy or disclose any part of it.
> If you receive this message in error, please delete this from your system
> and notify the sender immediately.
>


-- 
Ing. Zdeněk OGAR Skalák
Monet+ a.s.            <http://www.monetplus.cz>
Za Dvorem 505, 763 14 Zlín - Štípa, CZ
Tel: +420 / 577 110 411,  Fax: +420 / 577 914 557

References:
Re: Building libssh with GSSAPI support on Windows?Aris Adamantiadis <aris@xxxxxxxxxx>
RE: Re: Building libssh with GSSAPI support on Windows?"Kerrison, Adam" <Adam_Kerrison@xxxxxxx>
Archive administrator: postmaster@lists.cynapses.org