projects/guix·blob python-team · refs

320 lines · 13.7 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020 Ricardo Wurmus <[email protected]>
3;;; Copyright © 2026 Daniel Patrick Fahey <[email protected]>
4;;; Copyright © 2026 Florian Pelz <[email protected]>
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages opencog)
22 #:use-module (gnu packages)
23 #:use-module (gnu packages admin)
24 #:use-module (gnu packages boost)
25 #:use-module (gnu packages check)
26 #:use-module (gnu packages databases)
27 #:use-module (gnu packages documentation)
28 #:use-module (gnu packages graphviz)
29 #:use-module (gnu packages guile)
30 #:use-module (gnu packages language)
31 #:use-module (gnu packages linux)
32 #:use-module (gnu packages multiprecision)
33 #:use-module (gnu packages networking)
34 #:use-module (gnu packages pkg-config)
35 #:use-module (gnu packages python)
36 #:use-module (gnu packages python-xyz)
37 #:use-module (gnu packages serialization)
38 #:use-module (gnu packages tls)
39 #:use-module ((guix licenses) #:prefix license:)
40 #:use-module (guix packages)
41 #:use-module (guix gexp)
42 #:use-module (guix git-download)
43 #:use-module (guix build-system cmake)
44 #:use-module (guix utils))
45
46(define-public cogutil
47 ;; The last release was in 2016. Other OpenCog packages require a later
48 ;; version.
49 (let ((commit "64dca9083dcfa485dcb70fd6fe7ba1f80e0f4082")
50 (revision "2"))
51 (package
52 (name "cogutil")
53 (version (git-version "2.0.3" revision commit))
54 (source (origin
55 (method git-fetch)
56 (uri (git-reference
57 (url "https://github.com/opencog/cogutil")
58 (commit commit)))
59 (file-name (git-file-name name version))
60 (sha256
61 (base32
62 "01rr39sq9wakw1wnfzg7m4zl7g8qh3d35ww6q39irx19d6nq66h9"))))
63 (build-system cmake-build-system)
64 (arguments
65 (list
66 ;; Skip ldconfig, which requires root and is unnecessary in Guix.
67 #:configure-flags
68 #~(list "-DSKIP_LDCONF=ON")
69 #:modules '((guix build cmake-build-system)
70 ((guix build gnu-build-system) #:prefix gnu:)
71 (guix build utils))
72 #:phases
73 #~(modify-phases %standard-phases
74 (replace 'check
75 (lambda* (#:key tests? #:allow-other-keys #:rest args)
76 (when tests?
77 (apply (assoc-ref gnu:%standard-phases 'check)
78 #:tests? tests? #:test-target "tests" args)
79 (for-each
80 (lambda (file)
81 (invoke file))
82 (find-files "tests" "UTest$"))))))))
83 (inputs
84 (list boost))
85 (native-inputs
86 `(("cxxtest" ,cxxtest)
87 ("python" ,python-minimal)
88 ("pkg-config" ,pkg-config)))
89 (home-page "https://github.com/opencog/cogutil/")
90 (synopsis "Low-level C++ programming utilities used by OpenCog components")
91 (description "The OpenCog utilities is a miscellaneous collection of C++
92utilities use for typical programming tasks in multiple OpenCog projects.")
93 ;; Either of these licenses.
94 (license (list license:agpl3 license:asl2.0)))))
95
96(define-public atomspace
97 ;; The last release was in 2016.
98 (let ((commit "c8d633bf272b838c2132c21b7c8ddf169a18dd22")
99 (revision "2"))
100 (package
101 (name "atomspace")
102 (version (git-version "5.0.3" revision commit))
103 (source (origin
104 (method git-fetch)
105 (uri (git-reference
106 (url "https://github.com/opencog/atomspace")
107 (commit commit)))
108 (file-name (git-file-name name version))
109 (sha256
110 (base32
111 "0fdqmskjh9d7363ldwmh3zhwal847shm15nhb2nan4g4aqdmckrz"))))
112 (build-system cmake-build-system)
113 (arguments
114 (list
115 #:configure-flags
116 #~(list "-DSKIP_LDCONF=ON"
117 (string-append "-DGUILE_INCLUDE_DIR=" #$guile-3.0.11
118 "/include/guile/3.0/")
119 (string-append "-DGUILE_SITE_DIR=" #$output
120 "/share/guile/site/3.0/")
121 (string-append "-DGUILE_CCACHE_DIR=" #$output
122 "/lib/guile/3.0/site-ccache")
123 (string-append "-DPYTHON_INSTALL_PREFIX=" #$output
124 "/lib/python"
125 #$(version-major+minor (package-version python))
126 "/site-packages"))
127 #:modules '((guix build cmake-build-system)
128 ((guix build gnu-build-system) #:prefix gnu:)
129 (guix build utils))
130 #:phases
131 #~(modify-phases %standard-phases
132 (replace 'check
133 (lambda* (#:key tests? #:allow-other-keys #:rest args)
134 (when tests?
135 (apply (assoc-ref gnu:%standard-phases 'check)
136 #:tests? tests? #:test-target "tests" args)
137 ;; Failing tests.
138 (for-each delete-file
139 '("tests/scm/MultiAtomSpaceUTest"))
140 (setenv "GUILE_LOAD_PATH" ".:opencog/scm")
141 (for-each invoke
142 (find-files "tests" "UTest$"))))))))
143 (inputs
144 (list boost cogutil gmp guile-3.0-latest postgresql))
145 (native-inputs
146 `(("cxxtest" ,cxxtest)
147 ("python-cython" ,python-cython)
148 ("python" ,python-minimal)
149 ("pkg-config" ,pkg-config)))
150 (home-page "https://github.com/opencog/atomspace/")
151 (synopsis "OpenCog hypergraph database, query system and rule engine")
152 (description "The OpenCog AtomSpace is an in-RAM @dfn{knowledge
153representation} (KR) database, an associated query engine and graph-re-writing
154system, and a rule-driven inferencing engine that can apply and manipulate
155sequences of rules to perform reasoning. It is a layer that sits on top of
156ordinary distributed (graph) databases, providing a large variety of advanced
157features not otherwise available.")
158 (license license:agpl3))))
159
160(define-public atomspace-storage
161 (let ((commit "ecd88d673258e51f65cc0605400003affdf4d694")
162 (revision "1"))
163 (package
164 (name "atomspace-storage")
165 (version (git-version "4.3.0" revision commit))
166 (source
167 (origin
168 (method git-fetch)
169 (uri (git-reference
170 (url "https://github.com/opencog/atomspace-storage")
171 (commit commit)))
172 (sha256
173 (base32 "12ssnc313cm5n8bc6zw53dkjm9crrry90lpsknzxafnm61mzcgx3"))
174 (file-name (git-file-name name version))))
175 (build-system cmake-build-system)
176 (arguments
177 (list
178 #:configure-flags
179 #~(map (lambda (strings)
180 (apply string-append strings))
181 `(("-DGUILE_LIBRARIES=" ,(dirname (search-input-file
182 %build-inputs
183 "lib/libguile-3.0.so")))
184 ("-DGUILE_INCLUDE_DIRS=" ,(search-input-directory
185 %build-inputs "include/guile/3.0"))
186 ("-DGUILE_SITE_DIR=" ,#$output "/share/guile/site/3.0/")
187 ("-DPYTHON_INSTALL_PREFIX=" ,#$output "/lib/python"
188 ,#$(version-major+minor (package-version (this-package-input
189 "python-minimal")))
190 "/site-packages/")))
191 #:phases
192 #~(modify-phases %standard-phases
193 (add-after 'build 'build-tests
194 (lambda* (#:key make-flags #:allow-other-keys)
195 (begin
196 (apply invoke "make" "tests" make-flags)))))))
197 (inputs (list atomspace cogutil gmp guile-3.0-latest python-minimal))
198 (native-inputs (list cxxtest pkg-config python-cython))
199 (home-page "https://github.com/opencog/atomspace-storage")
200 (synopsis "StorageNode API for AtomSpace")
201 (description
202 "This AtomSpace module contains the StorageNode base class. The
203StorageNode API is the original, primary API for I/O storage and movement
204of Atoms into, out of and between AtomSpaces. It is mandatory for the
205RocksStorageNode which stores Atoms and AtomSpaces to disk, via RocksDB, and
206to CogStorageNode, which moves Atoms between AtomSpaces on different network
207nodes, and ProxyNodes which provides mirroring, routing, caching and filtering
208between AtomSpaces.")
209 (license license:agpl3))))
210
211(define-public cogserver
212 ;; There are no releases.
213 (let ((commit "3c4da0bd786262bd69a8306f9da88b13f0add1f2")
214 (revision "3"))
215 (package
216 (name "cogserver")
217 (version (git-version "0" revision commit))
218 (source (origin
219 (method git-fetch)
220 (uri (git-reference
221 (url "https://github.com/opencog/cogserver")
222 (commit commit)))
223 (file-name (git-file-name name version))
224 (sha256
225 (base32
226 "0hfz9z44wpzrabs9fgxhv02jzn0i40di2ncbiizn03g7gccawds5"))))
227 (build-system cmake-build-system)
228 (arguments
229 (list
230 #:tests? #f ;tests start network server and hang
231 #:configure-flags
232 #~(list "-DSKIP_LDCONF=ON"
233 (string-append "-DGUILE_INCLUDE_DIR=" #$guile-3.0.11
234 "/include/guile/3.0/")
235 (string-append "-DGUILE_SITE_DIR=" #$output
236 "/share/guile/site/3.0/")
237 (string-append "-DGUILE_CCACHE_DIR=" #$output
238 "/lib/guile/3.0/site-ccache")
239 (string-append "-DPYTHON_INSTALL_PREFIX=" #$output
240 "/lib/python"
241 #$(version-major+minor (package-version python))
242 "/site-packages"))
243 #:modules '((guix build cmake-build-system)
244 ((guix build gnu-build-system) #:prefix gnu:)
245 (guix build utils))
246 #:phases
247 #~(modify-phases %standard-phases
248 (replace 'check
249 (lambda* (#:key tests? #:allow-other-keys #:rest args)
250 (when tests?
251 (apply (assoc-ref gnu:%standard-phases 'check)
252 #:tests? tests? #:test-target "tests" args)
253 ;; Failing test.
254 (delete-file "tests/shell/ShellUTest")
255 (for-each invoke
256 (find-files "tests" "UTest$"))))))))
257 (inputs
258 (list asio atomspace atomspace-storage boost cogutil
259 gmp guile-3.0-latest jsoncpp openssl))
260 (native-inputs
261 `(("cxxtest" ,cxxtest)
262 ("netcat" ,netcat-openbsd)
263 ("python" ,python)
264 ("python-cython" ,python-cython)
265 ("pkg-config" ,pkg-config)))
266 (home-page "https://github.com/opencog/cogserver/")
267 (synopsis "OpenCog network server")
268 (description "The OpenCog Cogserver is a network and job server for the
269OpenCog framework.")
270 (license license:agpl3))))
271
272
273(define-public agi-bio
274 ;; There are no releases.
275 (let ((commit "2f723ad79afc38df9dce73d340ee24c38efb2199")
276 (revision "2"))
277 (package
278 (name "agi-bio")
279 (version (git-version "0" revision commit))
280 (source (origin
281 (method git-fetch)
282 (uri (git-reference
283 (url "https://github.com/opencog/agi-bio")
284 (commit commit)))
285 (file-name (git-file-name name version))
286 (sha256
287 (base32
288 "1gqmwjbqdjr0qz4wpsxh0k8wam59fvd3pnjxhfswdpvapcl9syk0"))))
289 (build-system cmake-build-system)
290 (arguments
291 `(#:tests? #f ; there are none
292 #:configure-flags
293 (list
294 (string-append "-DGUILE_INCLUDE_DIR="
295 (assoc-ref %build-inputs "guile")
296 "/include/guile/3.0/")
297 (string-append "-DGUILE_SITE_DIR="
298 (assoc-ref %outputs "out")
299 "/share/guile/site/3.0/"))
300 #:phases
301 (modify-phases %standard-phases
302 (add-after 'unpack 'fix-unqualified-load
303 (lambda* (#:key outputs #:allow-other-keys)
304 (substitute* "bioscience/bioscience.scm"
305 (("\\(load \"bioscience/types/bioscience_types.scm\"\\)")
306 (format #f "(load \"~a/bioscience/types/bioscience_types.scm\")"
307 (string-append (assoc-ref outputs "out")
308 "/share/guile/site/3.0/opencog")))))))))
309 (inputs
310 (list atomspace cogutil gmp guile-3.0-latest))
311 (native-inputs
312 `(("cxxtest" ,cxxtest)
313 ("python" ,python-minimal)
314 ("pkg-config" ,pkg-config)))
315 (home-page "https://github.com/opencog/agi-bio")
316 (synopsis "Genomic and proteomic data exploration and pattern mining")
317 (description "This is a package for genomic and proteomic research using
318the OpenCog toolset with Guile. This includes experiments in applying pattern
319mining and other OpenCog components.")
320 (license license:agpl3))))