After installing svn 1.1.1 (but with 1.1.0 happened the same), using the
INNOSETUP executable, Apache refused to start. I investigated the problem,
and found that there are two iconv.dll's and two intl.dll's on my
(Windows2000) system (listed in the same order as the paths occur in
the %PATH% environement variable):
C:\Tcl\bin\iconv.dll
C:\Program Files\Common Files\GTK\2.0\bin\iconv.dll
C:\Program Files\Common Files\GTK\2.0\bin\intl.dll
C:\Program Files\Subversion\bin\intl.dll
It turned out that Apache cannot start because intl.dll cannot be loaded.
intl.dll (found first in the GTK directory) contains a call to
libiconv_set_relocation_prefix(), but the iconv.dll (from Tcl) doesn't
have this symbol. Very tricky, and it only happens when someone has both
Tcl (8.4.7) and (GTK 2.2.4) installed in that order. svn.exe itself
doesn't have this problem because intl.dll is in the same directory as
svn.exe, so it is always found first.
There two solutions, as far as I can see:
- Copy intl.dll in the Apache modules directory. This is the simplest one
to implement. A simple patch to accomplish this is below. I did the copy
manually, and this indeed fixes the problem.
- Let subversion supply its own version of intl.dll, e.g. svnintl.dll.
I hope that this little but tricky problem will be fixed in subversion
1.1.2.
Regards,
Jan Nijtmans
Index: packages/win32-innosetup/is_main.pas
===================================================================
--- packages/win32-innosetup/is_main.pas (revision 11629)
+++ packages/win32-innosetup/is_main.pas (working copy)
@@ -362,11 +362,13 @@
sTPathTmp := ExpandConstant('{tmp}');
// extract the files from the setup to the current IS Temp folder
+ ExtractTemporaryFile('intl.dll');
ExtractTemporaryFile('libdb42.dll');
ExtractTemporaryFile('mod_dav_svn.so');
ExtractTemporaryFile('mod_authz_svn.so');
//Copy the files from the temp dir to Apache's module foder
+ FileCopy (sTPathTmp + '\intl.dll', g_sApachePathModules +
'\intl.dll', False);
FileCopy (sTPathTmp + '\libdb42.dll', g_sApachePathModules +
'\libdb42.dll', False);
FileCopy (sTPathTmp + '\mod_dav_svn.so', g_sApachePathModules +
'\mod_dav_svn.so', False);
FileCopy (sTPathTmp + '\mod_authz_svn.so', g_sApachePathModules +
'\mod_authz_svn.so', False);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Oct 26 21:38:55 2004