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 parrot-dev
mailing list