aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/robotics.scm
blob: fbf10be366f142354cf29d5aacc9b6dbb694197c (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; 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/>.

(define-module (gnu packages robotics)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix build-system cmake)
  #:use-module (gnu packages avahi)
  #:use-module (gnu packages cpp)
  #:use-module (gnu packages gl)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages protobuf)
  #:use-module (gnu packages qt)
  #:use-module (gnu packages sdl)
  #:use-module (gnu packages valgrind)
  #:use-module (gnu packages xml))

(define-public enki
  ;; Previous versions use Qt4 and are unsuitable for Aseba.
  (let ((commit "afd2d8e2f91c095f6745505ca1f32f31ea874200")
        (revision "0"))
    (package
      (name "enki")
      (version (git-version "2.0pre" revision commit))
      (home-page "https://github.com/enki-community/enki/")
      (source (origin
                (method git-fetch)
                (uri (git-reference (url home-page) (commit commit)))
                (sha256
                 (base32
                  "1d1901zzsfml97hb4mb3ah3ab1bk4kh7bn6m7xrj1rv0gk9wkhq7"))
                (file-name (string-append name "-" version "-checkout"))))
      (build-system cmake-build-system)
      (arguments
       '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
      (native-inputs `(("pkg-config" ,pkg-config)))
      (inputs
       ;; Optionally, add Python + Boost for Python bindings.
       `(("sdl2" ,sdl2)))
      (propagated-inputs
       ;; 'Viewer.h' includes 'QGLWidget'.
       `(("qtbase" ,qtbase)                ;the viewer module needs Qt5 + MESA
         ("mesa" ,mesa)))
      (synopsis "Robot simulator")
      (description
       "Enki is a robot simulator written in C++.  It provides collision and
limited physics support for robots evolving on a flat surface.  On a
contemporary desktop computer, Enki is able to simulate groups of robots
hundred times faster than real-time.")

      ;; The 'LICENSE' file as well as source file headers says that
      ;; researchers using the software are "asked" to cite using a given
      ;; citation, but that sentence is written as not being part of the
      ;; license (fortunately).
      (license license:gpl2+))))

(define-public aseba
  ;; Use the commit that allows us to build with Qt5.
  (let ((commit "3b35de80d5fdd47592b1c01d57e1f4ef37c5e5ea")
        (revision "0"))
    (package
      (name "aseba")
      (version (git-version "1.6.0" revision commit))
      (home-page "https://github.com/aseba-community/aseba")
      (source (origin
                (method git-fetch)
                (uri (git-reference (url home-page) (commit commit)
                                    (recursive? #t))) ;for Blockly
                (sha256
                 (base32
                  "0j31lmc9f0ksvkh0md2fgsz92hcsrwnrqqcynamizs2ah8iwlqi5"))
                (file-name (string-append name "-" version "-checkout"))
                (modules '((guix build utils)))
                (snippet
                 ;; Add missing Qt5::Network.
                 '(begin
                    (substitute* "targets/playground/CMakeLists.txt"
                      (("target_link_libraries(.*)\\$\\{EXTRA_LIBS\\}" _ middle)
                       (string-append "target_link_libraries" middle
                                      " Qt5::Network ${EXTRA_LIBS}")))
                    #t))))
      (build-system cmake-build-system)
      (arguments
       '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
      (native-inputs
       `(("pkg-config" ,pkg-config)
         ("valgrind" ,valgrind)))                 ;for tests
      (inputs
       `(("dashel" ,dashel)
         ("enki" ,enki)
         ("protobuf" ,protobuf-3.5)               ;for logging
         ("qtbase" ,qtbase)
         ("qtsvg" ,qtsvg)
         ("qttools" ,qttools)              ;for libQt5Help, needed by "studio"
         ("qtwebkit" ,qtwebkit)
         ("qtx11extras" ,qtx11extras)
         ("eudev" ,eudev)
         ("libxml2" ,libxml2)
         ("sdl2" ,sdl2)
         ("avahi" ,avahi)))            ;XXX: we need the libdnssd compat layer
      (synopsis "Event-based robot programming tools")
      (description
       "Aseba means @dfn{actuator and sensor event-based architecture}.
It is a set of tools which allow beginners to program robots easily and
efficiently.  It includes robot simulators, a programming language, and a
visual programming language (VPL) that is notably used together with the
Thymio educational robot.")

      ;; Source file headers say "version 3.0" without "or any later version".
      (license license:lgpl3))))
Efraim Flashner 2020-06-22gnu: liferea: Update to 1.12.8....* gnu/packages/syndication.scm (liferea): Update to 1.12.8. Signed-off-by: Marius Bakke <marius@gnu.org> Vinicius Monego 2020-06-06Merge branch 'master' into stagingMarius Bakke 2020-05-30gnu: Add liferea....* gnu/packages/syndication.scm (liferea): New variable. Signed-off-by: Marius Bakke <marius@gnu.org> Vinicius Monego 2020-05-29Merge branch 'master' into stagingMarius Bakke 2020-05-26Merge branch 'master' into stagingMarius Bakke 2020-05-26gnu: json-c: Update to 0.14....* gnu/packages/web.scm (json-c): Update to 0.14. [source](modules, snippet): Remove. [build-system]: Change to CMAKE-BUILD-SYSTEM. (json-c-0.13): New public variable. (json-c-0.12): Inherit from JSON-C-0.13. * gnu/packages/cryptsetup.scm (cryptsetup-static)[inputs]: Stick with JSON-C-0.13. * gnu/packages/linux.scm (multipath-tools)[inputs]: Likewise. * gnu/packages/security-token.scm (yubikey-personalization, libu2f-host, libu2f-server)[inputs]: Likewise. * gnu/packages/syndication.scm (newsboat)[inputs]: Likewise. Marius Bakke 2020-05-25gnu: tuir: Update to 1.29.0....* gnu/packages/syndication.scm (tuir): Update to 1.29.0. Efraim Flashner 2020-05-16gnu: Add rawdog....* gnu/packages/syndication.scm (rawdog): New variable. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> raingloom 2020-04-05gnu: Add tuir....* gnu/packages/syndication.scm (tuir): New variable. Efraim Flashner 2020-03-29gnu: Remove more packages deprecated for over almost a year....* gnu/packages/games.scm (armagetron-advanced) (cataclysm-dark-days-ahead, gnubackgammon, l-abbaye-des-morts) (the-battle-for-wesnoth, the-battle-for-wesnoth-server) (project-starfighter, kiki-the-nano-bot, fish-fillets-ng) (dungeon-crawl-stone-soup): Let's forget this ever happened. * gnu/packages/emacs-xyz.scm (geiser, paredit, git-modes/old-name) (magit, magit-svn, haskell-mode, emacs-emms-player-mpv, bbdb) (ert-runner, groovy-emacs-modes): Remove variable. * gnu/packages/engineering.scm (emacs-emms-player-simple-mpv) (emacs-evil-ediff, emacs-evil-mu4e, emacs-wgrep-helm, ao): Likewise. * gnu/packages/finance.scm (monero-core): Likewise. * gnu/packages/gnome.scm (dungeon-crawl-stone-soup-tiles) (tales-of-maj-eyal, battle-tanks, the-legend-of-edgar) (gnome-tweak-tool): Likewise. * gnu/packages/gnuzilla.scm (conkeror): Likewise. * gnu/packages/guile-xyz.scm (mcron2): Likewise. * gnu/packages/image.scm (pngcrunch): Likewise. * gnu/packages/linux.scm (eudev-with-hwdb): Likewise. * gnu/packages/maths.scm (qtoctave): Likewise. * gnu/packages/package-management.scm (guile2.0-guix): Likewise. * gnu/packages/php.scm (php-with-bcmath): Likewise. * gnu/packages/python-xyz.scm (python-kivy-next, python2-kivy-next): Likewise. * gnu/packages/video.scm (livestreamer): Likewise. * gnu/packages/virtualization.scm (lookingglass): Likewise. * gnu/packages/vulkan.scm (vulkan-icd-loader): Likewise. * gnu/packages/syndication.scm (newsbeuter): Likewise. (newsboat)[description]: Remove historical footnote. Tobias Geerinckx-Rice 2019-06-18gnu: rtv: Update to 1.27.0....* gnu/packages/syndication.scm (rtv): Update to 1.27.0. Tobias Geerinckx-Rice 2019-03-19gnu: Add rtv....* gnu/packages/syndication.scm (rtv): New variable. Efraim Flashner 2019-01-16gnu: Move sqlite to separate module....* gnu/packages/databases.scm (sqlite, sqlite-3.26.0, sqlite-with-fts5, sqlite-with-column-metadata): Move variables from here... * gnu/packages/sqlite.scm: ...to this new module. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/apl.scm, gnu/packages/bittorrent.scm, gnu/packages/calendar.scm, gnu/packages/code.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/dc.scm, gnu/packages/disk.scm, gnu/packages/ebook.scm, gnu/packages/education.scm, gnu/packages/emacs.scm, gnu/packages/emulators.scm, gnu/packages/file-systems.scm, gnu/packages/freedesktop.scm, gnu/packages/ftp.scm, gnu/packages/games.scm, gnu/packages/geo.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/gps.scm, gnu/packages/guile.scm, gnu/packages/ibus.scm, gnu/packages/kerberos.scm, gnu/packages/kodi.scm, gnu/packages/lisp.scm, gnu/packages/mail.scm, gnu/packages/messaging.scm, gnu/packages/mpd.scm, gnu/packages/music.scm, gnu/packages/networking.scm, gnu/packages/nfs.scm, gnu/packages/ocaml.scm, gnu/packages/package-management.scm, gnu/packages/pdf.scm, gnu/packages/photo.scm, gnu/packages/php.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/scheme.scm, gnu/packages/sync.scm, gnu/packages/syndication.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/web-browsers.scm, gnu/packages/webkit.scm: Adjust module references. Ricardo Wurmus 2018-09-28gnu: newsboat: Update to 2.13....* gnu/packages/syndication.scm (newsboat): Update to 2.13. Marius Bakke 2018-09-21Add 'GNU Guix' comment to all (gnu packages) headers....* gnu/packages/debian.scm, gnu/packages/syndication.scm: Add comments. Tobias Geerinckx-Rice 2018-06-26gnu: newsboat: Update to 2.12....* gnu/packages/syndication.scm (newsboat): Update to 2.12. Tobias Geerinckx-Rice 2018-06-26gnu: newsboat: Return #t from phases....* gnu/packages/syndication.scm (newsboat)[arguments]: Substitute INVOKE for SYSTEM*. Tobias Geerinckx-Rice 2018-04-02gnu: newsboat: Update to 2.11.1....* gnu/packages/syndication.scm (newsboat): Update to 2.11.1. Marius Bakke 2018-03-25gnu: newsboat: Update to 2.11....* gnu/packages/syndication.scm (newsboat): Update to 2.11. [inputs]: Change from JSON-C-0.12 to JSON-C. [native-search-paths]: New field. Marius Bakke 2018-01-11gnu: newsbeuter: Deprecate in favour of newsboat....* gnu/packages/syndication.scm (newsbeuter): Redefine using ‘deprecated-package’. * gnu/packages/patches/newsbeuter-CVE-2017-12904.patch: Delete file. * gnu/packages/patches/newsbeuter-CVE-2017-14500.patch: Likewise. * gnu/local.mk (dist_patch_DATA): Remove both. Tobias Geerinckx-Rice 2018-01-04gnu: newsboat: Update to 2.10.2....* gnu/packages/syndication.scm (newsboat): Update to 2.10.2. [inherit]: Remove inheritance of unmaintained newsbeuter. [native-inputs]: Remove perl. [arguments]: Remove #:make-flags to build on ARM, which should work now. [synopsis, description]: Mash up Newsboat's own description with useful information from its predecessor. Tobias Geerinckx-Rice 2018-01-04gnu: newsbeuter, newsboat: Correct licence....See <https://github.com/newsboat/newsboat/issues/34>. * gnu/packages/syndication.scm (newsbeuter)[license]: x11 -> expat. Tobias Geerinckx-Rice 2018-01-04gnu: json-c: Update to 0.13....* gnu/packages/web.scm (json-c): Update to 0.13. [description]: Add new resolution. (json-c-0.12): New public variable. (hubbub)[inputs]: Use it. * gnu/packages/syndication.scm (newsbeuter)[inputs]: Likewise. Tobias Geerinckx-Rice 2017-10-29gnu: Add newsboat....* gnu/packages/syndication.scm (newsboat): New variable. Efraim Flashner 2017-09-18gnu: newsbeuter: Fix CVE-2017-14500....* gnu/packages/syndication.scm (newsbeuter)[source]: Add patch. * gnu/packages/patches/newsbeuter-CVE-2017-14500.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Efraim Flashner 2017-08-18gnu: newsbeuter: Fix CVE-2017-12904....* gnu/packages/patches/newsbeuter-CVE-2017-12904.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/syndication.scm (newsbeuter)[source]: Use it. Leo Famulari