On Sun, May 9, 2021 at 11:40 AM Mark Phippard <markp...@gmail.com> wrote:
>
> Looking for some ideas ...
>
> I just submitted a PR to Homebrew to build JavaHL on Apple Silicon:
>
> https://github.com/Homebrew/homebrew-core/pull/76900
>
> In testing this I came across a problem I also have run into on Intel.
> I think this started happening in Big Sur but it could also be a
> recent Eclipse change or the recent Homebrew 3.0 change.
>
> Basically the issue is that at runtime JavaHL seems to pickup the
> system SQLite library so all working copy operations fail with this
> error:
>
> svn: Couldn't perform atomic initialization
> SQLite error
> svn: SQLite compiled for 3.35.5, but running with 3.32.3
>
> On my Intel mac I worked around it by backdating the SQLite in
> Homebrew to version 3.32.3. That is obviously not the correct fix it
> was just a hack I did at the time. I can edit the Subversion formula
> to not use the Homebrew SQLite and just use the one from the OS. That
> seems like the right solution but I am not sure if it is acceptable
> for other Homebrew users and if I should submit the patch or not.
>
> I suspect the root issue is that Eclipse has started using SQLite for
> something and it is loading the system library and somehow that is
> causing the Subversion libraries at runtime to also get that version.
> If I Sample Eclipse when it is running I can see that both versions of
> the library are loaded but for some reason the SVN working copy code
> is picking up the system SQLite even though it seems to have loaded
> the right version.

Couple of updates ...

1. My PR to Homebrew was merged so if you install subversion on Apple
Silicon you will now get the JavaHL library installed.

2. I am still looking into the SQLite issue. One thing I found was if
I open Eclipse from a Terminal and first do this then it works OK:

export DYLD_LIBRARY_PATH=/opt/homebrew/opt/sqlite/lib

I still suspect there is something Eclipse-specific about the problem
but I am not sure. The library itself seems correct:

otool -L /Library/Java/Extensions/libsvnjavahl-1.dylib
/Library/Java/Extensions/libsvnjavahl-1.dylib:
/opt/homebrew/opt/subversion/lib/libsvnjavahl-1.0.dylib (compatibility
version 1.0.0, current version 1.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 905.6.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_repos-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_client-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_wc-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_ra-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_diff-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_ra_local-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_fs-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_ra_svn-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libsasl2.2.dylib (compatibility version 3.0.0, current version 3.15.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_ra_serf-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/libexec/serf/lib/libserf-1.dylib
(compatibility version 1.3.0, current version 1.3.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_delta-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_subr-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_fs_fs-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_fs_x-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/opt/homebrew/Cellar/subversion/1.14.1_1/lib/libsvn_fs_util-1.0.dylib
(compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 8.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
/opt/homebrew/opt/sqlite/lib/libsqlite3.0.dylib (compatibility version
9.0.0, current version 9.6.0)
/opt/homebrew/opt/lz4/lib/liblz4.1.dylib (compatibility version 1.0.0,
current version 1.9.3)
/opt/homebrew/opt/utf8proc/lib/libutf8proc.2.dylib (compatibility
version 2.0.0, current version 2.4.1)
/opt/homebrew/opt/apr-util/libexec/lib/libaprutil-1.0.dylib
(compatibility version 7.0.0, current version 7.1.0)
/opt/homebrew/opt/apr/libexec/lib/libapr-1.0.dylib (compatibility
version 8.0.0, current version 8.0.0)
/opt/homebrew/opt/gettext/lib/libintl.8.dylib (compatibility version
11.0.0, current version 11.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
(compatibility version 150.0.0, current version 1775.118.101)
/System/Library/Frameworks/Security.framework/Versions/A/Security
(compatibility version 1.0.0, current version 59754.100.106)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
(compatibility version 1.0.0, current version 1122.33.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1292.100.5)

Mark

Reply via email to