You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Jan Nijtmans <ja...@xs4all.nl> on 2004/10/26 07:52:45 UTC
Apache refuses to start after installing Subversion 1.1.x (Windows
2000, INNOSETUP executable)
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
Re: Apache refuses to start after installing Subversion 1.1.x (Windows
2000, INNOSETUP executable)
Posted by Branko Čibej <br...@xbc.nu>.
Jostein Chr. Andersen wrote:
>On Tuesday 26 October 2004 22.21, Jostein Chr. Andersen wrote:
>
>
>>On Tuesday 26 October 2004 09.52, Jan Nijtmans wrote:
>>...
>>
>>
>>
>>>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 like number 2 best - and a 'svnlibdb42.dll' in stead of libdb42.dll
>>would be nice as well. The reason is of course that other modules
>>might need diffrent versions of intl.dll and libdb42.dll.
>>
>>
>>
>>>I hope that this little but tricky problem will be fixed in
>>>subversion 1.1.2.
>>>
>>>
>
>I will do it somethime this weekend.
>
>
Ah... Just renaming the DLL isn't going to work. You'd have to make all
sorts of changes to the build scripts, _including_ the BDB build scripts
because the import library refers to the DLL by name, so we can't use
the one that the BDB build creates.
I agree that there may be different versions of intl.dll; shame on the
GNU people that they didn't encode the library version in the name.
There should _not_ be different versions of libdb42.dll, because every
one should be built using the same build scripts. And we already avoid
runtime version clashes by setting the alllocation functions for BDB.
-- Brane
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: Apache refuses to start after installing Subversion 1.1.x (Windows 2000, INNOSETUP executable)
Posted by "Jostein Chr. Andersen" <jo...@josander.net>.
On Tuesday 26 October 2004 22.21, Jostein Chr. Andersen wrote:
> On Tuesday 26 October 2004 09.52, Jan Nijtmans wrote:
> ...
>
> > 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 like number 2 best - and a 'svnlibdb42.dll' in stead of libdb42.dll
> would be nice as well. The reason is of course that other modules
> might need diffrent versions of intl.dll and libdb42.dll.
>
> > I hope that this little but tricky problem will be fixed in
> > subversion 1.1.2.
I will do it somethime this weekend.
Jostein
--
http://www.josander.net/en/contact/
Re: Apache refuses to start after installing Subversion 1.1.x (Windows 2000, INNOSETUP executable)
Posted by "Jostein Chr. Andersen" <jo...@josander.net>.
On Tuesday 26 October 2004 09.52, Jan Nijtmans wrote:
...
> 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 like number 2 best - and a 'svnlibdb42.dll' in stead of libdb42.dll
would be nice as well. The reason is of course that other modules might
need diffrent versions of intl.dll and libdb42.dll.
> I hope that this little but tricky problem will be fixed in subversion
> 1.1.2.
It might - at least with the installer unless someone have second thougs
about it.
My only reservation (beside polluting Apache's module folder with general
named DLL's) is that you're the first one to report this problem
(AFAIK). Also, a log out and in again (and sometimes a reboot) usually
fix problems like this. I don't really know why, but it seems to me that
console and shell based programs are not allways aware of changes in
path simultaneously (after a SendMessageTimeout API call).
I'll wait and see a short period before deciding what to do with your
patch.
Thanks for sending it! :-)
Jostein
--
http://www.josander.net/en/contact/