diff options
| author | Peter Polidoro <peter@polidoro.io> | 2026-07-01 11:16:47 -0400 |
|---|---|---|
| committer | Cayetano Santos <csantosb@inventati.org> | 2026-07-06 20:25:12 +0200 |
| commit | a6a25b9344a874a5766fb773990b547d486f88f5 (patch) | |
| tree | 1d1faf6422518a7277bb9d7c52ede69502f12f60 /gnu/packages/engineering.scm | |
| parent | 21067308c0143cb6ad0148101923ad361e9a392c (diff) | |
gnu: Move csxcad and openems packages to engineering module.
* gnu/packages/electronics.scm: Add module scope comment and remove
unused imports.
(appcsxcad, csxcad, python-csxcad, openems, python-openems,
qcsxcad): Move from here ...
* gnu/packages/engineering.scm: Add module scope comment.
(csxcad, python-csxcad, qcsxcad, appcsxcad, openems,
python-openems): ... to here.
Merges guix/guix!9650
Adresses guix/guix#9638
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
Diffstat (limited to 'gnu/packages/engineering.scm')
| -rw-r--r-- | gnu/packages/engineering.scm | 290 |
1 files changed, 290 insertions, 0 deletions
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 7b018c03f9a..6429d161b0f 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm | |||
| @@ -48,6 +48,7 @@ | |||
| 48 | ;;; Copyright © 2025 Remco van 't Veer <remco@remworks.net> | 48 | ;;; Copyright © 2025 Remco van 't Veer <remco@remworks.net> |
| 49 | ;;; Copyright © 2025-2026 bdunahu <bdunahu@operationnull.com> | 49 | ;;; Copyright © 2025-2026 bdunahu <bdunahu@operationnull.com> |
| 50 | ;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org> | 50 | ;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org> |
| 51 | ;;; Copyright © 2026 Thomas Kramer <thomas@f-si.org> | ||
| 51 | ;;; Copyright © 2026 Daniel Khodabakhsh <d@niel.khodabakh.sh> | 52 | ;;; Copyright © 2026 Daniel Khodabakhsh <d@niel.khodabakh.sh> |
| 52 | ;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu> | 53 | ;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu> |
| 53 | ;;; Copyright © 2026 Brent Wedderburn <mb@bean.za.net> | 54 | ;;; Copyright © 2026 Brent Wedderburn <mb@bean.za.net> |
| @@ -68,6 +69,10 @@ | |||
| 68 | ;;; You should have received a copy of the GNU General Public License | 69 | ;;; You should have received a copy of the GNU General Public License |
| 69 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | 70 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
| 70 | 71 | ||
| 72 | ;;; Packages for computer-aided engineering workflows, including CAD/CAM, | ||
| 73 | ;;; physical modeling and simulation, field solvers, manufacturing, robotics, | ||
| 74 | ;;; surveying, and engineering computation tools. | ||
| 75 | |||
| 71 | (define-module (gnu packages engineering) | 76 | (define-module (gnu packages engineering) |
| 72 | #:use-module ((guix licenses) #:prefix license:) | 77 | #:use-module ((guix licenses) #:prefix license:) |
| 73 | #:use-module (guix build-system ant) | 78 | #:use-module (guix build-system ant) |
| @@ -601,6 +606,291 @@ multipole-accelerated algorithm.") | |||
| 601 | multipole-accelerated algorithm.") | 606 | multipole-accelerated algorithm.") |
| 602 | (license (license:non-copyleft #f "See induct.c.")))) | 607 | (license (license:non-copyleft #f "See induct.c.")))) |
| 603 | 608 | ||
| 609 | (define-public csxcad | ||
| 610 | (package | ||
| 611 | (name "csxcad") | ||
| 612 | (version "0.6.3") | ||
| 613 | (source | ||
| 614 | (origin | ||
| 615 | (method git-fetch) | ||
| 616 | (uri (git-reference | ||
| 617 | (url "https://github.com/thliebig/CSXCAD") | ||
| 618 | (commit (string-append "v" version)))) | ||
| 619 | (file-name (git-file-name name version)) | ||
| 620 | (sha256 | ||
| 621 | (base32 "1c383zsv4fp40kmpawamfi9zg3b8x3d4m091ldwk15mii3467hp3")))) | ||
| 622 | (build-system cmake-build-system) | ||
| 623 | (arguments | ||
| 624 | (list | ||
| 625 | #:tests? #f ; No tests. | ||
| 626 | #:configure-flags | ||
| 627 | #~(list | ||
| 628 | (string-append "-DFPARSER_ROOT_DIR=" #$(this-package-input "fparser"))) | ||
| 629 | #:phases | ||
| 630 | #~(modify-phases %standard-phases | ||
| 631 | (add-after 'unpack 'fix-cmake-and-sources | ||
| 632 | (lambda _ | ||
| 633 | (substitute* "CMakeLists.txt" | ||
| 634 | ((" system\n") | ||
| 635 | "") | ||
| 636 | (("find_package\\(HDF5 1.8 COMPONENTS C HL REQUIRED\\)") | ||
| 637 | "find_package(HDF5 REQUIRED COMPONENTS C HL)")) | ||
| 638 | ;; Fix missing `std::`. | ||
| 639 | ;; This is fixed in upstream already but not tagged. | ||
| 640 | (substitute* "src/CSPropDiscMaterial.cpp" | ||
| 641 | (("\tcout ") | ||
| 642 | "\tstd::cout "))))))) | ||
| 643 | (inputs (list boost | ||
| 644 | cgal | ||
| 645 | eigen | ||
| 646 | fparser | ||
| 647 | hdf5 | ||
| 648 | gmp | ||
| 649 | libjpeg-turbo | ||
| 650 | libpng | ||
| 651 | libtiff | ||
| 652 | lz4 | ||
| 653 | mpfr | ||
| 654 | openmpi | ||
| 655 | tinyxml | ||
| 656 | vtk | ||
| 657 | zlib)) | ||
| 658 | (home-page "https://github.com/thliebig/CSXCAD") | ||
| 659 | (synopsis "3D geometry library for C++") | ||
| 660 | (description | ||
| 661 | "@code{csxcad} is a C++ library to describe geometrical objects | ||
| 662 | and their physical or non-physical properties for electromagnetics simulations.") | ||
| 663 | (license license:lgpl3+))) | ||
| 664 | |||
| 665 | (define-public python-csxcad | ||
| 666 | (package | ||
| 667 | (inherit csxcad) | ||
| 668 | (name "python-csxcad") | ||
| 669 | (build-system pyproject-build-system) | ||
| 670 | (arguments | ||
| 671 | (list | ||
| 672 | ;; Tests are broken in v0.6.3. | ||
| 673 | ;; Check on update. | ||
| 674 | #:tests? #f | ||
| 675 | #:phases | ||
| 676 | #~(modify-phases %standard-phases | ||
| 677 | (add-before 'build 'prepare-build | ||
| 678 | (lambda _ | ||
| 679 | (chdir "./python") | ||
| 680 | (setenv "CSXCAD_INSTALL_PATH" | ||
| 681 | #$(this-package-input "csxcad"))))))) | ||
| 682 | (native-inputs (list python-minimal python-cython python-numpy | ||
| 683 | python-setuptools)) | ||
| 684 | (inputs (list csxcad fparser hdf5 python-numpy tinyxml)) | ||
| 685 | (synopsis "Python bindings for @code{csxcad}") | ||
| 686 | (description "Library for describing geometrical objects and their | ||
| 687 | physical and non-physical properties.") | ||
| 688 | (license license:lgpl3+))) | ||
| 689 | |||
| 690 | (define-public qcsxcad | ||
| 691 | (package | ||
| 692 | (name "qcsxcad") | ||
| 693 | (version "0.6.3") | ||
| 694 | (source | ||
| 695 | (origin | ||
| 696 | (method git-fetch) | ||
| 697 | (uri (git-reference | ||
| 698 | (url "https://github.com/thliebig/QCSXCAD") | ||
| 699 | (commit (string-append "v" version)))) | ||
| 700 | (file-name (git-file-name name version)) | ||
| 701 | (sha256 | ||
| 702 | (base32 "0ag1shyhsmfsvqm35fi2kfnbcngmln8rjsv88f97gyx9wiqc808y")))) | ||
| 703 | (build-system qt-build-system) | ||
| 704 | (arguments | ||
| 705 | (list | ||
| 706 | #:tests? #f ;No tests. | ||
| 707 | #:qtbase qtbase ;For Qt 6 | ||
| 708 | #:phases | ||
| 709 | #~(modify-phases %standard-phases | ||
| 710 | (add-after 'unpack 'fix-sources | ||
| 711 | ;; Fix missing `std::`-prefix and missing include. | ||
| 712 | ;; This is fixed in upstream but not tagged with a version. | ||
| 713 | (lambda _ | ||
| 714 | (substitute* "vtkInteractorStyleRubberBand2DPlane.cpp" | ||
| 715 | (("#include \"vtkCamera.h\"") | ||
| 716 | "#include <iostream>\n#include \"vtkCamera.h\"") | ||
| 717 | (("\tcerr ") | ||
| 718 | "\tstd::cerr ")) | ||
| 719 | (substitute* "VTKPrimitives.cpp" | ||
| 720 | (("#include \"VTKPrimitives.h\"") | ||
| 721 | "#include <iostream>\n#include \"VTKPrimitives.h\"") | ||
| 722 | (("\tcerr ") | ||
| 723 | "\tstd::cerr ") | ||
| 724 | (("\tcout ") | ||
| 725 | "\tstd::cout ")) | ||
| 726 | (substitute* "QVTKStructure.cpp" | ||
| 727 | (("#include \"QVTKStructure.h\"") | ||
| 728 | "#include <iostream>\n#include \"QVTKStructure.h\"") | ||
| 729 | (("\tcerr ") | ||
| 730 | "\tstd::cerr ") | ||
| 731 | (("\tcout ") | ||
| 732 | "\tstd::cout "))))))) | ||
| 733 | (inputs (list boost | ||
| 734 | cgal | ||
| 735 | csxcad | ||
| 736 | eigen | ||
| 737 | freetype | ||
| 738 | gmp | ||
| 739 | libjpeg-turbo | ||
| 740 | libpng | ||
| 741 | libtiff | ||
| 742 | lz4 | ||
| 743 | openmpi | ||
| 744 | qt5compat | ||
| 745 | tinyxml | ||
| 746 | vtk)) | ||
| 747 | (home-page "https://github.com/thliebig/QCSXCAD") | ||
| 748 | (synopsis "GUI library for @code{csxcad}") | ||
| 749 | (description | ||
| 750 | "GUI library for @code{csxcad} --- a library for describing geometrical | ||
| 751 | objects and their properties. This library is used in @code{appcsxcad} | ||
| 752 | which provides a standalone graphical frontend to @{csxcad}.") | ||
| 753 | (license license:lgpl3+))) | ||
| 754 | |||
| 755 | (define-public appcsxcad | ||
| 756 | (package | ||
| 757 | (name "appcsxcad") | ||
| 758 | (version "0.2.3") | ||
| 759 | (source | ||
| 760 | (origin | ||
| 761 | (method git-fetch) | ||
| 762 | (uri (git-reference | ||
| 763 | (url "https://github.com/thliebig/AppCSXCAD") | ||
| 764 | (commit (string-append "v" version)))) | ||
| 765 | (file-name (git-file-name name version)) | ||
| 766 | (sha256 | ||
| 767 | (base32 "145awcsg4vl2xmrh5yf9fcasmghrai3x6ivgdxmrm1w3v9gyaccf")))) | ||
| 768 | (build-system qt-build-system) | ||
| 769 | (arguments | ||
| 770 | (list | ||
| 771 | #:qtbase qtbase ;for Qt 6 | ||
| 772 | #:tests? #f)) ;No tests. | ||
| 773 | (inputs (list boost | ||
| 774 | cgal | ||
| 775 | csxcad | ||
| 776 | eigen | ||
| 777 | expat | ||
| 778 | freetype | ||
| 779 | gmp | ||
| 780 | hdf5 | ||
| 781 | libjpeg-turbo | ||
| 782 | libpng | ||
| 783 | libtiff | ||
| 784 | lz4 | ||
| 785 | openmpi | ||
| 786 | qcsxcad | ||
| 787 | tinyxml | ||
| 788 | vtk)) | ||
| 789 | (home-page "https://github.com/thliebig/AppCSXCAD") | ||
| 790 | (synopsis "Minimal GUI application for the @code{qcsxcad} library") | ||
| 791 | (description | ||
| 792 | "A minimal application for the @code{qcsxcad} library which is used to | ||
| 793 | describe geometrical objects and their physical and non-physical properties.") | ||
| 794 | (license license:gpl3))) | ||
| 795 | |||
| 796 | (define-public openems | ||
| 797 | (package | ||
| 798 | (name "openems") | ||
| 799 | (version "0.0.36") | ||
| 800 | (source | ||
| 801 | (origin | ||
| 802 | (method git-fetch) | ||
| 803 | (uri (git-reference | ||
| 804 | (url "https://github.com/thliebig/openEMS") | ||
| 805 | (commit (string-append "v" version)))) | ||
| 806 | (file-name (git-file-name name version)) | ||
| 807 | (sha256 | ||
| 808 | (base32 "1vxlknnji7kha0kabpjqh48i4r0rqlla9gcxhn69d0gcw76albmw")))) | ||
| 809 | (build-system cmake-build-system) | ||
| 810 | (arguments | ||
| 811 | (list | ||
| 812 | #:configure-flags | ||
| 813 | #~(list (string-append "-DCSXCAD_ROOT_DIR=" | ||
| 814 | #$(this-package-input "csxcad")) | ||
| 815 | (string-append "-DFPARSER_ROOT_DIR=" | ||
| 816 | #$(this-package-input "fparser"))) | ||
| 817 | #:phases | ||
| 818 | #~(modify-phases %standard-phases | ||
| 819 | (add-after 'unpack 'fix-cmake | ||
| 820 | (lambda _ | ||
| 821 | (substitute* "CMakeLists.txt" | ||
| 822 | ((" system\n") "") | ||
| 823 | (("find_package\\(HDF5 1.8 COMPONENTS C HL REQUIRED\\)") | ||
| 824 | "find_package(HDF5 1.8 REQUIRED)")))) | ||
| 825 | (delete 'check) | ||
| 826 | (add-after 'install 'check | ||
| 827 | (lambda* (#:key tests? source inputs #:allow-other-keys) | ||
| 828 | (when tests? | ||
| 829 | (let* ((testsuite (string-append source "/TESTSUITE")) | ||
| 830 | (testsuite-tmp "/tmp/openEMS-TESTSUITE")) | ||
| 831 | ;; Testsuite directory needs to be writable. | ||
| 832 | (copy-recursively testsuite testsuite-tmp) | ||
| 833 | (invoke "octave" "--no-gui" "--eval" | ||
| 834 | (string-append | ||
| 835 | "addpath('" #$output "/share/openEMS/matlab');" | ||
| 836 | "addpath('" | ||
| 837 | (search-input-directory inputs "share/CSXCAD/matlab") | ||
| 838 | "');" | ||
| 839 | ;; Work around bug in test script. | ||
| 840 | "addpath('" testsuite-tmp "/helperscripts');" | ||
| 841 | "run('" testsuite-tmp "/run_testsuite.m');"))))))))) | ||
| 842 | (native-inputs (list cmake-minimal octave pkg-config)) | ||
| 843 | (inputs (list boost | ||
| 844 | csxcad | ||
| 845 | fparser | ||
| 846 | hdf5 | ||
| 847 | openmpi | ||
| 848 | tinyxml | ||
| 849 | vtk)) | ||
| 850 | (home-page "https://www.openems.de") | ||
| 851 | (synopsis "Electromagnetic field solver") | ||
| 852 | (description "@code{OpenEMS} is an electromagnetic field solver using | ||
| 853 | the @acronym{FDTD, Finite-Difference Time-Domain} method.") | ||
| 854 | (license license:gpl3+))) | ||
| 855 | |||
| 856 | (define-public python-openems | ||
| 857 | (package | ||
| 858 | (inherit openems) | ||
| 859 | (name "python-openems") | ||
| 860 | (build-system pyproject-build-system) | ||
| 861 | (arguments | ||
| 862 | (list | ||
| 863 | #:tests? #f ; No tests. Check again on package upgrade. | ||
| 864 | #:phases | ||
| 865 | #~(modify-phases %standard-phases | ||
| 866 | (add-after 'unpack 'fix-sources | ||
| 867 | ;; Check if this is still needed on upgrade. | ||
| 868 | (lambda _ | ||
| 869 | (substitute* "python/openEMS/_nf2ff.pxd" | ||
| 870 | (("cimport cython.numeric") | ||
| 871 | "import cython | ||
| 872 | from cython cimport numeric")))) | ||
| 873 | (add-before 'build 'prepare-build | ||
| 874 | (lambda* _ | ||
| 875 | (chdir "./python") | ||
| 876 | (setenv "CSXCAD_INSTALL_PATH" | ||
| 877 | #$(this-package-input "csxcad")) | ||
| 878 | (setenv "OPENEMS_INSTALL_PATH" | ||
| 879 | #$(this-package-input "openems"))))))) | ||
| 880 | (native-inputs (list python-cython python-setuptools)) | ||
| 881 | (inputs (list csxcad | ||
| 882 | fparser | ||
| 883 | openems | ||
| 884 | python-csxcad | ||
| 885 | python-hdf5storage | ||
| 886 | python-numpy | ||
| 887 | tinyxml)) | ||
| 888 | (home-page "https://www.openems.de") | ||
| 889 | (synopsis "Python API for the electromagnetic field solver @code{OpenEMS}") | ||
| 890 | (description "@code{OpenEMS} is an electromagnetic field solver using | ||
| 891 | the @acronym{FDTD, Finite-Difference Time-Domain} method.") | ||
| 892 | (license license:gpl3+))) | ||
| 893 | |||
| 604 | (define-public fritzing | 894 | (define-public fritzing |
| 605 | (package | 895 | (package |
| 606 | (name "fritzing") | 896 | (name "fritzing") |
