| 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> |
| 3 | ;;; |
| 4 | ;;; This file is part of GNU Guix. |
| 5 | ;;; |
| 6 | ;;; GNU Guix is free software; you can redistribute it and/or modify it |
| 7 | ;;; under the terms of the GNU General Public License as published by |
| 8 | ;;; the Free Software Foundation; either version 3 of the License, or (at |
| 9 | ;;; your option) any later version. |
| 10 | ;;; |
| 11 | ;;; GNU Guix is distributed in the hope that it will be useful, but |
| 12 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of |
| 13 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 14 | ;;; GNU General Public License for more details. |
| 15 | ;;; |
| 16 | ;;; You should have received a copy of the GNU General Public License |
| 17 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
| 18 | |
| 19 | (define-module (gnu packages opencog) |
| 20 | #:use-module (gnu packages) |
| 21 | #:use-module (gnu packages boost) |
| 22 | #:use-module (gnu packages check) |
| 23 | #:use-module (gnu packages databases) |
| 24 | #:use-module (gnu packages guile) |
| 25 | #:use-module (gnu packages multiprecision) |
| 26 | #:use-module (gnu packages pkg-config) |
| 27 | #:use-module (gnu packages python) |
| 28 | #:use-module ((guix licenses) #:prefix license:) |
| 29 | #:use-module (guix packages) |
| 30 | #:use-module (guix git-download) |
| 31 | #:use-module (guix build-system cmake) |
| 32 | #:use-module (guix utils)) |
| 33 | |
| 34 | (define-public cogutil |
| 35 | ;; The last release was in 2016. Other OpenCog packages require a later |
| 36 | ;; version. |
| 37 | (let ((commit "b07b41b2eaf01627c78b27f1f28bb09ef7086f8e") |
| 38 | (revision "1")) |
| 39 | (package |
| 40 | (name "cogutil") |
| 41 | (version (git-version "2.0.3" revision commit)) |
| 42 | (source (origin |
| 43 | (method git-fetch) |
| 44 | (uri (git-reference |
| 45 | (url "https://github.com/opencog/cogutil.git") |
| 46 | (commit commit))) |
| 47 | (file-name (git-file-name name version)) |
| 48 | (sha256 |
| 49 | (base32 |
| 50 | "1ymmcrinp0prlxsmxmwdjjl4kgaj7wzq39d5b1q2apgg94yfdhqb")))) |
| 51 | (build-system cmake-build-system) |
| 52 | (arguments |
| 53 | `(#:test-target "tests")) |
| 54 | (inputs |
| 55 | `(("boost" ,boost))) |
| 56 | (native-inputs |
| 57 | `(("cxxtest" ,cxxtest) |
| 58 | ("python" ,python-minimal) |
| 59 | ("pkg-config" ,pkg-config))) |
| 60 | (home-page "https://github.com/opencog/cogutil/") |
| 61 | (synopsis "Low-level C++ programming utilities used by OpenCog components") |
| 62 | (description "The OpenCog utilities is a miscellaneous collection of C++ |
| 63 | utilities use for typical programming tasks in multiple OpenCog projects.") |
| 64 | ;; Either of these licenses. |
| 65 | (license (list license:agpl3 license:asl2.0))))) |
| 66 | |
| 67 | (define-public atomspace |
| 68 | ;; The last release was in 2016 and doesn't build with our Boost package. |
| 69 | (let ((commit "86c848dfc7135b3c47deb581f8da54a60f6711c9") |
| 70 | (revision "1")) |
| 71 | (package |
| 72 | (name "atomspace") |
| 73 | (version (git-version "5.0.3" revision commit)) |
| 74 | (source (origin |
| 75 | (method git-fetch) |
| 76 | (uri (git-reference |
| 77 | (url "https://github.com/opencog/atomspace.git") |
| 78 | (commit commit))) |
| 79 | (file-name (git-file-name name version)) |
| 80 | (sha256 |
| 81 | (base32 |
| 82 | "0vxzhszb0z8081li38hid07a5axzxyflsmq1mcn4b1k4z1j8ggch")))) |
| 83 | (build-system cmake-build-system) |
| 84 | (arguments |
| 85 | `(#:test-target "tests" |
| 86 | #:configure-flags |
| 87 | (list (string-append "-DGUILE_INCLUDE_DIR=" |
| 88 | (assoc-ref %build-inputs "guile") |
| 89 | "/include/guile/2.2/") |
| 90 | (string-append "-DGUILE_SITE_DIR=" |
| 91 | (assoc-ref %outputs "out") |
| 92 | "/share/guile/site/2.2/")))) |
| 93 | (inputs |
| 94 | `(("boost" ,boost) |
| 95 | ("cogutil" ,cogutil) |
| 96 | ("gmp" ,gmp) |
| 97 | ("guile" ,guile-2.2) |
| 98 | ("postgresql" ,postgresql))) |
| 99 | (native-inputs |
| 100 | `(("cxxtest" ,cxxtest) |
| 101 | ("python" ,python-minimal) |
| 102 | ("pkg-config" ,pkg-config))) |
| 103 | (home-page "https://github.com/opencog/atomspace/") |
| 104 | (synopsis "OpenCog hypergraph database, query system and rule engine") |
| 105 | (description "The OpenCog AtomSpace is an in-RAM @dfn{knowledge |
| 106 | representation} (KR) database, an associated query engine and graph-re-writing |
| 107 | system, and a rule-driven inferencing engine that can apply and manipulate |
| 108 | sequences of rules to perform reasoning. It is a layer that sits on top of |
| 109 | ordinary distributed (graph) databases, providing a large variety of advanced |
| 110 | features not otherwise available.") |
| 111 | (license license:agpl3)))) |