Subject: Re: bug#78754: Tree-sitter started versioning their shared library filenames

From: Peter Oliver <[email-masked]>
Date: Fri, 13 Jun 2025 19:31:07 +0100 (BST)

On Fri, 13 Jun 2025, Eli Zaretskii wrote:

>> Date: Fri, 13 Jun 2025 18:20:36 +0100 (BST)
>> From: Peter Oliver <[email-masked]>
>>
>> On Thu, 12 Jun 2025, Eli Zaretskii wrote:
>>
>>>> Date: Thu, 12 Jun 2025 18:05:12 +0100 (BST)
>>>> From: Peter Oliver <[email-masked]>
>>>>
>>>> So we currently prefer the bare libtree-sitter-foo.so to any versioned files?  Shouldn’t that one be the last resort?
>>>
>>> Why should it?  isn't it standard practice on Posix systems to make
>>> foo.so a symlink to a versioned foo-N.M.so?
>>
>> Yes, but the symlinks are typically not installed by default, since they’re not required for using the libraries, only for building against them.
>>
>> But mainly, what happens if someone has multiple versions of the library installed?  Perhaps the symlink points to libtree-sitter-foo.so.16, but we’re linked against a version of Tree-sitter that support libtree-sitter-foo.so.15 at best.  It seems to me that, since we know what versions we support, we may as well start with libtree-sitter-foo.so.15, rather than loading libtree-sitter-foo.so and hoping for the best.
>
> AFAIU, the symlink, if it exists, is supposed to point to either the
> latest version or the version that the system wants to use by default.

As I say, the latest version may not be the right version for us, and that’s “wants to use by default” for linking programs during compilation, which is not what we are doing here.

Still, in practice I think this is mostly not going to matter, so I won’t try to argue it further.

-- 
Peter Oliver