On 04/08/2012 07:13 AM, Alessandro Ghedini wrote: >> - Debian will package each supported release of Parrot. > > Isn't this what's already happening? I mean, we already package stable Parrot > releases and therefore we can only package Rakudo releases that run on such > Parrot versions.
Just being explicit about the intentions, since not everyone is involved in Debian packaging. > A third, and IMO more elegant, solution (that I just thought about), would be > to do (sort of) both and copy what the perl package does to maintain > compatibility with XS modules: > > * perl-base provides a virtual package called "perlapi-X.Y.Z" (where X.Y.Z is > a perl release version such as 5.14.2) > > * then, using an automatic script, the XS packages are told, at build time, to > depend on the perlapi they were built with (Perl packages add a dependency > on the "${perl:Version}" variable which is replaced by a script, with simply > "perl" for normal modules and by "perlapi-X.Y.Z" for XS modules at build > time). > > This would allow us to: > > * not break Rakudo every time Parrot is updated > * handle the Rakudo rebuilds sort of automatically without the need to make > modifications to the Rakudo packaging every time > * avoid random breakage during testing migrations and partial stable updates > * scale the whole process if/when other Parrot-based compiler will be uploaded > to Debian This is a *much* better solution than using Breaks. > All this (and your solutions too) would be, of course, more work than a simple > Breaks in the parrot package is, though, my solution, once put in place (and > to > do this we can steal and adapt the code from perl) sort of maintains itself. > > To do this the Parrot packaging side would only need to > > a) add a "Provides: parrotapi-X.Y.Z" to the parrot package (we would probably > need to move the bytecode libraries shipped by parrot-devel to parrot or to > their own package too, in order to simplify this) which would need to be > updated just like libparrotX.Y.Z is already, and > b) parrot should ship a "dh_parrot" script which would handle the automatic > dependencies substitutions (see the dh_perl script shipped by the > "debhelper" package). > > Now, we kind of already agreed for the move of the bytecode libraries out of > the > parrot-devel package (did we?) We at least agreed to move relevant bundles of bytecode libraries out to separate binary packages (which the parrot-devel package Depends on), but I don't think that quite catches all of them. We'll be helped by the fact that Parrot recently had a thread about cleaning out the library set, so we may have fewer to deal with. I'll follow up on that in a separate thread. > and I'd like to volunteer to write the dh_parrot > script. Once this is done Parrot and Rakudo packging would become much more > independant one from the other than they are now and make our lives easier > too :) Thanks! Allison