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

From: Theodoros Foradis <[email-masked]>
Date: Wed, 08 Nov 2017 19:42:12 +0200

Hello Ludovic,

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?

-- 
Theodoros Foradis