sound distribution practices

Allison Randal allison at parrot.org
Sun Apr 8 15:27:26 UTC 2012


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



More information about the Pkg-rakudo-devel mailing list