Compiling Subversion on Windows
Hi, I've been attempting to compile Subversion on Windows (64-bit). I've been able to solve most of the issues I had when compiling, but there's just one file left that is refusing to compile - libsvn_ra-1.dll. The build environment is Visual Studio 2008 on Windows 7 64-bit, using the x64 Cross Tools Command Prompt. I get the following error at the link stage: libneon.lib(ne_openssl.obj) : error LNK2019: unresolved external symbol SSL_SESSION_cmp referenced in function ne__negotiate_ssl libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_GetCurrentLineNumber referenced in function ne_xml_currentline libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_ErrorString referenced in function ne_xml_parse libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_GetErrorCode referenced in function ne_xml_parse libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_Parse referenced in function ne_xml_parse libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_ParserFree referenced in function ne_xml_destroy libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_SetXmlDeclHandler referenced in function ne_xml_create libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_SetUserData referenced in function ne_xml_create libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_SetCharacterDataHandler referenced in function ne_xml_create libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_SetElementHandler referenced in function ne_xml_create libneon.lib(ne_xml.obj) : error LNK2019: unresolved external symbol __imp_XML_ParserCreate referenced in function ne_xml_create ..\..\..\Release\subversion\libsvn_ra\libsvn_ra-1.dll : fatal error LNK1120: 11 unresolved externals I've checked xml.lib (from expat, in apr-util), which is where I think these symbols should be, and it contains the symbols but without the __imp_ at the beginning. I guess this is some issue with name mangling, but I don't really know how to approach solving it! Thanks, Mark.
RE: Compiling Subversion on Windows
Thank you! This solved the XML linking issue. The SSL_SESSION_cmd issue was solved by going back to openssl-0.9.8, as that function was removed in openssl-1.0.0. Mark. From: kmra...@rockwellcollins.com [mailto:kmra...@rockwellcollins.com] Sent: 12 March 2012 19:55 To: Mark Raymond Cc: users@subversion.apache.org Subject: Re: Compiling Subversion on Windows Mark, > I've been attempting to compile Subversion on Windows (64-bit). I've been > able to solve most of the issues I had when compiling, but there's just one > file left that is refusing to compile - libsvn_ra-1.dll. > The build environment is Visual Studio 2008 on Windows 7 64-bit, using the > x64 Cross Tools Command Prompt. You might want to check out the forums at http://www.apachehaus.com They build x64 versions of the subversion libraries with VS 2008. Looks like they ran into similar problems: http://www.apachehaus.com/forum/index.php?topic=143.0 Adding /D XML_STATUS to EXPAT_FLAGS in neon\neon.mak line 57 is what helped get rid of those import errors. Kevin R.
Problems configuring svnserve on Windows using SASL
Hello, I've set up svnserve on Windows before using the inbuilt CRAM-MD5 authentication, using my own compile of SVN. I'm now trying to set up svnserve to use SASL and DIGEST-MD5, but I'm having difficulties getting it working. My setup is: - I'm on Windows 7 Professional x64 - I'm using the TortoiseSVN 1.7.10 binaries, so svnserve.exe and all the sasl dlls are in C:\Program Files\TortoiseSVN\bin - The repository is C:\repo, created manually using svnadmin create - My svnserve.conf with comments removed is: [general] anon-access = none auth-access = write realm = madanra [sasl] use-sasl = true - [HKLM\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library] has ConfFile set to C:\sasl and SearchPath set to C:\Program Files\TortoiseSVN\bin - C:\sasl\svn.conf reads: pwcheck_method: auxprop auxprop_plugin: sasldb mech_list: DIGEST-MD5 sasldb_path: C:\sasl\sasldb - C:\sasl\sasldb was created on an Ubuntu system using: saslpasswd2 -c -f ~/sasldb -u madanra mark when ~/sasldb did not exist before running the command, and then ~/sasldb was copied across to the Windows system (as I didn't have access to a Windows binary of saslpasswd2) - svnserve was then started using svnserve -d -r C:\repo --log-file C:\temp\svn.log As far as I can tell, this is an absolutely vanilla setup of svnserve with SASL using DIGEST-MD5, as per the instructions in the SVN book on the Apache website. However, when I try and check out the repository using "svn co svn://localhost", I get this error message: svn: E170001: Unable to connect to a repository at URL 'svn://localhost' svn: E170001: Authentication error from server: SASL(-4): no mechanism available: Unable to find a callback: 2 after entering the username and password I created when creating sasldb. Any ideas what could be going wrong? Nothing appears in C:\temp\svn.log. I've confirmed using svnserve --version that SASL is available, and C:\Program Files\TortoiseSVN\bin\saslDIGESTMD5.dll exists Thanks!
RE: Problems configuring svnserve on Windows using SASL
> > - svnserve was then started using > > svnserve -d -r C:\repo --log-file C:\temp\svn.log > > Doesn't -r need to specify a parent directory of repos to serve, not a single repo itself? I believe that's a common way of doing things, but it's not enforced; last time I set up svnserve I pointed -r directly at a repo, and if I disable SASL on my currenct config it works fine.
RE: Problems configuring svnserve on Windows using SASL
Mark Raymond wrote on Sat, Oct 20, 2012 at 21:48:11 +0100: > > - C:\sasl\sasldb was created on an Ubuntu system using: > > saslpasswd2 -c -f ~/sasldb -u madanra mark when ~/sasldb did not exist > > before running the command, and then ~/sasldb was copied across to the > > Windows system (as I didn't have access to a Windows binary of > > saslpasswd2) > I'm biased by just having discussed this in another thread, but: is the file format OS (and architecture if applicable) independent? > % /usr/bin/file ~/sasldb This gives me "sasldb: Berkeley DB (Hash, version 9, native byte-order)" Has anyone on this list set up svnserve on Windows using sasldb? How did you create the sasldb file?
RE: svnserve crash
> Now, the first thing that jumps out is that some of the actual parameters are 0x or 0x1000; for example: > #14 0x13f639fd8 in serve(conn=(svn_ra_svn_conn_st *) 0x, params=(serve_params_t *) 0x, pool=(apr_pool_t *) 0x) at > which might suggest a stack smash, or just that this is how windows stack traces normally work and I'm not aware of that convention. I think the hex values here may be truncated; this is a 64-bit compile, and those are 32 bits long. I've now compiled a debug version and I attached Visual Studio to svnserve to see what happens. The stack trace looked similar, except there's an extra 8 digits after each hex value which has non-zero numbers. In debug mode, I get an assertion fail for _CrtIsValidHeapPointer, which occurs due to this attempt to free memory: utils->free(data.data); on line 256 of plugins\db_berkeley.c in Cyrus SASL code. I've now found that if I remove this line, then the problem disappears, and svnserve works fine - though obviously this probably results in a memory leak! I'm considering this solved for me now. I've tried to measure the memory leak, and it seems each check out / commit leaks ~8KB, which is small enough to not worry me, especially as I'll be rebooting the computer svnserve is on regularly. > Are you using 1.7.7? Yes