Re: perl breakage in Cooker mostly resolved
Denis Silakov <[email protected]> Fri, 20 Jan 2012 23:57:04 +0300
| Newsgroups | gmane.linux.mandrake.cooker.devel |
|---|---|
| Message-ID | <[email protected]> |
On 01/20/12 21:56, Jeffrey Johnson wrote: > What would be needed to use in perl to detect a deletion > in the perl abi of the symbol "Perl_Gthr_key_ptr" is this: > > 1) Extract all exposed external symbols that de facto constitute perl's ABI. > > 2) Sort the list of symbols, and compute the digest of the list of symbols. > Use any digest: there are few security related issues for using a digest > for "identification" rather than for an integrity check. but use SHA-4096 > if you are concerned, all that is needed is uniqueness. > > 3) Generate the dependency (like kernel/ocaml packages do) as > Requires: perl(abi) =<put the digest in hex here> > > 4) Test the results, examine the consequences, filter out symbols > and/or split the single dependency into multiple dependencies, as needed. > > I expect that the above technique -- because it can be automated reliably -- to > be increasingly important for *.rpm dependencies over the next few years. > In general it is a good idea, but probably it's really an overkill for Perl where it's not so hard to just rebuild all necessary packages (though I can't estimate their number atm, maybe I'm wrong...). At least perl updates that break ABI happen not as often as kernel updates that can break the modules. One more thing is that symbol digests don't give you 100% guarantee that you binary will work with new library; two approaches can be mentioned here: 1) when calculating hash, you take into account only binary symbol names - in this case you can generate dependencies relatively fast, but you can't handle e.g. signature changes. So there is still a significant chance that you application will fail with updated ABI 2) you can calculate hash on the basis of binary symbol bodies - this gives more guarantees, but requires more tricky implementation, and dependency generation will take more time. But nothing prevents us from performing such experiments (locally first, not in cooker:)) to get some real estimations. -- Regards, Denis.