From ffb010b5b1c86cf77c0ccab80ca7606ef5f44b63 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 4 Mar 2015 09:46:04 +0100 Subject: gnu: Add LibreCAD. * gnu/packages/engineering.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu/packages/engineering.scm | 85 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 gnu/packages/engineering.scm (limited to 'gnu/packages/engineering.scm') diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm new file mode 100644 index 0000000000..70fd65583c --- /dev/null +++ b/gnu/packages/engineering.scm @@ -0,0 +1,85 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus +;;; +;;; 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 . + +(define-module (gnu packages audio) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages boost) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages maths) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages qt) + #:use-module (srfi srfi-1)) + +(define-public librecad + (package + (name "librecad") + (version "2.0.6-rc") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/LibreCAD/LibreCAD/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "1n1mh8asj6yrl5hi438dvizmrbqk1kni5xkizhi3pdmkg7z3hksm")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (alist-cons-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"))))) + (alist-replace + 'configure + (lambda* (#:key inputs #:allow-other-keys) + (system* "qmake" (string-append "BOOST_DIR=" + (assoc-ref inputs "boost")))) + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/bin")) + (mkdir-p (string-append out "/share/librecad")) + (copy-file "unix/librecad" + (string-append out "/bin/librecad")) + (copy-recursively "unix/resources" + (string-append out "/share/librecad")))) + %standard-phases))))) + (inputs + `(("boost" ,boost) + ("muparser" ,muparser) + ("freetype" ,freetype) + ("qt" ,qt-4))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (home-page "http://librecad.org/") + (synopsis "Computer-aided design (CAD) application") + (description + "LibreCAD is a 2D Computer-aided design (CAD) application for creating +plans and designs.") + (license license:gpl2))) -- cgit v1.2.3 From 40fbd52ae57e6120676676a2deaaf9267b6ebf19 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 8 Mar 2015 11:12:16 +0100 Subject: gnu: rename engineering module * gnu/packages/engineering.scm: Change module name from "audio" to "engineering". --- gnu/packages/engineering.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/engineering.scm') diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 70fd65583c..b735aa2e19 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -16,7 +16,7 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu packages audio) +(define-module (gnu packages engineering) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) -- cgit v1.2.3 From 5699a3cf5ad7ee48b9fd2ecc6a5971fb767bd8b6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 8 Mar 2015 11:13:57 +0100 Subject: gnu: librecad: use (gnu packages base) module * gnu/packages/engineering.scm: use (gnu packages base) module for "which". --- gnu/packages/engineering.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages/engineering.scm') diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index b735aa2e19..c3f9f44f8b 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -23,6 +23,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages fontutils) #:use-module (gnu packages maths) -- cgit v1.2.3 From 412726ee4ad459cf5fcd7e122fa30de668dcc142 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 5 Mar 2015 08:38:46 +0100 Subject: gnu: Add gEDA/gaf. * gnu/packages/engineering.scm (geda-gaf): New variable. --- gnu/packages/engineering.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'gnu/packages/engineering.scm') diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c3f9f44f8b..b29c6bc9f4 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -20,13 +20,19 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages fontutils) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages maths) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (srfi srfi-1)) @@ -84,3 +90,48 @@ "LibreCAD is a 2D Computer-aided design (CAD) application for creating plans and designs.") (license license:gpl2))) + +(define-public geda-gaf + (package + (name "geda-gaf") + (version "1.8.2") + (source (origin + (method url-fetch) + (uri (string-append + "http://ftp.geda-project.org/geda-gaf/stable/v" + (version-major+minor version) "/" + version "/geda-gaf-" version ".tar.gz")) + (sha256 + (base32 + "08dpa506xk4gjbbi8vnxcb640wq4ihlgmhzlssl52nhvxwx7gx5v")))) + (build-system gnu-build-system) + (arguments + '(#:phases + ;; tests require a writable HOME + (alist-cons-before + 'check 'set-home + (lambda _ + (setenv "HOME" (getenv "TMPDIR"))) + %standard-phases))) + (inputs + `(("glib" ,glib) + ("gtk" ,gtk+-2) + ("guile" ,guile-2.0) + ("desktop-file-utils" ,desktop-file-utils) + ("shared-mime-info" ,shared-mime-info))) + (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 + "gaf stands for “gschem and friends”. It is a subset of the entire tool +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+))) + -- cgit v1.2.3 From 205006624e59f0a9c51742f367a835ef1a3380a1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 6 Mar 2015 21:11:01 +0100 Subject: gnu: Add PCB. * gnu/packages/engineering.scm (pcb): New variable. --- gnu/packages/engineering.scm | 61 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'gnu/packages/engineering.scm') diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index b29c6bc9f4..88b462c232 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -25,16 +25,22 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages bison) #:use-module (gnu packages boost) + #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gd) + #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module ((gnu packages linux) #:select (eudev)) ; FIXME: for pcb #:use-module (gnu packages maths) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) + #:use-module (gnu packages tcl) #:use-module (srfi srfi-1)) (define-public librecad @@ -135,3 +141,58 @@ tool to forward annotation from your schematic to layout using PCB; some minor utilities.") (license license:gpl2+))) +(define-public pcb + (package + (name "pcb") + (version "20140316") + (source (origin + (method url-fetch) + (uri (string-append + "http://ftp.geda-project.org/pcb/pcb-" version "/pcb-" + version ".tar.gz")) + (sha256 + (base32 + "0l6944hq79qsyp60i5ai02xwyp8l47q7xdm3js0jfkpf72ag7i42")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (alist-cons-after + 'unpack 'use-wish8.6 + (lambda _ + (substitute* "configure" + (("wish85") "wish8.6"))) + (alist-cons-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))))) + %standard-phases)))) + (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) + ("flex" ,flex))) + (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+))) -- cgit v1.2.3