Compiling Subversion on Windows

2012-03-12 Thread Mark Raymond
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

2012-03-12 Thread Mark Raymond
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

2012-10-20 Thread Mark Raymond
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

2012-10-21 Thread Mark Raymond
> > - 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

2012-10-22 Thread Mark Raymond
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

2012-11-02 Thread Mark Raymond
> 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