all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Garek Dyszel via Guix-patches via <guix-patches@gnu.org>
To: 57774@debbugs.gnu.org
Subject: [bug#57774] [PATCH v2] Add qucs-s.
Date: Tue, 13 Sep 2022 21:11:40 +0000	[thread overview]
Message-ID: <87fsgvm12r.fsf@disroot.org> (raw)
In-Reply-To: <875yhrgtrb.fsf@disroot.org>

( and Artyom,

I synthesized my last version of this package with Artyom's version in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56768.
Starting over from that version, more or less, automatically fixed the
following issues:

1. (outputs '("out")) removed
2. (propagated-inputs (list ngspice)) removed
3. (arguments `( --> (arguments (list : style changed

Further changes:
1. Overly long description shortened by blending ('s suggestion and Artyom's version.
2. Regexps in the (substitute*) procedure now correctly detect and replace the lines where ngspice and octave are referenced in qucs/main.cpp. 

Let me know what you think.

Thanks,
Garek

* gnu/packages/engineering.scm (qucs-s): New variable.
---
 gnu/packages/engineering.scm | 60 ++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index a8b9f1e786..e759134ae4 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -36,6 +36,7 @@
 ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2006,6 +2007,65 @@ (define-public xyce-parallel
        ,@(alist-delete "trilinos"
                        (package-inputs xyce-serial))))))
 
+(define-public qucs-s
+  (package
+    (name "qucs-s")
+    (version "0.0.24")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ra3xdh/qucs_s")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1lbkaw0grw9w7d37z5dbhaqi8p57cpf9yp071zp6xrairkgimdx8"))))
+    (build-system qt-build-system)
+    (native-inputs (list qttools-5))
+    (inputs (list qtbase-5 qtscript qtsvg-5 ngspice octave))
+    (arguments
+     (list #:tests? #f ;no tests
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'patch
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (substitute* "qucs/main.cpp"
+                              ;; Use the user's configuration files in
+                              ;; ~/.config/qucs/qucs_s.conf for the
+                              ;; locations of ngspice and octave. If
+                              ;; the locations are not given in
+                              ;; ~/.config/qucs/qucs_s.conf, use the
+                              ;; locations provided by Guix.
+                              (("QString ngsp_exe = \
+QCoreApplication::applicationDirPath\\(\\) \\+")
+                               (string-append
+                                "QString ngsp_exe = \""
+                                (search-input-file inputs "/bin/ngspice")
+                                "\";"))
+                              (("QDir::separator\\(\\) \\+ \"ngspice\" \\+ \
+executableSuffix;") "")
+                             (("else QucsSettings.OctaveExecutable = \"octave\" \
+\\+ QString\\(executableSuffix\\);")
+                              (string-append
+                                "else QucsSettings.OctaveExecutable = \""
+                                (search-input-file inputs "/bin/octave")
+                                "\";"))))))))
+    (synopsis "GUI for different circuit simulation kernels")
+    (description
+     "@code{Qucs-S} provides a fork of the Qucs circuit simulator,
+which is used as a graphical user interface for a number of popular
+circuit simulation engines.  The package contains libraries for
+schematic capture, visualization and components.  The following
+simulation kernels are supported:
+
+@itemize
+@item Ngspice (recommended)
+@item Xyce
+@item SpiceOpus
+@item Qucsator (non-spice)
+@end itemize")
+    (home-page "https://ra3xdh.github.io/")
+    (license license:gpl2+)))
+
 (define-public freehdl
   (package
     (name "freehdl")
-- 
2.37.2






  parent reply	other threads:[~2022-09-13 21:12 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-13 15:48 [bug#57774] [PATCH] Add qucs-s Garek Dyszel via Guix-patches via
2022-09-13 16:12 ` ( via Guix-patches via
2022-09-13 17:28 ` Artyom V. Poptsov
2022-09-13 21:11 ` Garek Dyszel via Guix-patches via [this message]
2022-09-14  6:26   ` [bug#57774] [PATCH v2] " ( via Guix-patches via
2022-09-16 18:27     ` Garek Dyszel via Guix-patches via

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fsgvm12r.fsf@disroot.org \
    --to=guix-patches@gnu.org \
    --cc=57774@debbugs.gnu.org \
    --cc=garekdyszel@disroot.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.