[m-dev.] I have been making Debian packages

Julien Fischer jfischer at opturion.com
Tue Mar 28 10:39:11 AEDT 2017


Hi Paul,

On Fri, 24 Mar 2017, Paul Bone wrote:

> On Fri, Mar 24, 2017 at 11:41:28AM +1100, Julien Fischer wrote:
>>
>> Hi Paul,
>>
>> On Thu, 23 Mar 2017, Paul Bone wrote:
>>
>>> I've been packaging Mercury for Debian recently.
>>>
>>> http://dl2.mercurylang.org/packages/
>>
>> For the benefit of those of without a Debian (based) system to hand,
>> what packages have you split it up into?
>
> I'll put this online also.
>
> 	Grade							Package
> 	-------------------------------------------------
>    hlc.gc                          mercury-hlc
>    hlc.par.gc                      mercury-hlcpar
>    hlc.gc.trseg                    mercury-hlctrail
>    asm_fast.gc                     mercury-llc
>    asm_fast.par.gc.stseg           mercury-llcpar
>    asm_fast.gc.trseg               mercury-llctrail
>    asm_fast.gc.decldebug.stseg     mercury-devel
>    asm_fast.gc.profdeep.stseg      mercury-devel
>    asm_fast.gc.memprof.stseg       mercury-devel
>    asm_fast.gc.prof.stseg          mercury-devel
>
> For all of these except mercury-devel you will also need the -dev package if
> you want to compile programs for that grade.  The non -dev packages are just
> the shared objects.

Good, that's what I was hoping you'd done with the shared objects.

I think the above set of packages is too fine-grained; I have an alternative
suggestion:

    Package: mercury-runtime
    Contents: shared objects for all the (useful) "production" C grades, namely:
    hlc.gc, hlc.par.gc hlc.gc.trseg, asm_fast.gc.stseg, asm_fast.par.gc.trseg.stseg
    and asm_fast.par.gc.stseg.

Given that the .so files are fairly small I'm not sure there is much to be gained
by the fine-grained packaging.

    Package: mercury-java-runtime
    Contents: .jar files for the Java grade

    Package: mercury-csharp-runtime
    Contents: .dll files for the C# grade.

    Package: mercury-devel
    Depends: mercury-runtime
    Contents: the Mercury compiler + the rest of the files required to build
    things in the grades in the mercury-runtime package.  This might also include
    the debug and profiling grades (as you have above) if they aren't split
    out into their own packages.

    Package: mercury-java-devel
    Depends: the underlying system needs a Java compiler and runtime.
    Contents: remaining files needed for compiling in the Java grade.

    Package: mercury-csharp-devel
    Depends: the underlying system will need a C# compiler and CLR runtime.
    Contents: remaining files needed for compiling in the C# grade.

Julien.


More information about the developers mailing list