;;; Copyright © 2019 Jovany Leandro G.C <bit4bit@riseup.net>
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
+ #:use-module (guix svn-download)
#:use-module (guix monads)
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages dejagnu)
+ #:use-module (gnu packages digest)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages image)
#:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages linux) ;FIXME: for pcb
+ #:use-module (gnu packages lisp)
#:use-module (gnu packages m4)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages man)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages parallel)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages tls)
#:use-module (gnu packages tex)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
+ #:use-module (gnu packages openkinect)
#:use-module (gnu packages xorg))
(define-public librecad
(native-inputs
`(("pkg-config" ,pkg-config)
("which" ,which)))
- (home-page "http://librecad.org/")
+ (home-page "https://librecad.org/")
(synopsis "Computer-aided design (CAD) application")
(description
"LibreCAD is a 2D Computer-aided design (CAD) application for creating
("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)
("python" ,python-2))) ; for xorn
(native-inputs
`(("pkg-config" ,pkg-config)
+ ("desktop-file-utils" ,desktop-file-utils)
("perl" ,perl))) ; for tests
(home-page "http://geda-project.org/")
(synopsis "Schematic capture, netlister, symbols, symbol checker, and utils")
(package
(inherit geda-gaf)
(name "lepton-eda")
- (version "1.9.9-20191003")
+ (version "1.9.11-20200604")
(home-page "https://github.com/lepton-eda/lepton-eda")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(sha256
(base32
- "08cc3zfk84qq9mrkc9pp4r9jlavvm01wwy0yd9frql68w2zw6mip"))
+ "091y8h7wcr9smwhb1wf12sj27n5jrannbj3y6qq3q2gwiifiz8sd"))
(file-name (git-file-name name version))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
+ ("desktop-file-utils" ,desktop-file-utils)
("libtool" ,libtool)
- ("gettext" ,gnu-gettext)
+ ("gettext" ,gettext-minimal)
("texinfo" ,texinfo)
("groff" ,groff)
("which" ,which)
`(("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)))
("gd" ,gd)
("gtk" ,gtk+-2)
("gtkglext" ,gtkglext)
- ("desktop-file-utils" ,desktop-file-utils)
("shared-mime-info" ,shared-mime-info)
("tk" ,tk)))
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)
("bison" ,bison)
+ ("desktop-file-utils" ,desktop-file-utils)
("flex" ,flex)
;; For tests
("imagemagick" ,imagemagick)
(define-public pcb-rnd
(package (inherit pcb)
(name "pcb-rnd")
- (version "1.1.3")
+ (version "2.2.3")
(source (origin
(method url-fetch)
(uri (string-append "http://repo.hu/projects/pcb-rnd/releases/"
"pcb-rnd-" version ".tar.gz"))
(sha256
(base32
- "0pycynla60b96jkb6fh6f4sx663pqbzjwnixhw5ym8sym2absm09"))))
+ "0j650498d87b4xsggzc0xlk73k0hhj43wfy45qz2lcn0xc3bks1m"))))
(arguments
`(#:tests? #f ; no check target
#:phases
(copy-recursively "doc" doc)
(copy-recursively "examples" examples)
#t))))))
- (home-page "http://www.rle.mit.edu/cpg/research_codes.htm")
+ (home-page "https://www.rle.mit.edu/cpg/research_codes.htm")
(synopsis "Multipole-accelerated capacitance extraction program")
(description
"Fastcap is a capacitance extraction program based on a
(copy-recursively "doc" doc)
(copy-recursively "examples" examples)
#t))))))
- (home-page "http://www.rle.mit.edu/cpg/research_codes.htm")
+ (home-page "https://www.rle.mit.edu/cpg/research_codes.htm")
(synopsis "Multipole-accelerated inductance analysis program")
(description
"Fasthenry is an inductance extraction program based on a
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/fritzing/fritzing-app.git")
+ (url "https://github.com/fritzing/fritzing-app")
(commit version)))
(file-name (git-file-name name version))
(sha256
,(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/fritzing/fritzing-parts.git")
+ (url "https://github.com/fritzing/fritzing-parts")
(commit version)))
(file-name (git-file-name "fritzing-parts" version))
(sha256
(base32
"1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"))))))
- (home-page "http://fritzing.org")
+ (home-page "https://fritzing.org")
(synopsis "Electronic circuit design")
(description
"The Fritzing application is @dfn{Electronic Design Automation} (EDA)
(build-system gnu-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+ ("desktop-file-utils" ,desktop-file-utils)
("pkg-config" ,pkg-config)))
(inputs
`(("cairo" ,cairo)
- ("gtk" ,gtk+-2)
- ("desktop-file-utils" ,desktop-file-utils)))
+ ("gtk" ,gtk+-2)))
(home-page "http://gerbv.geda-project.org/")
(synopsis "Gerber file viewer")
(description
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/erichVK5/translate2geda.git")
+ (url "https://github.com/erichVK5/translate2geda")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(sha256
(base32
"0ryv2hcbrwqc087w7rrs4a2irkcpmqync00g4dh8n7jn10w2jkim"))
- (file-name (git-file-name name version))
- (snippet
- ;; Remove bundled catch since we provide our own.
- '(begin
- (delete-file "libfive/test/catch.hpp")
- #t))))
+ (file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:test-target "libfive-test"
(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-framework2)
("libpng" ,libpng)
("qtbase" ,qtbase)
("eigen" ,eigen)
(license (list license:mpl2.0 ;library
license:gpl2+))))) ;Guile bindings and GUI
-(define-public ao
- (deprecated-package "ao-cad" libfive))
-
-(define-public kicad
+(define-public inspekt3d
+ (let ((commit "703f52ccbfedad2bf5240bf8183d1b573c9d54ef")
+ (revision "0"))
(package
- (name "kicad")
- (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 version)
- ".0/" version "/+download/kicad-" version ".tar.xz"))
- (sha256
- (base32 "0x3417f2pa7p65s9f7l49rqbnrzy8gz6i0n07mlbxqbnm0fmlql0"))))
- (build-system cmake-build-system)
+ (name "inspekt3d")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/kavalogic-inc/inspekt3d.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lan6930g5a9z4ack9jj0zdd0mb2s6q2xzpiwcjdc3pvl9b1nbw4"))))
+ (build-system gnu-build-system)
(arguments
- `(#:out-of-source? #t
- #:tests? #f ; no tests
- #:build-type "Release"
- #:configure-flags
- (list "-DKICAD_SCRIPTING_PYTHON3=ON"
- "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
- "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
- #:phases
+ `(#:phases
(modify-phases %standard-phases
- (add-after 'install 'wrap-program
- ;; Ensure correct Python at runtime.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (python (assoc-ref inputs "python"))
- (file (string-append out "/bin/kicad"))
- (path (string-append
- out
- "/lib/python"
- ,(version-major+minor
- (package-version python))
- "/site-packages:"
- (getenv "PYTHONPATH"))))
- (wrap-program file
- `("PYTHONPATH" ":" prefix (,path))
- `("PATH" ":" prefix
- (,(string-append python "/bin:")))))
+ (add-after 'unpack 'patch-libfive-guile-location
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "inspekt3d/library.scm"
+ (("\"libfive-guile")
+ (string-append "\""
+ (assoc-ref inputs "libfive")
+ "/lib/libfive-guile")))
#t)))))
(native-inputs
- `(("boost" ,boost)
- ("gettext" ,gnu-gettext)
- ("pkg-config" ,pkg-config)
- ("swig" ,swig)
- ("zlib" ,zlib)))
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
(inputs
- `(("cairo" ,cairo)
- ("curl" ,curl)
- ("desktop-file-utils" ,desktop-file-utils)
- ("glew" ,glew)
- ("glm" ,glm)
- ("hicolor-icon-theme" ,hicolor-icon-theme)
- ("libngspice" ,libngspice)
- ("libsm" ,libsm)
- ("mesa" ,mesa)
- ("opencascade-oce" ,opencascade-oce)
- ("openssl" ,openssl)
- ("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
+ `(("mesa" ,mesa)
+ ("guile" ,guile-2.2)))
+ (propagated-inputs
+ `(("libfive" ,libfive)
+ ("guile-opengl" ,guile-opengl)))
+ (home-page "https://gitlab.com/kavalogic-inc/inspekt3d/")
+ (synopsis "Lightweight 3D viewer for Libfive written in Guile Scheme")
+ (description
+ "Inspekt3d is a lightweight 3D viewer for Libfive written in Guile Scheme.
+The viewer can be used interactively with a REPL (for example Geiser in
+Emacs).")
+ (license license:gpl3+))))
+
+;; TODO Add doc https://gitlab.com/kicad/services/kicad-doc/-/tree/master
+(define-public kicad
+ (package
+ (name "kicad")
+ (version "5.1.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/kicad/code/kicad.git")
+ (commit version)))
+ (sha256
+ (base32 "1pa3z0h0679jmgxlzc833h6q85b5paxdp69kf2h93vkaryj58622"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:out-of-source? #t
+ #:tests? #f ; no tests
+ #:build-type "Release"
+ #:configure-flags
+ (list "-DKICAD_SCRIPTING_PYTHON3=ON"
+ "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
+ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-translations
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (copy-recursively (assoc-ref inputs "kicad-i18n")
+ (assoc-ref outputs "out"))
+ #t))
+ (add-after 'install 'wrap-program
+ ;; Ensure correct Python at runtime.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (python (assoc-ref inputs "python"))
+ (file (string-append out "/bin/kicad"))
+ (path (string-append
+ out
+ "/lib/python"
+ ,(version-major+minor
+ (package-version python))
+ "/site-packages:"
+ (getenv "PYTHONPATH"))))
+ (wrap-program file
+ `("PYTHONPATH" ":" prefix (,path))
+ `("PATH" ":" prefix
+ (,(string-append python "/bin:")))))
+ #t)))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "KICAD_TEMPLATE_DIR")
+ (files '("share/kicad/template")))
+ (search-path-specification
+ (variable "KICAD_SYMBOL_DIR") ; symbol path
+ (files '("share/kicad/library")))
+ (search-path-specification
+ (variable "KISYSMOD") ; footprint path
+ (files '("share/kicad/modules")))
+ (search-path-specification
+ (variable "KISYS3DMOD") ; 3D model path
+ (files '("share/kicad/modules/packages3d")))))
+ (native-inputs
+ `(("boost" ,boost)
+ ("desktop-file-utils" ,desktop-file-utils)
+ ("gettext" ,gettext-minimal)
+ ("kicad-i18n" ,kicad-i18n)
+ ("pkg-config" ,pkg-config)
+ ("swig" ,swig)
+ ("zlib" ,zlib)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("curl" ,curl)
+ ("glew" ,glew)
+ ("glm" ,glm)
+ ("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("libngspice" ,libngspice)
+ ("libsm" ,libsm)
+ ("mesa" ,mesa)
+ ("opencascade-oce" ,opencascade-oce)
+ ("openssl" ,openssl)
+ ("python" ,python-wrapper)
+ ("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
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.")
- (license license:gpl3+)))
+ (license license:gpl3+)))
-(define-public kicad-library
- (let ((version "4.0.7"))
- (package
- (name "kicad-library")
- (version version)
- (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
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-footprints ; from footprints tarball
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (invoke "tar" "xvf"
- (assoc-ref inputs "kicad-footprints")
- "-C" (string-append (assoc-ref outputs "out")
- "/share/kicad/modules")
- "--strip-components=1")))
- ;; We change the default global footprint file, which is generated if
- ;; it doesn't exist in user's home directory, from the one using the
- ;; github plugin, to the one using the KISYSMOD environment path.
- (add-after 'install-footprints 'use-pretty-footprint-table
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (template-dir (string-append out "/share/kicad/template"))
- (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))
- #t)))))
- (native-search-paths
- (list (search-path-specification
- (variable "KISYSMOD") ; footprint path
- (files '("share/kicad/modules")))
- (search-path-specification
- (variable "KISYS3DMOD") ; 3D model path
- (files '("share/kicad/modules/packages3d")))))
- ;; Kicad distributes footprints in a separate tarball.
- (native-inputs
- `(("kicad-footprints"
- ,(origin
- (method url-fetch)
- (uri (string-append
- "http://downloads.kicad-pcb.org/libraries/kicad-footprints-"
- version ".tar.gz"))
- (sha256
- (base32
- "08qrz5zzsb5127jlnv24j0sgiryd5nqwg3lfnwi8j9a25agqk13j"))))))
- (home-page "https://kicad-pcb.org/")
- (synopsis "Libraries for kicad")
- (description "This package provides Kicad component, footprint and 3D
-render model libraries.")
- (license license:lgpl2.0+))))
+(define kicad-i18n
+ (package
+ (name "kicad-i18n")
+ (version (package-version kicad))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/kicad/code/kicad-i18n.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0qryi8xjm23ka363zfl7bbga0v5c31fr3d4nyxp3m168vkv9zhha"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'build)
+ (delete 'check))))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)))
+ (home-page (package-home-page kicad))
+ (synopsis "KiCad GUI translations")
+ (description "This package contains the po files that are used for the GUI
+translations for KiCad.")
+ (license license:gpl3+)))
+
+(define-public kicad-i18l
+ (deprecated-package "kicad-i18l" kicad-i18n))
(define-public kicad-symbols
(package
(name "kicad-symbols")
- (version "5.1.5")
+ (version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/KiCad/kicad-symbols.git")
+ (url "https://github.com/KiCad/kicad-symbols")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "048b07ffsaav1ssrchw2p870lvb4rsyb5vnniy670k7q9p16qq6h"))))
+ "12w3rdy085drlikkpb27n9ni7cyg9l0pqy7hnr86cxjcw3l5wcx6"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests exist
- (home-page "https://kicad-pcb.org/")
- (synopsis "Official KiCad schematic symbol libraries for KiCad 5")
+ (home-page (package-home-page kicad))
+ (synopsis "Official KiCad schematic symbol libraries")
(description "This package contains the official KiCad schematic symbol
-libraries for KiCad 5.")
+libraries.")
;; 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
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
(license license:cc-by-sa4.0)))
+(define-public kicad-footprints
+ (package
+ (inherit kicad-symbols)
+ (name "kicad-footprints")
+ (version (package-version kicad))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KiCad/kicad-footprints")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1kmf91a5mmvj9izrv40mkaw1w36yjgn8daczd9rq2wlmd0rdp1zx"))))
+ (synopsis "Official KiCad footprint libraries")
+ (description "This package contains the official KiCad footprint libraries.")))
+
+(define-public kicad-packages3d
+ (package
+ (inherit kicad-symbols)
+ (name "kicad-packages3d")
+ (version (package-version kicad))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KiCad/kicad-packages3d")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0b9jglf77fy0n0r8xs4yqkv6zvipyfvp0z5dnqlzp32csy5aqpi1"))))
+ (synopsis "Official KiCad 3D model libraries")
+ (description "This package contains the official KiCad 3D model libraries.")))
+
+(define-public kicad-templates
+ (package
+ (inherit kicad-symbols)
+ (name "kicad-templates")
+ (version (package-version kicad))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KiCad/kicad-templates")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1hppcsrkn4dk6ggby6ckh0q65qxkywrbyxa4lwpaf7pxjyv498xg"))))
+ (synopsis "Official KiCad project and worksheet templates")
+ (description "This package contains the official KiCad project and
+worksheet templates.")))
+
(define-public linsmith
(package
(name "linsmith")
(define-public volk
(package
(name "volk")
- (version "1.3")
+ (version "2.3.0")
(source
(origin
(method url-fetch)
- (uri (string-append "http://libvolk.org/releases/volk-"
+ (uri (string-append "https://www.libvolk.org/releases/volk-"
version ".tar.gz"))
(sha256
- (base32
- "1bz3ywc6y5wmz3i8p4z2wbzhns8bc0ywdkl9qnxpcvfcscarbdlh"))))
+ (base32 "1pjxz3piwy49njj5y2zk437prwkv9lfs5g48577jj3kcsg766vi3"))))
(build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-pythonpath
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (python (assoc-ref inputs "python"))
+ (file (string-append out "/bin/volk_modtool"))
+ (path (string-append
+ out
+ "/lib/python"
+ ,(version-major+minor
+ (package-version python))
+ "/site-packages:"
+ (getenv "PYTHONPATH"))))
+ (wrap-program file
+ `("PYTHONPATH" ":" prefix (,path))
+ `("PATH" ":" prefix
+ (,(string-append python "/bin:")))))
+ #t)))))
(inputs
- `(("boost" ,boost)))
- (native-inputs
- `(("python-2" ,python-2)
- ("python2-cheetah" ,python2-cheetah)))
- (home-page "http://libvolk.org/")
+ `(("boost" ,boost)
+ ("python" ,python-wrapper)
+ ("python-mako" ,python-mako)))
+ (home-page "https://www.libvolk.org/")
(synopsis "Vector-Optimized Library of Kernels")
(description
- "@code{volk} contains procedures with machine-specific optimizations
-for mathematical functions. It also provides an machine-independent
-interface to select the best such procedures to use on a given system.")
+ "@acronym{VOLK, Vector-Optimized Library of Kernels} contains procedures
+with machine-specific optimizations for mathematical functions. It also
+provides a machine-independent interface to select the best such procedures to
+use on a given system.")
+ (license license:gpl3+)))
+
+(define-public libredwg
+ (package
+ (name "libredwg")
+ (version "0.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/libredwg/libredwg-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "1vd7ii32k5447z7k4w9s005hv1ffpj6dyf1w40x6c53qksrblny2"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--disable-bindings")))
+ (native-inputs
+ `(("libxml2" ,libxml2)
+ ("parallel" ,parallel)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python)
+ ("python-libxml2" ,python-libxml2)))
+ (inputs
+ `(("pcre2" ,pcre2)))
+ (home-page "https://www.gnu.org/software/libredwg/")
+ (synopsis "C library to handle DWG (CAD-related) files")
+ (description
+ "GNU LibreDWG is a C library to handle DWG files. It aims to be a free
+replacement for the OpenDWG libraries.")
(license license:gpl3+)))
(define-public minicom
(version "2.7.1")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://alioth.debian.org/frs/download.php/"
- "file/4215/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://salsa.debian.org/minicom-team/minicom.git")
+ (commit (string-append "v" version))))
(sha256
- (base32
- "1wa1l36fa4npd21xa9nz60yrqwkk5cq713fa3p5v0zk7g9mq6bsk"))))
+ (base32 "0f36wv015zpz1x895qv0z6marlynzyh0d5mfkyd7lfyy2xd1i2w0"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-lock-dir=/var/lock")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'patch-lock-check
+ (replace 'bootstrap
+ ;; autogen.sh needlessly hard-codes aclocal-1.14.
+ (lambda _
+ (invoke "autoreconf" "-vif")
+ #t))
+ (add-before 'configure 'patch-lock-check
(lambda _
(substitute* "configure"
(("test -d [$]UUCPLOCK") "true"))
#t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)))
(inputs
`(("ncurses" ,ncurses)))
- (home-page "https://alioth.debian.org/projects/minicom/")
+ (home-page "https://salsa.debian.org/minicom-team/minicom")
(synopsis "Serial terminal emulator")
(description "@code{minicom} is a serial terminal emulator.")
(license license:gpl2+)))
(define-public radare2
(package
(name "radare2")
- (version "3.5.1")
+ (version "4.4.0")
(source (origin
- (method url-fetch)
- (uri (string-append "https://radare.mikelloc.com/get/" version "/"
- "radare2-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/radareorg/radare2")
+ (commit version)))
(sha256
(base32
- "174x5545fw2nyf000gd46hi7rx2bn3bw5bsnvizn9yi99pn7m4mw"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (substitute* "libr/asm/p/Makefile"
- (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
- (substitute* "libr/parse/p/Makefile"
- (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
- (substitute* "libr/bin/p/Makefile"
- (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
- #t))))
+ "0gwdnrnk7wdgkajp2qwg4fyplh7nsbmf01bzx07px6xmiscd9z2s"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; tests require git and network access
#:phases
(modify-phases %standard-phases
(add-before 'configure 'mklibdir
- (lambda* (#:key inputs #:allow-other-keys)
- (mkdir-p (string-append (assoc-ref %outputs "out") "/lib"))
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
#t)))
#:configure-flags
- (list "--with-sysmagic" "--with-syszip" "--with-openssl"
- "--without-nonpic" "--with-rpath" "--with-syscapstone")
+ (list "--with-openssl"
+ "--with-rpath"
+ "--with-syscapstone"
+ "--with-sysmagic"
+ "--with-syszip"
+ "--with-sysxxhash")
#:make-flags
(list "CC=gcc")))
+ ;; TODO: Add gmp and libzip and make the build system actually find them.
(inputs
- `(("openssl" ,openssl)
- ("zip" ,zip)
- ("gmp" ,gmp)
- ("capstone" ,capstone)))
+ `(("capstone" ,capstone)
+ ("libuv" ,libuv)
+ ("openssl" ,openssl)
+ ("zip" ,zip)))
(native-inputs
`(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ ;; In the Libs: section of r_hash.pc.
+ `(("xxhash" ,xxhash)))
(home-page "https://radare.org/")
(synopsis "Reverse engineering framework")
(description
version ".tar.gz"))
(sha256
(base32
- "117dqs0d4pcgbzvr3jn5ppra7n7x2m6c161ywh6laa934pw7h2bz"))))
+ "117dqs0d4pcgbzvr3jn5ppra7n7x2m6c161ywh6laa934pw7h2bz"))
+ (patches
+ (list (origin
+ ;; Fix build with GCC 7. Patch taken from Arch Linux:
+ ;; https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/freehdl
+ (method url-fetch)
+ (uri "https://git.archlinux.org/svntogit/community.git\
+/plain/trunk/build-fix.patch?h=packages/freehdl\
+&id=3bb90d64dfe6883e26083cd1fa96226d0d59175a")
+ (file-name "freehdl-c++-namespace.patch")
+ (sha256
+ (base32
+ "09df3c70rx81rnhlhry1wpdhji274nx9jb74rfprk06l4739zm08")))))))
(build-system gnu-build-system)
(arguments
`(#:phases
("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")
(define-public librepcb
(package
(name "librepcb")
- (version "0.1.3")
+ (version "0.1.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.librepcb.org/releases/"
version "/librepcb-" version "-source.zip"))
(sha256
- (base32 "1ich849dsx2hmcwlwbry4mkg374n940l3hy6srh4qms2rm7vd7x0"))))
+ (base32 "1b5dkanz3q0y5ag80w0l85hn7axrachb5m9zvyv4zvzrfy09wa88"))))
(build-system gnu-build-system)
(inputs
`(("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)
("zlib" ,zlib)))
(native-inputs
`(("qttools" ,qttools) ; for lrelease
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/markwal/GPX.git")
+ (url "https://github.com/markwal/GPX")
(commit version)))
(file-name (git-file-name name version))
(sha256
(define-public cutter
(package
(name "cutter")
- (version "1.8.3")
+ (version "1.10.3")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "03f3cdckh51anx9gd1b0ndb2fg7061hqngvygf32ky29mm2m2lyv"))))
+ (base32 "0qj8jyij02nif4jpirl09ygwnv8a9zi3vkb5sf5s8mg7qwlpnvyk"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(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=`
+ ;; 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)))
(source
(origin
(method git-fetch)
- (uri (git-reference (url "https://github.com/3MFConsortium/lib3mf.git")
+ (uri (git-reference (url "https://github.com/3MFConsortium/lib3mf")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(native-inputs
`(("googletest-source" ,(package-source googletest))))
(inputs
- `(("libuuid" ,util-linux)))
+ `(("libuuid" ,util-linux "lib")))
(arguments
`(#:phases
(modify-phases %standard-phases
".src.tar.gz"))
(sha256
(base32
- "0nbgk5q5pgnw53la0kccdcpz2f4xf6d6076rkn0q08z57hkc85ha"))))
+ "0nbgk5q5pgnw53la0kccdcpz2f4xf6d6076rkn0q08z57hkc85ha"))
+ (patches (search-patches
+ "openscad-parser-boost-1.72.patch"))))
(build-system cmake-build-system)
(inputs
`(("boost" ,boost)
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/FreeCAD/FreeCAD.git")
+ (url "https://github.com/FreeCAD/FreeCAD")
(commit version)))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Fix build with Python 3.8, see
+ ;; <https://tracker.freecadweb.org/view.php?id=4143>.
+ (substitute* "src/Base/swigpyrun.inl"
+ (("PyObject \\*modules = interp->modules;")
+ "PyObject *modules = PyEval_GetBuiltins();"))
+ #t))
(file-name (git-file-name name version))
(sha256
(base32
(source
(origin
(method git-fetch)
- (uri (git-reference (url "https://github.com/Heeks/libarea.git")
+ (uri (git-reference (url "https://github.com/Heeks/libarea")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(inputs `(("boost" ,boost)
("python-wrapper" ,python-wrapper)))
(native-inputs
- `(("cmake" ,cmake)))
+ `(("cmake" ,cmake-minimal)))
(arguments
`(#:tests? #f
#:phases
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/FreeSpacenav/libspnav.git")
+ (url "https://github.com/FreeSpacenav/libspnav")
(commit (string-append "libspnav-" version))))
(sha256
(base32
can continue using it with a free library without the restrictions of the
official SDK.")
(license license:bsd-3)))
+
+(define-public openctm
+ (let ((revision 603))
+ ;; Previous versions don't compile, they need to link libGL and libGLU.
+ ;; Fixed in this revision.
+ (package
+ (name "openctm")
+ (version (string-append "1.0.3." (number->string revision)))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url "https://svn.code.sf.net/p/openctm/code/trunk")
+ (revision revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "01wb70m48xh5gwhv60a5brv4sxl0i0rh038w32cgnlxn5x86s9f1"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("mesa" ,mesa)
+ ("glu" ,glu)
+ ("glut" ,freeglut)
+ ("gtk" ,gtk+-2)))
+ (arguments
+ `(#:tests? #f ;no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (rename-file "Makefile.linux" "Makefile")
+ (let ((out (assoc-ref outputs "out")))
+ ;; Create output directories.
+ (mkdir-p (string-append out "/lib"))
+ (mkdir-p (string-append out "/include"))
+ (mkdir-p (string-append out "/bin"))
+ ;; Fix rpath.
+ (substitute* "tools/Makefile.linux"
+ (("-rpath,\\.")
+ (string-append "-rpath," out "/lib/"))
+ (("/usr/local")
+ out))
+ ;; Set right output.
+ (substitute* "Makefile"
+ (("/usr/lib")
+ (string-append out "/lib"))
+ (("\\/usr\\/local")
+ out))
+ #t))))))
+ (synopsis "3D triangle mesh format and related tools and libraries")
+ (description "OpenCTM is a file format, a software library and a tool set
+for compression of 3D triangle meshes. The geometry is compressed to a
+fraction of comparable file formats (3DS, STL, COLLADA...), and the format is
+accessible through a simple API")
+ (license license:zlib)
+ (home-page "http://openctm.sourceforge.net/"))))
+
+(define-public lib3ds
+ (package
+ (name "lib3ds")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://storage.googleapis.com/google-code-archive-downloads"
+ "/v2/code.google.com/lib3ds/lib3ds-" version ".zip"))
+ (sha256
+ (base32 "1qr9arfdkjf7q11xhvxwzmhxqz3nhcjkyb8zzfjpz9jm54q0rc7m"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "https://code.google.com/archive/p/lib3ds")
+ (synopsis "3DS format file toolkit")
+ (description "Lib3ds is a toolkit for handling the 3DS format for 3D
+model files. Its main goal is to simplify the creation of 3DS import and
+export filters.")
+ (license license:lgpl2.1+)))
+
+(define-public meshlab
+ (package
+ (name "meshlab")
+ (version "2020.06")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cnr-isti-vclab/meshlab")
+ (commit (string-append "Meshlab-" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1cgx24wxh2ah5pff51rcrk6x8qcdjpkxcdak7s4cfzmxvjlshydd"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtscript" ,qtscript)
+ ("qtxmlpatterns" ,qtxmlpatterns)
+ ("mesa" ,mesa)
+ ("glu" ,glu)
+ ("glew" ,glew)
+ ("muparser" ,muparser)
+ ("gmp" ,gmp)
+ ("eigen" ,eigen)
+ ("libfreenect" ,libfreenect)
+ ("lib3ds" ,lib3ds)
+ ("openctm" ,openctm)
+ ;; FIXME: Compilation fails with system qhull:
+ ;; https://github.com/cnr-isti-vclab/meshlab/issues/678
+ ;; ("qhull" ,qhull)
+ ))
+ (arguments
+ `(#:tests? #f ; Has no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'go-to-source-dir
+ (lambda _ (chdir "src") #t))
+ (add-after 'install 'move-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((lib (string-append (assoc-ref outputs "out")
+ "/lib")))
+ (rename-file
+ (string-append lib "/meshlab/libmeshlab-common.so")
+ (string-append lib "/libmeshlab-common.so"))
+ #t))))))
+ (synopsis "3D triangular mesh processing and editing software")
+ (home-page "https://www.meshlab.net/")
+ (description "MeshLab is a system for the processing and
+editing of unstructured large 3D triangular meshes. It is aimed to help the
+processing of the typical not-so-small unstructured models arising in 3D
+scanning, providing a set of tools for editing, cleaning, healing, inspecting,
+rendering and converting this kind of meshes. These tools include MeshLab
+proper, a versatile program with a graphical user interface, and meshlabserver,
+a program that can perform mesh processing tasks in batch mode, without a
+GUI.")
+ (license license:gpl3+)))
+
+(define-public poke
+ ;; Upstream has yet to tag any releases.
+ (let ((commit "d33317a46e3b7c48130a471a48cbfea1abab70d8")
+ (revision "0"))
+ (package
+ (name "poke")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.savannah.gnu.org/poke.git")
+ (commit commit)
+ (recursive? #t)))
+ (sha256
+ (base32 "1dd0r1x123bqi78lrsk58rvg9c9wka0kywdyzn7g3i4hkh54xb7d"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ ;; The GUI, which we elide, requires tcl and tk.
+ (native-inputs `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ;; Requires bison 3.6+ but we currently only have 3.5.
+ ;; Bison 3.6 will be available in the next core update.
+ ("bison-3.6" ,bison-3.6)
+ ("clisp" ,clisp)
+ ("dejagnu" ,dejagnu)
+ ("flex" ,flex)
+ ("gettext" ,gettext-minimal)
+ ("help2man" ,help2man)
+ ("libtool" ,libtool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python-2" ,python-2)
+ ("python-3" ,python-3)
+ ("texinfo" ,texinfo)))
+ ;; FIXME: Enable NBD support by adding `libnbd' (currently unpackaged).
+ ;; FIXME: A "hyperlinks-capable" `libtexststyle' needed for the hserver.
+ (inputs `(("json-c" ,json-c)
+ ("libgc" ,libgc)
+ ("readline" ,readline)))
+ (arguments
+ ;; To build the GUI, add the `--enable-gui' configure flag.
+ ;; To enable the "hyperlink server", add the `--enable-hserver' flag.
+ `(#:configure-flags '("--enable-mi")
+ #:phases (modify-phases %standard-phases
+ ;; This is a non-trivial bootstrap that needs many of the
+ ;; native-inputs and thus must run after `patch-shebangs'.
+ (delete 'bootstrap)
+ (add-after 'patch-source-shebangs 'bootstrap
+ (lambda _
+ (invoke "./bootstrap" "--no-git"
+ "--no-bootstrap-sync"
+ "--gnulib-srcdir=gnulib")
+ #t)))))
+ (home-page "http://jemarch.net/poke.html")
+ (synopsis "Interactive, extensible editor for binary data")
+ (description "GNU poke is an interactive, extensible editor for binary
+ data. Not limited to editing basic entities such as bits and bytes, it
+ provides a full-fledged procedural, interactive programming language designed
+ to describe data structures and to operate on them.")
+ (license license:gpl3+))))