guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] gnu: Add Mlucas.


From: Alex Vong
Subject: Re: [PATCH] gnu: Add Mlucas.
Date: Tue, 6 Oct 2015 21:58:45 +0800

Hi Ludovic,

On 06/10/2015, Ludovic Courtès <address@hidden> wrote:
> Alex Vong <address@hidden> skribis:
>
>> On 05/10/2015, Mathieu Lirzin <address@hidden> wrote:
>>> Alex Vong <address@hidden> writes:
>
> [...]
>
>>> I'm not competent enough to judge if it's a useful build-system to add
>>> but
>>> this should be done in another commit and in
>>> “guix/guix/build/bootstap-build-system.scm” if yes.
>>>
>> I should be more a newbie than you do. I just wonder if it is possible
>> to modify the build system by a little, such as adding a bootstrap
>> phase and some new inputs, and then give a name to the new build
>> system. Since it seems many packages are repeating this step, I think
>> it will be great if we have this mean of abstraction.
>
> It’s not uncommon, indeed.  However, the details on how to bootstrap are
> not standard: Often ‘autoreconf -vfi’ will do, sometimes it’s
> ‘./bootstrap’, sometimes ‘./autogen.sh’, etc.
>
> Now the proposed build system could maybe try these variants one after
> the other.
>
> Also, the set of dependencies varies: sometimes it’s Autoconf, sometimes
> Autoconf+Automake, sometimes Autoconf+Automake+Libtool, etc.  So I think
> the set of dependencies should be kept explicit–i.e., packages have to
> add stuff to ‘native-inputs’.
>
> Could you try to make this build system as a standalone commit, leaving
> out the build flags code for a separate discussion?
>
> The commit would add (guix build-system gnu-bootstrap) for instance (I
> call it this way because it bootstraps specifically the GNU build
> system, not CMake, etc.) and (guix build gnu-bootstrap-build-system).
> The latter would simply add one phase to ‘%standard-phases’.
>
> Does that make sense?
>
I think if the set of dependencies should be kept explicit, then it
seems the only thing we are left to abstract away is trying the
commands ``autoreconf -vfi'', ``./bootstrap'' and ``./autogen.sh''.
But I think the command is better left for the package maintainer to
decide since the bootstrap script may have unusual name. (I have seen
``bootstrap.sh'' for instance.) My original though is to let the
package maintainer to pass in the bootstrap command string. However,
if it is the case, then gnu-bootstrap build-system isn't abstracting
anything at all. So I think I'll go back to the original solution of
adding a new phase and specifying autotools dependencies instead.

>>>> +
>>>> +(define-public mlucas
>>>> +  ;; descriptions of the package
>>>> +  (let ((short-description
>>>> +         "Program to perform Lucas-Lehmer test on a Mersenne number")
>>>> +        (long-description
>>>> +         "mlucas is an open-source (and free/libre) program
>>>                           ^^^
>>>
>>> Being a GNU project, we use the term “free software”, but in the context
>>> of
>>> a
>>> description it is not relevant to describe freedom of a package since
>>> every
>>> package in Guix is free software.
>>>
>> "open-source" is actually mentioned in the upstream description, so I
>> add the description inside the parenthesis. But I can remove both if
>> it is desired.
>
> Yes please.  Everything is free in Guix anyway.  :-)
>
> Also, as Alex mentions, the synopsis and description must be literal
> strings in the ‘description’ and ‘synopsis’ fields.  This allows those
> strings to be extracted for translation (see “Synopses and Descriptions”
> in the manual.)
>
Yes I will fix those.

> Thank you, and welcome!
>
> Ludo’.
>
Thanks too!

Cheers,
Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]