;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
+;;; Copyright © 2019 Jovany Leandro G.C <bit4bit@riseup.net>
+;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
+;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix utils)
#:use-module ((srfi srfi-1) #:hide (zip))
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix build-system ant)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages fpga)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages graphics)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
+ #:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages linux) ;FIXME: for pcb
#:use-module (gnu packages m4)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages swig)
+ #:use-module (gnu packages tbb)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages tex)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public librecad
(define-public geda-gaf
(package
(name "geda-gaf")
- (version "1.9.2")
+ (version "1.10.0")
(source (origin
(method url-fetch)
(uri (string-append
- "http://ftp.geda-project.org/geda-gaf/unstable/v"
+ "http://ftp.geda-project.org/geda-gaf/stable/v"
(version-major+minor version) "/"
version "/geda-gaf-" version ".tar.gz"))
(sha256
(base32
- "14mk45pfz11v54q66gafw2l68n1p5ssvvjmdm8ffgc8x1w5ajfrz"))))
+ "06ivgarvwbzjz2wigxzzkm8iszldi2p6x3a6jnlczjyrz4csddsy"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(lambda _
(setenv "HOME" (getenv "TMPDIR"))
#t))
- ;; FIXME: These two tests fail for unknown reasons. They return "2"
- ;; when they should return "1".
(add-after 'unpack 'disable-failing-tests
(lambda _
- (substitute* "utils/tests/gxyrs/tests.list"
- (("^do_nothing.*") ""))
+ (substitute* "xorn/tests/Makefile.in"
+ (("-Werror") ""))
+ ;; This test returns its correct result in an unexpected order.
+ (substitute* "libgeda/scheme/unit-tests/t0402-config.scm"
+ (("\\(begin-config-test 'config-keys" m)
+ (string-append "#;" m)))
#t)))
#:configure-flags
(let ((pcb (assoc-ref %build-inputs "pcb")))
pcb "/share/pcb/pcblib-newlib:"
pcb "/share/pcb/newlib")))))
(inputs
- `(("glib" ,glib)
+ `(("gamin" ,gamin)
+ ("glib" ,glib)
("gtk" ,gtk+-2)
("guile" ,guile-2.0)
("desktop-file-utils" ,desktop-file-utils)
("shared-mime-info" ,shared-mime-info)
("m4" ,m4)
- ("pcb" ,pcb)))
+ ("pcb" ,pcb)
+ ("python" ,python-2))) ; for xorn
(native-inputs
`(("pkg-config" ,pkg-config)
("perl" ,perl))) ; for tests
(package
(inherit geda-gaf)
(name "lepton-eda")
- (version "1.9.5-20180820")
+ (version "1.9.9-20191003")
(home-page "https://github.com/lepton-eda/lepton-eda")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(sha256
(base32
- "1ayaccvw18zh4g7a4x5jf6yxkphi5xafb0hpc732g59qkgwfcmlr"))
+ "08cc3zfk84qq9mrkc9pp4r9jlavvm01wwy0yd9frql68w2zw6mip"))
(file-name (git-file-name name version))))
(native-inputs
`(("autoconf" ,autoconf)
("groff" ,groff)
("which" ,which)
,@(package-native-inputs geda-gaf)))
- ;; For now it's Guile 2.0, not 2.2.
+ (inputs
+ `(("glib" ,glib)
+ ("gtk" ,gtk+-2)
+ ("guile" ,guile-2.2)
+ ("desktop-file-utils" ,desktop-file-utils)
+ ("shared-mime-info" ,shared-mime-info)
+ ("m4" ,m4)
+ ("pcb" ,pcb)))
(arguments
(substitute-keyword-arguments (package-arguments geda-gaf)
((#:configure-flags flags ''())
;; never runs. See <https://bugs.debian.org/792687>.
`(cons "ac_cv_path_MSGMERGE=true" ,flags))
((#:phases phases '%standard-phases)
- `(modify-phases ,phases
+ `(modify-phases %standard-phases
(add-before 'bootstrap 'prepare
(lambda _
;; Some of the scripts there are invoked by autogen.sh.
,(string-take version
(string-index version #\-)))
(format port "#define PACKAGE_GIT_COMMIT \"cabbag3\"~%")))
+ #t))
+ (add-after 'install 'compile-scheme-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "make" "precompile")
+ (for-each (lambda (program)
+ (wrap-program program
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,(string-append (assoc-ref outputs "out")
+ "/share/lepton-eda/ccache/")))))
+ (find-files (string-append (assoc-ref outputs "out") "/bin")
+ ".*"))
#t))))))
(description
"Lepton EDA ia an @dfn{electronic design automation} (EDA) tool set
("imagemagick" ,imagemagick)
("gerbv" ,gerbv)
("ghostscript" ,ghostscript)
- ("xvfb" ,xorg-server)))
+ ("xvfb" ,xorg-server-for-tests)))
(home-page "http://pcb.geda-project.org/")
(synopsis "Design printed circuit board layouts")
(description
(define-public fritzing
(package
(name "fritzing")
- (version "0.9.2b")
+ (version "0.9.3b")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/fritzing/"
- "fritzing-app/archive/" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fritzing/fritzing-app.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "15rwjp4xdj9w1z9f709rz9p0k2mi9k9idma9hvzkj5j8p04mg7yd"))))
+ "0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
- (and (zero? (system* "tar"
- "-xvf" (assoc-ref inputs "fritzing-parts-db")
- "-C" "parts"))
- (zero? (system* "qmake"
- (string-append "PREFIX="
- (assoc-ref outputs "out"))
- "phoenix.pro"))))))))
+ (copy-recursively (assoc-ref inputs "fritzing-parts-db")
+ "parts")
+ ;; Make compatible with libgit2 > 0.24
+ (substitute* "src/version/partschecker.cpp"
+ (("error = git_remote_connect\\(remote, GIT_DIRECTION_FETCH, &callbacks\\)")
+ "error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, NULL)"))
+
+ ;; Use system libgit2 and boost.
+ (substitute* "phoenix.pro"
+ (("^LIBGIT2INCLUDE =.*")
+ (string-append "LIBGIT2INCLUDE="
+ (assoc-ref inputs "libgit2") "/include\n"))
+ (("^ LIBGIT2LIB =.*")
+ (string-append " LIBGIT2LIB="
+ (assoc-ref inputs "libgit2") "/lib\n")))
+ ;; This file checks for old versions of Boost, insisting on
+ ;; having us download the boost sources and placing them in the
+ ;; build directory.
+ (substitute* "pri/utils.pri"
+ (("error\\(") "message("))
+
+ (let ((out (assoc-ref outputs "out")))
+ (invoke "qmake"
+ (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib")
+ (string-append "PREFIX=" out)
+ "phoenix.pro")))))))
(inputs
`(("qtbase" ,qtbase)
("qtserialport" ,qtserialport)
("qtsvg" ,qtsvg)
+ ("libgit2" ,libgit2)
("boost" ,boost)
("zlib" ,zlib)
("fritzing-parts-db"
,(origin
- (method url-fetch)
- (uri (string-append "https://github.com/fritzing/"
- "fritzing-parts/archive/" version ".tar.gz"))
- (file-name (string-append "fritzing-parts-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fritzing/fritzing-parts.git")
+ (commit version)))
+ (file-name (git-file-name "fritzing-parts" version))
(sha256
(base32
- "0jqr8yjg7177f3pk1fcns584r0qavwpr280nggsi2ff3pwk5wpsz"))))))
+ "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"))))))
(home-page "http://fritzing.org")
(synopsis "Electronic circuit design")
(description
(define-public gerbv
(package
(name "gerbv")
- (version "2.6.2")
+ (version "2.7.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-"
version "/gerbv-" version ".tar.gz"))
(sha256
(base32
- "1cw8k6ni0q8kswad03kha86fk7n06vq8p0wzsfhcnalsdshrn17i"))))
+ "1d2k43k7i4yvbpi4sw1263a8d0q98z2n7aqhmpinpkih8a681vn5"))))
(build-system gnu-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+ ("pkg-config" ,pkg-config)))
(inputs
`(("cairo" ,cairo)
("gtk" ,gtk+-2)
as well as pick-place files.")
(license license:gpl2+)))
+(define-public translate2geda
+ ;; There has been no formal release yet.
+ (let ((commit "4c19e7eefa338cea8f1ee999ea8b37f8d0698169")
+ (revision "1"))
+ (package
+ (name "translate2geda")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/erichVK5/translate2geda.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1h062bbpw8nk0jamkya1k4lsgaia796jyviiz2gkdi6k1bxhwgpa"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f ; there are no tests
+ #:jar-name "translate2geda.jar"
+ #:source-dir "."
+ #:main-class "translate2geda"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-bin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (wrapper (string-append bin "/translate2geda")))
+ (mkdir-p bin)
+ (with-output-to-file wrapper
+ (lambda _
+ (format #t "#!/bin/sh~%exec ~a -jar ~a/share/java/translate2geda.jar"
+ (which "java") out)))
+ (chmod wrapper #o555))
+ #t)))))
+ (home-page "https://github.com/erichVK5/translate2geda")
+ (synopsis "Utility for converting symbol and footprint formats to gEDA")
+ (description
+ "This package provides a utility for converting Kicad (@file{.mod},
+@file{.lib}), Eagle (@file{.lbr}), gerber (@file{.gbr}, etc..),
+BXL (@file{.bxl}), IBIS (@file{.ibs}), symdef, LT-Spice (@file{.asc}),
+QUCS (@file{.sch}), and BSDL (@file{.bsd}) symbols and footprints and EggBot
+fonts to gEDA.")
+ (license license:gpl2+))))
+
(define-public libfive
- (let ((commit "9d857d1923abecb0e5935b9287d22661f6efaac5")
- (revision "2"))
+ (let ((commit "6e39254e57c179459bb929df49ae96a6017a0ed6")
+ (revision "3"))
(package
(name "libfive")
(version (git-version "0" revision commit))
(commit commit)))
(sha256
(base32
- "1r40kyx30wz31cwwlfvfh7fgqkxq3n8dxhswpi9qpf4r5h3l8wsn"))
+ "0ryv2hcbrwqc087w7rrs4a2irkcpmqync00g4dh8n7jn10w2jkim"))
(file-name (git-file-name name version))
(snippet
;; Remove bundled catch since we provide our own.
(add-after 'unpack 'remove-native-compilation
(lambda _
(substitute* "CMakeLists.txt" (("-march=native") ""))
+ #t))
+ (add-after 'unpack 'find-catch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-append (assoc-ref inputs "catch")
+ "/include/catch"))
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("boost" ,boost)
- ("catch" ,catch-framework)
+ ("catch" ,catch-framework2)
("libpng" ,libpng)
("qtbase" ,qtbase)
("eigen" ,eigen)
function calls into the geometry kernel: everything is visible to the user.
Even fundamental, primitive shapes are represented as code in the user-level
language.")
- (license (list license:lgpl2.1+ ;library
+ (license (list license:mpl2.0 ;library
license:gpl2+))))) ;Guile bindings and GUI
(define-public ao
(define-public kicad
(package
(name "kicad")
- (version "5.0.0")
+ (version "5.1.5")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.xz"))
(uri (string-append
- "https://launchpad.net/kicad/" (version-major+minor version)
- "/" version "/+download/" name "-" version ".tar.xz"))
+ "https://launchpad.net/kicad/" (version-major version)
+ ".0/" version "/+download/kicad-" version ".tar.xz"))
(sha256
- (base32 "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p"))))
+ (base32 "0x3417f2pa7p65s9f7l49rqbnrzy8gz6i0n07mlbxqbnm0fmlql0"))))
(build-system cmake-build-system)
(arguments
`(#:out-of-source? #t
#:tests? #f ; no tests
#:build-type "Release"
#:configure-flags
- (list "-DKICAD_STABLE_VERSION=ON"
- "-DKICAD_REPO_NAME=stable"
- "-DKICAD_SKIP_BOOST=ON"; Use our system's boost library.
- "-DKICAD_SCRIPTING=ON"
- "-DKICAD_SCRIPTING_MODULES=ON"
- "-DKICAD_SCRIPTING_WXPYTHON=ON"
- ;; Has to be set explicitely, as we don't have the wxPython
- ;; headers in the wxwidgets store item, but in wxPython.
- (string-append "-DCMAKE_CXX_FLAGS=-I"
- (assoc-ref %build-inputs "wxpython")
- "/include/wx-"
- ,(version-major+minor
- (package-version python2-wxpython)))
- "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
- "-DKICAD_SPICE=TRUE"
- ;; TODO: Enable this when CA certs are working with curl.
- "-DBUILD_GITHUB_PLUGIN=OFF")
+ (list "-DKICAD_SCRIPTING_PYTHON3=ON"
+ "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
+ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'adjust-boost-include
- (lambda _
- ;; The location of this header changed in Boost 1.66.
- (substitute* "3d-viewer/3d_cache/3d_cache.cpp"
- (("boost/uuid/sha1\\.hpp")
- "boost/uuid/detail/sha1.hpp"))
- #t))
(add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
("mesa" ,mesa)
("opencascade-oce" ,opencascade-oce)
("openssl" ,openssl)
- ("python" ,python-2)
- ("wxwidgets" ,wxwidgets-gtk2)
- ("wxpython" ,python2-wxpython)))
- (home-page "http://kicad-pcb.org/")
+ ("python" ,python)
+ ("wxwidgets" ,wxwidgets)
+ ("wxpython" ,python-wxpython)))
+ (home-page "https://kicad-pcb.org/")
(synopsis "Electronics Design Automation Suite")
(description "Kicad is a program for the formation of printed circuit
boards and electrical circuits. The software has a number of programs that
(package
(name "kicad-library")
(version version)
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://downloads.kicad-pcb.org/libraries/kicad-library-"
- version ".tar.gz"))
- (sha256
- (base32
- "1azb7v1y3l6j329r9gg7f4zlg0wz8nh4s4i5i0l9s4yh9r6i9zmv"))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://kicad-downloads.s3.cern.ch/libraries/kicad-library-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1azb7v1y3l6j329r9gg7f4zlg0wz8nh4s4i5i0l9s4yh9r6i9zmv"))))
(build-system cmake-build-system)
(arguments
`(#:out-of-source? #t
- #:tests? #f ; no tests
+ #:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-footprints ; from footprints tarball
(fp-lib-table (string-append template-dir "/fp-lib-table")))
(delete-file fp-lib-table)
(copy-file (string-append fp-lib-table ".for-pretty")
- fp-lib-table))
+ fp-lib-table))
#t)))))
(native-search-paths
(list (search-path-specification
- (variable "KISYSMOD") ; footprint path
+ (variable "KISYSMOD") ; footprint path
(files '("share/kicad/modules")))
(search-path-specification
- (variable "KISYS3DMOD") ; 3D model path
+ (variable "KISYS3DMOD") ; 3D model path
(files '("share/kicad/modules/packages3d")))))
;; Kicad distributes footprints in a separate tarball.
(native-inputs
(sha256
(base32
"08qrz5zzsb5127jlnv24j0sgiryd5nqwg3lfnwi8j9a25agqk13j"))))))
- (home-page "http://kicad-pcb.org/")
+ (home-page "https://kicad-pcb.org/")
(synopsis "Libraries for kicad")
(description "This package provides Kicad component, footprint and 3D
render model libraries.")
(define-public kicad-symbols
(package
(name "kicad-symbols")
- (version "5.0.1")
+ (version "5.1.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KiCad/kicad-symbols.git")
(commit version)))
- (file-name (string-append "kicad-symbols-" version "-checkout"))
+ (file-name (git-file-name name version))
(sha256
(base32
- "18z5vpdq7hy2mpvm5vz1dz3ra3a5iybavvlzi8q2bmmdb6gsvf64"))))
+ "048b07ffsaav1ssrchw2p870lvb4rsyb5vnniy670k7q9p16qq6h"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f)) ; No tests exist
- (home-page "http://kicad-pcb.org/")
+ `(#:tests? #f)) ; no tests exist
+ (home-page "https://kicad-pcb.org/")
(synopsis "Official KiCad schematic symbol libraries for KiCad 5")
(description "This package contains the official KiCad schematic symbol
libraries for KiCad 5.")
- ;; TODO: Exception: "To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material', then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided as part of the 'Licensed Material'."
+ ;; TODO: Exception: "To the extent that the creation of electronic designs
+ ;; that use 'Licensed Material' can be considered to be 'Adapted Material',
+ ;; then the copyright holder waives article 3 of the license with respect to
+ ;; these designs and any generated files which use data provided as part of
+ ;; the 'Licensed Material'."
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
(license license:cc-by-sa4.0)))
"0w1n4d249vlpda0hi6z1v13qp21vlbp3ykn0m8qg4rd5132j7fg1"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
+ `(#:configure-flags '("--enable-shared")
+ #:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-tests
(lambda _
(define-public guile-libctl
(package
(name "guile-libctl")
- (version "3.2.2")
+ (version "4.2.0")
(source (origin
(method url-fetch)
(uri
(string-append
- "http://ab-initio.mit.edu/libctl/libctl-"
- version ".tar.gz"))
+ "https://github.com/NanoComp/libctl/releases/download/v"
+ version "/libctl-" version ".tar.gz"))
(sha256
(base32
- "1g7gqybq20jhdnw5vg18bgbj9jz0408gfmjvs8b4xs30pic8pgca"))))
+ "0x8r56lpfq83kfbq28vr25icl19xpfd6fjrxzcpdmv30l9pash83"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--enable-shared")))
(native-inputs
`(("fortran" ,gfortran)))
(inputs
(define-public mpb
(package
(name "mpb")
- (version "1.5")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri
(string-append
- "http://ab-initio.mit.edu/mpb/mpb-"
- version ".tar.gz"))
+ "https://github.com/NanoComp/mpb/releases/download/v"
+ version "/mpb-" version ".tar.gz"))
(sha256
(base32
- "1mqb2d8jq957nksayjygq58iy8i42vjryzg9iy5fpfay31wzxsix"))))
+ "1jgrb7dd6qs6j6y1gnxmdgrh79l2bvqa6nk60a4pw1annsks4brd"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "--with-libctl="
(assoc-ref %build-inputs "libctl")
- "/share/libctl"))))
+ "/share/libctl")
+ "--enable-shared")))
(native-inputs
`(("fortran" ,gfortran)
("pkg-config" ,pkg-config)
(define-public meep
(package
(name "meep")
- (version "1.3")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri
(string-append
- "http://ab-initio.mit.edu/meep/meep-"
- version ".tar.gz"))
+ "https://github.com/NanoComp/meep/releases/download/v"
+ version "/meep-" version ".tar.gz"))
(sha256
(base32
- "0f6lbw2hrksg7xscwdqs78jc9nmzx9fs8j0hz1y4i8qknkqiyk2n"))))
+ "14zyxmm3p80j5fz5b89sl7hgkgcisqjny5hjh4pi274ziqjqz8bm"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(inputs
`(("fftw" ,fftw)
("gsl" ,gsl)
- ("guile" ,guile-2.0) ; doesn't build with guile-2.2
+ ("guile" ,guile-2.2)
("harminv" ,harminv)
("hdf5" ,hdf5)
("lapack" ,lapack)
(name "capstone")
(version "3.0.5")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/aquynh/capstone/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aquynh/capstone")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1wbd1g3r32ni6zd9vwrq3kn7fdp9y8qwn9zllrrbk8n5wyaxcgci"))))
+ "0dgf82kxj4rs45d6s8sr984c38sll1n5scpypjlyh21gh2yl4qfw"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
(define-public radare2
(package
(name "radare2")
- (version "2.5.0")
+ (version "3.5.1")
(source (origin
(method url-fetch)
- (uri (string-append "http://radare.mikelloc.com/get/" version "/"
- name "-" version ".tar.gz"))
+ (uri (string-append "https://radare.mikelloc.com/get/" version "/"
+ "radare2-" version ".tar.gz"))
(sha256
(base32
- "17h4ba5qqahfi8mi4x2dcvq87cqpir5v2dlaqbvmay6vby4zh4v7"))
+ "174x5545fw2nyf000gd46hi7rx2bn3bw5bsnvizn9yi99pn7m4mw"))
(modules '((guix build utils)))
(snippet
- '(begin
+ '(begin
(substitute* "libr/asm/p/Makefile"
(("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
(substitute* "libr/parse/p/Makefile"
#t))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f; tests require git and network access
+ '(#:tests? #f ; tests require git and network access
#:phases
(modify-phases %standard-phases
(add-before 'configure 'mklibdir
`(#:tests? #f
#:configure-flags
(list
- "CXXFLAGS=-O3 -std=c++11"
+ "CXXFLAGS=-O3"
(string-append "ARCHDIR="
(assoc-ref %build-inputs "trilinos")))))
(native-inputs
- `(("bison" ,bison)
+ `(("bison" ,bison-3.0) ;'configure' fails with Bison 3.4
("flex" ,flex)
("fortran" ,gfortran)))
(inputs
(arguments
`(,@(substitute-keyword-arguments (package-arguments xyce-serial)
((#:configure-flags flags)
- `(list "CXXFLAGS=-O3 -std=c++11"
+ `(list "CXXFLAGS=-O3"
"CXX=mpiCC"
"CC=mpicc"
"F77=mpif77"
("libtool" ,libtool)))
(native-inputs
`(("pkg-config-native" ,pkg-config)
+ ("gcc" ,gcc-5)
("libtool-native" ,libtool)))
(home-page "http://www.freehdl.seul.org/")
(synopsis "VHDL simulator")
("python" ,python-2) ; for tests
("matplotlib" ,python2-matplotlib) ; for tests
("numpy" ,python2-numpy) ; for tests
- ("xorg-server" ,xorg-server))) ; for tests
+ ("xorg-server" ,xorg-server-for-tests))) ; for tests
(inputs
`(("adms" ,adms)
("asco" ,asco)
(define-public qucs-s
(package
(name "qucs-s")
- (version "0.0.20")
+ (version "0.0.21")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ra3xdh/qucs_s/archive/"
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "01dizf4rjciqc8x7bmv3kbhdlz90bm6n9m9fz7dbzqcwvszcs1hx"))))
+ "12m1jwhb9qwvb141qzyskbxnw3wn1x22d02z4b4862p7xvccl5h7"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
(define-public librepcb
(package
(name "librepcb")
- (version "0.1.0")
+ (version "0.1.3")
(source
(origin
(method url-fetch)
- (uri (string-append "https://download.librepcb.org/releases/0.1.0/librepcb-"
- version "-source.zip"))
+ (uri (string-append "https://download.librepcb.org/releases/"
+ version "/librepcb-" version "-source.zip"))
(sha256
- (base32
- "0affvwwgs1j2wx6bb3zfa2jbfxpckklr8cka2nkswca0p82wd3dv"))))
+ (base32 "1ich849dsx2hmcwlwbry4mkg374n940l3hy6srh4qms2rm7vd7x0"))))
(build-system gnu-build-system)
(inputs
`(("qtbase" ,qtbase)
("zlib" ,zlib)))
(native-inputs
- `(("qttools" ,qttools) ; for lrelease
+ `(("qttools" ,qttools) ; for lrelease
("unzip" ,unzip)))
(arguments
`(#:phases
(uri (git-reference
(url "https://github.com/markwal/GPX.git")
(commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
"1yab269x8qyf7rd04vaxyqyjv4pzz9lp4sc4dwh927k23avr3rw5"))))
slicing software to x3g files for standalone 3D printing on common 3D
printers.")
(license license:gpl2+)))
+
+(define-public gnucap
+ (package
+ (name "gnucap")
+ (version "20171003")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://git.savannah.gnu.org/cgit/gnucap.git/snapshot/gnucap-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "16m09xa685qhj5fqq3bcgakrwnb74xhf5f7rpqkkf9fg8plzbb1g"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("readline" ,readline)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; Set correct rpath so that gnucap finds libgnucap.so.
+ (substitute* (list "apps/configure" "lib/configure"
+ "main/configure" "modelgen/configure")
+ (("LDFLAGS =")
+ (string-append "LDFLAGS = -Wl,-rpath=" out "/lib")))
+ ;; gnucap uses a hand-written configure script that expects the
+ ;; --prefix argument to be the first argument passed to it.
+ (invoke "./configure" (string-append "--prefix=" out)))))
+ (replace 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (libpath "../lib/O:../apps/O"))
+ (with-directory-excursion "tests"
+ ;; Make test return non-zero exit code when a test fails.
+ (substitute* "test"
+ (("/bin/sh") "/bin/sh -e")
+ (("\\|\\| echo \"\\*\\*\\*\\* \\$ii fails \\*\\*\\*\\*\"") ""))
+ ;; Fix expected plugin search path for test c_attach.1.gc
+ (substitute* "==out/c_attach.1.gc.out"
+ (("/usr/local/lib/gnucap")
+ (string-append libpath ":" out "/lib/gnucap")))
+ ;; Set library path so that gnucap can find libgnucap.so
+ ;; while running the tests.
+ (setenv "LD_LIBRARY_PATH" libpath)
+ (invoke "./test" "../main/O/gnucap" "" "test-output" "==out"))))))))
+ (home-page "https://www.gnu.org/software/gnucap/")
+ (synopsis "Mixed analog and digital circuit simulator")
+ (description "GNUcap is a circuit analysis package. It offers a general
+purpose circuit simulator and can perform DC and transient analyses, fourier
+analysis and AC analysis. The engine is designed to do true mixed-mode
+simulation.")
+ (license license:gpl3+)))
+
+(define-public cutter
+ (package
+ (name "cutter")
+ (version "1.8.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/radareorg/cutter")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "03f3cdckh51anx9gd1b0ndb2fg7061hqngvygf32ky29mm2m2lyv"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (radare2 (assoc-ref inputs "radare2")))
+ ;; fix pkg-config detection ./src/lib_radare2.pri:PREFIX=/usr/lib
+ ;; override `qmake PREFIX=`
+ (substitute* "./src/lib_radare2.pri"
+ (("PREFIX") "R2PREFIX")
+ (("R2PREFIX=/usr") (string-append "R2PREFIX=" radare2)))
+ (invoke "qmake"
+ (string-append "PREFIX=" out)
+ "./src/Cutter.pro")))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)
+ ("openssl" ,openssl)
+ ("radare2" ,radare2)))
+ (home-page "https://github.com/radareorg/cutter")
+ (synopsis "GUI for radare2 reverse engineering framework")
+ (description "Cutter is a GUI for radare2 reverse engineering framework.
+Its goal is making an advanced andcustomizable reverse-engineering platform
+while keeping the user experience at mind. Cutter is created by reverse
+engineers for reverse engineers.")
+ (license (list license:cc-by-sa3.0 ;the "Iconic" icon set
+ license:gpl3+)))) ;everything else
+
+(define-public lib3mf
+ (package
+ (name "lib3mf")
+ (version "1.8.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url "https://github.com/3MFConsortium/lib3mf.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "11wpk6n9ga2p57h1dcrp37w77mii0r7r6mlrgmykf7rvii1rzgqd"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("googletest-source" ,(package-source googletest))))
+ (inputs
+ `(("libuuid" ,util-linux "lib")))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-googletest
+ (lambda* (#:key inputs #:allow-other-keys)
+ (copy-recursively (assoc-ref inputs "googletest-source")
+ "UnitTests/googletest")
+ #t)))))
+ (synopsis "Implementation of the 3D Manufacturing Format (3MF) file standard")
+ (description
+ "Lib3MF is a C++ implementation of the 3D Manufacturing Format (3MF) file
+standard. It offers a way to integrate 3MF reading and writing capabilities, as
+well as conversion and validation tools for input and output data. The
+specification can be downloaded at @url{http://3mf.io/specification/}.")
+ (home-page "https://3mf.io/")
+ (license license:bsd-2)))
+
+(define-public openscad
+ (package
+ (name "openscad")
+ (version "2019.05")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://files.openscad.org/openscad-" version
+ ".src.tar.gz"))
+ (sha256
+ (base32
+ "0nbgk5q5pgnw53la0kccdcpz2f4xf6d6076rkn0q08z57hkc85ha"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("boost" ,boost)
+ ("cgal" ,cgal)
+ ("double-conversion" ,double-conversion)
+ ("eigen" ,eigen)
+ ("fontconfig" ,fontconfig)
+ ("glew" ,glew)
+ ("gmp" ,gmp)
+ ("harfbuzz" ,harfbuzz)
+ ("lib3mf" ,lib3mf)
+ ("libxml2" ,libxml2)
+ ("libzip" ,libzip)
+ ("mpfr" ,mpfr)
+ ("opencsg" ,opencsg)
+ ("qscintilla" ,qscintilla)
+ ("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)
+ ("which" ,which)
+ ;; the following are only needed for tests
+ ("imagemagick" ,imagemagick)
+ ("ps" ,procps)
+ ("python" ,python)
+ ("xvfb" ,xorg-server-for-tests)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "qmake"
+ (string-append "PREFIX=" (assoc-ref outputs "out")))
+ #t))
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "tests"
+ (invoke "cmake" ".")
+ (invoke "make")
+ (invoke "ctest"))
+ ;; strip python test files since lib dir ends up in out/share
+ (for-each delete-file
+ (find-files "libraries/MCAD" ".*\\.py"))
+ #t)))))
+ (synopsis "Script-based 3D modeling application")
+ (description
+ "OpenSCAD is a 3D Computer-aided Design (CAD) application. Unlike an
+interactive modeler, OpenSCAD generates 3D models from a script, giving you
+full programmatic control over your models.")
+ (home-page "https://www.openscad.org/")
+ (license license:gpl2+)))
+
+(define-public freecad
+ (package
+ (name "freecad")
+ (version "0.18.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FreeCAD/FreeCAD.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "170hk1kgrvsddrwykp24wyj0cha78zzmzbf50gn98x7ngqqs395s"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("graphviz" ,graphviz)
+ ("qttools" ,qttools)
+ ("pkg-config" ,pkg-config)
+ ("swig" ,swig)))
+ (inputs
+ `(("boost" ,boost)
+ ("coin3D" ,coin3D)
+ ("eigen" ,eigen)
+ ("freetype" ,freetype)
+ ("glew" ,glew)
+ ("hdf5" ,hdf5-1.10)
+ ("libarea" ,libarea)
+ ("libmedfile" ,libmedfile)
+ ("libspnav" ,libspnav)
+ ("libxi" ,libxi)
+ ("libxmu" ,libxmu)
+ ("openmpi" ,openmpi)
+ ("opencascade-occt" ,opencascade-occt)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-pyside-2" ,python-pyside-2)
+ ("python-pyside-2-tools" ,python-pyside-2-tools)
+ ("python-shiboken-2" ,python-shiboken-2)
+ ("python-wrapper" ,python-wrapper)
+ ("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)
+ ("qtx11extras" ,qtx11extras)
+ ("qtxmlpatterns" ,qtxmlpatterns)
+ ;; qtwebkit is optional. We remove it currently, because it takes
+ ;; much time to compile and substitutes are often unavailable
+ ;;("qtwebkit" ,qtwebkit)
+ ("tbb" ,tbb)
+ ("vtk" ,vtk)
+ ("xerces-c" ,xerces-c)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f
+ #:configure-flags
+ (list
+ "-DBUILD_QT5=ON"
+ (string-append "-DCMAKE_INSTALL_LIBDIR="
+ (assoc-ref %outputs "out") "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'restore-pythonpath
+ (lambda _
+ (substitute* "src/Main/MainGui.cpp"
+ (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))
+ #t))
+ (add-after 'install 'wrap-pythonpath
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/FreeCAD")
+ (list "PYTHONPATH"
+ 'prefix (list (getenv "PYTHONPATH")))))
+ #t)))))
+ (home-page "https://www.freecadweb.org/")
+ (synopsis "Your Own 3D Parametric Modeler")
+ (description
+ "FreeCAD is a general purpose feature-based, parametric 3D modeler for
+CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and
+product design but also fits a wider range of uses in engineering, such as
+architecture or other engineering specialties. It is 100% Open Source (LGPL2+
+license) and extremely modular, allowing for very advanced extension and
+customization.")
+ (license
+ (list
+ license:lgpl2.1+
+ license:lgpl2.0+
+ license:gpl3+
+ license:bsd-3))))
+
+(define-public libmedfile
+ (package
+ (name "libmedfile")
+ (version "4.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://files.salome-platform.org/Salome/other/med-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "017h9p0x533fm4gn6pwc8kmp72rvqmcn6vznx72nkkl2b05yjx54"))))
+ (build-system cmake-build-system)
+ (inputs `(("hdf5" ,hdf5-1.10)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'remove-test-output
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (delete-file-recursively
+ (string-append out "/bin/testc"))
+ #t))))))
+ (home-page "https://www.salome-platform.org")
+ (synopsis "Library to read and write MED files")
+ (description
+ "The purpose of the MED module is to provide a standard for storing and
+recovering computer data associated to numerical meshes and fields, and to
+facilitate the exchange between codes and solvers.
+
+The persistent data storage is based upon HDF format (like CGNS, a standard
+developed by Boeing and NASA in the area of Computational Fluid Dynamic).
+
+MED also provides structures to hold data on meshes and fields. These
+structures are exchanged between solvers, hide the communication level (CORBA
+or MPI), and offer persistence (read/write in .med files).
+
+The main benefit of a common exchange format is reduced complexity of code
+coupling. It also allows sharing such high level functionalities as
+computation of nodal connectivity of sub-elements (faces and edges),
+arithmetic operations on fields, entity location functionalities, and
+interpolation toolkit.")
+ (license license:gpl3+)))
+
+(define-public libarea
+ (let ((revision "1")
+ (commit "8f8bac811c10f1f01fda0d742a18591f61dd76ee"))
+ (package
+ (name "libarea")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url "https://github.com/Heeks/libarea.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0pvqz6cabxqdz5y26wnj6alkn8v5d7gkx0d3h8xmg4lvy9r3kh3g"))))
+ (build-system gnu-build-system)
+ (inputs `(("boost" ,boost)
+ ("python-wrapper" ,python-wrapper)))
+ (native-inputs
+ `(("cmake" ,cmake)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'cmake-configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (cmake (assoc-ref inputs "cmake")))
+ (mkdir-p "build")
+ (invoke "cmake"
+ (string-append "-DCMAKE_INSTALL_PREFIX=" out)))))
+ (delete 'configure))))
+ (home-page "https://github.com/Heeks/libarea")
+ (synopsis
+ "Library and python module for pocketing and profiling operations")
+ (description
+ "Area is a CAM-related software for pocketing operation.
+
+This project provides library and associated python-module to compute pocket
+operations.")
+ (license (list
+ license:bsd-3
+ license:gpl3+)))))
+
+(define-public libspnav
+ (package
+ (name "libspnav")
+ (version "0.2.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FreeSpacenav/libspnav.git")
+ (commit (string-append "libspnav-" version))))
+ (sha256
+ (base32
+ "098h1jhlj87axpza5zgy58prp0zn94wyrbch6x0s7q4mzh7dc8ba"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libx11" ,libx11)))
+ (arguments `(#:tests? #f))
+ (home-page "http://spacenav.sourceforge.net/")
+ (synopsis
+ "Library for communicating with spacenavd or 3dxsrv")
+ (description
+ "The libspnav library is provided as a replacement of the magellan
+library. It provides a cleaner, and more orthogonal interface. libspnav
+supports both the original X11 protocol for communicating with the driver, and
+the new alternative non-X protocol. Programs that choose to use the X11
+protocol, are automatically compatible with either the free spacenavd driver
+or the official 3dxserv, as if they were using the magellan SDK.
+
+Also, libspnav provides a magellan API wrapper on top of the new API. So, any
+applications that were using the magellan library, can switch to libspnav
+without any changes. And programmers that are familiar with the magellan API
+can continue using it with a free library without the restrictions of the
+official SDK.")
+ (license license:bsd-3)))