[JDEV] Re: jabberd 1.4.3 release candidate--Windows/CYGWIN Patches (no success with minires yet)

Frank Seesink frank at mail.wvnet.edu
Tue Oct 14 23:43:53 CDT 2003


NOTE:  This is just an FYI for those who might be interested.  It has no 
bearing on the patches I recently submitted.  Those patches stand.  This 
falls under the "What if" category of development.

I have successfully compiled/linked Jabberd 1.4.3CVS against minires-0.9.7:

     "a simple non caching synchronous resolver library for use by
     programs running under Cygwin. It partially replaces the bind
     package."

[Available at 
ftp://ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/porters/Humblet_Pierre_A/V1.5]

Unfortunately, I have been unable to actually RUN Jabberd, as it 
segfaults on startup if dnsrv.dll is included (i.e., if you attempt to 
enable s2s).  All indications point to GNU Pth, and more specifically, 
to the use of fork(), a notorious beast in the Cygwin world (since 
Windows knows no such thing).

If I could make this work, Jabberd 1.4.x would compile under Cygwin as 
it does under any typical *nix environment, without the need for 
rewriting dnsrv as is required now.  All that would be required of a 
Cygwin user was the trivial compilation/installation of minires to 
mimick BIND's libresolv.  The only oddball item left then would be the 
dllinit.c file, which unfortunately IS necessary to properly build DLL 
dynamic libraries under Cygwin.

However, all roads do not lead to Rome.  In this case, there is a fork() 
in the road.  So Jabberd 1.4.3 will simply have to continue using the 
rewritten dnsrv.

Note I am using minires in my attempts to build Jabberd2 under Cygwin as 
well, but I'm running into issues with the configure script.  First it 
was stopping after claiming libresolv did not exist (it does, in the 
form of symlinks to minires).  But I bypassed that check with an ENV var 
setting while calling ./configure.

Unfortunately, the second snag had to do with yet more BIND/Cygwin 
issues I believe, in that checks for inet_ntop and inet_pton failed. 
These do not appear to be offered in minires' implementation nor Cygwin 
itself.  Minires only implements the more common functions of libresolv 
like res_query().  So the hack continues.

P.S.	I believe it is also fork() which causes issues with running
	Jabberd 1.4.x in debug mode under Cygwin, but need to
	investigate this further.





More information about the JDev mailing list