On 13 July 2012 17:34, Branko Čibej <brane_at_wandisco.com> wrote:
> On 13.07.2012 17:21, Peter Samuelson wrote:
>> [Branko Cibej]
>>> Like I said in my response to this in the other thread -- API or even
>>> ABI compatibility is not the issue. Working copy formats, wire
>>> protocol quirks, etc. etc. are more "interesting". And I really don't
>>> think it's up to us to tell packagers how to do their stuff.
>> Well, the reason I bring it up is, if we expect everyone to bundle a
>> copy of libsvn with every app, then our hard work to guarantee ABI
>> stability is basically pointless. The whole reason to have a stable
>> ABI is so people can upgrade libsvn without rebuilding or redownloading
>> other apps. At some point we must have thought that was important.
>
> This does not happen on properly managed (U|Li)nux distributions. It
> does happen on Windows, simply because there is no generally accepted
> location for globally shared libraries. Or rather, while Windows does
> provide mechanisms for component registration, they're a total pain in
> the unmentionables to use and don't apply co common or garden shared libs.
>
> Which brings us back to my assertion that it's not our job to do what
> packagers do best anyway.
>
> -- Brane
>
> --
> Certified & Supported Apache Subversion Downloads:
> http://www.wandisco.com/subversion/download
>
I believe the correct way to avoid dependency bundling on Windows is
by using side-by-side assemblies (WinSxS) like the Microsoft C/C++
runtime re-distributables do. Almost no-one uses it or even knows it's
there, however. Probably because it's a kind of black magic that
no-one cares to learn about, the path of least resistance is to just
bundle the DLL. It's also been my experience that DLL resolution using
WinSxS can be a bit flakey -- especially on Windows XP -- leading to
failures to dynamically load DLLs that link to DLLs that are in
WinSxS. This tends to lead to misleading and difficult to debug bug
reports for which I may need to book another appointment with my
psychiatrist :-)
Interestingly even Microsoft have now stopped using it for their C/C++
runtimes starting from the 2010 version:
http://msdn.microsoft.com/en-us/library/dd293574.aspx
--
Mat Booth
Software Engineer
WANdisco, Inc.
http://www.wandisco.com
Received on 2012-07-17 15:46:11 CEST