Subject: Re: [bug#27344] [PATCH v4 3/3] gnu: Add qucs-s.

From: [email-masked] (Ludovic Courtès)
Date: Thu, 16 Nov 2017 10:54:44 +0100

Hi Theodoros,

Theodoros Foradis <[email-masked]> skribis:

> Ludovic Courtès writes:
>
>> Theodoros Foradis <[email-masked]> skribis:
>>
>>> * gnu/packages/engineering.scm (qucs-s): New variable.
>>
>> There seems to be a lot of duplication with ‘qucs’.  Would it be
>> possible to inherit from qucs, thereby reusing its phases, and simply
>> provide any extra phase that’s needed?
>
> Some paths are different in those two packages. For example:
> Qucs:
>> (substitute* '("qucs/qucs/qucsdigi"
>>                "qucs/qucs/qucsdigilib"
>>                "qucs/qucs/qucsveri")
>
>> (wrap-program (string-append out "/bin/qucs")
>
> Qucs-s:
>> (substitute* '("qucs/qucsdigi"
>>                "qucs/qucsdigilib"
>>                "qucs/qucsveri")
>
>> (let* ((out (assoc-ref outputs "out"))
>>        (file (string-append out "/bin/qucs-s"))
>>        (qucs (assoc-ref inputs "qucs"))
>>        (qucsator (string-append qucs "/bin/qucsator")))
>>   (wrap-program file
>
> So qucs-s cannot inherit qucs, and this is why I dismissed that when I
> looked at it in the past.
>
> I think we could create a procedure, that takes the variables as
> arguments and returns a qucs package. So that qucs-s inherits the
> application of that procedure on different arguments.
>
> Is this preferable to having two different packages with some identical
> phases?

Well you’re right, there’s no great solution in this case.

Finally pushed as commit ef2c6b409568123e760a7dfa22d45fc09e713198.
We’re done!  :-)

Thank you!

Ludo’.