progress on XMPP for windows, but not linking yet

This commit is contained in:
Joey Hess 2014-02-26 19:44:25 -04:00
parent 6c105ab6c3
commit f95b4f6d88

View file

@ -8,32 +8,7 @@ now! --[[Joey]]
or perhaps easier, or perhaps easier,
<http://hackage.haskell.org/package/Win32-services-wrapper> <http://hackage.haskell.org/package/Win32-services-wrapper>
* XMPP library not yet built. * XMPP library not yet built. (See below.)
This should work to install the deps, using libs from cygwin
<pre>
cabal install libxml-sax --extra-lib-dirs=C:\\cygwin\\lib --extra-include-dirs=C:\\cygwin\\usr\\include\\libxml2
cabal install gnuidn --extra-lib-dirs=C:\\cygwin\\lib --extra-include-dirs=C:\\cygwin\\usr\\include\\
cabal install gnutls --extra-lib-dirs=C:\\cygwin\\lib --extra-include-dirs=C:\\cygwin\\usr\\include\\
</pre>
While the 1st line works, the rest fail oddly. Looks like lack of
quoting when cabal runs c2hs. This can be worked around by
unpacking the tarball, manually running c2hs, and deleting the .chs
files.
However, then it fails:
<pre>
Building gnuidn-0.2.1...
Preprocessing library gnuidn-0.2.1...
[1 of 4] Compiling Data.Text.IDN.Internal ( lib\Data\Text\IDN\Internal.hs, dist\build\Data\Text\IDN\Internal.o )
C:/Program Files/Haskell Platform/2013.2.0.0/mingw/bin/../lib/libmingw32.a(main.o):main.c:(.text+0xd2): undefined reference to `WinMain@16'
</pre>
Also needs gsasl, which is not in cygwin.
See <http://josefsson.org/gsasl4win/README.html>
* View debug log is empty in windows -- all logs go to console. * View debug log is empty in windows -- all logs go to console.
This messes up a few parts of UI that direct user to the debug log. This messes up a few parts of UI that direct user to the debug log.
@ -71,3 +46,59 @@ C:/Program Files/Haskell Platform/2013.2.0.0/mingw/bin/../lib/libmingw32.a(main.
* test that adding a repo on a removable drive works; that git is synced to * test that adding a repo on a removable drive works; that git is synced to
it and files can be transferred to it and back it and files can be transferred to it and back
* Does stopping in progress transfers work in the webapp? * Does stopping in progress transfers work in the webapp?
## trying to build XMPP
Trying to install the deps, using libs from cygwin. Cabal can be used
with some hacking:
cabal unpack libxml-sax
cd libxml-sax-*
cabal configure --extra-lib-dirs=C:\\cygwin\\lib --extra-include-dirs=C:\\cygwin\\usr\\include\\libxml2
cabal build || true
cabal copy
cabal register
cabal unpack gnutls
cd gnutls-*
cabal configure --extra-lib-dirs=C:\\cygwin\\lib --extra-include-dirs=C:\\cygwin\\usr\\include\\
cabal build || true
cabal copy
cabal register
# get mingw x86 gasal zip from <ftp://alpha.gnu.org/gnu/gsasl/> and unpack
# into the Haskell platform's mingw directory.
cabal unpack gsasl
cd gsasl-*
cabal configure --extra-lib-dirs=C:\\cygwin\\lib --extra-include-dirs=C:\\cygwin\\usr\\include\\
cabal build || true
cabal copy
cabal register --gen-pkg-config
grep -v /home/jas gsasl*.conf > hacked.conf
ghc-pkg update hacked.conf --global --user --force
Cannot get haskell gnuidn binding to link. Workaround: It's not hard to hack
network-client-xmpp to not use gnuidn.
dlls don't get found when building git-annex,
at TH link time. Worked around by copying /usr/bin/cyggnutls-28.dll to
./gnutls.dll, and the same for several others. Note that gsasl has
to be copied from where it was installed in ming2/bin/libgsasl-7.dll
to gsasl.dll (the libgsasl.dll from cygwin won't work).
Loading package gnutls-0.1.5 ... linking ... done.
Loading package gsasl-0.3.5 ... linking ... ghc.exe: unable to load package `gsasl-0.3.5'
ghc.exe: C:\Documents and Settings\me\Application Data\cabal\gsasl-0.3.5\ghc-7.6.3\HSgsasl-0.3.5.o: unknown symbol `_gsasl_client_start'
Current problem:
GHCi runtime linker: fatal error: I found a duplicate definition for symbol
_adler32
whilst processing object file
C:\cygwin\lib\libz.a
I think this means I can't use the cygwin libs, and need to get mingw
builds of gnutls and libxml2 instead.
TODO: Try <http://josefsson.org/gnutls4win/>, and libxml2 from mingw,
and pkg-config from <http://www.gtk.org/download/win32.php>.