diff options
author | Joey Hess <joey@kitenet.net> | 2014-02-26 19:44:25 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-02-26 21:10:32 -0400 |
commit | 64a34883b2d3f32631621a29163eeb86ccd2cced (patch) | |
tree | 3e0a68022f99e3e5bee97c0b045f0c100f4355e0 | |
parent | 6194258bdd7cb37fefac87f409f6ebcd84d6406a (diff) |
progress on XMPP for windows, but not linking yet
-rw-r--r-- | doc/todo/windows_support.mdwn | 83 |
1 files changed, 57 insertions, 26 deletions
diff --git a/doc/todo/windows_support.mdwn b/doc/todo/windows_support.mdwn index 67dfc970c..75744bdb2 100644 --- a/doc/todo/windows_support.mdwn +++ b/doc/todo/windows_support.mdwn @@ -8,32 +8,7 @@ now! --[[Joey]] or perhaps easier, <http://hackage.haskell.org/package/Win32-services-wrapper> -* XMPP library not yet built. - - 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> +* XMPP library not yet built. (See below.) * 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. @@ -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 it and files can be transferred to it and back * 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>. |