Re: perl breakage in Cooker mostly resolved
Jeffrey Johnson <[email protected]> Fri, 20 Jan 2012 17:41:23 -0500
| Newsgroups | gmane.linux.mandrake.cooker.devel |
|---|---|
| Message-ID | <[email protected]> |
On Jan 20, 2012, at 3:26 PM, Jeffrey Johnson wrote: > > (for extra credit) > There is an additional technique that permits curried plain texts to be chained > (and not only with symbols) that is useful for pinning down exactly what broke > that is also going to be needed for the technique I mentioned to be deployed. > > Lets say you split the huge list of perl symbols into a "core" and a "extension" > set. > > Each of "core" and "extension" will then have its own digest. > > The chaining comes from having a meta-plaintext composed of 2 lines > (for my artificial example) that would look like > core <core-digest-here> > extension <extension-digest-here> > > And that 2-line file is also digested (and included somehow with packaging). > > Then when the > Requires: perl(abi) = <meta-plaintext-digest-here> > "breaks" (as it inevitably will), then the actual plaintext is retrieved to > identify whether "core" or "extension" symbols were changed. > > The above is an entirely artificial example used to illustrate the chaining. > For pedantic purposes, what I am calling "chaining" is nothing more than a hash or Merkle tree (see wikipedia). The important point relevant to *.rpm packaging and automating dependencies, is that MUST be some way for humans to diagnose the failures: its the attachment of the "core" and "extension" labels that is needed. Once can of course extend the chaining generally so that each symbol (or more generally every state change in the plaintext) can be identified precisely by recursion through the plaintext. Note that the above is "overkill" only in the sense that dependencies automated like this have a complexity/obscurity that would challenge any human to "fix". But the algorithms and tools needed aren't particularly hard to code up even if every single symbol in every single executable needed to be added into a hash tree. I am assuming a persistent distributed store is available when debugging a broken automated dependency. Hint: the mongo-c-driver is bundled into rpm-5.3 for a reason. I'm also assuming that there is some serious interest in improving the quality of a Mandriva/ROSA distribution by applying better automation methodically to packaging processes. And please note that I heartily agree "overkill" because of the inertia changing Linux packaging processes meaningfully. But the "proof is in the pudding": computers make wonderful automatons without any need to discuss, say, urpmi dependency breakage on this mailing list. I expect some scheme like I just outlined to be proposed for package management in the next few years. I'm merely waiting for someone else to go first so that @rpm5.org can follow as second: I have no desire to advocate any change whatsoever to Linux packaging and RPM. Perhaps its time for "anonymous" to add an entry to @rpm.org trac or to propose the above to Debian. todo++ 73 de Jeff