-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 16/06/12 12:18 PM, Ciaran McCreesh wrote:
> On Sat, 16 Jun 2012 17:24:22 +0200 Peter Stuge <pe...@stuge.se>
> wrote:
>> Ciaran McCreesh wrote:
>>>> Could it work to make automatic signatures of imported ABI,
>>>> and simply compare signatures when a provider package is
>>>> updated?
>>> 
>>> No.
>> 
>> Can you say why?
> 
> There's no way for a program to work out what "the ABI" of
> something is (whatever that means), and there's even less of a way
> for it to know up-front.
> 

I believe what Peter might've been referring to would be some form of
hashing of each and every library that is installed by a package.
Just as a basic idea, one could probably (for instance) grab the
LTVERSION of a libtool-built library, store that along with the emerge
info, and link this same version when consumer ebuilds are built
against it; then if the signatures changes the consumer ebuilds that
were built against the (now incompatible) old signatures could be
triggered for a rebuild.

I'm not saying that this is a viable approach, simply describing a
theoretical way it could be implemented.

One of the "advantages" of going this way, though, is that it would
probably be EAPI-independent as everything would be done internally by
the PMS.  The primary disadvantages I see is that 1-getting "library"
signatures would be difficult, 2-many orders of magnitude of
additional preprocessing would be necessary to build the deptree,
3-there wouldn't be any viable way for developer-based intervention
when necessary.

Finally, the above is just an example; I don't want to discuss merits
of an approach like this or entertain possible implementations.


>>> Also, can we stop using the term "ABI" in reference to this
>>> please? It's misleading. Let's call them sub-slots instead.
>> 
>> I think ABI fits well though? The situation is that A DEPENDs on
>> B, and at some point B changes in a way that A must be rebuilt in
>> order to run - right?
>> 
>> The only reason that A wouldn't run anymore is that B's ABI
>> changed?
> 
> ABI has a fairly specific, technical meaning, which can be
> misleading in the general case. Is Python bytecode an ABI?
> 

Isn't Python bytecode an ABI, given that it's built or tied to a
particular version (major.minor) of python??  (i'm actually asking
here, i avoid python so I don't really know if a .pyc from say
python-2.5 will just work with python-2.7 or if the original script
would need to be recompiled)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)

iF4EAREIAAYFAk/fOPMACgkQ2ugaI38ACPCnpQD9Eu8uT2NABFQpb1ym5GeWUs0L
SY+t0wWh6saGXyfVja8BAIYMB0Q21qukus/rH3gDdf98AZYgOiXA20tg+dQyHZ26
=grcA
-----END PGP SIGNATURE-----

Reply via email to