2015-03-04 03:46:04 -05:00
;;; GNU Guix --- Functional package management for GNU
2019-01-25 08:29:03 -05:00
;;; Copyright © 2015, 2016, 2017, 2018, 2019 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>
2019-09-30 03:48:18 -04:00
;;; Copyright © 2016, 2017, 2018, 2019 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>
2019-02-18 16:40:40 -05:00
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
2018-05-29 09:40:28 -04:00
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
2019-02-27 12:01:48 -05:00
;;; Copyright © 2018, 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
2019-04-05 07:11:15 -04:00
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
2019-02-07 16:33:08 -05:00
;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
2019-07-20 07:30:22 -04:00
;;; Copyright © 2019 Jovany Leandro G.C <bit4bit@riseup.net>
2019-08-23 18:23:00 -04:00
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
2019-07-06 22:05:37 -04:00
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
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: )
2019-03-08 15:45:29 -05:00
# :use-module ( guix build-system ant )
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 )
2019-07-07 13:03:38 -04:00
# :use-module ( gnu packages cmake )
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 )
2019-07-07 13:32:10 -04:00
# :use-module ( gnu packages documentation )
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 )
2019-09-10 19:22:57 -04:00
# :use-module ( gnu packages graphics )
2019-07-07 13:32:10 -04:00
# :use-module ( gnu packages graphviz )
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 )
2019-07-07 13:32:10 -04:00
# :use-module ( gnu packages image-processing )
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 )
gnu: Separate Python core packages from the rest.
* gnu/packages/python.scm: Move hundreds of package definitions from here...
* gnu/packages/python-xyz.scm: ...to this new module.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/ada.scm,
gnu/packages/admin.scm,
gnu/packages/android.scm,
gnu/packages/audio.scm,
gnu/packages/backup.scm,
gnu/packages/benchmark.scm,
gnu/packages/bioinformatics.scm,
gnu/packages/bittorrent.scm,
gnu/packages/calendar.scm,
gnu/packages/check.scm,
gnu/packages/chemistry.scm,
gnu/packages/cluster.scm,
gnu/packages/compression.scm,
gnu/packages/connman.scm,
gnu/packages/crypto.scm,
gnu/packages/cups.scm,
gnu/packages/databases.scm,
gnu/packages/dav.scm,
gnu/packages/direct-connect.scm,
gnu/packages/disk.scm,
gnu/packages/django.scm,
gnu/packages/dlang.scm,
gnu/packages/docker.scm,
gnu/packages/ebook.scm,
gnu/packages/elf.scm,
gnu/packages/emacs.scm,
gnu/packages/emulators.scm,
gnu/packages/engineering.scm,
gnu/packages/enlightenment.scm,
gnu/packages/finance.scm,
gnu/packages/fltk.scm,
gnu/packages/fontutils.scm,
gnu/packages/freedesktop.scm,
gnu/packages/game-development.scm,
gnu/packages/games.scm,
gnu/packages/geo.scm,
gnu/packages/gl.scm,
gnu/packages/glib.scm,
gnu/packages/gnome.scm,
gnu/packages/gnupg.scm,
gnu/packages/gnuzilla.scm,
gnu/packages/graph.scm,
gnu/packages/graphics.scm,
gnu/packages/graphviz.scm,
gnu/packages/gtk.scm,
gnu/packages/ham-radio.scm,
gnu/packages/image-processing.scm,
gnu/packages/image-viewers.scm,
gnu/packages/image.scm,
gnu/packages/irc.scm,
gnu/packages/jrnl.scm,
gnu/packages/julia.scm,
gnu/packages/kde-frameworks.scm,
gnu/packages/key-mon.scm,
gnu/packages/libffi.scm,
gnu/packages/libreoffice.scm,
gnu/packages/libusb.scm,
gnu/packages/lirc.scm,
gnu/packages/logging.scm,
gnu/packages/machine-learning.scm,
gnu/packages/mail.scm,
gnu/packages/mate.scm,
gnu/packages/maths.scm,
gnu/packages/medical.scm,
gnu/packages/messaging.scm,
gnu/packages/monitoring.scm,
gnu/packages/mp3.scm,
gnu/packages/mpd.scm,
gnu/packages/music.scm,
gnu/packages/networking.scm,
gnu/packages/nutrition.scm,
gnu/packages/openldap.scm,
gnu/packages/openstack.scm,
gnu/packages/package-management.scm,
gnu/packages/password-utils.scm,
gnu/packages/patchutils.scm,
gnu/packages/pdf.scm,
gnu/packages/photo.scm,
gnu/packages/polkit.scm,
gnu/packages/protobuf.scm,
gnu/packages/python-crypto.scm,
gnu/packages/python-web.scm,
gnu/packages/qt.scm,
gnu/packages/rdf.scm,
gnu/packages/ruby.scm,
gnu/packages/search.scm,
gnu/packages/selinux.scm,
gnu/packages/serialization.scm,
gnu/packages/shells.scm,
gnu/packages/simulation.scm,
gnu/packages/ssh.scm,
gnu/packages/statistics.scm,
gnu/packages/storage.scm,
gnu/packages/sync.scm,
gnu/packages/terminals.scm,
gnu/packages/textutils.scm,
gnu/packages/time.scm,
gnu/packages/tls.scm,
gnu/packages/tor.scm,
gnu/packages/tryton.scm,
gnu/packages/version-control.scm,
gnu/packages/video.scm,
gnu/packages/virtualization.scm,
gnu/packages/vpn.scm,
gnu/packages/web-browsers.scm,
gnu/packages/web.scm,
gnu/packages/wicd.scm,
gnu/packages/xdisorg.scm,
gnu/packages/xorg.scm: Update module references.
2019-01-15 08:21:30 -05:00
# :use-module ( gnu packages python-xyz )
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 )
2019-07-07 13:32:10 -04:00
# :use-module ( gnu packages tbb )
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 )
2019-03-26 18:58:33 -04:00
# :use-module ( gnu packages version-control )
2016-11-15 15:53:23 -05:00
# :use-module ( gnu packages wxwidgets )
2019-09-10 19:22:57 -04:00
# :use-module ( gnu packages xml )
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" )
2019-12-20 16:01:19 -05:00
( version "1.10.0" )
2015-03-05 02:38:46 -05:00
( source ( origin
( method url-fetch )
( uri ( string-append
2019-12-20 16:01:19 -05:00
"http://ftp.geda-project.org/geda-gaf/stable/v"
2015-03-05 02:38:46 -05:00
( version-major+minor version ) "/"
version "/geda-gaf-" version ".tar.gz" ) )
( sha256
( base32
2019-12-20 16:01:19 -05:00
"06ivgarvwbzjz2wigxzzkm8iszldi2p6x3a6jnlczjyrz4csddsy" ) ) ) )
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 ) )
( add-after 'unpack 'disable-failing-tests
( lambda _
2019-12-20 16:01:19 -05:00
( substitute* "xorn/tests/Makefile.in"
( ( "-Werror" ) "" ) )
;; This test returns its correct result in an unexpected order.
( substitute* "libgeda/scheme/unit-tests/t0402-config.scm"
( ( "\\(begin-config-test 'config-keys" m )
( string-append "#;" m ) ) )
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
2019-12-20 16:01:19 -05:00
` ( ( "gamin" , gamin )
( "glib" , glib )
2015-03-05 02:38:46 -05:00
( "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 )
2019-12-20 16:01:19 -05:00
( "pcb" , pcb )
( "python" , python-2 ) ) ) ; for xorn
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" )
2019-12-20 03:27:49 -05:00
( version "1.9.9-20191003" )
2018-08-26 13:29:25 -04:00
( home-page "https://github.com/lepton-eda/lepton-eda" )
( source ( origin
( method git-fetch )
( uri ( git-reference ( url home-page ) ( commit version ) ) )
( sha256
( base32
2019-12-20 03:27:49 -05:00
"08cc3zfk84qq9mrkc9pp4r9jlavvm01wwy0yd9frql68w2zw6mip" ) )
2018-08-26 13:29:25 -04:00
( 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 ) ) )
2019-12-20 03:27:49 -05:00
( inputs
` ( ( "glib" , glib )
( "gtk" , gtk+-2 )
( "guile" , guile-2 . 2 )
( "desktop-file-utils" , desktop-file-utils )
( "shared-mime-info" , shared-mime-info )
( "m4" , m4 )
( "pcb" , pcb ) ) )
2018-08-26 13:29:25 -04:00
( 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\"~%" ) ) )
2019-12-20 03:27:49 -05:00
#t ) )
( add-after 'install 'compile-scheme-files
( lambda* ( # :key outputs # :allow-other-keys )
( invoke "make" "precompile" )
( for-each ( lambda ( program )
( wrap-program program
` ( "GUILE_LOAD_COMPILED_PATH" ":" prefix
( , ( string-append ( assoc-ref outputs "out" )
"/share/lepton-eda/ccache/" ) ) ) ) )
( find-files ( string-append ( assoc-ref outputs "out" ) "/bin" )
".*" ) )
2018-08-26 13:29:25 -04:00
#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 )
gnu: Use the test-only Xorg variant for tests.
* gnu/packages/education.scm (gcompris-qt)[native-inputs]: Change XORG-SERVER
to XORG-SERVER-FOR-TESTS.
* gnu/packages/engineering.scm (pcb, qucs, openscad)[native-inputs]: Likewise.
* gnu/packages/gnome.scm (libbonoboui, d-feet, gspell, libdazzle, libhandy)[native-inputs]: Likewise.
* gnu/packages/gnupg.scm (parcimonie)[native-inputs]: Likewise.
* gnu/packages/graphics.scm (opensubdiv, rapicorn)[native-inputs]: Likewise.
* gnu/packages/gtk.scm (gtksourceview-2, gtksourceview)[native-inputs]: Likewise.
* gnu/packages/image-processing.scm (opencv)[native-inputs]: Likewise.
* gnu/packages/kde-frameworks.scm (kconfig, kcoreaddons, kwidgetsaddons,
kwindowsystem, kdeclarative)[native-inputs]: Likewise.
* gnu/packages/kde-plasma.scm (kscreenlocker)[native-inputs]: Likewise.
* gnu/packages/messaging.scm (gajim)[native-inputs]: Likewise.
* gnu/packages/python-xyz.scm (python-seaborn)[native-inputs]: Likewise.
2019-11-27 16:19:13 -05:00
( "xvfb" , xorg-server-for-tests ) ) )
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 )
2019-01-25 08:29:03 -05:00
( invoke "sh" "configure"
( string-append "--prefix="
( assoc-ref outputs "out" ) ) ) ) ) ) ) )
2016-11-14 17:20:19 -05:00
( 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.
2019-01-28 14:30:20 -05:00
` ( ( "texlive" , ( texlive-union ( list texlive-fonts-amsfonts ) ) )
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 _
2019-01-28 14:30:20 -05:00
( invoke "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
2019-01-28 14:30:20 -05:00
( for-each ( lambda ( file )
( invoke "dvips" file "-o" ) )
( find-files "." "\\.dvi" ) )
( for-each ( lambda ( file )
( invoke "ps2pdf" file ) )
' ( "mtt.ps" "ug.ps" "tcad.ps" ) )
( invoke "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" )
2019-03-26 18:58:33 -04:00
( version "0.9.3b" )
2015-12-26 05:30:43 -05:00
( source ( origin
2019-03-26 18:58:33 -04:00
( method git-fetch )
( uri ( git-reference
( url "https://github.com/fritzing/fritzing-app.git" )
( commit version ) ) )
( file-name ( git-file-name name version ) )
2015-12-26 05:30:43 -05:00
( sha256
( base32
2019-03-26 18:58:33 -04:00
"0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3" ) ) ) )
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 )
2019-03-26 18:58:33 -04:00
( copy-recursively ( assoc-ref inputs "fritzing-parts-db" )
"parts" )
;; Make compatible with libgit2 > 0.24
( substitute* "src/version/partschecker.cpp"
( ( "error = git_remote_connect\\(remote, GIT_DIRECTION_FETCH, &callbacks\\)" )
"error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, NULL)" ) )
;; Use system libgit2 and boost.
( substitute* "phoenix.pro"
( ( "^LIBGIT2INCLUDE =.*" )
( string-append "LIBGIT2INCLUDE="
( assoc-ref inputs "libgit2" ) "/include\n" ) )
( ( "^ LIBGIT2LIB =.*" )
( string-append " LIBGIT2LIB="
( assoc-ref inputs "libgit2" ) "/lib\n" ) ) )
;; This file checks for old versions of Boost, insisting on
;; having us download the boost sources and placing them in the
;; build directory.
( substitute* "pri/utils.pri"
( ( "error\\(" ) "message(" ) )
( let ( ( out ( assoc-ref outputs "out" ) ) )
( invoke "qmake"
( string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib" )
( string-append "PREFIX=" out )
"phoenix.pro" ) ) ) ) ) ) )
2015-12-26 05:30:43 -05:00
( inputs
2016-08-15 14:34:16 -04:00
` ( ( "qtbase" , qtbase )
( "qtserialport" , qtserialport )
( "qtsvg" , qtsvg )
2019-03-26 18:58:33 -04:00
( "libgit2" , libgit2 )
2015-12-26 05:30:43 -05:00
( "boost" , boost )
( "zlib" , zlib )
( "fritzing-parts-db"
, ( origin
2019-03-26 18:58:33 -04:00
( method git-fetch )
( uri ( git-reference
( url "https://github.com/fritzing/fritzing-parts.git" )
( commit version ) ) )
( file-name ( git-file-name "fritzing-parts" version ) )
2015-12-26 05:30:43 -05:00
( sha256
( base32
2019-03-26 18:58:33 -04:00
"1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1" ) ) ) ) ) )
2015-12-26 05:30:43 -05:00
( 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" )
2019-02-18 16:40:40 -05:00
( version "2.7.0" )
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
2019-02-18 16:40:40 -05:00
"1d2k43k7i4yvbpi4sw1263a8d0q98z2n7aqhmpinpkih8a681vn5" ) ) ) )
2015-08-31 02:47:09 -04:00
( build-system gnu-build-system )
( native-inputs
2019-02-18 16:40:40 -05:00
` ( ( "glib:bin" , glib "bin" ) ; for glib-compile-schemas, etc.
( "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
2019-03-08 15:45:29 -05:00
( define-public translate2geda
;; There has been no formal release yet.
( let ( ( commit "4c19e7eefa338cea8f1ee999ea8b37f8d0698169" )
( revision "1" ) )
( package
( name "translate2geda" )
( version ( git-version "0" revision commit ) )
( source ( origin
( method git-fetch )
( uri ( git-reference
( url "https://github.com/erichVK5/translate2geda.git" )
( commit commit ) ) )
( file-name ( git-file-name name version ) )
( sha256
( base32
"1h062bbpw8nk0jamkya1k4lsgaia796jyviiz2gkdi6k1bxhwgpa" ) ) ) )
( build-system ant-build-system )
( arguments
` ( # :tests? #f ; there are no tests
# :jar-name "translate2geda.jar"
# :source-dir "."
# :main-class "translate2geda"
# :phases
( modify-phases %standard-phases
( add-after 'install 'install-bin
( lambda* ( # :key inputs outputs # :allow-other-keys )
( let* ( ( out ( assoc-ref outputs "out" ) )
( bin ( string-append out "/bin" ) )
( wrapper ( string-append bin "/translate2geda" ) ) )
( mkdir-p bin )
( with-output-to-file wrapper
( lambda _
( format #t "#!/bin/sh~%exec ~a -jar ~a/share/java/translate2geda.jar"
( which "java" ) out ) ) )
( chmod wrapper # o555 ) )
#t ) ) ) ) )
( home-page "https://github.com/erichVK5/translate2geda" )
( synopsis "Utility for converting symbol and footprint formats to gEDA" )
( description
" This package provides a utility for converting Kicad ( @file { . mod } ,
@file { . lib } ) , Eagle ( @file { . lbr } ) , gerber ( @file { . gbr } , etc . . ) ,
BXL ( @file { . bxl } ) , IBIS ( @file { . ibs } ) , symdef, LT-Spice ( @file { . asc } ) ,
QUCS ( @file { . sch } ) , and BSDL ( @file { . bsd } ) symbols and footprints and EggBot
fonts to gEDA . " )
( license license:gpl2+ ) ) ) )
2018-03-30 16:19:27 -04:00
( define-public libfive
2019-12-19 17:14:54 -05:00
( let ( ( commit "6e39254e57c179459bb929df49ae96a6017a0ed6" )
( revision "3" ) )
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
2019-12-19 17:14:54 -05:00
"0ryv2hcbrwqc087w7rrs4a2irkcpmqync00g4dh8n7jn10w2jkim" ) )
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" ) "" ) )
2019-12-19 17:14:54 -05:00
#t ) )
( add-after 'unpack 'find-catch
( lambda* ( # :key inputs # :allow-other-keys )
( setenv "CPLUS_INCLUDE_PATH"
( string-append ( assoc-ref inputs "catch" )
"/include/catch" ) )
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 )
2019-12-19 17:14:54 -05:00
( "catch" , catch-framework2 )
2016-10-19 04:39:59 -04:00
( "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 . " )
2019-12-19 17:14:54 -05:00
( license ( list license:mpl2 . 0 ;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" )
2019-11-03 08:45:12 -05:00
( version "5.1.4" )
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
2019-11-03 08:45:12 -05:00
"https://launchpad.net/kicad/" ( version-major version )
".0/" version "/+download/kicad-" version ".tar.xz" ) )
2016-11-15 15:53:23 -05:00
( sha256
2019-11-03 08:45:12 -05:00
( base32 "1r60dgh6aalbpq1wsmpyxkz0nn4ck8ydfdjcrblpl69k5rks5k2j" ) ) ) )
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
2019-11-03 08:45:12 -05:00
( list "-DKICAD_SCRIPTING_PYTHON3=ON"
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE" )
2016-11-15 15:53:23 -05:00
# :phases
( modify-phases %standard-phases
( add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
( lambda* ( # :key inputs outputs # :allow-other-keys )
( let* ( ( out ( assoc-ref outputs "out" ) )
( python ( assoc-ref inputs "python" ) )
( file ( string-append out "/bin/kicad" ) )
( path ( string-append
out
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 )
2019-11-03 08:45:12 -05:00
( "python" , python )
( "wxwidgets" , wxwidgets )
( "wxpython" , python-wxpython ) ) )
2016-11-15 15:53:23 -05:00
( 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 )
2019-05-16 20:23:08 -04:00
( source
( origin
( method url-fetch )
( uri ( string-append
"https://kicad-downloads.s3.cern.ch/libraries/kicad-library-"
version ".tar.gz" ) )
( sha256
( base32 "1azb7v1y3l6j329r9gg7f4zlg0wz8nh4s4i5i0l9s4yh9r6i9zmv" ) ) ) )
2016-11-15 15:53:24 -05:00
( build-system cmake-build-system )
( arguments
` ( # :out-of-source? #t
2019-05-16 20:23:08 -04:00
# :tests? #f ; no tests
2016-11-15 15:53:24 -05:00
# :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" )
2019-05-16 20:23:08 -04:00
fp-lib-table ) )
2016-11-15 15:53:24 -05:00
#t ) ) ) ) )
( native-search-paths
( list ( search-path-specification
2019-05-16 20:23:08 -04:00
( variable "KISYSMOD" ) ; footprint path
2016-11-15 15:53:24 -05:00
( files ' ( "share/kicad/modules" ) ) )
( search-path-specification
2019-05-16 20:23:08 -04:00
( variable "KISYS3DMOD" ) ; 3D model path
2016-11-15 15:53:24 -05:00
( 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" )
2019-11-04 06:21:23 -05:00
( version "5.1.4" )
2018-10-10 06:16:51 -04:00
( source ( origin
( method git-fetch )
( uri ( git-reference
( url "https://github.com/KiCad/kicad-symbols.git" )
( commit version ) ) )
2019-03-11 17:47:21 -04:00
( file-name ( git-file-name name version ) )
2018-10-10 06:16:51 -04:00
( sha256
( base32
2019-11-04 06:21:23 -05:00
"1lna4xlvzrxif3569pkp6mrg7fj62z3a3ri5j97lnmnnzhiddnh3" ) ) ) )
2018-10-10 06:16:51 -04:00
( 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
2019-02-27 12:01:48 -05:00
` ( # :configure-flags ' ( "--enable-shared" )
# :phases
2017-06-22 15:09:54 -04:00
( 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" )
2019-02-27 12:01:49 -05:00
( version "4.2.0" )
2017-06-22 15:09:55 -04:00
( source ( origin
( method url-fetch )
( uri
( string-append
2019-02-27 12:01:49 -05:00
"https://github.com/NanoComp/libctl/releases/download/v"
version "/libctl-" version ".tar.gz" ) )
2017-06-22 15:09:55 -04:00
( sha256
( base32
2019-02-27 12:01:49 -05:00
"0x8r56lpfq83kfbq28vr25icl19xpfd6fjrxzcpdmv30l9pash83" ) ) ) )
2017-06-22 15:09:55 -04:00
( build-system gnu-build-system )
2019-02-27 12:01:49 -05:00
( arguments
` ( # :configure-flags ' ( "--enable-shared" ) ) )
2017-06-22 15:09:55 -04:00
( 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" )
2019-02-27 12:01:50 -05:00
( version "1.8.0" )
2017-06-22 15:09:56 -04:00
( source ( origin
( method url-fetch )
( uri
( string-append
2019-02-27 12:01:50 -05:00
"https://github.com/NanoComp/mpb/releases/download/v"
version "/mpb-" version ".tar.gz" ) )
2017-06-22 15:09:56 -04:00
( sha256
( base32
2019-02-27 12:01:50 -05:00
"1jgrb7dd6qs6j6y1gnxmdgrh79l2bvqa6nk60a4pw1annsks4brd" ) ) ) )
2017-06-22 15:09:56 -04:00
( build-system gnu-build-system )
( arguments
` ( # :configure-flags
( list ( string-append "--with-libctl="
( assoc-ref %build-inputs "libctl" )
2019-02-27 12:01:50 -05:00
"/share/libctl" )
"--enable-shared" ) ) )
2017-06-22 15:09:56 -04:00
( 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" )
2019-02-27 12:01:51 -05:00
( version "1.8.0" )
2017-06-22 15:09:57 -04:00
( source ( origin
( method url-fetch )
( uri
( string-append
2019-02-27 12:01:51 -05:00
"https://github.com/NanoComp/meep/releases/download/v"
version "/meep-" version ".tar.gz" ) )
2017-06-22 15:09:57 -04:00
( sha256
( base32
2019-02-27 12:01:51 -05:00
"14zyxmm3p80j5fz5b89sl7hgkgcisqjny5hjh4pi274ziqjqz8bm" ) ) ) )
2017-06-22 15:09:57 -04:00
( 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 )
2019-02-27 12:01:51 -05:00
( "guile" , 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" )
2019-06-16 22:51:14 -04:00
( version "3.5.1" )
2017-08-11 14:54:40 -04:00
( source ( origin
( method url-fetch )
2019-06-16 18:56:04 -04:00
( uri ( string-append "https://radare.mikelloc.com/get/" version "/"
2019-06-16 18:55:26 -04:00
"radare2-" version ".tar.gz" ) )
2017-08-11 14:54:40 -04:00
( sha256
( base32
2019-06-16 22:51:14 -04:00
"174x5545fw2nyf000gd46hi7rx2bn3bw5bsnvizn9yi99pn7m4mw" ) )
2017-08-11 14:54:40 -04:00
( modules ' ( ( guix build utils ) ) )
( snippet
2019-06-16 22:51:14 -04:00
' ( begin
2017-08-11 14:54:40 -04:00
( 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
2019-06-16 22:51:14 -04:00
' ( # :tests? #f ; tests require git and network access
2017-08-11 14:54:40 -04:00
# :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
gnu: Remove more GCC < 7 workarounds.
* gnu/packages/abiword.scm (abiword)[arguments]: Do not pass "-std=c++11" to
the GCC command line.
* gnu/packages/aidc.scm (zbar)[arguments]: Likewise.
* gnu/packages/android.scm (android-libbase, android-libcutils,
android-libziparchive, fastboot)[arguments]: Likewise.
* gnu/packages/audio.scm (azr3, guitarix, suil)[arguments]: Likewise.
* gnu/packages/bioinformatics.scm (bless)[arguments]: Likewise.
* gnu/packages/bittorrent.scm (libtorrent-rasterbar)[arguments]: Likewise.
* gnu/packages/code.scm (rtags)[arguments]: Likewise.
* gnu/packages/coq.scm (coq-gappa)[arguments]: Likewise.
* gnu/packages/emulators.scm (dolphin-emu)[arguments]: Likewise.
* gnu/packages/engineering.scm (xyce-serial, xyce-parallel)[arguments]: Likewise.
* gnu/packages/gnupg.scm (pinentry-qt)[arguments]: Likewise.
* gnu/packages/gobby.scm (libnet6, obby)[arguments]: Likewise.
* gnu/packages/graph.scm (python-faiss)[arguments]: Likewise.
* gnu/packages/graphics.scm (povray)[arguments]: Likewise.
* gnu/packages/image-processing.scm (opencv, itk-snap)[arguments]: Likewise.
* gnu/packages/image.scm (freeimage)[arguments]: Likewise.
* gnu/packages/kodi.scm (crossguid)[arguments]: Likewise.
* gnu/packages/music.scm (amsynth, qmidiarp, qmidiroute, seq24)[arguments]: Likewise.
* gnu/packages/pdf.scm (python-poppler-qt5)[arguments]: Likewise.
* gnu/packages/sagemath.scm (lcalc)[arguments]: Likewise.
* gnu/packages/video.scm (vlc, mlt, v4l-utils)[arguments]: Likewise.
2019-10-20 07:31:19 -04:00
"CXXFLAGS=-O3"
2017-09-09 13:57:48 -04:00
( string-append "ARCHDIR="
( assoc-ref %build-inputs "trilinos" ) ) ) ) )
( native-inputs
2019-09-30 03:48:18 -04:00
` ( ( "bison" , bison-3 . 0 ) ;'configure' fails with Bison 3.4
2017-09-09 13:57:48 -04:00
( "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 )
gnu: Remove more GCC < 7 workarounds.
* gnu/packages/abiword.scm (abiword)[arguments]: Do not pass "-std=c++11" to
the GCC command line.
* gnu/packages/aidc.scm (zbar)[arguments]: Likewise.
* gnu/packages/android.scm (android-libbase, android-libcutils,
android-libziparchive, fastboot)[arguments]: Likewise.
* gnu/packages/audio.scm (azr3, guitarix, suil)[arguments]: Likewise.
* gnu/packages/bioinformatics.scm (bless)[arguments]: Likewise.
* gnu/packages/bittorrent.scm (libtorrent-rasterbar)[arguments]: Likewise.
* gnu/packages/code.scm (rtags)[arguments]: Likewise.
* gnu/packages/coq.scm (coq-gappa)[arguments]: Likewise.
* gnu/packages/emulators.scm (dolphin-emu)[arguments]: Likewise.
* gnu/packages/engineering.scm (xyce-serial, xyce-parallel)[arguments]: Likewise.
* gnu/packages/gnupg.scm (pinentry-qt)[arguments]: Likewise.
* gnu/packages/gobby.scm (libnet6, obby)[arguments]: Likewise.
* gnu/packages/graph.scm (python-faiss)[arguments]: Likewise.
* gnu/packages/graphics.scm (povray)[arguments]: Likewise.
* gnu/packages/image-processing.scm (opencv, itk-snap)[arguments]: Likewise.
* gnu/packages/image.scm (freeimage)[arguments]: Likewise.
* gnu/packages/kodi.scm (crossguid)[arguments]: Likewise.
* gnu/packages/music.scm (amsynth, qmidiarp, qmidiroute, seq24)[arguments]: Likewise.
* gnu/packages/pdf.scm (python-poppler-qt5)[arguments]: Likewise.
* gnu/packages/sagemath.scm (lcalc)[arguments]: Likewise.
* gnu/packages/video.scm (vlc, mlt, v4l-utils)[arguments]: Likewise.
2019-10-20 07:31:19 -04:00
` ( list "CXXFLAGS=-O3"
2017-09-09 13:57:49 -04:00
"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
gnu: Use the test-only Xorg variant for tests.
* gnu/packages/education.scm (gcompris-qt)[native-inputs]: Change XORG-SERVER
to XORG-SERVER-FOR-TESTS.
* gnu/packages/engineering.scm (pcb, qucs, openscad)[native-inputs]: Likewise.
* gnu/packages/gnome.scm (libbonoboui, d-feet, gspell, libdazzle, libhandy)[native-inputs]: Likewise.
* gnu/packages/gnupg.scm (parcimonie)[native-inputs]: Likewise.
* gnu/packages/graphics.scm (opensubdiv, rapicorn)[native-inputs]: Likewise.
* gnu/packages/gtk.scm (gtksourceview-2, gtksourceview)[native-inputs]: Likewise.
* gnu/packages/image-processing.scm (opencv)[native-inputs]: Likewise.
* gnu/packages/kde-frameworks.scm (kconfig, kcoreaddons, kwidgetsaddons,
kwindowsystem, kdeclarative)[native-inputs]: Likewise.
* gnu/packages/kde-plasma.scm (kscreenlocker)[native-inputs]: Likewise.
* gnu/packages/messaging.scm (gajim)[native-inputs]: Likewise.
* gnu/packages/python-xyz.scm (python-seaborn)[native-inputs]: Likewise.
2019-11-27 16:19:13 -05:00
( "xorg-server" , xorg-server-for-tests ) ) ) ; for tests
2018-06-07 15:24:54 -04:00
( 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" )
2019-10-07 04:30:08 -04:00
( version "0.0.21" )
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
2019-10-07 04:30:08 -04:00
"12m1jwhb9qwvb141qzyskbxnw3wn1x22d02z4b4862p7xvccl5h7" ) ) ) )
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" )
2019-09-04 12:22:26 -04:00
( version "0.1.2" )
2018-12-01 08:22:42 -05:00
( source
( origin
( method url-fetch )
2019-04-25 16:20:21 -04:00
( uri ( string-append "https://download.librepcb.org/releases/"
version "/librepcb-" version "-source.zip" ) )
2018-12-01 08:22:42 -05:00
( sha256
( base32
2019-09-04 12:22:26 -04:00
"1xgk0r3nxdd2cy7d1k165d005gsngnz1v2wbwivacw7gis0i8ip7" ) ) ) )
2018-12-01 08:22:42 -05:00
( 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
2019-02-07 16:33:08 -05:00
( define-public gpx
( package
( name "gpx" )
( version "2.5.2" )
( source ( origin
( method git-fetch )
( uri ( git-reference
( url "https://github.com/markwal/GPX.git" )
( commit version ) ) )
gnu: Add 'file-name' where appropriate.
* gnu/packages/admin.scm (detox, neofetch),
gnu/packages/algebra.scm (python-fpylll),
gnu/packages/bioinformatics.scm (tbsp, genrich),
gnu/packages/crypto.scm (hpenc),
gnu/packages/digest.scm (xxhash),
gnu/packages/emacs-xyz.scm (emacs-tiny, emacs-ergoemacs-mode,
emacs-make-it-so, emacs-poet-theme, emacs-deft, emacs-scribble-mode,
emacs-helm-mu, emacs-unidecode, emacs-diff-hl, emacs-helm-exwm,
emacs-gif-screencast, emacs-exec-path-from-shell),
gnu/packages/engineering.scm (gpx),
gnu/packages/freedesktop.scm (waylandpp),
gnu/packages/golang.scm (go-github-com-sirupsen-logrus,
go-github-com-shirou-gopsutil),
gnu/packages/guile-xyz.scm (guile-studio, guile-picture-language,
jupyter-guile-kernel),
gnu/packages/image-viewers.scm (qview),
gnu/packages/java-maths.scm (java-jblas),
gnu/packages/llvm.scm (libclc),
gnu/packages/logging.scm (spdlog),
gnu/packages/ocaml.scm (ocaml-cstruct, ocaml-zarith),
gnu/packages/terminals.scm (libtsm),
gnu/packages/tigervnc.scm (tigervnc-client),
gnu/packages/xdisorg.scm (xcalib, xbanish) [source]: Add file-name.
2019-11-10 05:03:51 -05:00
( file-name ( git-file-name name version ) )
2019-02-07 16:33:08 -05:00
( sha256
( base32
"1yab269x8qyf7rd04vaxyqyjv4pzz9lp4sc4dwh927k23avr3rw5" ) ) ) )
( build-system gnu-build-system )
( home-page "https://github.com/markwal/GPX" )
( synopsis "Converting gcode to x3g files for 3D printing" )
( description
" GPX is a post processing utility for converting gcode output from 3 D
slicing software to x3g files for standalone 3 D printing on common 3 D
printers . " )
( license license:gpl2+ ) ) )
2019-04-05 07:11:15 -04:00
( define-public gnucap
( package
( name "gnucap" )
( version "20171003" )
( source
( origin
( method url-fetch )
( uri ( string-append "https://git.savannah.gnu.org/cgit/gnucap.git/snapshot/gnucap-"
version ".tar.gz" ) )
( sha256
( base32
"16m09xa685qhj5fqq3bcgakrwnb74xhf5f7rpqkkf9fg8plzbb1g" ) ) ) )
( build-system gnu-build-system )
( inputs
` ( ( "readline" , readline ) ) )
( arguments
` ( # :phases
( modify-phases %standard-phases
( replace 'configure
( lambda* ( # :key outputs # :allow-other-keys )
( let ( ( out ( assoc-ref outputs "out" ) ) )
;; Set correct rpath so that gnucap finds libgnucap.so.
( substitute* ( list "apps/configure" "lib/configure"
"main/configure" "modelgen/configure" )
( ( "LDFLAGS =" )
( string-append "LDFLAGS = -Wl,-rpath=" out "/lib" ) ) )
;; gnucap uses a hand-written configure script that expects the
;; --prefix argument to be the first argument passed to it.
( invoke "./configure" ( string-append "--prefix=" out ) ) ) ) )
( replace 'check
( lambda* ( # :key outputs # :allow-other-keys )
( let ( ( out ( assoc-ref outputs "out" ) )
( libpath "../lib/O:../apps/O" ) )
( with-directory-excursion "tests"
;; Make test return non-zero exit code when a test fails.
( substitute* "test"
( ( "/bin/sh" ) "/bin/sh -e" )
( ( "\\|\\| echo \"\\*\\*\\*\\* \\$ii fails \\*\\*\\*\\*\"" ) "" ) )
;; Fix expected plugin search path for test c_attach.1.gc
( substitute* "==out/c_attach.1.gc.out"
( ( "/usr/local/lib/gnucap" )
( string-append libpath ":" out "/lib/gnucap" ) ) )
;; Set library path so that gnucap can find libgnucap.so
;; while running the tests.
( setenv "LD_LIBRARY_PATH" libpath )
( invoke "./test" "../main/O/gnucap" "" "test-output" "==out" ) ) ) ) ) ) ) )
( home-page "https://www.gnu.org/software/gnucap/" )
( synopsis "Mixed analog and digital circuit simulator" )
( description " GNUcap is a circuit analysis package . It offers a general
purpose circuit simulator and can perform DC and transient analyses, fourier
analysis and AC analysis . The engine is designed to do true mixed-mode
simulation . " )
( license license:gpl3+ ) ) )
2019-07-20 07:30:22 -04:00
( define-public cutter
( package
( name "cutter" )
( version "1.8.3" )
( source
( origin
( method git-fetch )
( uri ( git-reference
( url "https://github.com/radareorg/cutter" )
( commit ( string-append "v" version ) ) ) )
( file-name ( git-file-name name version ) )
( sha256
( base32
"03f3cdckh51anx9gd1b0ndb2fg7061hqngvygf32ky29mm2m2lyv" ) ) ) )
( build-system gnu-build-system )
( arguments
` ( # :phases
( modify-phases %standard-phases
( replace 'configure
( lambda* ( # :key inputs outputs # :allow-other-keys )
( let ( ( out ( assoc-ref outputs "out" ) )
( radare2 ( assoc-ref inputs "radare2" ) ) )
;; fix pkg-config detection ./src/lib_radare2.pri:PREFIX=/usr/lib
;; override `qmake PREFIX=`
( substitute* "./src/lib_radare2.pri"
( ( "PREFIX" ) "R2PREFIX" )
( ( "R2PREFIX=/usr" ) ( string-append "R2PREFIX=" radare2 ) ) )
( invoke "qmake"
( string-append "PREFIX=" out )
"./src/Cutter.pro" ) ) ) ) ) ) )
( native-inputs
` ( ( "pkg-config" , pkg-config ) ) )
( inputs
` ( ( "qtbase" , qtbase )
( "qtsvg" , qtsvg )
( "openssl" , openssl )
( "radare2" , radare2 ) ) )
( home-page "https://github.com/radareorg/cutter" )
( synopsis "GUI for radare2 reverse engineering framework" )
( description " Cutter is a GUI for radare2 reverse engineering framework .
Its goal is making an advanced andcustomizable reverse-engineering platform
while keeping the user experience at mind . Cutter is created by reverse
engineers for reverse engineers . " )
( license ( list license:cc-by-sa3 . 0 ;the "Iconic" icon set
license:gpl3+ ) ) ) ) ;everything else
2019-08-23 18:23:00 -04:00
( define-public lib3mf
( package
( name "lib3mf" )
( version "1.8.1" )
( source
( origin
( method git-fetch )
( uri ( git-reference ( url "https://github.com/3MFConsortium/lib3mf.git" )
( commit ( string-append "v" version ) ) ) )
( file-name ( git-file-name name version ) )
( sha256
( base32
"11wpk6n9ga2p57h1dcrp37w77mii0r7r6mlrgmykf7rvii1rzgqd" ) ) ) )
( build-system cmake-build-system )
( native-inputs
` ( ( "googletest-source" , ( package-source googletest ) ) ) )
( inputs
` ( ( "libuuid" , util-linux ) ) )
( arguments
` ( # :phases
( modify-phases %standard-phases
( add-after 'unpack 'unpack-googletest
( lambda* ( # :key inputs # :allow-other-keys )
( copy-recursively ( assoc-ref inputs "googletest-source" )
"UnitTests/googletest" )
#t ) ) ) ) )
( synopsis "Implementation of the 3D Manufacturing Format (3MF) file standard" )
( description
" Lib3MF is a C++ implementation of the 3 D Manufacturing Format ( 3 MF ) file
standard . It offers a way to integrate 3 MF reading and writing capabilities, as
well as conversion and validation tools for input and output data . The
specification can be downloaded at @url { http://3mf . io/specification/ } . " )
( home-page "https://3mf.io/" )
( license license:bsd-2 ) ) )
2019-09-10 19:22:57 -04:00
( define-public openscad
( package
( name "openscad" )
( version "2019.05" )
( source
( origin
( method url-fetch )
( uri ( string-append "https://files.openscad.org/openscad-" version
".src.tar.gz" ) )
( sha256
( base32
"0nbgk5q5pgnw53la0kccdcpz2f4xf6d6076rkn0q08z57hkc85ha" ) ) ) )
( build-system cmake-build-system )
( inputs
` ( ( "boost" , boost )
( "cgal" , cgal )
( "double-conversion" , double-conversion )
( "eigen" , eigen )
( "fontconfig" , fontconfig )
( "glew" , glew )
( "gmp" , gmp )
( "harfbuzz" , harfbuzz )
( "lib3mf" , lib3mf )
( "libxml2" , libxml2 )
( "libzip" , libzip )
( "mpfr" , mpfr )
( "opencsg" , opencsg )
( "qscintilla" , qscintilla )
( "qtbase" , qtbase )
( "qtmultimedia" , qtmultimedia ) ) )
( native-inputs
` ( ( "bison" , bison )
( "flex" , flex )
( "gettext" , gettext-minimal )
( "pkg-config" , pkg-config )
( "which" , which )
;; the following are only needed for tests
( "imagemagick" , imagemagick )
( "ps" , procps )
( "python" , python )
gnu: Use the test-only Xorg variant for tests.
* gnu/packages/education.scm (gcompris-qt)[native-inputs]: Change XORG-SERVER
to XORG-SERVER-FOR-TESTS.
* gnu/packages/engineering.scm (pcb, qucs, openscad)[native-inputs]: Likewise.
* gnu/packages/gnome.scm (libbonoboui, d-feet, gspell, libdazzle, libhandy)[native-inputs]: Likewise.
* gnu/packages/gnupg.scm (parcimonie)[native-inputs]: Likewise.
* gnu/packages/graphics.scm (opensubdiv, rapicorn)[native-inputs]: Likewise.
* gnu/packages/gtk.scm (gtksourceview-2, gtksourceview)[native-inputs]: Likewise.
* gnu/packages/image-processing.scm (opencv)[native-inputs]: Likewise.
* gnu/packages/kde-frameworks.scm (kconfig, kcoreaddons, kwidgetsaddons,
kwindowsystem, kdeclarative)[native-inputs]: Likewise.
* gnu/packages/kde-plasma.scm (kscreenlocker)[native-inputs]: Likewise.
* gnu/packages/messaging.scm (gajim)[native-inputs]: Likewise.
* gnu/packages/python-xyz.scm (python-seaborn)[native-inputs]: Likewise.
2019-11-27 16:19:13 -05:00
( "xvfb" , xorg-server-for-tests ) ) )
2019-09-10 19:22:57 -04:00
( arguments
` ( # :phases
( modify-phases %standard-phases
( replace 'configure
( lambda* ( # :key outputs # :allow-other-keys )
( invoke "qmake"
( string-append "PREFIX=" ( assoc-ref outputs "out" ) ) )
#t ) )
( replace 'check
( lambda _
( with-directory-excursion "tests"
( invoke "cmake" "." )
( invoke "make" )
( invoke "ctest" ) )
;; strip python test files since lib dir ends up in out/share
( for-each delete-file
( find-files "libraries/MCAD" ".*\\.py" ) )
#t ) ) ) ) )
( synopsis "Script-based 3D modeling application" )
( description
" OpenSCAD is a 3 D Computer-aided Design ( CAD ) application . Unlike an
interactive modeler, OpenSCAD generates 3 D models from a script, giving you
full programmatic control over your models . " )
( home-page "https://www.openscad.org/" )
( license license:gpl2+ ) ) )
2019-07-06 22:05:37 -04:00
2019-07-07 13:32:10 -04:00
( define-public freecad
( package
( name "freecad" )
2019-11-14 02:37:31 -05:00
( version "0.18.4" )
2019-07-07 13:32:10 -04:00
( source
( origin
( method git-fetch )
( uri ( git-reference
( url "https://github.com/FreeCAD/FreeCAD.git" )
( commit version ) ) )
( file-name ( git-file-name name version ) )
( sha256
( base32
2019-11-14 02:37:31 -05:00
"170hk1kgrvsddrwykp24wyj0cha78zzmzbf50gn98x7ngqqs395s" ) ) ) )
2019-07-07 13:32:10 -04:00
( build-system cmake-build-system )
( native-inputs
` ( ( "doxygen" , doxygen )
( "graphviz" , graphviz )
( "qttools" , qttools )
( "pkg-config" , pkg-config )
( "swig" , swig ) ) )
( inputs
` ( ( "boost" , boost )
( "coin3D" , coin3D )
( "eigen" , eigen )
( "freetype" , freetype )
( "glew" , glew )
( "hdf5" , hdf5-1 . 10 )
( "libarea" , libarea )
( "libmedfile" , libmedfile )
( "libspnav" , libspnav )
( "libxi" , libxi )
( "libxmu" , libxmu )
( "openmpi" , openmpi )
( "opencascade-occt" , opencascade-occt )
( "python-matplotlib" , python-matplotlib )
( "python-pyside-2" , python-pyside-2 )
( "python-pyside-2-tools" , python-pyside-2-tools )
( "python-shiboken-2" , python-shiboken-2 )
( "python-wrapper" , python-wrapper )
( "qtbase" , qtbase )
( "qtsvg" , qtsvg )
( "qtx11extras" , qtx11extras )
( "qtxmlpatterns" , qtxmlpatterns )
;; qtwebkit is optional. We remove it currently, because it takes
;; much time to compile and substitutes are often unavailable
;;("qtwebkit" ,qtwebkit)
( "tbb" , tbb )
( "vtk" , vtk )
( "xerces-c" , xerces-c )
( "zlib" , zlib ) ) )
( arguments
` ( # :tests? #f
# :configure-flags
( list
"-DBUILD_QT5=ON"
( string-append "-DCMAKE_INSTALL_LIBDIR="
( assoc-ref %outputs "out" ) "/lib" ) )
# :phases
( modify-phases %standard-phases
( add-before 'configure 'restore-pythonpath
( lambda _
( substitute* "src/Main/MainGui.cpp"
( ( "_?putenv\\(\"PYTHONPATH=\"\\);" ) "" ) )
#t ) )
( add-after 'install 'wrap-pythonpath
( lambda* ( # :key outputs # :allow-other-keys )
( let ( ( out ( assoc-ref outputs "out" ) ) )
( wrap-program ( string-append out "/bin/FreeCAD" )
( list "PYTHONPATH"
'prefix ( list ( getenv "PYTHONPATH" ) ) ) ) )
#t ) ) ) ) )
( home-page "https://www.freecadweb.org/" )
( synopsis "Your Own 3D Parametric Modeler" )
( description
" FreeCAD is a general purpose feature-based, parametric 3 D modeler for
CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and
product design but also fits a wider range of uses in engineering, such as
architecture or other engineering specialties . It is 100 % Open Source ( LGPL2+
license ) and extremely modular, allowing for very advanced extension and
customization . " )
( license
( list
license:lgpl2 . 1 +
license:lgpl2 . 0 +
license:gpl3+
license:bsd-3 ) ) ) )
2019-07-07 13:13:17 -04:00
( define-public libmedfile
( package
( name "libmedfile" )
( version "4.0.0" )
( source
( origin
( method url-fetch )
( uri ( string-append
"https://files.salome-platform.org/Salome/other/med-"
version ".tar.gz" ) )
( sha256
( base32
"017h9p0x533fm4gn6pwc8kmp72rvqmcn6vznx72nkkl2b05yjx54" ) ) ) )
( build-system cmake-build-system )
( inputs ` ( ( "hdf5" , hdf5-1 . 10 ) ) )
( arguments
` ( # :phases
( modify-phases %standard-phases
( add-after 'install 'remove-test-output
( lambda* ( # :key outputs # :allow-other-keys )
( let ( ( out ( assoc-ref outputs "out" ) ) )
( delete-file-recursively
( string-append out "/bin/testc" ) )
#t ) ) ) ) ) )
( home-page "https://www.salome-platform.org" )
( synopsis "Library to read and write MED files" )
( description
" The purpose of the MED module is to provide a standard for storing and
recovering computer data associated to numerical meshes and fields, and to
facilitate the exchange between codes and solvers .
The persistent data storage is based upon HDF format ( like CGNS, a standard
developed by Boeing and NASA in the area of Computational Fluid Dynamic ) .
MED also provides structures to hold data on meshes and fields . These
structures are exchanged between solvers, hide the communication level ( CORBA
or MPI ) , and offer persistence ( read/write in . med files ) .
The main benefit of a common exchange format is reduced complexity of code
coupling . It also allows sharing such high level functionalities as
computation of nodal connectivity of sub-elements ( faces and edges ) ,
arithmetic operations on fields, entity location functionalities, and
interpolation toolkit . " )
( license license:gpl3+ ) ) )
2019-07-07 13:03:38 -04:00
( define-public libarea
( let ( ( revision "1" )
( commit "8f8bac811c10f1f01fda0d742a18591f61dd76ee" ) )
( package
( name "libarea" )
( version ( git-version "0" revision commit ) )
( source
( origin
( method git-fetch )
( uri ( git-reference ( url "https://github.com/Heeks/libarea.git" )
( commit commit ) ) )
( file-name ( git-file-name name version ) )
( sha256
( base32 "0pvqz6cabxqdz5y26wnj6alkn8v5d7gkx0d3h8xmg4lvy9r3kh3g" ) ) ) )
( build-system gnu-build-system )
( inputs ` ( ( "boost" , boost )
( "python-wrapper" , python-wrapper ) ) )
( native-inputs
` ( ( "cmake" , cmake ) ) )
( arguments
` ( # :tests? #f
# :phases
( modify-phases %standard-phases
( add-after 'configure 'cmake-configure
( lambda* ( # :key inputs outputs # :allow-other-keys )
( let ( ( out ( assoc-ref outputs "out" ) )
( cmake ( assoc-ref inputs "cmake" ) ) )
( mkdir-p "build" )
( invoke "cmake"
( string-append "-DCMAKE_INSTALL_PREFIX=" out ) ) ) ) )
( delete 'configure ) ) ) )
( home-page "https://github.com/Heeks/libarea" )
( synopsis
"Library and python module for pocketing and profiling operations" )
( description
" Area is a CAM-related software for pocketing operation .
This project provides library and associated python-module to compute pocket
operations . " )
( license ( list
license:bsd-3
license:gpl3+ ) ) ) ) )
2019-07-06 22:05:37 -04:00
( define-public libspnav
( package
( name "libspnav" )
( version "0.2.3" )
( source ( origin
( method git-fetch )
( uri ( git-reference
( url "https://github.com/FreeSpacenav/libspnav.git" )
( commit ( string-append "libspnav-" version ) ) ) )
( sha256
( base32
"098h1jhlj87axpza5zgy58prp0zn94wyrbch6x0s7q4mzh7dc8ba" ) )
( file-name ( git-file-name name version ) ) ) )
( build-system gnu-build-system )
( inputs
` ( ( "libx11" , libx11 ) ) )
( arguments ` ( # :tests? #f ) )
( home-page "http://spacenav.sourceforge.net/" )
( synopsis
"Library for communicating with spacenavd or 3dxsrv" )
( description
" The libspnav library is provided as a replacement of the magellan
library . It provides a cleaner, and more orthogonal interface . libspnav
supports both the original X11 protocol for communicating with the driver, and
the new alternative non-X protocol . Programs that choose to use the X11
protocol, are automatically compatible with either the free spacenavd driver
or the official 3 dxserv, as if they were using the magellan SDK .
Also, libspnav provides a magellan API wrapper on top of the new API . So, any
applications that were using the magellan library, can switch to libspnav
2019-11-11 22:17:55 -05:00
without any changes . And programmers that are familiar with the magellan API
2019-07-06 22:05:37 -04:00
can continue using it with a free library without the restrictions of the
official SDK . " )
( license license:bsd-3 ) ) )