[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