From e5928e55bfe6bf8340a6b8f88811632a48ff295b Mon Sep 17 00:00:00 2001 From: Cayetano Santos Date: Tue, 21 Oct 2025 14:13:45 +0200 Subject: [PATCH] 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 --- gnu/packages/electronics.scm | 66 +++++++++++++++++++++++++++++++++++- gnu/packages/engineering.scm | 62 +-------------------------------- 2 files changed, 66 insertions(+), 62 deletions(-) diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index a2c9e3cf091b58fd9960884c2361951009aae5c2..7a4d4e6d81d66d1b0e7ca62d1dd05d9c2a78bcaa 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2022, 2024, 2025 Artyom V. Poptsov ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2019 Amin Bandali -;;; Copyright © 2020 Vinicius Monego +;;; Copyright © 2020, 2021, 2022, 2023, 2024, 2025 Vinicius Monego ;;; Copyright © 2021 Andrew Miloradovsky ;;; Copyright © 2022 Christian Gelinek ;;; Copyright © 2022 jgart @@ -21,6 +21,8 @@ ;;; Copyright © 2024 Jakob Kirsch ;;; Copyright © 2025 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2022, 2025 Evgeny Pisemsky +;;; Copyright © 2025, Ekaitz Zarraga +;;; Copyright © 2021, 2022 Guillaume Le Vaillant ;;; ;;; 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 . + (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") diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c63965519612e73cf351ffd21cee3763ef96e872..ddb30dc739b99e03d0d1154f7d023ca6534651a5 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -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 . - (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