2015-03-04 03:46:04 -05:00
;;; GNU Guix --- Functional package management for GNU
2018-02-17 10:17:44 -05:00
;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
2015-07-21 15:51:29 -04:00
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
2018-12-16 16:07:44 -05:00
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
2016-04-13 10:41:57 -04:00
;;; Copyright © 2016 David Thompson <davet@gnu.org>
2018-04-19 11:19:02 -04:00
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
2018-06-07 15:24:54 -04:00
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
2017-08-11 14:41:39 -04:00
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
2018-01-12 07:49:46 -05:00
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
2018-05-29 09:40:28 -04:00
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
2018-08-16 07:33:48 -04:00
;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
2018-12-01 08:22:42 -05:00
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
2015-03-04 03:46:04 -05:00
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
2015-03-08 06:12:16 -04:00
( define-module ( gnu packages engineering )
2015-03-04 03:46:04 -05:00
# :use-module ( guix packages )
# :use-module ( guix download )
2015-07-21 15:51:29 -04:00
# :use-module ( guix gexp )
2015-03-04 03:46:04 -05:00
# :use-module ( guix git-download )
2015-07-21 15:51:29 -04:00
# :use-module ( guix monads )
# :use-module ( guix store )
2015-03-05 02:38:46 -05:00
# :use-module ( guix utils )
2017-09-09 13:57:49 -04:00
# :use-module ( ( srfi srfi-1 ) # :hide ( zip ) )
2015-03-04 03:46:04 -05:00
# :use-module ( ( guix licenses ) # :prefix license: )
2016-11-15 15:53:23 -05:00
# :use-module ( guix build-system cmake )
2015-03-04 03:46:04 -05:00
# :use-module ( guix build-system gnu )
2017-08-11 14:49:04 -04:00
# :use-module ( guix build-system python )
2015-03-04 03:46:04 -05:00
# :use-module ( gnu packages )
2016-10-19 04:39:59 -04:00
# :use-module ( gnu packages algebra )
2015-08-31 02:47:09 -04:00
# :use-module ( gnu packages autotools )
2015-03-08 06:13:57 -04:00
# :use-module ( gnu packages base )
2015-03-06 15:11:01 -05:00
# :use-module ( gnu packages bison )
2015-03-04 03:46:04 -05:00
# :use-module ( gnu packages boost )
2016-10-19 04:39:59 -04:00
# :use-module ( gnu packages check )
2017-10-27 10:18:17 -04:00
# :use-module ( gnu packages commencement )
2015-07-21 15:51:29 -04:00
# :use-module ( gnu packages compression )
2016-11-15 15:53:23 -05:00
# :use-module ( gnu packages curl )
2015-03-06 15:11:01 -05:00
# :use-module ( gnu packages flex )
2015-03-04 03:46:04 -05:00
# :use-module ( gnu packages fontutils )
2017-10-27 10:18:18 -04:00
# :use-module ( gnu packages fpga )
2017-06-05 15:22:01 -04:00
# :use-module ( gnu packages freedesktop )
2017-06-22 15:09:54 -04:00
# :use-module ( gnu packages gcc )
2015-03-06 15:11:01 -05:00
# :use-module ( gnu packages gd )
2015-08-31 02:47:09 -04:00
# :use-module ( gnu packages gettext )
2015-07-21 15:51:29 -04:00
# :use-module ( gnu packages ghostscript )
2015-03-06 15:11:01 -05:00
# :use-module ( gnu packages gl )
2015-03-05 02:38:46 -05:00
# :use-module ( gnu packages glib )
# :use-module ( gnu packages gnome )
2017-10-27 10:18:18 -04:00
# :use-module ( gnu packages gperf )
2018-08-26 13:29:25 -04:00
# :use-module ( gnu packages groff )
2015-03-05 02:38:46 -05:00
# :use-module ( gnu packages gtk )
# :use-module ( gnu packages guile )
2016-10-19 04:39:59 -04:00
# :use-module ( gnu packages image )
2017-05-06 02:56:39 -04:00
# :use-module ( gnu packages imagemagick )
2015-04-20 09:50:59 -04:00
# :use-module ( gnu packages linux ) ;FIXME: for pcb
2016-04-13 10:41:57 -04:00
# :use-module ( gnu packages m4 )
2015-03-04 03:46:04 -05:00
# :use-module ( gnu packages maths )
2017-08-11 14:54:40 -04:00
# :use-module ( gnu packages multiprecision )
2017-06-22 15:10:00 -04:00
# :use-module ( gnu packages mpi )
2017-06-10 10:06:34 -04:00
# :use-module ( gnu packages ncurses )
2015-03-05 02:38:46 -05:00
# :use-module ( gnu packages perl )
2015-03-04 03:46:04 -05:00
# :use-module ( gnu packages pkg-config )
2016-11-15 15:53:23 -05:00
# :use-module ( gnu packages python )
2015-03-04 03:46:04 -05:00
# :use-module ( gnu packages qt )
2017-06-22 15:09:56 -04:00
# :use-module ( gnu packages readline )
2016-11-15 15:53:23 -05:00
# :use-module ( gnu packages swig )
2015-03-06 15:11:01 -05:00
# :use-module ( gnu packages tcl )
2018-08-26 13:29:25 -04:00
# :use-module ( gnu packages texinfo )
2016-11-15 15:53:23 -05:00
# :use-module ( gnu packages tls )
2016-05-24 15:18:53 -04:00
# :use-module ( gnu packages tex )
2016-11-15 15:53:23 -05:00
# :use-module ( gnu packages wxwidgets )
2017-08-11 14:54:40 -04:00
# :use-module ( gnu packages xorg ) )
2015-03-04 03:46:04 -05:00
( define-public librecad
( package
( name "librecad" )
2016-10-31 18:09:45 -04:00
( version "2.1.3" )
2015-03-04 03:46:04 -05:00
( source ( origin
( method url-fetch )
( uri ( string-append
"https://github.com/LibreCAD/LibreCAD/archive/"
version ".tar.gz" ) )
2016-02-16 01:52:50 -05:00
( file-name ( string-append name "-" version ".tar.gz" ) )
2015-03-04 03:46:04 -05:00
( sha256
( base32
2016-10-31 18:09:45 -04:00
"01nvc1g3si05r5np1pzn62ah9w84p8nxa32wqrjh6gdi17jfvi3l" ) ) ) )
2015-03-04 03:46:04 -05:00
( build-system gnu-build-system )
( arguments
' ( # :phases
2016-02-16 02:30:40 -05:00
( modify-phases %standard-phases
2017-11-08 10:20:42 -05:00
;; Without this patch boost complains that "make_array" is not a
;; member of "boost::serialization".
( add-after 'unpack 'patch-boost-error
( lambda _
( substitute* "librecad/src/lib/math/lc_quadratic.h"
( ( "#include \"rs_vector.h\"" line )
( string-append line
"\n#include <boost/serialization/array_wrapper.hpp>" ) ) )
( substitute* "librecad/src/lib/math/rs_math.cpp"
( ( "#include <boost/numeric/ublas/matrix.hpp>" line )
( string-append "#include <boost/serialization/array_wrapper.hpp>\n"
line ) ) )
#t ) )
2018-05-29 09:21:07 -04:00
;; Fix build against Qt 5.11.
( add-after 'unpack 'add-missing-headers
( lambda _
( substitute* "librecad/src/ui/generic/widgetcreator.cpp"
( ( "#include <QPushButton>" ) " # include <QPushButton>
# include <QActionGroup> " ) )
#t ) )
2017-11-08 10:20:42 -05:00
( add-after 'unpack 'patch-paths
( lambda* ( # :key outputs # :allow-other-keys )
( let ( ( out ( assoc-ref outputs "out" ) ) )
( substitute* "librecad/src/lib/engine/rs_system.cpp"
( ( "/usr/share" ) ( string-append out "/share" ) ) ) ) ) )
( replace 'configure
( lambda* ( # :key inputs # :allow-other-keys )
( system* "qmake" ( string-append "BOOST_DIR="
( assoc-ref inputs "boost" ) ) ) ) )
( replace 'install
( lambda* ( # :key outputs # :allow-other-keys )
( let* ( ( out ( assoc-ref outputs "out" ) )
( bin ( string-append out "/bin" ) )
( share ( string-append out "/share/librecad" ) ) )
( mkdir-p bin )
( install-file "unix/librecad" bin )
( mkdir-p share )
( copy-recursively "unix/resources" share ) )
2017-11-27 06:10:38 -05:00
#t ) )
;; Ensure that icons are found at runtime
( add-after 'install 'wrap-executable
( lambda* ( # :key inputs outputs # :allow-other-keys )
( let* ( ( out ( assoc-ref outputs "out" ) )
( qt ' ( "qtbase" "qtsvg" ) ) )
( wrap-program ( string-append out "/bin/librecad" )
` ( "QT_PLUGIN_PATH" ":" prefix
, ( map ( lambda ( label )
( string-append ( assoc-ref inputs label )
"/lib/qt5/plugins/" ) )
qt ) ) )
#t ) ) ) ) ) )
2015-03-04 03:46:04 -05:00
( inputs
` ( ( "boost" , boost )
( "muparser" , muparser )
( "freetype" , freetype )
2017-05-15 09:36:51 -04:00
( "qtbase" , qtbase )
( "qtsvg" , qtsvg ) ) )
2015-03-04 03:46:04 -05:00
( native-inputs
` ( ( "pkg-config" , pkg-config )
( "which" , which ) ) )
( home-page "http://librecad.org/" )
( synopsis "Computer-aided design (CAD) application" )
( description
" LibreCAD is a 2 D Computer-aided design ( CAD ) application for creating
plans and designs . " )
( license license:gpl2 ) ) )
2015-03-05 02:38:46 -05:00
( define-public geda-gaf
( package
( name "geda-gaf" )
2016-07-13 15:24:14 -04:00
( version "1.9.2" )
2015-03-05 02:38:46 -05:00
( source ( origin
( method url-fetch )
( uri ( string-append
2016-07-13 15:24:14 -04:00
"http://ftp.geda-project.org/geda-gaf/unstable/v"
2015-03-05 02:38:46 -05:00
( version-major+minor version ) "/"
version "/geda-gaf-" version ".tar.gz" ) )
( sha256
( base32
2016-07-13 15:24:14 -04:00
"14mk45pfz11v54q66gafw2l68n1p5ssvvjmdm8ffgc8x1w5ajfrz" ) ) ) )
2015-03-05 02:38:46 -05:00
( build-system gnu-build-system )
( arguments
' ( # :phases
2016-07-13 15:23:40 -04:00
( modify-phases %standard-phases
;; tests require a writable HOME
( add-before 'check 'set-home
( lambda _
( setenv "HOME" ( getenv "TMPDIR" ) )
2018-02-17 10:17:44 -05:00
#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.*" ) "" ) )
2016-07-13 15:23:40 -04:00
#t ) ) )
2016-04-13 10:41:57 -04:00
# :configure-flags
( let ( ( pcb ( assoc-ref %build-inputs "pcb" ) ) )
( list ( string-append "--with-pcb-datadir=" pcb "/share" )
( string-append "--with-pcb-lib-path="
pcb "/share/pcb/pcblib-newlib:"
pcb "/share/pcb/newlib" ) ) ) ) )
2015-03-05 02:38:46 -05:00
( inputs
` ( ( "glib" , glib )
( "gtk" , gtk+-2 )
( "guile" , guile-2 . 0 )
( "desktop-file-utils" , desktop-file-utils )
2016-04-13 10:41:57 -04:00
( "shared-mime-info" , shared-mime-info )
( "m4" , m4 )
( "pcb" , pcb ) ) )
2015-03-05 02:38:46 -05:00
( native-inputs
` ( ( "pkg-config" , pkg-config )
( "perl" , perl ) ) ) ; for tests
( home-page "http://geda-project.org/" )
( synopsis "Schematic capture, netlister, symbols, symbol checker, and utils" )
( description
gnu: Adjust formatting as recommended by 'guix lint'.
* gnu/packages/aidc.scm (barcode, qrencode),
gnu/packages/bash.scm (bash, bash-completion),
gnu/packages/busybox.scm (busybox),
gnu/packages/cdrom.scm (cdparanoia),
gnu/packages/cmake.scm (cmake),
gnu/packages/conkeror.scm (conkeror),
gnu/packages/cook.scm (cook),
gnu/packages/curl.scm (curl),
gnu/packages/docbook.scm (docbook-xsl),
gnu/packages/enlightenment.scm (enlightenment),
gnu/packages/games.scm (abbaye),
gnu/packages/geeqie.scm (exiv2),
gnu/packages/gimp.scm (gegl),
gnu/packages/gl.scm (glu, freeglut, ftgl),
gnu/packages/glib.scm (glib),
gnu/packages/gnome.scm (orbit2, gconf, geocode-glib),
gnu/packages/gstreamer.scm (gstreamer, gst-plugins-base),
gnu/packages/linux.scm (util-linux),
gnu/packages/lisp.scm (gcl, ecl),
gnu/packages/maths.scm (gnuplot, hdf5),
gnu/packages/ssh.scm (dropbear),
gnu/packages/web.scm (json-c): Remove tabulations and trailing
white spaces or reformat to fit within 80 columns.
* gnu/packages/audio.scm (aubio),
gnu/packages/emacs.scm (emacs-s),
gnu/packages/engineering.scm (geda-gaf),
gnu/packages/games.scm (dosbox),
gnu/packages/gnome.scm (gusb),
gnu/packages/gtk.scm (gtk+),
gnu/packages/guile.scm (guile-wisp),
gnu/packages/hurd.scm (hurd-headers),
gnu/packages/wm.scm (i3-wm): Adjust synopsis or description.
2015-11-13 09:50:36 -05:00
" Gaf stands for “ gschem and friends ” . It is a subset of the entire tool
2015-03-05 02:38:46 -05:00
suite grouped together under the gEDA name . gEDA/gaf is a collection of tools
which currently includes: gschem, a schematic capture program ; gnetlist, a
netlist generation program ; gsymcheck, a syntax checker for schematic symbols;
gattrib, a spreadsheet programm that manipulates the properties of symbols of
a schematic ; libgeda, libraries for gschem gnetlist and gsymcheck; gsch2pcb, a
tool to forward annotation from your schematic to layout using PCB ; some minor
utilities . " )
( license license:gpl2+ ) ) )
2018-08-26 13:29:25 -04:00
( define-public lepton-eda
;; This is a fork of gEDA/gaf started in late 2016. One of its goal is to
;; keep and to extend Guile support.
( package
( inherit geda-gaf )
( name "lepton-eda" )
( version "1.9.5-20180820" )
( 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" ) )
( file-name ( git-file-name name version ) ) ) )
( native-inputs
` ( ( "autoconf" , autoconf )
( "automake" , automake )
( "libtool" , libtool )
( "gettext" , gnu-gettext )
( "texinfo" , texinfo )
( "groff" , groff )
( "which" , which )
,@ ( package-native-inputs geda-gaf ) ) )
;; For now it's Guile 2.0, not 2.2.
( arguments
( substitute-keyword-arguments ( package-arguments geda-gaf )
( ( # :configure-flags flags ' ' ( ) )
;; When running "make", the POT files are built with the build time as
;; their "POT-Creation-Date". Later on, "make" notices that .pot
;; files were updated and goes on to run "msgmerge"; as a result, the
;; non-deterministic POT-Creation-Date finds its way into .po files,
;; and then in .gmo files. To avoid that, simply make sure 'msgmerge'
;; never runs. See <https://bugs.debian.org/792687>.
` ( cons "ac_cv_path_MSGMERGE=true" , flags ) )
( ( # :phases phases '%standard-phases )
` ( modify-phases , phases
( add-before 'bootstrap 'prepare
( lambda _
;; Some of the scripts there are invoked by autogen.sh.
( for-each patch-shebang ( find-files "build-tools" ) )
;; Make sure 'msgmerge' can modify the PO files.
( for-each ( lambda ( po )
( chmod po # o666 ) )
( find-files "." "\\.po$" ) )
;; This would normally be created by invoking 'git', but it
;; doesn't work here.
( call-with-output-file "version.h"
( lambda ( port )
( format port "#define PACKAGE_DATE_VERSION \"~a\"~%"
, ( string-drop version
( + 1 ( string-index version #\- ) ) ) )
( format port "#define PACKAGE_DOTTED_VERSION \"~a\"~%"
, ( string-take version
( string-index version #\- ) ) )
( format port "#define PACKAGE_GIT_COMMIT \"cabbag3\"~%" ) ) )
#t ) ) ) ) ) )
( description
" Lepton EDA ia an @dfn { electronic design automation } ( EDA ) tool set
forked from gEDA/gaf in late 2016 . EDA tools are used for electrical circuit
design, schematic capture, simulation, prototyping, and production . Lepton
EDA includes tools for schematic capture, attribute management, bill of
materials ( BOM ) generation, netlisting into over 20 netlist formats, analog
and digital simulation, and printed circuit board ( PCB ) layout, and many other
features . " ) ) )
2015-03-06 15:11:01 -05:00
( define-public pcb
( package
( name "pcb" )
2017-11-08 09:15:20 -05:00
( version "4.0.2" )
2015-03-06 15:11:01 -05:00
( source ( origin
( method url-fetch )
2017-05-06 02:56:39 -04:00
( uri ( string-append "mirror://sourceforge/pcb/pcb/pcb-" version
"/pcb-" version ".tar.gz" ) )
2015-03-06 15:11:01 -05:00
( sha256
( base32
2017-11-08 09:15:20 -05:00
"1a7rilp75faidny0r4fdwdxkflyrqp6svxv9lbg7h868293962iz" ) ) ) )
2015-03-06 15:11:01 -05:00
( build-system gnu-build-system )
( arguments
` ( # :phases
gnu: Use 'modify-phases' syntax.
* gnu/packages/admin.scm (mingetty, clusterssh, wpa-supplicant-minimal,
wpa-supplicant, wakelan, acpica, tree, direvent, dstat)[arguments]: Use
'modify-phases' syntax.
* gnu/packages/algebra.scm (arb)[arguments]: Likewise.
* gnu/packages/apr.scm (apr-util)[arguments]: Likewise.
* gnu/packages/audio.scm (clalsadrv, fluidsynth, faad2, lv2-mda-piano,
lv2-mda-epiano, timidity++, vamp, soundtouch, portaudio, rsound,
zita-convolver, zita-alsa-pcmi)[arguments]: Likewise.
* gnu/packages/backup.scm (rdup, btar)[arguments]: Likewise.
* gnu/packages/bioinformatics.scm (bedops, bwa, crossmap, express,
flexbar, grit, hisat, ngs-sdk, subread)[arguments]: Likewise.
* gnu/packages/bittorrent.scm (transmission)[arguments]: Likewise.
* gnu/packages/cdrom.scm (cd-discid)[arguments]: Likewise.
* gnu/packages/compression.scm (sharutils)[arguments]: Likewise.
* gnu/packages/conky.scm (conky)[arguments]: Likewise.
* gnu/packages/databases.scm (bdb, bdb-5.3)[arguments]: Likewise.
* gnu/packages/debug.scm (delta, c-reduce)[arguments]: Likewise.
* gnu/packages/display-managers.scm (slim)[arguments]: Likewise.
* gnu/packages/dns.scm (dnsmasq)[arguments]: Likewise.
* gnu/packages/emacs.scm (geiser, emacs-wget, bbdb)[arguments]: Likewise.
* gnu/packages/engineering.scm (pcb)[arguments]: Likewise.
* gnu/packages/firmware.scm (ath9k-htc-firmware)[arguments]: Likewise.
* gnu/packages/flashing-tools.scm (flashrom)[arguments]: Likewise.
* gnu/packages/fltk.scm (fltk)[arguments]: Likewise.
* gnu/packages/freedesktop.scm (python-pyxdg)[arguments]: Likewise.
* gnu/packages/gd.scm (perl-gd)[arguments]: Likewise.
* gnu/packages/gkrellm.scm (gkrellm)[arguments]: Likewise.
* gnu/packages/glib.scm (glibmm)[arguments]: Likewise.
* gnu/packages/gl.scm (glew)[arguments]: Likewise.
* gnu/packages/gnome.scm (icon-naming-utils, orbit2, libbonobo, gnome-vfs,
libgnome, libbonoboui, goffice-0.8, dconf)[arguments]: Likewise.
* gnu/packages/gprolog.scm (gprolog)[arguments]: Likewise.
* gnu/packages/gps.scm (gpscorrelate)[arguments]: Likewise.
* gnu/packages/graphics.scm (agg)[arguments]: Likewise.
* gnu/packages/gtk.scm (ganv, girara, gtksourceview-2, guile-present,
python2-pycairo)[arguments]: Likewise.
* gnu/packages/guile.scm (guile-1.8)[arguments]: Likewise.
* gnu/packages/guile-wm.scm (guile-wm)[arguments]: Likewise.
* gnu/packages/hugs.scm (hugs)[arguments]: Likewise.
* gnu/packages/hurd.scm (gnumach-headers, hurd-headers, hurd-minimal)
[arguments]: Likewise.
* gnu/packages/image-viewers.scm (feh, sxiv)[arguments]: Likewise.
* gnu/packages/libcanberra.scm (libcanberra)[arguments]: Likewise.
* gnu/packages/linux.scm (bridge-utils, iw, fuse, unionfs-fuse/static,
lm-sensors, i2c-tools, xsensors, perf, mdadm, libaio, module-init-tools)
[arguments]: Likewise.
* gnu/packages/lisp.scm (ccl)[arguments]: Likewise.
* gnu/packages/lout.scm (lout)[arguments]: Likewise.
* gnu/packages/lua.scm (luajit)[arguments]: Likewise.
* gnu/packages/machine-learning.scm (shogun)[arguments]: Likewise.
* gnu/packages/mail.scm (exim)[arguments]: Likewise.
* gnu/packages/man.scm (man-pages, txt2man)[arguments]: Likewise.
* gnu/packages/maths.scm (lapack, superlu-dist, openlibm, openspecfun)
[arguments]: Likewise.
* gnu/packages/messaging.scm (bitlbee)[arguments]: Likewise.
* gnu/packages/mp3.scm (libmad, id3lib, mp3info)[arguments]: Likewise.
* gnu/packages/music.scm (solfege)[arguments]: Likewise.
* gnu/packages/noweb.scm (noweb)[arguments]: Likewise.
* gnu/packages/patchutils.scm (patchutils, quilt, colordiff)[arguments]:
Likewise.
* gnu/packages/pdf.scm (xpdf, zathura-cb, zathura-ps, zathura-djvu,
zathura-pdf-poppler, zathura, podofo, fbida)[arguments]: Likewise.
* gnu/packages/perl.scm (perl-file-list, perl-test-harness)[arguments]:
Likewise.
* gnu/packages/photo.scm (gphoto2)[arguments]: Likewise.
* gnu/packages/popt.scm (popt)[arguments]: Likewise.
* gnu/packages/pretty-print.scm (source-highlight, astyle)[arguments]:
Likewise.
* gnu/packages/pumpio.scm (pumpa)[arguments]: Likewise.
* gnu/packages/python.scm (python-passlib, python-pycrypto, python2-empy,
python-sqlalchemy, python-docopt)[arguments]: Likewise.
* gnu/packages/rdf.scm (lrdf)[arguments]: Likewise.
* gnu/packages/regex.scm (tre)[arguments]: Likewise.
* gnu/packages/rrdtool.scm (rrdtool)[arguments]: Likewise.
* gnu/packages/ruby.scm (ruby-2.1, ruby-1.8)[arguments]: Likewise.
* gnu/packages/sawfish.scm (sawfish)[arguments]: Likewise.
* gnu/packages/scheme.scm (racket)[arguments]: Likewise.
* gnu/packages/sdl.scm (guile-sdl)[arguments]: Likewise.
* gnu/packages/serveez.scm (serveez)[arguments]: Likewise.
* gnu/packages/skribilo.scm (skribilo)[arguments]: Likewise.
* gnu/packages/smalltalk.scm (smalltalk)[arguments]: Likewise.
* gnu/packages/suckless.scm (dmenu, slock)[arguments]: Likewise.
* gnu/packages/tcl.scm (expect)[arguments]: Likewise.
* gnu/packages/telephony.scm (commoncpp)[arguments]: Likewise.
* gnu/packages/textutils.scm (recode, libgtextutils)[arguments]:
Likewise.
* gnu/packages/time.scm (time)[arguments]: Likewise.
* gnu/packages/tor.scm (privoxy)[arguments]: Likewise.
* gnu/packages/uucp.scm (uucp)[arguments]: Likewise.
* gnu/packages/video.scm (libdvdnav-4)[arguments]: Likewise.
* gnu/packages/web-browsers.scm (lynx)[arguments]: Likewise.
* gnu/packages/web.scm (tinyproxy)[arguments]: Likewise.
* gnu/packages/wicd.scm (wicd)[arguments]: Likewise.
* gnu/packages/wm.scm (bspwm)[arguments]: Likewise.
* gnu/packages/xdisorg.scm (sxhkd, xcape)[arguments]: Likewise.
* gnu/packages/xfce.scm (xfconf)[arguments]: Likewise.
* gnu/packages/xfig.scm (transfig)[arguments]: Likewise.
* gnu/packages/xorg.scm (imake)[arguments]: Likewise.
2017-07-29 11:28:42 -04:00
( modify-phases %standard-phases
( add-after 'unpack 'use-wish8 . 6
( lambda _
( substitute* "configure"
( ( "wish85" ) "wish8.6" ) )
#t ) )
2017-11-08 09:15:20 -05:00
;; It checks for "xhost", which we don't have. This shouldn't
;; matter, because the test is supposed to be skipped, but it causes
;; "run_tests.sh" (and thus the "check" phase) to fail.
( add-after 'unpack 'fix-check-for-display
( lambda _
( substitute* "tests/run_tests.sh"
( ( "have_display=no" ) "have_display=yes" ) )
#t ) )
gnu: Use 'modify-phases' syntax.
* gnu/packages/admin.scm (mingetty, clusterssh, wpa-supplicant-minimal,
wpa-supplicant, wakelan, acpica, tree, direvent, dstat)[arguments]: Use
'modify-phases' syntax.
* gnu/packages/algebra.scm (arb)[arguments]: Likewise.
* gnu/packages/apr.scm (apr-util)[arguments]: Likewise.
* gnu/packages/audio.scm (clalsadrv, fluidsynth, faad2, lv2-mda-piano,
lv2-mda-epiano, timidity++, vamp, soundtouch, portaudio, rsound,
zita-convolver, zita-alsa-pcmi)[arguments]: Likewise.
* gnu/packages/backup.scm (rdup, btar)[arguments]: Likewise.
* gnu/packages/bioinformatics.scm (bedops, bwa, crossmap, express,
flexbar, grit, hisat, ngs-sdk, subread)[arguments]: Likewise.
* gnu/packages/bittorrent.scm (transmission)[arguments]: Likewise.
* gnu/packages/cdrom.scm (cd-discid)[arguments]: Likewise.
* gnu/packages/compression.scm (sharutils)[arguments]: Likewise.
* gnu/packages/conky.scm (conky)[arguments]: Likewise.
* gnu/packages/databases.scm (bdb, bdb-5.3)[arguments]: Likewise.
* gnu/packages/debug.scm (delta, c-reduce)[arguments]: Likewise.
* gnu/packages/display-managers.scm (slim)[arguments]: Likewise.
* gnu/packages/dns.scm (dnsmasq)[arguments]: Likewise.
* gnu/packages/emacs.scm (geiser, emacs-wget, bbdb)[arguments]: Likewise.
* gnu/packages/engineering.scm (pcb)[arguments]: Likewise.
* gnu/packages/firmware.scm (ath9k-htc-firmware)[arguments]: Likewise.
* gnu/packages/flashing-tools.scm (flashrom)[arguments]: Likewise.
* gnu/packages/fltk.scm (fltk)[arguments]: Likewise.
* gnu/packages/freedesktop.scm (python-pyxdg)[arguments]: Likewise.
* gnu/packages/gd.scm (perl-gd)[arguments]: Likewise.
* gnu/packages/gkrellm.scm (gkrellm)[arguments]: Likewise.
* gnu/packages/glib.scm (glibmm)[arguments]: Likewise.
* gnu/packages/gl.scm (glew)[arguments]: Likewise.
* gnu/packages/gnome.scm (icon-naming-utils, orbit2, libbonobo, gnome-vfs,
libgnome, libbonoboui, goffice-0.8, dconf)[arguments]: Likewise.
* gnu/packages/gprolog.scm (gprolog)[arguments]: Likewise.
* gnu/packages/gps.scm (gpscorrelate)[arguments]: Likewise.
* gnu/packages/graphics.scm (agg)[arguments]: Likewise.
* gnu/packages/gtk.scm (ganv, girara, gtksourceview-2, guile-present,
python2-pycairo)[arguments]: Likewise.
* gnu/packages/guile.scm (guile-1.8)[arguments]: Likewise.
* gnu/packages/guile-wm.scm (guile-wm)[arguments]: Likewise.
* gnu/packages/hugs.scm (hugs)[arguments]: Likewise.
* gnu/packages/hurd.scm (gnumach-headers, hurd-headers, hurd-minimal)
[arguments]: Likewise.
* gnu/packages/image-viewers.scm (feh, sxiv)[arguments]: Likewise.
* gnu/packages/libcanberra.scm (libcanberra)[arguments]: Likewise.
* gnu/packages/linux.scm (bridge-utils, iw, fuse, unionfs-fuse/static,
lm-sensors, i2c-tools, xsensors, perf, mdadm, libaio, module-init-tools)
[arguments]: Likewise.
* gnu/packages/lisp.scm (ccl)[arguments]: Likewise.
* gnu/packages/lout.scm (lout)[arguments]: Likewise.
* gnu/packages/lua.scm (luajit)[arguments]: Likewise.
* gnu/packages/machine-learning.scm (shogun)[arguments]: Likewise.
* gnu/packages/mail.scm (exim)[arguments]: Likewise.
* gnu/packages/man.scm (man-pages, txt2man)[arguments]: Likewise.
* gnu/packages/maths.scm (lapack, superlu-dist, openlibm, openspecfun)
[arguments]: Likewise.
* gnu/packages/messaging.scm (bitlbee)[arguments]: Likewise.
* gnu/packages/mp3.scm (libmad, id3lib, mp3info)[arguments]: Likewise.
* gnu/packages/music.scm (solfege)[arguments]: Likewise.
* gnu/packages/noweb.scm (noweb)[arguments]: Likewise.
* gnu/packages/patchutils.scm (patchutils, quilt, colordiff)[arguments]:
Likewise.
* gnu/packages/pdf.scm (xpdf, zathura-cb, zathura-ps, zathura-djvu,
zathura-pdf-poppler, zathura, podofo, fbida)[arguments]: Likewise.
* gnu/packages/perl.scm (perl-file-list, perl-test-harness)[arguments]:
Likewise.
* gnu/packages/photo.scm (gphoto2)[arguments]: Likewise.
* gnu/packages/popt.scm (popt)[arguments]: Likewise.
* gnu/packages/pretty-print.scm (source-highlight, astyle)[arguments]:
Likewise.
* gnu/packages/pumpio.scm (pumpa)[arguments]: Likewise.
* gnu/packages/python.scm (python-passlib, python-pycrypto, python2-empy,
python-sqlalchemy, python-docopt)[arguments]: Likewise.
* gnu/packages/rdf.scm (lrdf)[arguments]: Likewise.
* gnu/packages/regex.scm (tre)[arguments]: Likewise.
* gnu/packages/rrdtool.scm (rrdtool)[arguments]: Likewise.
* gnu/packages/ruby.scm (ruby-2.1, ruby-1.8)[arguments]: Likewise.
* gnu/packages/sawfish.scm (sawfish)[arguments]: Likewise.
* gnu/packages/scheme.scm (racket)[arguments]: Likewise.
* gnu/packages/sdl.scm (guile-sdl)[arguments]: Likewise.
* gnu/packages/serveez.scm (serveez)[arguments]: Likewise.
* gnu/packages/skribilo.scm (skribilo)[arguments]: Likewise.
* gnu/packages/smalltalk.scm (smalltalk)[arguments]: Likewise.
* gnu/packages/suckless.scm (dmenu, slock)[arguments]: Likewise.
* gnu/packages/tcl.scm (expect)[arguments]: Likewise.
* gnu/packages/telephony.scm (commoncpp)[arguments]: Likewise.
* gnu/packages/textutils.scm (recode, libgtextutils)[arguments]:
Likewise.
* gnu/packages/time.scm (time)[arguments]: Likewise.
* gnu/packages/tor.scm (privoxy)[arguments]: Likewise.
* gnu/packages/uucp.scm (uucp)[arguments]: Likewise.
* gnu/packages/video.scm (libdvdnav-4)[arguments]: Likewise.
* gnu/packages/web-browsers.scm (lynx)[arguments]: Likewise.
* gnu/packages/web.scm (tinyproxy)[arguments]: Likewise.
* gnu/packages/wicd.scm (wicd)[arguments]: Likewise.
* gnu/packages/wm.scm (bspwm)[arguments]: Likewise.
* gnu/packages/xdisorg.scm (sxhkd, xcape)[arguments]: Likewise.
* gnu/packages/xfce.scm (xfconf)[arguments]: Likewise.
* gnu/packages/xfig.scm (transfig)[arguments]: Likewise.
* gnu/packages/xorg.scm (imake)[arguments]: Likewise.
2017-07-29 11:28:42 -04:00
( add-after 'install 'wrap
( lambda* ( # :key inputs outputs # :allow-other-keys )
;; FIXME: Mesa tries to dlopen libudev.so.0 and fails. Pending a
;; fix of the mesa package we wrap the pcb executable such that
;; Mesa can find libudev.so.0 through LD_LIBRARY_PATH.
( let* ( ( out ( assoc-ref outputs "out" ) )
( path ( string-append ( assoc-ref inputs "udev" ) "/lib" ) ) )
( wrap-program ( string-append out "/bin/pcb" )
` ( "LD_LIBRARY_PATH" ":" prefix ( , path ) ) ) )
#t ) )
( add-before 'check 'pre-check
( lambda _
( system "Xvfb :1 &" )
( setenv "DISPLAY" ":1" )
#t ) ) ) ) )
2015-03-06 15:11:01 -05:00
( inputs
` ( ( "dbus" , dbus )
( "mesa" , mesa )
( "udev" , eudev ) ;FIXME: required by mesa
( "glu" , glu )
( "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 )
2017-05-06 02:56:39 -04:00
( "flex" , flex )
;; For tests
( "imagemagick" , imagemagick )
( "gerbv" , gerbv )
( "ghostscript" , ghostscript )
( "xvfb" , xorg-server ) ) )
2015-03-06 15:11:01 -05:00
( home-page "http://pcb.geda-project.org/" )
( synopsis "Design printed circuit board layouts" )
( description
" GNU PCB is an interactive tool for editing printed circuit board
layouts . It features a rats-nest implementation, schematic/netlist import,
and design rule checking . It also includes an autorouter and a trace
optimizer ; and it can produce photorealistic and design review images.")
( license license:gpl2+ ) ) )
2015-07-21 15:51:29 -04:00
2016-11-14 17:20:19 -05:00
( define-public pcb-rnd
( package ( inherit pcb )
( name "pcb-rnd" )
( version "1.1.3" )
( source ( origin
( method url-fetch )
( uri ( string-append "http://repo.hu/projects/pcb-rnd/releases/"
"pcb-rnd-" version ".tar.gz" ) )
( sha256
( base32
"0pycynla60b96jkb6fh6f4sx663pqbzjwnixhw5ym8sym2absm09" ) ) ) )
( arguments
` ( # :tests? #f ; no check target
# :phases
( modify-phases %standard-phases
( add-after 'unpack 'cc-is-gcc
( lambda _ ( setenv "CC" "gcc" ) #t ) )
( replace 'configure
;; The configure script doesn't tolerate most of our configure flags.
( lambda* ( # :key outputs # :allow-other-keys )
( zero? ( system* "sh" "configure"
( string-append "--prefix="
( assoc-ref outputs "out" ) ) ) ) ) ) ) ) )
( home-page "http://repo.hu/projects/pcb-rnd/" )
( description " PCB RND is a fork of the GNU PCB circuit board editing tool
featuring various improvements and bug fixes . " ) ) )
2015-07-21 15:51:29 -04:00
( define-public fastcap
( package
( name "fastcap" )
( version "2.0-18Sep92" )
( source ( origin
2016-02-21 18:29:54 -05:00
( method url-fetch/tarbomb )
2015-07-21 15:51:29 -04:00
( uri ( string-append "http://www.rle.mit.edu/cpg/codes/"
name "-" version ".tgz" ) )
( sha256
( base32
"0x37vfp6k0d2z3gnig0hbicvi0jp8v267xjnn3z8jdllpiaa6p3k" ) )
2015-10-17 12:41:22 -04:00
( snippet
;; Remove a non-free file.
gnu: All snippets report errors using exceptions, else return #t.
* gnu/packages/admin.scm, gnu/packages/algebra.scm, gnu/packages/audio.scm,
gnu/packages/backup.scm, gnu/packages/base.scm,
gnu/packages/bioinformatics.scm, gnu/packages/cdrom.scm,
gnu/packages/chez.scm, gnu/packages/code.scm, gnu/packages/compression.scm,
gnu/packages/cross-base.scm, gnu/packages/crypto.scm, gnu/packages/cups.scm,
gnu/packages/databases.scm, gnu/packages/dns.scm, gnu/packages/emacs.scm,
gnu/packages/emulators.scm, gnu/packages/engineering.scm,
gnu/packages/enlightenment.scm, gnu/packages/fpga.scm,
gnu/packages/freedesktop.scm, gnu/packages/ftp.scm, gnu/packages/games.scm,
gnu/packages/gcc.scm, gnu/packages/geo.scm, gnu/packages/ghostscript.scm,
gnu/packages/gl.scm, gnu/packages/glib.scm, gnu/packages/gnome.scm,
gnu/packages/gnuzilla.scm, gnu/packages/graphics.scm, gnu/packages/gtk.scm,
gnu/packages/guile.scm, gnu/packages/irc.scm, gnu/packages/java.scm,
gnu/packages/kerberos.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm,
gnu/packages/lxde.scm, gnu/packages/machine-learning.scm,
gnu/packages/mail.scm, gnu/packages/maths.scm, gnu/packages/messaging.scm,
gnu/packages/monitoring.scm, gnu/packages/mp3.scm, gnu/packages/music.scm,
gnu/packages/netpbm.scm, gnu/packages/networking.scm, gnu/packages/node.scm,
gnu/packages/nvi.scm, gnu/packages/ocaml.scm, gnu/packages/pdf.scm,
gnu/packages/perl.scm, gnu/packages/php.scm, gnu/packages/plotutils.scm,
gnu/packages/pretty-print.scm, gnu/packages/profiling.scm,
gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm,
gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/robotics.scm,
gnu/packages/sawfish.scm, gnu/packages/scanner.scm, gnu/packages/scheme.scm,
gnu/packages/scribus.scm, gnu/packages/sdl.scm,
gnu/packages/serialization.scm, gnu/packages/shells.scm,
gnu/packages/slang.scm, gnu/packages/smalltalk.scm, gnu/packages/ssh.scm,
gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/tbb.scm,
gnu/packages/terminals.scm, gnu/packages/texinfo.scm,
gnu/packages/text-editors.scm, gnu/packages/textutils.scm,
gnu/packages/tls.scm, gnu/packages/unrtf.scm,
gnu/packages/version-control.scm, gnu/packages/video.scm,
gnu/packages/vpn.scm, gnu/packages/web.scm, gnu/packages/wm.scm,
gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xorg.scm:
In all snippets, report errors using exceptions, or else return #t.
2018-03-16 07:47:34 -04:00
' ( begin
( delete-file "doc/psfig.sty" )
#t ) )
2016-04-08 08:18:13 -04:00
( patches ( search-patches "fastcap-mulSetup.patch"
"fastcap-mulGlobal.patch" ) ) ) )
2015-07-21 15:51:29 -04:00
( build-system gnu-build-system )
( native-inputs
2017-11-08 11:15:24 -05:00
;; FIXME: with texlive-tiny citation references are rendered as question
;; marks. During the build warnings like these are printed:
;; LaTeX Warning: Citation `nabors91' on page 2 undefined on input line 3.
` ( ( "texlive" , texlive-tiny )
2016-09-02 06:12:07 -04:00
( "ghostscript" , ghostscript ) ) )
2015-07-21 15:51:29 -04:00
( arguments
` ( # :make-flags ' ( "CC=gcc" "RM=rm" "SHELL=sh" "all" )
# :parallel-build? #f
# :tests? #f ;; no tests-suite
# :modules ( ( srfi srfi-1 )
,@ %gnu-build-system-modules )
# :phases
( modify-phases %standard-phases
( add-after 'build 'make-doc
2017-11-08 11:15:24 -05:00
( lambda _
( zero? ( system* "make" "CC=gcc" "RM=rm" "SHELL=sh"
"manual" ) ) ) )
2015-07-21 15:51:29 -04:00
( add-before 'make-doc 'fix-doc
2017-11-08 11:15:24 -05:00
( lambda _
( substitute* "doc/Makefile" ( ( "/bin/rm" ) ( which "rm" ) ) )
( substitute* ( find-files "doc" "\\.tex" )
( ( "\\\\special\\{psfile=([^,]*),.*scale=([#0-9.]*).*\\}"
all file scale )
( string-append "\\includegraphics[scale=" scale "]{"
file "}" ) )
( ( "\\\\psfig\\{figure=([^,]*),.*width=([#0-9.]*in).*\\}"
all file width )
( string-append "\\includegraphics[width=" width "]{"
file "}" ) )
( ( "\\\\psfig\\{figure=([^,]*),.*height=([#0-9.]*in).*\\}"
all file height )
( string-append "\\includegraphics[height=" height "]{"
file "}" ) )
( ( "\\\\psfig\\{figure=([^,]*)\\}" all file )
( string-append "\\includegraphics{" file "}" ) ) )
( substitute* ' ( "doc/mtt.tex" "doc/tcad.tex" "doc/ug.tex" )
( ( "^\\\\documentstyle\\[(.*)\\]\\{(.*)\\}"
all options class )
( string-append "\\documentclass[" options "]{"
class "}\n"
"\\usepackage{graphicx}\n"
"\\usepackage{robinspace}" ) )
( ( "\\\\setlength\\{\\\\footheight\\}\\{.*\\}" all )
( string-append "%" all ) )
( ( "\\\\setstretch\\{.*\\}" all )
( string-append "%" all ) ) )
#t ) )
2015-07-21 15:51:29 -04:00
( delete 'configure )
( add-before 'install 'clean-bin
2017-11-08 11:15:24 -05:00
( lambda _
( delete-file ( string-append ( getcwd ) "/bin/README" ) )
#t ) )
2015-07-21 15:51:29 -04:00
( add-before 'install 'make-pdf
2017-11-08 11:15:24 -05:00
( lambda _
( setenv "HOME" "/tmp" ) ; FIXME: for texlive font cache
( with-directory-excursion "doc"
( and
( every ( lambda ( file )
( zero? ( system* "dvips" file "-o" ) ) )
( find-files "." "\\.dvi" ) )
( every ( lambda ( file )
( zero? ( system* "ps2pdf" file ) ) )
' ( "mtt.ps" "ug.ps" "tcad.ps" ) )
( zero? ( system* "make" "clean" ) ) ) ) ) )
2015-07-21 15:51:29 -04:00
( replace 'install
2017-11-08 11:15:24 -05:00
( lambda* ( # :key outputs # :allow-other-keys )
( let* ( ( out ( assoc-ref outputs "out" ) )
( data ( string-append out "/share" ) )
( bin ( string-append out "/bin" ) )
( doc ( string-append data "/doc/" , name "-" , version ) )
( examples ( string-append doc "/examples" ) ) )
( with-directory-excursion "bin"
( for-each ( lambda ( f )
( install-file f bin ) )
( find-files "." ".*" ) ) )
( copy-recursively "doc" doc )
( copy-recursively "examples" examples )
#t ) ) ) ) ) )
2015-07-21 15:51:29 -04:00
( home-page "http://www.rle.mit.edu/cpg/research_codes.htm" )
( synopsis "Multipole-accelerated capacitance extraction program" )
( description
" Fastcap is a capacitance extraction program based on a
multipole-accelerated algorithm . " )
( license ( license:non-copyleft #f "See fastcap.c." ) ) ) )
2015-07-22 08:18:27 -04:00
( define-public fasthenry
( package
( name "fasthenry" )
( version "3.0-12Nov96" )
( source ( origin
( method url-fetch )
( file-name ( string-append name "-" version ".tar.gz" ) )
( uri ( string-append
"http://www.rle.mit.edu/cpg/codes/" name
"-" version ".tar.z" ) )
( sha256
( base32 "1a06xyyd40zhknrkz17xppl2zd5ig4w9g1grc8qrs0zqqcl5hpzi" ) )
2016-04-08 08:18:13 -04:00
( patches ( search-patches "fasthenry-spAllocate.patch"
"fasthenry-spBuild.patch"
"fasthenry-spUtils.patch"
"fasthenry-spSolve.patch"
"fasthenry-spFactor.patch" ) ) ) )
2015-07-22 08:18:27 -04:00
( build-system gnu-build-system )
( arguments
` ( # :make-flags ' ( "CC=gcc" "RM=rm" "SHELL=sh" "all" )
# :parallel-build? #f
# :tests? #f ;; no tests-suite
# :modules ( ( srfi srfi-1 )
,@ %gnu-build-system-modules )
# :phases
( modify-phases %standard-phases
( delete 'configure )
( replace 'install
( lambda* ( # :key outputs # :allow-other-keys )
( let* ( ( out ( assoc-ref outputs "out" ) )
( data ( string-append out "/share" ) )
( bin ( string-append out "/bin" ) )
( doc ( string-append data "/doc/" , name "-" , version ) )
( examples ( string-append doc "/examples" ) ) )
( with-directory-excursion "bin"
gnu: Use 'install-file' instead of 'mkdir-p' and 'copy-file' in obvious cases.
* gnu/packages/bioinformatics.scm (bedtools, bowtie, bwa, hisat, samtools,
plink, star): Use 'install-file' instead of 'mkdir-p' + 'copy-file'.
* gnu/packages/check.scm (catch-framework): Likewise.
* gnu/packages/code.scm (global): Likewise.
* gnu/packages/emacs.scm (magit-svn, haskell-mode, emacs-pdf-tools):
Likewise.
* gnu/packages/engineering.scm (fastcap, fasthenry): Likewise.
* gnu/packages/gnuzilla.scm (nss): Likewise.
* gnu/packages/guile.scm (guile-minikanren): Likewise.
* gnu/packages/java.scm (swt): Likewise.
* gnu/packages/make-bootstrap.scm (%static-binaries): Likewise.
* gnu/packages/maths.scm (lpsolve): Likewise.
* gnu/packages/mp3.scm (mpc123): Likewise.
* gnu/packages/ninja.scm (ninja): Likewise.
* gnu/packages/python.scm (python-numpy, python-pyparsing): Likewise.
* gnu/packages/screen.scm (dtach): Likewise.
* gnu/packages/synergy.scm (synergy): Likewise.
* gnu/packages/textutils.scm (utf8proc): Likewise.
* gnu/packages/version-control.scm (git-test-sequence): Likewise.
* gnu/packages/wicd.scm (wicd): Likewise.
2015-08-28 16:22:22 -04:00
( for-each ( lambda ( f )
( install-file f bin ) )
( find-files "." ".*" ) ) )
2015-07-22 08:18:27 -04:00
( copy-recursively "doc" doc )
( copy-recursively "examples" examples )
#t ) ) ) ) ) )
( home-page "http://www.rle.mit.edu/cpg/research_codes.htm" )
( synopsis "Multipole-accelerated inductance analysis program" )
( description
" Fasthenry is an inductance extraction program based on a
multipole-accelerated algorithm . " )
( license ( license:non-copyleft #f "See induct.c." ) ) ) )
2015-08-31 02:47:09 -04:00
2015-12-26 05:30:43 -05:00
( define-public fritzing
( package
( name "fritzing" )
( version "0.9.2b" )
( 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" ) )
( sha256
( base32
2017-10-15 22:17:12 -04:00
"15rwjp4xdj9w1z9f709rz9p0k2mi9k9idma9hvzkj5j8p04mg7yd" ) ) ) )
2015-12-26 05:30:43 -05:00
( 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" ) ) ) ) ) ) ) )
( inputs
2016-08-15 14:34:16 -04:00
` ( ( "qtbase" , qtbase )
( "qtserialport" , qtserialport )
( "qtsvg" , qtsvg )
2015-12-26 05:30:43 -05:00
( "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" ) )
( sha256
( base32
"0jqr8yjg7177f3pk1fcns584r0qavwpr280nggsi2ff3pwk5wpsz" ) ) ) ) ) )
( home-page "http://fritzing.org" )
( synopsis "Electronic circuit design" )
( description
" The Fritzing application is @dfn { Electronic Design Automation } ( EDA )
software with a low entry barrier, suited for the needs of makers and
hobbyists . It offers a unique real-life \ "breadboard\" view, and a parts
library with many commonly used high-level components . Fritzing makes it very
easy to communicate about circuits, as well as to turn them into PCB layouts
ready for production . " )
;; Documentation and parts are released under CC-BY-SA 3.0; source code is
;; released under GPLv3+.
( license ( list license:gpl3+ license:cc-by-sa3 . 0 ) ) ) )
2015-08-31 02:47:09 -04:00
( define-public gerbv
( package
( name "gerbv" )
2018-06-05 23:28:24 -04:00
( version "2.6.2" )
2015-08-31 02:47:09 -04:00
( source ( origin
( method url-fetch )
( uri ( string-append "mirror://sourceforge/gerbv/gerbv/gerbv-"
version "/gerbv-" version ".tar.gz" ) )
( sha256
( base32
2018-06-05 23:28:24 -04:00
"1cw8k6ni0q8kswad03kha86fk7n06vq8p0wzsfhcnalsdshrn17i" ) ) ) )
2015-08-31 02:47:09 -04:00
( build-system gnu-build-system )
( native-inputs
2018-06-05 23:28:24 -04:00
` ( ( "pkg-config" , pkg-config ) ) )
2015-08-31 02:47:09 -04:00
( inputs
` ( ( "cairo" , cairo )
( "gtk" , gtk+-2 )
( "desktop-file-utils" , desktop-file-utils ) ) )
( home-page "http://gerbv.geda-project.org/" )
( synopsis "Gerber file viewer" )
( description
" Gerbv is a viewer for files in the Gerber format ( RS-274X only ) , which
is commonly used to represent printed circuit board ( PCB ) layouts . Gerbv lets
you load several files on top of each other, do measurements on the displayed
image, etc . Besides viewing Gerbers, you may also view Excellon drill files
as well as pick-place files . " )
( license license:gpl2+ ) ) )
2016-10-19 04:39:59 -04:00
2018-03-30 16:19:27 -04:00
( define-public libfive
( let ( ( commit "9d857d1923abecb0e5935b9287d22661f6efaac5" )
( revision "2" ) )
2016-10-19 04:39:59 -04:00
( package
2018-03-30 16:19:27 -04:00
( name "libfive" )
2017-12-14 18:03:58 -05:00
( version ( git-version "0" revision commit ) )
2016-10-19 04:39:59 -04:00
( source ( origin
( method git-fetch )
( uri ( git-reference
2018-03-30 16:19:27 -04:00
( url "https://github.com/libfive/libfive" )
2016-10-19 04:39:59 -04:00
( commit commit ) ) )
( sha256
( base32
2018-03-30 16:19:27 -04:00
"1r40kyx30wz31cwwlfvfh7fgqkxq3n8dxhswpi9qpf4r5h3l8wsn" ) )
2018-04-06 07:43:54 -04:00
( file-name ( git-file-name name version ) )
( snippet
;; Remove bundled catch since we provide our own.
2018-04-19 11:19:02 -04:00
' ( begin
( delete-file "libfive/test/catch.hpp" )
#t ) ) ) )
2016-10-19 04:39:59 -04:00
( build-system cmake-build-system )
( arguments
2018-04-06 07:43:54 -04:00
` ( # :test-target "libfive-test"
2016-10-19 04:39:59 -04:00
# :phases
( modify-phases %standard-phases
2017-12-14 18:03:58 -05:00
( add-after 'unpack 'remove-native-compilation
( lambda _
( substitute* "CMakeLists.txt" ( ( "-march=native" ) "" ) )
2018-04-06 07:43:54 -04:00
#t ) ) ) ) )
2016-10-19 04:39:59 -04:00
( native-inputs
` ( ( "pkg-config" , pkg-config ) ) )
( inputs
` ( ( "boost" , boost )
( "catch" , catch-framework )
( "libpng" , libpng )
2018-03-30 16:19:27 -04:00
( "qtbase" , qtbase )
2016-10-19 04:39:59 -04:00
( "eigen" , eigen )
2018-03-30 16:19:27 -04:00
( "guile" , guile-2 . 2 ) ) )
( home-page "https://libfive.com" )
2016-10-19 04:39:59 -04:00
( synopsis "Tool for programmatic computer-aided design" )
( description
2018-03-30 16:19:27 -04:00
" Libfive is a tool for programmatic computer-aided design ( CAD ) . In
libfive, solid models are defined as Scheme scripts, and there are no opaque
function calls into the geometry kernel: everything is visible to the user .
Even fundamental, primitive shapes are represented as code in the user-level
2016-10-19 04:39:59 -04:00
language . " )
( license ( list license:lgpl2 . 1 + ;library
2018-03-30 16:19:27 -04:00
license:gpl2+ ) ) ) ) ) ;Guile bindings and GUI
2018-03-30 16:54:51 -04:00
( define-public ao
( deprecated-package "ao-cad" libfive ) )
2016-11-15 15:53:23 -05:00
( define-public kicad
( package
( name "kicad" )
2018-08-16 07:33:48 -04:00
( version "5.0.0" )
2016-11-15 15:53:23 -05:00
( source
( origin
2018-08-16 07:33:48 -04:00
( method url-fetch )
( file-name ( string-append name "-" version ".tar.xz" ) )
( uri ( string-append
2018-12-16 16:07:44 -05:00
"https://launchpad.net/kicad/" ( version-major+minor version )
"/" version "/+download/" name "-" version ".tar.xz" ) )
2016-11-15 15:53:23 -05:00
( sha256
2018-08-16 07:33:48 -04:00
( base32 "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p" ) ) ) )
2016-11-15 15:53:23 -05:00
( build-system cmake-build-system )
( arguments
` ( # :out-of-source? #t
# :tests? #f ; no tests
2018-03-17 07:23:59 -04:00
# :build-type "Release"
2016-11-15 15:53:23 -05:00
# :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" )
2018-12-16 16:07:44 -05:00
"/include/wx-"
, ( version-major+minor
( package-version python2-wxpython ) ) )
2016-11-15 15:53:23 -05:00
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
2017-10-27 10:23:52 -04:00
"-DKICAD_SPICE=TRUE"
2016-11-15 15:53:23 -05:00
;; TODO: Enable this when CA certs are working with curl.
"-DBUILD_GITHUB_PLUGIN=OFF" )
# :phases
( modify-phases %standard-phases
2018-12-02 12:33:57 -05:00
( 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 ) )
2016-11-15 15:53:23 -05:00
( 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
2018-12-16 16:07:44 -05:00
"/lib/python"
, ( version-major+minor
( package-version python ) )
"/site-packages:"
2016-11-15 15:53:23 -05:00
( getenv "PYTHONPATH" ) ) ) )
( wrap-program file
` ( "PYTHONPATH" ":" prefix ( , path ) )
` ( "PATH" ":" prefix
( , ( string-append python "/bin:" ) ) ) ) )
#t ) ) ) ) )
( native-inputs
` ( ( "boost" , boost )
( "gettext" , gnu-gettext )
( "pkg-config" , pkg-config )
( "swig" , swig )
( "zlib" , zlib ) ) )
( inputs
` ( ( "cairo" , cairo )
( "curl" , curl )
( "desktop-file-utils" , desktop-file-utils )
( "glew" , glew )
( "glm" , glm )
( "hicolor-icon-theme" , hicolor-icon-theme )
2017-10-27 10:23:52 -04:00
( "libngspice" , libngspice )
2016-11-15 15:53:23 -05:00
( "libsm" , libsm )
( "mesa" , mesa )
2018-08-16 07:33:48 -04:00
( "opencascade-oce" , opencascade-oce )
2016-11-15 15:53:23 -05:00
( "openssl" , openssl )
( "python" , python-2 )
( "wxwidgets" , wxwidgets-gtk2 )
( "wxpython" , python2-wxpython ) ) )
( home-page "http://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 . " )
2018-08-16 07:33:48 -04:00
( license license:gpl3+ ) ) )
2016-11-15 15:53:24 -05:00
( define-public kicad-library
2018-07-02 18:19:08 -04:00
( let ( ( version "4.0.7" ) )
2016-11-15 15:53:24 -05:00
( 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
2018-07-02 18:19:08 -04:00
"1azb7v1y3l6j329r9gg7f4zlg0wz8nh4s4i5i0l9s4yh9r6i9zmv" ) ) ) )
2016-11-15 15:53:24 -05:00
( 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 )
2018-07-02 18:14:55 -04:00
( invoke "tar" "xvf"
( assoc-ref inputs "kicad-footprints" )
"-C" ( string-append ( assoc-ref outputs "out" )
"/share/kicad/modules" )
"--strip-components=1" ) ) )
2016-11-15 15:53:24 -05:00
;; 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" ) ) ) ) )
2018-07-02 18:19:08 -04:00
;; Kicad distributes footprints in a separate tarball.
2016-11-15 15:53:24 -05:00
( native-inputs
` ( ( "kicad-footprints"
, ( origin
( method url-fetch )
( uri ( string-append
"http://downloads.kicad-pcb.org/libraries/kicad-footprints-"
version ".tar.gz" ) )
( sha256
( base32
2018-07-02 18:19:08 -04:00
"08qrz5zzsb5127jlnv24j0sgiryd5nqwg3lfnwi8j9a25agqk13j" ) ) ) ) ) )
2016-11-15 15:53:24 -05:00
( home-page "http://kicad-pcb.org/" )
( synopsis "Libraries for kicad" )
( description " This package provides Kicad component, footprint and 3 D
render model libraries . " )
( license license:lgpl2 . 0 + ) ) ) )
2017-02-28 15:26:37 -05:00
2018-10-10 06:16:51 -04:00
( define-public kicad-symbols
( package
( name "kicad-symbols" )
( version "5.0.1" )
( 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" ) )
( sha256
( base32
"18z5vpdq7hy2mpvm5vz1dz3ra3a5iybavvlzi8q2bmmdb6gsvf64" ) ) ) )
( build-system cmake-build-system )
( arguments
` ( # :tests? #f ) ) ; No tests exist
( home-page "http://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'."
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
( license license:cc-by-sa4 . 0 ) ) )
2017-02-28 15:26:37 -05:00
( define-public linsmith
( package
( name "linsmith" )
2018-06-05 23:17:12 -04:00
( version "0.99.31" )
2017-02-28 15:26:37 -05:00
( source ( origin
( method url-fetch )
( uri ( string-append
"mirror://sourceforge/linsmith/linsmith/linsmith-"
version "/linsmith-" version ".tar.gz" ) )
( sha256
( base32
2018-06-05 23:17:12 -04:00
"13qj7n9826qc9shkkgd1p6vcpj78v4h9d67wbg45prg7rbnzkzds" ) ) ) )
2017-02-28 15:26:37 -05:00
( build-system gnu-build-system )
( native-inputs
` ( ( "pkg-config" , pkg-config )
( "gtk" , gtk+-2 )
( "libgnome" , libgnomeui ) ) )
2018-06-05 23:17:02 -04:00
( home-page "https://jcoppens.com/soft/linsmith/index.en.php" )
2017-02-28 15:26:37 -05:00
( synopsis "Smith Charting program" )
( description " LinSmith is a Smith Charting program, mainly designed for
educational use . As such, there is an emphasis on capabilities that improve
the 'showing the effect of '-style of operation . " )
( license license:gpl2+ ) ) )
2017-04-22 17:35:47 -04:00
( define-public volk
( package
( name "volk" )
( version "1.3" )
( source
( origin
( method url-fetch )
( uri ( string-append "http://libvolk.org/releases/volk-"
version ".tar.gz" ) )
( sha256
( base32
"1bz3ywc6y5wmz3i8p4z2wbzhns8bc0ywdkl9qnxpcvfcscarbdlh" ) ) ) )
( build-system cmake-build-system )
( inputs
` ( ( "boost" , boost ) ) )
( native-inputs
2018-03-16 11:50:14 -04:00
` ( ( "python-2" , python-2 )
2017-04-22 17:35:47 -04:00
( "python2-cheetah" , python2-cheetah ) ) )
( home-page "http://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 . " )
( license license:gpl3+ ) ) )
2017-06-10 10:06:34 -04:00
( define-public minicom
( package
( name "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" ) )
( sha256
( base32
"1wa1l36fa4npd21xa9nz60yrqwkk5cq713fa3p5v0zk7g9mq6bsk" ) ) ) )
( build-system gnu-build-system )
( arguments
` ( # :configure-flags ' ( "--enable-lock-dir=/var/lock" )
# :phases
( modify-phases %standard-phases
( add-after 'unpack 'patch-lock-check
( lambda _
( substitute* "configure"
( ( "test -d [$]UUCPLOCK" ) "true" ) )
#t ) ) ) ) )
( inputs
` ( ( "ncurses" , ncurses ) ) )
( home-page "https://alioth.debian.org/projects/minicom/" )
( synopsis "Serial terminal emulator" )
( description "@code{minicom} is a serial terminal emulator." )
( license license:gpl2+ ) ) )
2017-06-22 15:09:54 -04:00
( define-public harminv
( package
( name "harminv" )
2018-01-12 07:49:46 -05:00
( version "1.4.1" )
2017-06-22 15:09:54 -04:00
( source ( origin
( method url-fetch )
( uri
2018-01-12 07:49:46 -05:00
( string-append "https://github.com/stevengj/harminv/"
"releases/download/v" version "/"
name "-" version ".tar.gz" ) )
2017-06-22 15:09:54 -04:00
( sha256
( base32
2018-01-12 07:49:46 -05:00
"0w1n4d249vlpda0hi6z1v13qp21vlbp3ykn0m8qg4rd5132j7fg1" ) ) ) )
2017-06-22 15:09:54 -04:00
( build-system gnu-build-system )
( arguments
` ( # :phases
( modify-phases %standard-phases
( add-before 'configure 'fix-tests
( lambda _
( substitute* "./sines-test.sh"
; change test frequency range - default fails
( ( "0\\.15" ) "0.16" ) )
#t ) ) ) ) )
( native-inputs
` ( ( "fortran" , gfortran ) ) )
( inputs
` ( ( "lapack" , lapack ) ) )
2018-01-12 07:49:46 -05:00
( home-page "https://github.com/stevengj/harminv" )
2017-06-22 15:09:54 -04:00
( synopsis "Harmonic inversion solver" )
( description
" Harminv is a free program ( and accompanying library ) to solve the problem of
harmonic inversion — given a discrete-time, finite-length signal that consists of a sum
of finitely-many sinusoids ( possibly exponentially decaying ) in a given bandwidth, it
determines the frequencies, decay constants, amplitudes, and phases of those sinusoids . " )
( license license:gpl2+ ) ) )
2017-06-22 15:09:55 -04:00
( define-public guile-libctl
( package
( name "guile-libctl" )
( version "3.2.2" )
( source ( origin
( method url-fetch )
( uri
( string-append
"http://ab-initio.mit.edu/libctl/libctl-"
version ".tar.gz" ) )
( sha256
( base32
"1g7gqybq20jhdnw5vg18bgbj9jz0408gfmjvs8b4xs30pic8pgca" ) ) ) )
( build-system gnu-build-system )
( native-inputs
` ( ( "fortran" , gfortran ) ) )
( inputs
` ( ( "guile" , guile-2 . 2 ) ) )
( home-page "http://ab-initio.mit.edu/wiki/index.php/Libctl" )
( synopsis "Flexible control files implementation for scientific simulations" )
( description
" Libctl is a Guile-based library implementing flexible control files
for scientific simulations . " )
( license license:gpl2+ ) ) )
2017-06-22 15:09:56 -04:00
( define-public mpb
( package
( name "mpb" )
( version "1.5" )
( source ( origin
( method url-fetch )
( uri
( string-append
"http://ab-initio.mit.edu/mpb/mpb-"
version ".tar.gz" ) )
( sha256
( base32
"1mqb2d8jq957nksayjygq58iy8i42vjryzg9iy5fpfay31wzxsix" ) ) ) )
( build-system gnu-build-system )
( arguments
` ( # :configure-flags
( list ( string-append "--with-libctl="
( assoc-ref %build-inputs "libctl" )
"/share/libctl" ) ) ) )
( native-inputs
` ( ( "fortran" , gfortran )
( "pkg-config" , pkg-config )
( "swig" , swig ) ) )
( inputs
` ( ( "fftw" , fftw )
( "gsl" , gsl )
( "guile" , guile-2 . 2 )
( "hdf5" , hdf5 )
( "lapack" , lapack )
( "libctl" , guile-libctl )
( "readline" , readline )
( "zlib" , zlib ) ) )
( home-page "http://ab-initio.mit.edu/wiki/index.php/MIT_Photonic_Bands" )
( synopsis " Computes band structures and electromagnetic modes of dielectric
structures " )
( description
" MIT Photonic-Bands ( MPB ) computes definite-frequency eigenstates ( harmonic modes )
of Maxwell 's equations in periodic dielectric structures for arbitrary wavevectors, using
fully-vectorial and three-dimensional methods . " )
( license license:gpl2+ ) ) )
2017-06-22 15:09:57 -04:00
( define-public meep
( package
( name "meep" )
( version "1.3" )
( source ( origin
( method url-fetch )
( uri
( string-append
"http://ab-initio.mit.edu/meep/meep-"
version ".tar.gz" ) )
( sha256
( base32
"0f6lbw2hrksg7xscwdqs78jc9nmzx9fs8j0hz1y4i8qknkqiyk2n" ) ) ) )
( build-system gnu-build-system )
( arguments
` ( # :configure-flags
( list ( string-append "--with-libctl="
( assoc-ref %build-inputs "libctl" )
"/share/libctl" ) ) ) )
( native-inputs
` ( ( "fortran" , gfortran )
( "pkg-config" , pkg-config )
( "swig" , swig ) ) )
( inputs
` ( ( "fftw" , fftw )
( "gsl" , gsl )
2017-06-24 02:52:57 -04:00
( "guile" , guile-2 . 0 ) ; doesn't build with guile-2.2
2017-06-22 15:09:57 -04:00
( "harminv" , harminv )
( "hdf5" , hdf5 )
( "lapack" , lapack )
( "libctl" , guile-libctl )
( "mpb" , mpb )
( "zlib" , zlib ) ) )
( home-page "http://ab-initio.mit.edu/wiki/index.php/Meep" )
( synopsis "Finite-difference time-domain (FDTD) simulation software" )
( description
" Meep is a finite-difference time-domain ( FDTD ) simulation software package
developed at MIT to model electromagnetic systems . " )
( license license:gpl2+ ) ) )
2017-06-24 02:52:57 -04:00
( define-public adms
( package
( name "adms" )
( version "2.3.6" )
( source ( origin
( method url-fetch )
( uri
( string-append
"mirror://sourceforge/mot-adms/adms-source/"
( version-major+minor version ) "/adms-" version ".tar.gz" ) )
( sha256
( base32
"1rn98l6jxcjhi6ai5f7p588khra9z80m0m0lql4n4sb7773fh1vk" ) ) ) )
( build-system gnu-build-system )
( native-inputs
` ( ( "flex" , flex )
( "bison" , bison ) ) )
( home-page "https://sourceforge.net/projects/mot-adms" )
( synopsis "Automatic device model synthesizer" )
( description
" ADMS is a code generator that converts electrical compact device models
specified in high-level description language into ready-to-compile C code for
the API of spice simulators . Based on transformations specified in XML
language, ADMS transforms Verilog-AMS code into other target languages . " )
( license license:gpl3 ) ) )
2017-08-11 14:41:39 -04:00
( define-public capstone
( package
( name "capstone" )
2018-08-23 20:58:23 -04:00
( version "3.0.5" )
2017-08-11 14:41:39 -04:00
( 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" ) )
( sha256
( base32
2018-08-23 20:58:23 -04:00
"1wbd1g3r32ni6zd9vwrq3kn7fdp9y8qwn9zllrrbk8n5wyaxcgci" ) ) ) )
2017-08-11 14:41:39 -04:00
( build-system gnu-build-system )
( arguments
` ( # :tests? #f
2018-08-23 20:58:23 -04:00
# :make-flags ( list ( string-append "PREFIX=" ( assoc-ref %outputs "out" ) )
2017-08-11 14:41:39 -04:00
"CC=gcc" )
# :phases
( modify-phases %standard-phases
2018-08-23 20:58:23 -04:00
( delete 'configure ) ; no configure script
;; cstool's Makefile ‘ +=’ s LDFLAGS, so we cannot pass it as a make flag.
2017-08-11 14:41:39 -04:00
( add-before 'build 'fix-cstool-ldflags
( lambda* ( # :key outputs # :allow-other-keys )
2018-08-23 20:58:23 -04:00
( setenv "LDFLAGS" ( string-append "-Wl,-rpath="
( assoc-ref outputs "out" ) "/lib" ) )
2017-08-11 14:41:39 -04:00
#t ) ) ) ) )
2018-08-23 20:59:02 -04:00
( home-page "https://www.capstone-engine.org" )
2017-08-11 14:41:39 -04:00
( synopsis "Lightweight multi-platform, multi-architecture disassembly framework" )
( description
" Capstone is a lightweight multi-platform, multi-architecture disassembly
framework . Capstone can disassemble machine code for many supported architectures
such as x86, x86_64, arm, arm64, mips, ppc, sparc, sysz and xcore . It provides
bindings for Python, Java, OCaml and more . " )
( license license:bsd-3 ) ) )
2017-08-11 14:49:04 -04:00
;; FIXME: This package has a timestamp embedded in
;; lib/python3.5/site-packages/capstone/__pycache__/__iti__.cpython-35.pyc
( define-public python-capstone
( package
( inherit capstone )
( name "python-capstone" )
( propagated-inputs
` ( ( "capstone" , capstone ) ) )
( build-system python-build-system )
( arguments
` ( # :phases
( modify-phases %standard-phases
( add-after 'unpack 'chdir-and-fix-setup-py
( lambda _
( chdir "bindings/python" )
;; Do not build the library again, because we already have it.
( substitute* "setup.py" ( ( ".* build_libraries.*" ) "" ) )
;; This substitution tells python-capstone where to find the
;; library.
( substitute* "capstone/__init__.py"
( ( "pkg_resources.resource_filename.*" )
( string-append "'" ( assoc-ref %build-inputs "capstone" ) "/lib',\n" ) ) )
#t ) ) ) ) ) ) )
( define-public python2-capstone
( package-with-python2 python-capstone ) )
2017-08-11 14:54:40 -04:00
( define-public radare2
( package
( name "radare2" )
2018-05-03 15:22:32 -04:00
( version "2.5.0" )
2017-08-11 14:54:40 -04:00
( source ( origin
( method url-fetch )
( uri ( string-append "http://radare.mikelloc.com/get/" version "/"
name "-" version ".tar.gz" ) )
( sha256
( base32
2018-05-03 15:22:32 -04:00
"17h4ba5qqahfi8mi4x2dcvq87cqpir5v2dlaqbvmay6vby4zh4v7" ) )
2017-08-11 14:54:40 -04:00
( 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"
gnu: All snippets report errors using exceptions, else return #t.
* gnu/packages/admin.scm, gnu/packages/algebra.scm, gnu/packages/audio.scm,
gnu/packages/backup.scm, gnu/packages/base.scm,
gnu/packages/bioinformatics.scm, gnu/packages/cdrom.scm,
gnu/packages/chez.scm, gnu/packages/code.scm, gnu/packages/compression.scm,
gnu/packages/cross-base.scm, gnu/packages/crypto.scm, gnu/packages/cups.scm,
gnu/packages/databases.scm, gnu/packages/dns.scm, gnu/packages/emacs.scm,
gnu/packages/emulators.scm, gnu/packages/engineering.scm,
gnu/packages/enlightenment.scm, gnu/packages/fpga.scm,
gnu/packages/freedesktop.scm, gnu/packages/ftp.scm, gnu/packages/games.scm,
gnu/packages/gcc.scm, gnu/packages/geo.scm, gnu/packages/ghostscript.scm,
gnu/packages/gl.scm, gnu/packages/glib.scm, gnu/packages/gnome.scm,
gnu/packages/gnuzilla.scm, gnu/packages/graphics.scm, gnu/packages/gtk.scm,
gnu/packages/guile.scm, gnu/packages/irc.scm, gnu/packages/java.scm,
gnu/packages/kerberos.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm,
gnu/packages/lxde.scm, gnu/packages/machine-learning.scm,
gnu/packages/mail.scm, gnu/packages/maths.scm, gnu/packages/messaging.scm,
gnu/packages/monitoring.scm, gnu/packages/mp3.scm, gnu/packages/music.scm,
gnu/packages/netpbm.scm, gnu/packages/networking.scm, gnu/packages/node.scm,
gnu/packages/nvi.scm, gnu/packages/ocaml.scm, gnu/packages/pdf.scm,
gnu/packages/perl.scm, gnu/packages/php.scm, gnu/packages/plotutils.scm,
gnu/packages/pretty-print.scm, gnu/packages/profiling.scm,
gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm,
gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/robotics.scm,
gnu/packages/sawfish.scm, gnu/packages/scanner.scm, gnu/packages/scheme.scm,
gnu/packages/scribus.scm, gnu/packages/sdl.scm,
gnu/packages/serialization.scm, gnu/packages/shells.scm,
gnu/packages/slang.scm, gnu/packages/smalltalk.scm, gnu/packages/ssh.scm,
gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/tbb.scm,
gnu/packages/terminals.scm, gnu/packages/texinfo.scm,
gnu/packages/text-editors.scm, gnu/packages/textutils.scm,
gnu/packages/tls.scm, gnu/packages/unrtf.scm,
gnu/packages/version-control.scm, gnu/packages/video.scm,
gnu/packages/vpn.scm, gnu/packages/web.scm, gnu/packages/wm.scm,
gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xorg.scm:
In all snippets, report errors using exceptions, or else return #t.
2018-03-16 07:47:34 -04:00
( ( "LDFLAGS\\+=" ) "LDFLAGS+=-Wl,-rpath=$(LIBDIR) " ) )
#t ) ) ) )
2017-08-11 14:54:40 -04:00
( 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" ) )
#t ) ) )
# :configure-flags
( list "--with-sysmagic" "--with-syszip" "--with-openssl"
"--without-nonpic" "--with-rpath" "--with-syscapstone" )
# :make-flags
( list "CC=gcc" ) ) )
( inputs
` ( ( "openssl" , openssl )
( "zip" , zip )
( "gmp" , gmp )
( "capstone" , capstone ) ) )
( native-inputs
` ( ( "pkg-config" , pkg-config ) ) )
( home-page "https://radare.org/" )
( synopsis "Portable reversing framework" )
( description
" Radare project started as a forensics tool, a scriptable commandline
hexadecimal editor able to open disk files, but later support for analyzing
binaries, disassembling code, debugging programs, attaching to remote gdb
servers, . . . " )
( license license:lgpl3 ) ) )
2017-06-22 15:10:00 -04:00
( define-public asco
( package
( name "asco" )
( version "0.4.10" )
( source ( origin
( method url-fetch )
( uri ( string-append "mirror://sourceforge/asco/asco/" version "/ASCO-"
version ".tar.gz" ) )
( sha256
( base32
"119rbc2dc8xzwxvykgji0v0nrzvymjmlizr1bc2mihspj686kxsl" ) ) ) )
( build-system gnu-build-system )
( arguments
` ( # :tests? #f ; no tests
# :make-flags ' ( "all" "asco-mpi" )
# :phases
( modify-phases %standard-phases
( delete 'configure )
( add-before 'build 'fix-paths
( lambda* ( # :key inputs # :allow-other-keys )
( let ( ( coreutils ( assoc-ref inputs "coreutils-minimal" ) ) )
( substitute* ' ( "errfunc.c" "asco.c" )
( ( "cp " )
( string-append coreutils "/bin/cp " ) )
( ( "nice" )
( string-append coreutils "/bin/nice" ) ) )
( substitute* "Makefile"
( ( "<FULL_PATH_TO_MPICH>/bin/mpicc" ) ( which "mpicc" ) ) )
#t ) ) )
( replace 'install ; no install target
( lambda* ( # :key outputs # :allow-other-keys )
( for-each ( lambda ( file )
( install-file file ( string-append
( assoc-ref outputs "out" )
"/bin" ) ) )
' ( "asco" "asco-mpi" "asco-test"
"tools/alter/alter" "tools/log/log" ) )
#t ) ) ) ) )
( native-inputs
` ( ( "mpi" , openmpi ) ) )
( inputs
` ( ( "coreutils-minimal" , coreutils-minimal ) ) )
( home-page "http://asco.sourceforge.net/" )
( synopsis "SPICE circuit optimizer" )
( description
" ASCO brings circuit optimization capabilities to existing SPICE simulators using a
high-performance parallel differential evolution ( DE ) optimization algorithm . " )
( license license:gpl2+ ) ) )
2017-09-09 13:57:46 -04:00
( define-public libngspice
;; Note: The ngspice's build system does not allow us to build both the
;; library and the executables in one go. Thus, we have two packages.
;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
( package
( name "libngspice" )
2018-06-06 00:22:28 -04:00
( version "28" )
2017-09-09 13:57:46 -04:00
( source ( origin
( method url-fetch )
( uri ( string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
version "/ngspice-" version ".tar.gz" ) )
( sha256
( base32
2018-06-06 00:22:28 -04:00
"0rnz2rdgyav16w7wfn3sfrk2lwvvgz1fh0l9107zkcldijklz04l" ) )
2017-09-09 13:57:46 -04:00
( modules ' ( ( guix build utils ) ) )
;; We remove the non-free cider and build without it.
( snippet
' ( begin
( delete-file-recursively "src/ciderlib" )
( delete-file "src/ciderinit" )
( substitute* "configure"
( ( "src/ciderlib/Makefile" ) "" )
( ( "src/ciderlib/input/Makefile" ) "" )
( ( "src/ciderlib/support/Makefile" ) "" )
( ( "src/ciderlib/oned/Makefile" ) "" )
gnu: All snippets report errors using exceptions, else return #t.
* gnu/packages/admin.scm, gnu/packages/algebra.scm, gnu/packages/audio.scm,
gnu/packages/backup.scm, gnu/packages/base.scm,
gnu/packages/bioinformatics.scm, gnu/packages/cdrom.scm,
gnu/packages/chez.scm, gnu/packages/code.scm, gnu/packages/compression.scm,
gnu/packages/cross-base.scm, gnu/packages/crypto.scm, gnu/packages/cups.scm,
gnu/packages/databases.scm, gnu/packages/dns.scm, gnu/packages/emacs.scm,
gnu/packages/emulators.scm, gnu/packages/engineering.scm,
gnu/packages/enlightenment.scm, gnu/packages/fpga.scm,
gnu/packages/freedesktop.scm, gnu/packages/ftp.scm, gnu/packages/games.scm,
gnu/packages/gcc.scm, gnu/packages/geo.scm, gnu/packages/ghostscript.scm,
gnu/packages/gl.scm, gnu/packages/glib.scm, gnu/packages/gnome.scm,
gnu/packages/gnuzilla.scm, gnu/packages/graphics.scm, gnu/packages/gtk.scm,
gnu/packages/guile.scm, gnu/packages/irc.scm, gnu/packages/java.scm,
gnu/packages/kerberos.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm,
gnu/packages/lxde.scm, gnu/packages/machine-learning.scm,
gnu/packages/mail.scm, gnu/packages/maths.scm, gnu/packages/messaging.scm,
gnu/packages/monitoring.scm, gnu/packages/mp3.scm, gnu/packages/music.scm,
gnu/packages/netpbm.scm, gnu/packages/networking.scm, gnu/packages/node.scm,
gnu/packages/nvi.scm, gnu/packages/ocaml.scm, gnu/packages/pdf.scm,
gnu/packages/perl.scm, gnu/packages/php.scm, gnu/packages/plotutils.scm,
gnu/packages/pretty-print.scm, gnu/packages/profiling.scm,
gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm,
gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/robotics.scm,
gnu/packages/sawfish.scm, gnu/packages/scanner.scm, gnu/packages/scheme.scm,
gnu/packages/scribus.scm, gnu/packages/sdl.scm,
gnu/packages/serialization.scm, gnu/packages/shells.scm,
gnu/packages/slang.scm, gnu/packages/smalltalk.scm, gnu/packages/ssh.scm,
gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/tbb.scm,
gnu/packages/terminals.scm, gnu/packages/texinfo.scm,
gnu/packages/text-editors.scm, gnu/packages/textutils.scm,
gnu/packages/tls.scm, gnu/packages/unrtf.scm,
gnu/packages/version-control.scm, gnu/packages/video.scm,
gnu/packages/vpn.scm, gnu/packages/web.scm, gnu/packages/wm.scm,
gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xorg.scm:
In all snippets, report errors using exceptions, or else return #t.
2018-03-16 07:47:34 -04:00
( ( "src/ciderlib/twod/Makefile" ) "" ) )
#t ) ) ) )
2017-09-09 13:57:46 -04:00
( build-system gnu-build-system )
( arguments
` ( ;; No tests for libngspice exist.
;; The transient tests for ngspice fail.
# :tests? #f
# :phases
( modify-phases %standard-phases
( add-after 'unpack 'patch-timestamps
( lambda _
( substitute* "configure"
2018-06-06 00:23:38 -04:00
( ( "`date`" ) "Thu Jan 1 00:00:01 UTC 1970" ) )
2017-09-09 13:57:46 -04:00
#t ) )
( add-after 'unpack 'delete-program-manuals
( lambda _
( substitute* "man/man1/Makefile.in"
( ( "^man_MANS = ngspice\\.1 ngnutmeg\\.1 ngsconvert\\.1 ngmultidec\\.1" )
"man_MANS = " ) )
#t ) )
( add-after 'install 'delete-script-files
( lambda* ( # :key outputs # :allow-other-keys )
( delete-file-recursively
( string-append ( assoc-ref outputs "out" )
"/share/ngspice/scripts" ) ) ) ) )
# :configure-flags
( list "--enable-openmp"
"--enable-xspice"
"--with-ngshared"
"--with-readline=yes" ) ) )
( native-inputs
` ( ( "bison" , bison )
( "flex" , flex ) ) )
( inputs
` ( ( "libxaw" , libxaw )
( "mpi" , openmpi )
( "readline" , readline ) ) )
( home-page "http://ngspice.sourceforge.net/" )
( 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:public-domain ) ) ) ) ; xspice
( define-public ngspice
;; The ngspice executables (see libngpsice above.)
( package ( inherit libngspice )
( name "ngspice" )
( arguments
( substitute-keyword-arguments ( package-arguments libngspice )
( ( # :configure-flags flags )
` ( delete "--with-ngshared" , flags ) )
( ( # :phases phases )
` ( modify-phases , phases
( add-after 'unpack 'delete-include-files
( lambda _
( substitute* "src/Makefile.in"
( ( "^SUBDIRS = misc maths frontend spicelib include/ngspice" )
"SUBDIRS = misc maths frontend spicelib" ) )
#t ) )
( add-after 'install 'delete-cmpp-dlmain
( lambda* ( # :key outputs # :allow-other-keys )
( for-each ( lambda ( file )
( delete-file
( string-append ( assoc-ref outputs "out" )
file ) ) )
' ( "/bin/cmpp" "/share/ngspice/dlmain.c" ) )
#t ) )
( delete 'delete-program-manuals )
( delete 'delete-script-files ) ) ) ) )
( inputs
` ( ( "libngspice" , libngspice )
( "readline" , readline ) ) ) ) )
2017-09-09 13:57:48 -04:00
( define trilinos-serial-xyce
;; Note: This is a Trilinos containing only the packages Xyce needs, so we
;; keep it private. See
;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#248>.
;; TODO: Remove when we have modular Trilinos packages?
( package
( name "trilinos-serial-xyce" )
2018-05-19 14:46:24 -04:00
( version "12.12.1" )
2017-09-09 13:57:48 -04:00
( source
( origin ( method url-fetch )
( uri ( string-append "https://trilinos.org/oldsite/download/files/trilinos-"
version "-Source.tar.gz" ) )
( sha256
( base32
2018-05-19 14:46:24 -04:00
"1zgrcksrcbmyy79mbdv0j4j4sh0chpigxk8vcrrwgaxyxwxxhrvw" ) ) ) )
2017-09-09 13:57:48 -04:00
( build-system cmake-build-system )
( arguments
` ( # :out-of-source? #t
2018-05-19 14:46:24 -04:00
# :phases
( modify-phases %standard-phases
;; Delete unneeded tribits(build system) directory which makes validate-runpath
;; phase to fail.
( add-before 'validate-runpath 'delete-tribits
( lambda* ( # :key outputs # :allow-other-keys )
( delete-file-recursively
( string-append ( assoc-ref outputs "out" )
"/lib/cmake/tribits" ) )
#t ) ) )
2017-09-09 13:57:48 -04:00
# :configure-flags
( list "-DCMAKE_CXX_FLAGS=-O3 -fPIC"
"-DCMAKE_C_FLAGS=-O3 -fPIC"
"-DCMAKE_Fortran_FLAGS=-O3 -fPIC"
"-DTrilinos_ENABLE_NOX=ON"
"-DNOX_ENABLE_LOCA=ON"
"-DTrilinos_ENABLE_EpetraExt=ON"
"-DEpetraExt_BUILD_BTF=ON"
"-DEpetraExt_BUILD_EXPERIMENTAL=ON"
"-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON"
"-DTrilinos_ENABLE_TrilinosCouplings=ON"
"-DTrilinos_ENABLE_Ifpack=ON"
"-DTrilinos_ENABLE_Isorropia=ON"
"-DTrilinos_ENABLE_AztecOO=ON"
"-DTrilinos_ENABLE_Belos=ON"
"-DTrilinos_ENABLE_Teuchos=ON"
"-DTeuchos_ENABLE_COMPLEX=ON"
"-DTrilinos_ENABLE_Amesos=ON"
"-DAmesos_ENABLE_KLU=ON"
"-DAmesos_ENABLE_UMFPACK=ON"
"-DTrilinos_ENABLE_Sacado=ON"
"-DTrilinos_ENABLE_Kokkos=OFF"
"-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF"
"-DTPL_ENABLE_AMD=ON"
"-DTPL_ENABLE_UMFPACK=ON"
"-DTPL_ENABLE_BLAS=ON"
"-DTPL_ENABLE_LAPACK=ON" ) ) )
( native-inputs
` ( ( "fortran" , gfortran )
( "swig" , swig ) ) )
( inputs
` ( ( "boost" , boost )
2018-05-19 14:46:24 -04:00
( "lapack" , lapack )
2017-09-09 13:57:48 -04:00
( "suitesparse" , suitesparse ) ) )
( home-page "https://trilinos.org" )
( synopsis "Engineering and scientific problems algorithms" )
( description
" The Trilinos Project is an effort to develop algorithms and enabling
technologies within an object-oriented software framework for the solution of
large-scale, complex multi-physics engineering and scientific problems . A
unique design feature of Trilinos is its focus on packages . " )
( license ( list license:lgpl2 . 1 +
license:bsd-3 ) ) ) )
( define-public xyce-serial
( package
( name "xyce-serial" )
2018-05-19 14:46:25 -04:00
( version "6.8" )
2017-09-09 13:57:48 -04:00
( source
( origin ( method url-fetch )
( uri ( string-append "https://archive.org/download/Xyce-"
version "/Xyce-" version ".tar.gz" ) )
( sha256
( base32
2018-05-19 14:46:25 -04:00
"09flp1xywbb2laayd9rg8vd0fjsh115y6k1p71jacy0nrbdvvlcg" ) ) ) )
2017-09-09 13:57:48 -04:00
( build-system gnu-build-system )
( arguments
` ( # :tests? #f
# :configure-flags
( list
"CXXFLAGS=-O3 -std=c++11"
( string-append "ARCHDIR="
( assoc-ref %build-inputs "trilinos" ) ) ) ) )
( native-inputs
` ( ( "bison" , bison )
( "flex" , flex )
( "fortran" , gfortran ) ) )
( inputs
` ( ( "fftw" , fftw )
( "suitesparse" , suitesparse )
2018-05-19 14:46:25 -04:00
( "lapack" , lapack )
2017-09-09 13:57:48 -04:00
( "trilinos" , trilinos-serial-xyce ) ) )
( home-page "https://xyce.sandia.gov/" )
( synopsis "High-performance analog circuit simulator" )
( description
" Xyce is a SPICE-compatible, high-performance analog circuit simulator,
capable of solving extremely large circuit problems by supporting large-scale
parallel computing platforms . It also supports serial execution . " )
( license license:gpl3+ ) ) )
2017-09-09 13:57:49 -04:00
( define trilinos-parallel-xyce
( package ( inherit trilinos-serial-xyce )
( name "trilinos-parallel-xyce" )
( arguments
` ( ,@ ( substitute-keyword-arguments ( package-arguments trilinos-serial-xyce )
( ( # :configure-flags flags )
` ( append ( list "-DTrilinos_ENABLE_ShyLU=ON"
"-DTrilinos_ENABLE_Zoltan=ON"
"-DTPL_ENABLE_MPI=ON" )
, flags ) ) ) ) )
( inputs
` ( ( "mpi" , openmpi )
,@ ( package-inputs trilinos-serial-xyce ) ) ) ) )
( define-public xyce-parallel
( package ( inherit xyce-serial )
( name "xyce-parallel" )
( arguments
` ( ,@ ( substitute-keyword-arguments ( package-arguments xyce-serial )
( ( # :configure-flags flags )
` ( list "CXXFLAGS=-O3 -std=c++11"
"CXX=mpiCC"
"CC=mpicc"
"F77=mpif77"
"--enable-mpi"
( string-append
"ARCHDIR="
( assoc-ref %build-inputs "trilinos" ) ) ) ) ) ) )
( propagated-inputs
` ( ( "mpi" , openmpi ) ) )
( inputs
` ( ( "trilinos" , trilinos-parallel-xyce )
,@ ( alist-delete "trilinos"
( package-inputs xyce-serial ) ) ) ) ) )
2017-09-09 13:57:50 -04:00
( define-public freehdl
( package
( name "freehdl" )
( version "0.0.8" )
( source ( origin
( method url-fetch )
( uri ( string-append "http://downloads.sourceforge.net/qucs/freehdl-"
version ".tar.gz" ) )
( sha256
( base32
"117dqs0d4pcgbzvr3jn5ppra7n7x2m6c161ywh6laa934pw7h2bz" ) ) ) )
( build-system gnu-build-system )
( arguments
` ( # :phases
( modify-phases %standard-phases
( add-before 'configure 'patch-pkg-config
( lambda* ( # :key inputs # :allow-other-keys )
( substitute* "freehdl/freehdl-config"
( ( "pkg-config" )
( string-append ( assoc-ref inputs "pkg-config" )
"/bin/pkg-config" ) )
( ( "cat" )
( string-append ( assoc-ref inputs "coreutils" )
"/bin/cat" ) ) )
#t ) )
2017-10-27 10:18:17 -04:00
( add-after 'patch-pkg-config 'setenv
( lambda* ( # :key inputs # :allow-other-keys )
( setenv "CXX" ( string-append ( assoc-ref inputs "gcc" )
"/bin/g++" ) )
( setenv "SYSTEM_LIBTOOL" ( string-append ( assoc-ref inputs "libtool" )
"/bin/libtool" ) )
#t ) )
( add-after 'setenv 'patch-gvhdl
( lambda _
( substitute* "v2cc/gvhdl.in"
( ( "--mode=link" ) "--mode=link --tag=CXX" )
( ( "-lm" ) "-lm FREEHDL/lib/freehdl/libieee.la" ) )
#t ) )
( add-after 'patch-gvhdl 'patch-freehdl-gennodes
( lambda* ( # :key inputs # :allow-other-keys )
( substitute* "freehdl/freehdl-gennodes.in"
( ( "guile" )
( string-append ( assoc-ref inputs "guile" ) "/bin/guile" ) )
( ( "\\(debug" ) ";(debug" )
( ( "\\(@ " ) "(apply-emit" )
( ( "\\(@@ " ) "(apply-mini-format" ) )
#t ) )
2017-09-09 13:57:50 -04:00
( add-after 'configure 'patch-freehdl-pc
( lambda* ( # :key inputs # :allow-other-keys )
( substitute* "freehdl.pc"
( ( "=g\\+\\+" )
2017-10-27 10:18:17 -04:00
( string-append "=" ( assoc-ref inputs "gcc-toolchain" )
2017-09-09 13:57:50 -04:00
"/bin/g++" ) )
( ( "=libtool" )
( string-append "=" ( assoc-ref inputs "libtool" )
"/bin/libtool" ) ) )
#t ) )
( add-after 'install-scripts 'make-wrapper
2017-10-27 10:18:17 -04:00
( lambda* ( # :key inputs outputs # :allow-other-keys )
2017-09-09 13:57:50 -04:00
( let ( ( out ( assoc-ref outputs "out" ) ) )
2017-10-27 10:18:17 -04:00
;; 'gvhdl' invokes the C compiler directly, so hard-code its
;; file name.
( wrap-program ( string-append out "/bin/gvhdl" )
` ( "CPLUS_INCLUDE_PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/include" ) ) )
` ( "LIBRARY_PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/lib" ) ) )
` ( "PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/bin" )
, ( string-append ( assoc-ref inputs "coreutils" )
"/bin" ) ) ) )
2017-09-09 13:57:50 -04:00
( wrap-program ( string-append out "/bin/freehdl-config" )
` ( "PKG_CONFIG_PATH" ":" prefix ( , ( string-append out "/lib/pkgconfig" ) ) ) ) )
#t ) ) ) ) )
( inputs
` ( ( "coreutils" , coreutils )
2017-10-27 15:37:38 -04:00
( "gcc-toolchain" , gcc-toolchain )
2017-10-27 10:18:17 -04:00
( "guile" , guile-2 . 2 )
2017-09-09 13:57:50 -04:00
( "perl" , perl )
( "pkg-config" , pkg-config )
( "libtool" , libtool ) ) )
( native-inputs
` ( ( "pkg-config-native" , pkg-config )
( "libtool-native" , libtool ) ) )
( home-page "http://www.freehdl.seul.org/" )
( synopsis "VHDL simulator" )
( description
" FreeHDL is a compiler/simulator suite for the hardware description language VHDL .
VHDL '93 as well as VHDL '87 standards are supported . " )
( license ( list license:gpl2+
license:lgpl2 . 0 + ) ) ) ) ; freehdl's libraries
2017-10-27 10:18:18 -04:00
( define-public qucs
2018-06-07 15:24:54 -04:00
;; Qucs 0.0.19 segfaults when using glibc-2.26. Temporarily build from git.
;; TODO: When qucs-0.0.20 is released, revert the commit that introduced this
;; comment and update the package.
( let ( ( commit "b4f27d9222568066cd59e4c387c51a35056c99d8" )
( revision "0" ) )
( package
( name "qucs" )
( version ( git-version "0.0.19" revision commit ) )
( source ( origin
( method git-fetch )
( uri ( git-reference
( url "https://github.com/Qucs/qucs" )
( commit commit ) ) )
( sha256
( base32 "10bclay9xhkffmsh4j4l28kj1qpxx0pnxja5vx6305cllnq4r3gb" ) )
( file-name ( string-append name "-" version "-checkout" ) ) ) )
( build-system gnu-build-system )
( arguments
` ( # :phases
( modify-phases %standard-phases
2018-06-07 15:38:37 -04:00
( add-before 'bootstrap 'patch-bootstrap
( lambda _
( for-each patch-shebang
' ( "bootstrap"
"qucs/bootstrap"
"qucs-doc/bootstrap"
"qucs-core/bootstrap" ) )
#t ) )
2018-06-07 15:24:54 -04:00
( add-before 'configure 'patch-configure
( lambda* ( # :key inputs # :allow-other-keys )
( substitute* "qucs/configure"
( ( "\\$QTDIR" ) ( assoc-ref inputs "qt4" ) ) )
#t ) )
( add-after 'patch-configure 'patch-scripts
( lambda* ( # :key inputs outputs # :allow-other-keys )
( substitute* ' ( "qucs/qucs/qucsdigi"
"qucs/qucs/qucsdigilib"
"qucs/qucs/qucsveri" )
( ( "\\$BINDIR" )
( string-append ( assoc-ref outputs "out" ) "/bin" ) )
( ( "freehdl-config" )
( string-append ( assoc-ref inputs "freehdl" ) "/bin/freehdl-config" ) )
( ( "freehdl-v2cc" )
( string-append ( assoc-ref inputs "freehdl" ) "/bin/freehdl-v2cc" ) )
( ( "cp " )
( string-append ( assoc-ref inputs "coreutils" ) "/bin/cp " ) )
( ( "glibtool" )
( string-append ( assoc-ref inputs "libtool" ) "/bin/libtool" ) )
( ( "sed" )
( string-append ( assoc-ref inputs "sed" ) "/bin/sed" ) )
( ( "iverilog" )
( string-append ( assoc-ref inputs "iverilog" ) "/bin/iverilog" ) )
( ( "vvp" )
( string-append ( assoc-ref inputs "iverilog" ) "/bin/vvp" ) ) )
#t ) )
( add-before 'check 'pre-check
( lambda _
;; The test suite requires a running X server.
( system "Xvfb :1 &" )
( setenv "DISPLAY" ":1" )
#t ) )
( add-after 'install 'make-wrapper
( lambda* ( # :key inputs outputs # :allow-other-keys )
( let ( ( out ( assoc-ref outputs "out" ) ) )
;; 'qucs' directly invokes gcc, hence this wrapping.
( wrap-program ( string-append out "/bin/qucs" )
` ( "CPLUS_INCLUDE_PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/include" ) ) )
` ( "PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/bin" ) ) )
` ( "LIBRARY_PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/lib" ) ) )
` ( "ADMSXMLBINDIR" ":" prefix
( , ( string-append ( assoc-ref inputs "adms" ) "/bin" ) ) )
` ( "ASCOBINDIR" ":" prefix
( , ( string-append ( assoc-ref inputs "asco" ) "/bin" ) ) )
` ( "QUCS_OCTAVE" ":" prefix
( , ( string-append ( assoc-ref inputs "octave" ) "/bin/octave" ) ) ) ) )
#t ) ) )
# :parallel-build? #f ; race condition
# :configure-flags ' ( "--disable-doc" ) ) ) ; we need octave-epstk
( native-inputs
` ( ( "autoconf" , autoconf )
( "automake" , automake )
( "bison" , bison )
( "flex" , flex )
( "gperf" , gperf )
( "libtool-native" , libtool )
( "pkg-config" , pkg-config )
( "python" , python-2 ) ; for tests
( "matplotlib" , python2-matplotlib ) ; for tests
( "numpy" , python2-numpy ) ; for tests
( "xorg-server" , xorg-server ) ) ) ; for tests
( inputs
` ( ( "adms" , adms )
( "asco" , asco )
( "coreutils" , coreutils )
( "freehdl" , freehdl )
( "gcc-toolchain" , gcc-toolchain )
( "iverilog" , iverilog )
( "libtool" , libtool )
2018-12-01 23:15:14 -05:00
( "octave" , octave-cli )
2018-06-07 15:24:54 -04:00
( "qt4" , qt-4 )
( "sed" , sed ) ) )
( home-page "http://qucs.sourceforge.net/" )
( synopsis "Circuit simulator with graphical user interface" )
( description
" Qucs is a circuit simulator with graphical user interface . The software
2017-10-27 10:18:18 -04:00
aims to support all kinds of circuit simulation types---e . g . DC, AC,
S-parameter, transient, noise and harmonic balance analysis . Pure digital
simulations are also supported . " )
2018-06-07 15:24:54 -04:00
( license license:gpl2+ ) ) ) )
2017-10-27 10:18:19 -04:00
( define-public qucs-s
( package
( name "qucs-s" )
2018-05-19 14:46:27 -04:00
( version "0.0.20" )
2017-10-27 10:18:19 -04:00
( source ( origin
( method url-fetch )
2018-05-19 14:46:27 -04:00
( uri ( string-append "https://github.com/ra3xdh/qucs_s/archive/"
version ".tar.gz" ) )
( file-name ( string-append name "-" version ".tar.gz" ) )
2017-10-27 10:18:19 -04:00
( sha256
( base32
2018-05-19 14:46:27 -04:00
"01dizf4rjciqc8x7bmv3kbhdlz90bm6n9m9fz7dbzqcwvszcs1hx" ) ) ) )
2017-10-27 10:18:19 -04:00
( build-system cmake-build-system )
( arguments
` ( # :tests? #f ; no tests
# :phases
( modify-phases %standard-phases
( add-before 'configure 'patch-scripts
( lambda* ( # :key inputs # :allow-other-keys )
( substitute* ' ( "qucs/qucsdigi"
"qucs/qucsdigilib"
"qucs/qucsveri" )
( ( "\\$BINDIR" )
( string-append ( assoc-ref inputs "qucs" ) "/bin" ) )
( ( "freehdl-config" )
( string-append ( assoc-ref inputs "freehdl" ) "/bin/freehdl-config" ) )
( ( "freehdl-v2cc" )
( string-append ( assoc-ref inputs "freehdl" ) "/bin/freehdl-v2cc" ) )
( ( "cp " )
( string-append ( assoc-ref inputs "coreutils" ) "/bin/cp " ) )
( ( "glibtool" )
( string-append ( assoc-ref inputs "libtool" ) "/bin/libtool" ) )
( ( "sed" )
( string-append ( assoc-ref inputs "sed" ) "/bin/sed" ) )
( ( "iverilog" )
( string-append ( assoc-ref inputs "iverilog" ) "/bin/iverilog" ) )
( ( "vvp" )
( string-append ( assoc-ref inputs "iverilog" ) "/bin/vvp" ) ) )
#t ) )
( add-after 'patch-scripts 'patch-paths
( lambda* ( # :key inputs # :allow-other-keys )
( substitute* "qucs/main.cpp"
( ( ( string-append "QucsSettings\\.Qucsator = QucsSettings\\.BinDir "
"\\+ \"qucsator\" \\+ executableSuffix" ) )
( string-append "}{ QucsSettings.Qucsator = \""
( assoc-ref inputs "qucs" ) "/bin/qucsator\"" ) )
2018-05-19 14:46:27 -04:00
( ( ( string-append "QucsSettings\\.XyceExecutable = "
"\"/usr/local/Xyce-Release-6.8.0-OPENSOURCE/bin/Xyce" ) )
( string-append "}{ QucsSettings.XyceExecutable = \""
2017-10-27 10:18:19 -04:00
( assoc-ref inputs "xyce-serial" ) "/bin/Xyce" ) )
2018-05-19 14:46:27 -04:00
( ( ( string-append "else QucsSettings\\.XyceParExecutable = "
"\"mpirun -np %p /usr/local"
"/Xyce-Release-6.8.0-OPENMPI-OPENSOURCE/bin/Xyce" ) )
2017-10-27 10:18:19 -04:00
( string-append "QucsSettings.XyceParExecutable = \""
2018-05-19 14:46:27 -04:00
( assoc-ref inputs "mpi" ) "/bin/mpirun -np %p "
( assoc-ref inputs "xyce-parallel" ) "/bin/Xyce" ) )
2017-10-27 10:18:19 -04:00
( ( "else QucsSettings\\.NgspiceExecutable = \"ngspice\"" )
( string-append "QucsSettings.NgspiceExecutable = " "\""
( assoc-ref inputs "ngspice" ) "/bin/ngspice\"" ) ) )
2018-05-19 14:46:27 -04:00
( substitute* "qucs/extsimkernels/ngspice.cpp"
( ( "share/qucs/xspice_cmlib" ) "share/qucs-s/xspice_cmlib" ) )
2017-10-27 10:18:19 -04:00
( substitute* "qucs/qucs_actions.cpp"
( ( "qucstrans" )
( string-append ( assoc-ref inputs "qucs" ) "/bin/qucstrans" ) )
( ( "qucsattenuator" )
( string-append ( assoc-ref inputs "qucs" ) "/bin/qucsattenuator" ) )
( ( "qucsrescodes" )
( string-append ( assoc-ref inputs "qucs" ) "/bin/qucsrescodes" ) ) )
#t ) )
( add-after 'install 'install-scripts
( lambda* ( # :key inputs outputs # :allow-other-keys )
( for-each
( lambda ( script )
2018-05-19 14:46:27 -04:00
( let ( ( file ( string-append "../qucs_s-" , version
2017-10-27 10:18:19 -04:00
"/qucs/" script ) )
( out ( assoc-ref outputs "out" ) ) )
( install-file file ( string-append out "/bin" ) )
( chmod ( string-append out "/bin/" script ) # o555 ) ) )
' ( "qucsdigi" "qucsdigilib" "qucsveri" ) )
#t ) )
( add-after 'install-scripts 'make-wrapper
( lambda* ( # :key inputs outputs # :allow-other-keys )
( let* ( ( out ( assoc-ref outputs "out" ) )
( file ( string-append out "/bin/qucs-s" ) )
( qucs ( assoc-ref inputs "qucs" ) )
( qucsator ( string-append qucs "/bin/qucsator" ) ) )
( wrap-program file
` ( "CPLUS_INCLUDE_PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/include" ) ) )
` ( "PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/bin" ) ) )
` ( "LIBRARY_PATH" ":" prefix
( , ( string-append ( assoc-ref inputs "gcc-toolchain" )
"/lib" ) ) )
` ( "QUCSATOR" ":" prefix ( , qucsator ) )
` ( "QUCSCONV" ":" prefix ( , ( string-append qucsator "/bin/qucsconv" ) ) )
` ( "ADMSXMLBINDIR" ":" prefix ( , ( string-append ( assoc-ref inputs "adms" )
"/bin" ) ) )
` ( "ASCOBINDIR" ":" prefix ( , ( string-append ( assoc-ref inputs "asco" )
"/bin" ) ) )
` ( "QUCS_OCTAVE" ":" prefix ( , ( string-append ( assoc-ref inputs "octave" )
"/bin/octave" ) ) ) )
( symlink qucsator ( string-append out "/bin/qucsator" ) )
#t ) ) ) ) ) )
( native-inputs
` ( ( "libtool-native" , libtool ) ) )
( inputs
` ( ( "adms" , adms )
( "asco" , asco )
( "coreutils" , coreutils )
( "freehdl" , freehdl )
( "gcc-toolchain" , gcc-toolchain )
( "iverilog" , iverilog )
( "libtool" , libtool )
( "mpi" , openmpi )
( "ngspice" , ngspice )
2018-12-01 23:15:14 -05:00
( "octave" , octave-cli )
2017-10-27 10:18:19 -04:00
( "qt4" , qt-4 )
( "qucs" , qucs )
( "sed" , sed )
( "xyce-serial" , xyce-serial )
( "xyce-parallel" , xyce-parallel ) ) )
( home-page "https://ra3xdh.github.io/" )
( synopsis "Circuit simulator with graphical user interface" )
( description
" Qucs-S is a spin-off of the Qucs cross-platform circuit simulator .
The S letter indicates SPICE . The purpose of the Qucs-S subproject is to use
free SPICE circuit simulation kernels with the Qucs GUI . It provides the
simulator backends @code { Qucsator } , @code { ngspice } and @code { Xyce } . " )
( license license:gpl2+ ) ) )
2018-12-01 08:22:42 -05:00
( define-public librepcb
( package
( name "librepcb" )
( version "0.1.0" )
( source
( origin
( method url-fetch )
( uri ( string-append "https://download.librepcb.org/releases/0.1.0/librepcb-"
version "-source.zip" ) )
( sha256
( base32
"0affvwwgs1j2wx6bb3zfa2jbfxpckklr8cka2nkswca0p82wd3dv" ) ) ) )
( build-system gnu-build-system )
( inputs
` ( ( "qtbase" , qtbase )
( "zlib" , zlib ) ) )
( native-inputs
` ( ( "qttools" , qttools ) ; for lrelease
( "unzip" , unzip ) ) )
( arguments
` ( # :phases
( modify-phases %standard-phases
( replace 'configure
( lambda* ( # :key inputs outputs # :allow-other-keys )
( mkdir-p "build" )
( chdir "build" )
( let ( ( lrelease ( string-append ( assoc-ref inputs "qttools" )
"/bin/lrelease" ) )
( out ( assoc-ref outputs "out" ) ) )
( invoke "qmake"
( string-append "QMAKE_LRELEASE=" lrelease )
( string-append "PREFIX=" out )
"../librepcb.pro" ) ) ) ) ) ) )
( home-page "https://librepcb.org/" )
( synopsis "Electronic Design Automation tool" )
( description " LibrePCB is @dfn { Electronic Design Automation } ( EDA )
software to develop printed circuit boards . It features human readable file
formats and complete project management with library, schematic and board
editors . " )
( license ( list license:gpl3+
license:boost1 . 0 ; libs/clipper,
; libs/optional/tests/catch.hpp,
; libs/sexpresso/tests/catch.hpp
license:expat ; libs/delaunay-triangulation,
; libs/parseagle, libs/type_safe
license:asl2 . 0 ; libs/fontobene, libs/googletest,
; libs/parseagle
license:isc ; libs/hoedown
license:cc0 ; libs/optional, libs/sexpresso
license:bsd-2 ; libs/optional/tests/catch.hpp
license:lgpl2 . 1 + ) ) ) ) ; libs/quazip