Re: git: e94a554e5542 - main - net/libproxy: bump consumers

From: Charlie Li <vishwin_at_freebsd.org>
Date: Wed, 22 Jan 2025 16:48:40 UTC
Tijl Coosemans wrote:
> On Tue, 21 Jan 2025 10:34:59 -0500 Charlie Li wrote:
>> Tijl Coosemans wrote:
>>> On Tue, 21 Jan 2025 08:36:35 -0500 Charlie Li wrote:
>>>> Tijl Coosemans wrote:
>>>>> This error means there's something wrong with symbol versioning in
>>>>> libproxy.  The meson output contains this line:
>>>>
>>>> These patches are not necessary. The total rewrite (using glib no less)
>>>> introduced a subtle ABI break despite keeping the API pretty much intact
>>>> from before, so consumers needed rebuilding.
>>>
>>> The patches are needed to restore symbol versions.
>>>
>>> Output of "objdump -T libproxy.so | grep text" with and without patches:
>>>
>>> 0000000000001d90 g    DF .text	0000000000000028  LIBPROXY_0.4.16 px_proxy_factory_free
>>> 0000000000001d30 g    DF .text	000000000000001b  LIBPROXY_0.4.16 px_proxy_factory_new
>>> 0000000000001cb0 g    DF .text	0000000000000045  LIBPROXY_0.5.5 px_proxy_factory_get_type
>>> 0000000000001d50 g    DF .text	000000000000001a  LIBPROXY_0.5.5 px_proxy_factory_copy
>>> 0000000000001d70 g    DF .text	0000000000000008  LIBPROXY_0.4.16 px_proxy_factory_get_proxies
>>> 0000000000001d80 g    DF .text	000000000000000a  LIBPROXY_0.4.16 px_proxy_factory_free_proxies
>>>
>>>
>>> 0000000000001d10 g    DF .text	0000000000000028  Base        px_proxy_factory_free
>>> 0000000000001cb0 g    DF .text	000000000000001b  Base        px_proxy_factory_new
>>> 0000000000001c30 g    DF .text	0000000000000045  Base        px_proxy_factory_get_type
>>> 0000000000001cd0 g    DF .text	000000000000001a  Base        px_proxy_factory_copy
>>> 0000000000001cf0 g    DF .text	0000000000000008  Base        px_proxy_factory_get_proxies
>>> 0000000000001d00 g    DF .text	000000000000000a  Base        px_proxy_factory_free_proxies
>> Lack of symbol versioning in the current version is correct. This is the
>> subtle (and intentional) ABI break I was referring to which necessitated
>> rebuilding every consumer hence the PORTREVISION bumps.
> 
> That doesn't make much sense to me.  Symbol versions are a good
> practice.  If upstream provides them we should use them.  They are
> disabled only because a configure test fails with clang (actually lld).
> That test does succeed with gcc (gnu ld).  This means that a library
> built with gcc is not ABI compatible with the one built with clang.
> That's not good.  So please commit or approve the patches.  (There's no
> need to bump dependent ports again.)
No. Once again, this software was completely rewritten so the symbol 
versioning pre-rewrite are completely invalid. They are not provided in 
this version. Please rebuild your consumers as intended with the 
PORTREVISION bumps.

-- 
Charlie Li
...nope, still don't have an exit line.