-----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-----