~ruther/guix-local

e5928e55bfe6bf8340a6b8f88811632a48ff295b — Cayetano Santos 5 months ago 021f40b
gnu: libngspice and ngspice: Move to electronics.

* gnu/packages/engineering.scm (libngspice, ngspice): Move from here ...
* gnu/packages/electronics.scm: ... to here.

Change-Id: I41b4611c1e878c5cfdd38f0ed6c13625476119bd
Signed-off-by: Gabriel Wicki <gabriel@erlikon.ch>
2 files changed, 66 insertions(+), 62 deletions(-)

M gnu/packages/electronics.scm
M gnu/packages/engineering.scm
M gnu/packages/electronics.scm => gnu/packages/electronics.scm +65 -1
@@ 13,7 13,7 @@
;;; Copyright © 2022, 2024, 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2021, 2022, 2023, 2024, 2025 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Andrew Miloradovsky <andrew@interpretmath.pw>
;;; Copyright © 2022 Christian Gelinek <cgelinek@radlogic.com.au>
;;; Copyright © 2022 jgart <jgart@dismail.de>


@@ 21,6 21,8 @@
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
;;; Copyright © 2025 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022, 2025 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2025, Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 92,6 94,7 @@
  #:use-module (gnu packages maths)
  #:use-module (gnu packages m4)
  #:use-module (gnu packages maths)
  #:use-module (gnu packages mpi)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python)


@@ 620,6 623,48 @@ used in the declarative section of design units.")
      (native-inputs
       '()))))

(define-public libngspice
  ;; Note: The ngspice's build system does not allow us to build both the
  ;; library and the executables in one go.  Thus, we have two packages.
  ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
  (package
    (name "libngspice")
    (version "44.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
              (url "https://git.code.sf.net/p/ngspice/ngspice")
              (commit (string-append "ngspice-" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1vp27149kx8l7397bv5p708jqph1kma8rb9bl7ckgmbr9sw9cn3q"))))
    (build-system gnu-build-system)
    (arguments
     (list
      #:tests? #f ;there are no tests for libngspice
      #:phases #~(modify-phases %standard-phases
                   (add-after 'install 'delete-scripts
                     (lambda _
                       (delete-file-recursively
                        (string-append #$output
                                       "/share/ngspice/scripts")))))
      #:configure-flags #~(list "--enable-openmp" "--enable-cider"
                                "--enable-xspice" "--with-ngshared")))
    (native-inputs (list autoconf automake bison flex libtool))
    (inputs (list openmpi))
    (home-page "https://ngspice.sourceforge.io/")
    (synopsis "Mixed-level/mixed-signal circuit simulator")
    (description
     "Ngspice is a mixed-level/mixed-signal circuit simulator.  It includes
@code{Spice3f5}, a circuit simulator, and @code{Xspice}, an extension that
provides code modeling support and simulation of digital components through
an embedded event driven algorithm.")
    (license (list license:lgpl2.0+ ;code in frontend/numparam
                   (license:non-copyleft "file:///COPYING") ;spice3 bsd-style
                   license:bsd-3 ;ciderlib
                   license:public-domain)))) ;xspice

(define librnd
  (package
    (name "librnd")


@@ 1009,6 1054,25 @@ which allows one to install the M8 firmware on any Teensy.")
(define-public nextpnr-ice40
  (deprecated-package "nextpnr-ice40" nextpnr))

(define-public ngspice
  ;; The ngspice executables (see libngpsice above.)
  (package
    (inherit libngspice)
    (name "ngspice")
    (arguments
     (substitute-keyword-arguments (package-arguments libngspice)
       ;; Tests require a X server running, so we keep them disabled
       ((#:configure-flags flags)
        #~(cons*  "--enable-rpath" "--with-x" "--with-readline=yes"
                  (delete "--with-ngshared" #$flags)))
       ((#:phases phases)
        #~(modify-phases #$phases
            (delete 'delete-scripts)))))
    (native-inputs
     (modify-inputs (package-native-inputs libngspice)
       (append perl)))
    (inputs (list libngspice readline libxaw libx11))))

(define-public nvc
  (package
    (name "nvc")

M gnu/packages/engineering.scm => gnu/packages/engineering.scm +1 -61
@@ 105,6 105,7 @@
  #:use-module (gnu packages digest)
  #:use-module (gnu packages docbook)
  #:use-module (gnu packages documentation)
  #:use-module (gnu packages electronics)
  #:use-module (gnu packages emacs-build)
  #:use-module (gnu packages emacs-xyz)
  #:use-module (gnu packages file)


@@ 2271,67 2272,6 @@ and a fallback for environments without libc for Zydis.")
high-performance parallel differential evolution (DE) optimization algorithm.")
    (license license:gpl2+)))

(define-public libngspice
  ;; Note: The ngspice's build system does not allow us to build both the
  ;; library and the executables in one go.  Thus, we have two packages.
  ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
  (package
    (name "libngspice")
    (version "44.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
              (url "https://git.code.sf.net/p/ngspice/ngspice")
              (commit (string-append "ngspice-" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1vp27149kx8l7397bv5p708jqph1kma8rb9bl7ckgmbr9sw9cn3q"))))
    (build-system gnu-build-system)
    (arguments
     (list
      #:tests? #f ;there are no tests for libngspice
      #:phases #~(modify-phases %standard-phases
                   (add-after 'install 'delete-scripts
                     (lambda _
                       (delete-file-recursively
                        (string-append #$output
                                       "/share/ngspice/scripts")))))
      #:configure-flags #~(list "--enable-openmp" "--enable-cider"
                                "--enable-xspice" "--with-ngshared")))
    (native-inputs (list autoconf automake bison flex libtool))
    (inputs (list openmpi))
    (home-page "https://ngspice.sourceforge.io/")
    (synopsis "Mixed-level/mixed-signal circuit simulator")
    (description
     "Ngspice is a mixed-level/mixed-signal circuit simulator.  It includes
@code{Spice3f5}, a circuit simulator, and @code{Xspice}, an extension that
provides code modeling support and simulation of digital components through
an embedded event driven algorithm.")
    (license (list license:lgpl2.0+ ;code in frontend/numparam
                   (license:non-copyleft "file:///COPYING") ;spice3 bsd-style
                   license:bsd-3 ;ciderlib
                   license:public-domain)))) ;xspice

(define-public ngspice
  ;; The ngspice executables (see libngpsice above.)
  (package
    (inherit libngspice)
    (name "ngspice")
    (arguments
     (substitute-keyword-arguments (package-arguments libngspice)
       ;; Tests require a X server running, so we keep them disabled
       ((#:configure-flags flags)
        #~(cons*  "--enable-rpath" "--with-x" "--with-readline=yes"
                 (delete "--with-ngshared" #$flags)))
       ((#:phases phases)
        #~(modify-phases #$phases
            (delete 'delete-scripts)))))
    (native-inputs
     (modify-inputs (package-native-inputs libngspice)
       (append perl)))
    (inputs (list libngspice readline libxaw libx11))))

(define trilinos-serial-xyce
  ;; Note: This is a Trilinos containing only the packages Xyce needs, so we
  ;; keep it private.  See