Commit | Line | Data |
---|---|---|
5f96f303 | 1 | ;;; GNU Guix --- Functional package management for GNU |
2d32d153 | 2 | ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> |
9a9f1003 | 3 | ;;; Copyright © 2012, 2014 Andreas Enge <andreas@enge.fr> |
5f96f303 LC |
4 | ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> |
5 | ;;; Copyright © 2014 David Thompson <davet@gnu.org> | |
798e0045 | 6 | ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> |
e61fd0f0 | 7 | ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> |
5f96f303 LC |
8 | ;;; |
9 | ;;; This file is part of GNU Guix. | |
10 | ;;; | |
11 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
12 | ;;; under the terms of the GNU General Public License as published by | |
13 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
14 | ;;; your option) any later version. | |
15 | ;;; | |
16 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
17 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 | ;;; GNU General Public License for more details. | |
20 | ;;; | |
21 | ;;; You should have received a copy of the GNU General Public License | |
22 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
23 | ||
24 | (define-module (gnu packages databases) | |
25 | #:use-module (gnu packages) | |
26 | #:use-module (gnu packages perl) | |
708155df | 27 | #:use-module (gnu packages language) |
5f96f303 LC |
28 | #:use-module (gnu packages linux) |
29 | #:use-module (gnu packages openssl) | |
30 | #:use-module (gnu packages compression) | |
31 | #:use-module (gnu packages ncurses) | |
32 | #:use-module (gnu packages readline) | |
33 | #:use-module (gnu packages emacs) | |
34 | #:use-module (gnu packages check) | |
35 | #:use-module (gnu packages algebra) | |
36 | #:use-module (gnu packages curl) | |
37 | #:use-module (gnu packages gnupg) | |
db60b1d9 | 38 | #:use-module (gnu packages python) |
5f96f303 | 39 | #:use-module ((guix licenses) |
166191b3 | 40 | #:select (gpl2 gpl3+ lgpl2.1+ lgpl3+ x11-style non-copyleft |
5f96f303 LC |
41 | public-domain)) |
42 | #:use-module (guix packages) | |
43 | #:use-module (guix download) | |
44 | #:use-module (guix build-system gnu) | |
274da61d | 45 | #:use-module (guix build-system perl) |
5f96f303 LC |
46 | #:use-module (srfi srfi-26) |
47 | #:use-module (ice-9 match)) | |
48 | ||
49 | (define-public bdb | |
50 | (package | |
51 | (name "bdb") | |
52 | (version "5.3.21") | |
53 | (source (origin | |
54 | (method url-fetch) | |
55 | (uri (string-append "http://download.oracle.com/berkeley-db/db-" version | |
56 | ".tar.gz")) | |
57 | (sha256 (base32 | |
58 | "1f2g2612lf8djbwbwhxsvmffmf9d7693kh2l20195pqp0f9jmnfx")))) | |
59 | (build-system gnu-build-system) | |
60 | (outputs '("out" ; programs, libraries, headers | |
61 | "doc")) ; 94 MiB of HTML docs | |
62 | (arguments | |
63 | '(#:tests? #f ; no check target available | |
64 | #:phases | |
65 | (alist-replace | |
66 | 'configure | |
67 | (lambda* (#:key outputs #:allow-other-keys) | |
68 | (let ((out (assoc-ref outputs "out")) | |
69 | (doc (assoc-ref outputs "doc"))) | |
70 | ;; '--docdir' is not honored, so we need to patch. | |
71 | (substitute* "dist/Makefile.in" | |
72 | (("docdir[[:blank:]]*=.*") | |
73 | (string-append "docdir = " doc "/share/doc/bdb"))) | |
74 | ||
75 | (zero? | |
76 | (system* "./dist/configure" | |
77 | (string-append "--prefix=" out) | |
78 | (string-append "CONFIG_SHELL=" (which "bash")) | |
79 | (string-append "SHELL=" (which "bash")) | |
80 | ||
81 | ;; The compatibility mode is needed by some packages, | |
82 | ;; notably iproute2. | |
83 | "--enable-compat185")))) | |
84 | %standard-phases))) | |
35b9e423 | 85 | (synopsis "Berkeley database") |
5f96f303 LC |
86 | (description |
87 | "Berkeley DB is an embeddable database allowing developers the choice of | |
88 | SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") | |
166191b3 LC |
89 | (license (non-copyleft "file://LICENSE" |
90 | "See LICENSE in the distribution.")) | |
5f96f303 LC |
91 | (home-page |
92 | "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html"))) | |
93 | ||
94 | (define-public mysql | |
95 | (package | |
96 | (name "mysql") | |
97 | (version "5.1.73") | |
98 | (source (origin | |
99 | (method url-fetch) | |
100 | (uri (string-append | |
101 | "http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-" | |
102 | version ".tar.gz")) | |
103 | (sha256 | |
104 | (base32 | |
105 | "1dfwi4ck0vq6sdci6gz0031s7zz5lc3pddqlgm0292s00l9y5sq5")))) | |
106 | (build-system gnu-build-system) | |
107 | (inputs | |
108 | `(("procps" ,procps) | |
109 | ("openssl" ,openssl) | |
110 | ("perl" ,perl) | |
111 | ("zlib" ,zlib) | |
112 | ("ncurses" ,ncurses))) | |
113 | (arguments | |
114 | '(#:modules ((guix build gnu-build-system) | |
115 | (guix build utils) | |
116 | (ice-9 ftw)) ; for "rm -rf" | |
117 | #:phases (alist-cons-after | |
118 | 'install 'clean-up | |
119 | (lambda* (#:key outputs #:allow-other-keys) | |
120 | ;; Remove the 112 MiB of tests that get installed. | |
121 | (let ((out (assoc-ref outputs "out"))) | |
122 | (define (rm-rf dir) | |
123 | (file-system-fold (const #t) ; enter? | |
124 | (lambda (file stat result) ; leaf | |
125 | (delete-file file)) | |
126 | (const #t) ; down | |
127 | (lambda (dir stat result) ; up | |
128 | (rmdir dir)) | |
129 | (const #t) | |
130 | (lambda (file stat errno result) | |
131 | (format (current-error-port) | |
132 | "error: ~a: ~a~%" | |
133 | file (strerror errno))) | |
134 | #t | |
135 | (string-append out "/" dir))) | |
136 | (rm-rf "mysql-test") | |
137 | (rm-rf "sql-bench") | |
138 | ||
139 | ;; Compress the 14 MiB Info file. | |
140 | (zero? | |
141 | (system* "gzip" "--best" | |
142 | (string-append out "/share/info/mysql.info"))))) | |
143 | %standard-phases))) | |
144 | (home-page "http://www.mysql.com/") | |
9e771e3b | 145 | (synopsis "Fast, easy to use, and popular database") |
5f96f303 LC |
146 | (description |
147 | "MySQL is a fast, reliable, and easy to use relational database | |
148 | management system that supports the standardized Structured Query | |
149 | Language.") | |
150 | (license gpl2))) | |
151 | ||
152 | (define-public postgresql | |
153 | (package | |
154 | (name "postgresql") | |
155 | (version "9.3.5") | |
156 | (source (origin | |
157 | (method url-fetch) | |
158 | (uri (string-append "http://ftp.postgresql.org/pub/source/v" | |
159 | version "/postgresql-" version ".tar.gz")) | |
160 | (sha256 | |
161 | (base32 | |
162 | "08kga00izykgvnx7hn995wc4zjqslspapaa8z63045p1ya14mr4g")))) | |
163 | (build-system gnu-build-system) | |
164 | (inputs | |
165 | `(("readline" ,readline) | |
166 | ("zlib" ,zlib))) | |
167 | (home-page "http://www.postgresql.org/") | |
168 | (synopsis "Powerful object-relational database system") | |
169 | (description | |
170 | "PostgreSQL is a powerful object-relational database system. It is fully | |
171 | ACID compliant, has full support for foreign keys, joins, views, triggers, and | |
172 | stored procedures (in multiple languages). It includes most SQL:2008 data | |
173 | types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and | |
174 | TIMESTAMP. It also supports storage of binary large objects, including | |
175 | pictures, sounds, or video.") | |
176 | (license (x11-style "file://COPYRIGHT")))) | |
177 | ||
178 | (define-public recutils | |
179 | (package | |
180 | (name "recutils") | |
181 | (version "1.7") | |
182 | (source (origin | |
183 | (method url-fetch) | |
184 | (uri (string-append "mirror://gnu/recutils/recutils-" | |
185 | version ".tar.gz")) | |
186 | (sha256 | |
187 | (base32 | |
188 | "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93")))) | |
189 | (build-system gnu-build-system) | |
190 | ||
191 | ;; Running tests in parallel leads to test failures and crashes in | |
192 | ;; torture/utils. | |
193 | (arguments '(#:parallel-tests? #f)) | |
194 | ||
2d32d153 | 195 | (native-inputs `(("emacs" ,emacs-no-x) |
5f96f303 LC |
196 | ("bc" ,bc))) |
197 | ||
198 | ;; TODO: Add more optional inputs. | |
199 | ;; FIXME: Our Bash doesn't have development headers (need for the 'readrec' | |
200 | ;; built-in command), but it's not clear how to get them installed. | |
201 | ;; See <https://lists.gnu.org/archive/html/bug-bash/2014-03/msg00125.html>. | |
202 | (inputs `(("curl" ,curl) | |
203 | ("libgcrypt" ,libgcrypt) | |
204 | ("check" ,check))) | |
205 | (synopsis "Manipulate plain text files as databases") | |
206 | (description | |
207 | "GNU Recutils is a set of tools and libraries for creating and | |
208 | manipulating text-based, human-editable databases. Despite being text-based, | |
209 | databases created with Recutils carry all of the expected features such as | |
c5779c93 LC |
210 | unique fields, primary keys, time stamps and more. Many different field |
211 | types are supported, as is encryption.") | |
5f96f303 LC |
212 | (license gpl3+) |
213 | (home-page "http://www.gnu.org/software/recutils/"))) | |
214 | ||
215 | (define-public sqlite | |
216 | (package | |
217 | (name "sqlite") | |
e5718ca1 | 218 | (version "3.8.8.3") |
5f96f303 LC |
219 | (source (origin |
220 | (method url-fetch) | |
221 | ;; TODO: Download from sqlite.org once this bug : | |
222 | ;; http://lists.gnu.org/archive/html/bug-guile/2013-01/msg00027.html | |
223 | ;; has been fixed. | |
224 | (uri (let ((numeric-version | |
225 | (match (string-split version #\.) | |
226 | ((first-digit other-digits ...) | |
227 | (string-append first-digit | |
228 | (string-pad-right | |
229 | (string-concatenate | |
230 | (map (cut string-pad <> 2 #\0) | |
231 | other-digits)) | |
232 | 6 #\0)))))) | |
233 | (string-append | |
234 | "mirror://sourceforge/sqlite.mirror/SQLite%20" version | |
235 | "/sqlite-autoconf-" numeric-version ".tar.gz"))) | |
236 | (sha256 | |
237 | (base32 | |
e5718ca1 | 238 | "04dl53iv5q0srv4jcgjfzsrdzkq6dg1sgmlmpw9lrd4xrmj6jmvl")))) |
5f96f303 | 239 | (build-system gnu-build-system) |
8f1d22b7 MW |
240 | (inputs `(("readline" ,readline))) |
241 | ;; Add -DSQLITE_SECURE_DELETE. GNU Icecat will refuse to use the system | |
242 | ;; SQLite unless this option is enabled. | |
243 | (arguments `(#:configure-flags '("CFLAGS=-O2 -DSQLITE_SECURE_DELETE"))) | |
5f96f303 LC |
244 | (home-page "http://www.sqlite.org/") |
245 | (synopsis "The SQLite database management system") | |
246 | (description | |
247 | "SQLite is a software library that implements a self-contained, serverless, | |
35b9e423 EB |
248 | zero-configuration, transactional SQL database engine. SQLite is the most |
249 | widely deployed SQL database engine in the world. The source code for SQLite | |
250 | is in the public domain.") | |
5f96f303 | 251 | (license public-domain))) |
db60b1d9 LC |
252 | |
253 | (define-public tdb | |
254 | (package | |
255 | (name "tdb") | |
256 | (version "1.3.0") | |
257 | (source (origin | |
258 | (method url-fetch) | |
259 | (uri (string-append "http://samba.org/ftp/tdb/tdb-" | |
260 | version ".tar.gz")) | |
261 | (sha256 | |
262 | (base32 | |
263 | "085sd2kii72fr0c4pdc7c7m0xk34nc66wnjp21c83dss826y9gh4")))) | |
264 | (build-system gnu-build-system) | |
265 | (arguments | |
266 | '(#:phases (alist-replace | |
267 | 'configure | |
268 | (lambda* (#:key outputs #:allow-other-keys) | |
269 | (let ((out (assoc-ref outputs "out"))) | |
270 | ;; The 'configure' script is a wrapper for Waf and | |
271 | ;; doesn't recognize things like '--enable-fast-install'. | |
272 | (zero? (system* "./configure" | |
273 | (string-append "--prefix=" out))))) | |
274 | %standard-phases))) | |
275 | (native-inputs | |
276 | `(;; TODO: Build the documentation. | |
277 | ;; ("docbook-xsl" ,docbook-xsl) | |
278 | ;; ("libxml2" ,libxml2) | |
279 | ;; ("libxslt" ,libxslt) | |
280 | ("python" ,python-2))) ;for the Waf build system | |
281 | (home-page "http://tdb.samba.org/") | |
35b9e423 | 282 | (synopsis "Trivial database") |
db60b1d9 LC |
283 | (description |
284 | "TDB is a Trivial Database. In concept, it is very much like GDBM, | |
285 | and BSD's DB except that it allows multiple simultaneous writers and uses | |
286 | locking internally to keep writers from trampling on each other. TDB is also | |
287 | extremely small.") | |
288 | (license lgpl3+))) | |
274da61d LC |
289 | |
290 | (define-public perl-dbi | |
291 | (package | |
292 | (name "perl-dbi") | |
293 | (version "1.631") | |
294 | (source (origin | |
295 | (method url-fetch) | |
296 | (uri (string-append | |
297 | "mirror://cpan/authors/id/T/TI/TIMB/DBI-" | |
298 | version ".tar.gz")) | |
299 | (sha256 | |
300 | (base32 | |
301 | "04fmrnchhwi7jx4niaiv93vmi343hdm3xj04w9zr2m9hhqh782np")))) | |
302 | (build-system perl-build-system) | |
303 | (synopsis "Database independent interface for Perl") | |
304 | (description "This package provides an database interface for Perl.") | |
305 | (home-page "http://search.cpan.org/~timb/DBI-1.631/DBI.pm") | |
feae3395 EB |
306 | (license (package-license perl)))) |
307 | ||
308 | (define-public perl-dbix-class | |
309 | (package | |
310 | (name "perl-dbix-class") | |
311 | (version "0.082810") | |
312 | (source | |
313 | (origin | |
314 | (method url-fetch) | |
315 | (uri (string-append "mirror://cpan/authors/id/R/RI/RIBASUSHI/" | |
316 | "DBIx-Class-" version ".tar.gz")) | |
317 | (sha256 | |
318 | (base32 | |
319 | "1zlsswk8j2k024gwhdhia8ksrmb8065n98dahkk8c0r69wv85n04")))) | |
320 | (build-system perl-build-system) | |
321 | (native-inputs | |
322 | `(("perl-dbd-sqlite" ,perl-dbd-sqlite) | |
323 | ("perl-file-temp" ,perl-file-temp) | |
324 | ("perl-package-stash" ,perl-package-stash) | |
325 | ("perl-test-deep" ,perl-test-deep) | |
326 | ("perl-test-exception" ,perl-test-exception) | |
327 | ("perl-test-warn" ,perl-test-warn))) | |
328 | (propagated-inputs | |
329 | `(("perl-class-accessor-grouped" ,perl-class-accessor-grouped) | |
330 | ("perl-class-c3-componentised" ,perl-class-c3-componentised) | |
331 | ("perl-class-inspector" ,perl-class-inspector) | |
332 | ("perl-config-any" ,perl-config-any) | |
333 | ("perl-context-preserve" ,perl-context-preserve) | |
334 | ("perl-data-dumper-concise" ,perl-data-dumper-concise) | |
335 | ("perl-data-page" ,perl-data-page) | |
336 | ("perl-dbi" ,perl-dbi) | |
337 | ("perl-devel-globaldestruction" ,perl-devel-globaldestruction) | |
338 | ("perl-hash-merge" ,perl-hash-merge) | |
339 | ("perl-module-find" ,perl-module-find) | |
340 | ("perl-moo" ,perl-moo) | |
341 | ("perl-mro-compat" ,perl-mro-compat) | |
342 | ("perl-namespace-clean" ,perl-namespace-clean) | |
343 | ("perl-path-class" ,perl-path-class) | |
344 | ("perl-scalar-list-utils" ,perl-scalar-list-utils) | |
345 | ("perl-scope-guard" ,perl-scope-guard) | |
346 | ("perl-sql-abstract" ,perl-sql-abstract) | |
347 | ("perl-sub-name" ,perl-sub-name) | |
348 | ("perl-text-balanced" ,perl-text-balanced) | |
349 | ("perl-try-tiny" ,perl-try-tiny))) | |
350 | (home-page "http://search.cpan.org/dist/DBIx-Class") | |
351 | (synopsis "Extensible and flexible object <-> relational mapper") | |
352 | (description "An SQL to OO mapper with an object API inspired by | |
353 | Class::DBI (with a compatibility layer as a springboard for porting) and a | |
354 | resultset API that allows abstract encapsulation of database operations. It | |
355 | aims to make representing queries in your code as perl-ish as possible while | |
356 | still providing access to as many of the capabilities of the database as | |
357 | possible, including retrieving related records from multiple tables in a | |
358 | single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\", | |
359 | \"ORDER BY\" and \"HAVING\" support.") | |
e61fd0f0 EB |
360 | (license (package-license perl)))) |
361 | ||
4e4039e5 EB |
362 | (define-public perl-dbix-class-cursor-cached |
363 | (package | |
364 | (name "perl-dbix-class-cursor-cached") | |
365 | (version "1.001002") | |
366 | (source | |
367 | (origin | |
368 | (method url-fetch) | |
369 | (uri (string-append "mirror://cpan/authors/id/A/AR/ARCANEZ/" | |
370 | "DBIx-Class-Cursor-Cached-" version ".tar.gz")) | |
371 | (sha256 | |
372 | (base32 | |
373 | "19r7jr6pknxiirrybq0cd0lnr76xiw05arnfqgk9nrhp6c7vvil0")))) | |
374 | (build-system perl-build-system) | |
375 | (native-inputs | |
376 | `(("perl-cache-cache" ,perl-cache-cache) | |
377 | ("perl-dbd-sqlite" ,perl-dbd-sqlite))) | |
378 | (propagated-inputs | |
379 | `(("perl-carp-clan" ,perl-carp-clan) | |
380 | ("perl-dbix-class" ,perl-dbix-class))) | |
381 | (home-page "http://search.cpan.org/dist/DBIx-Class-Cursor-Cached") | |
382 | (synopsis "Cursor with built-in caching support") | |
383 | (description "DBIx::Class::Cursor::Cached provides a cursor class with | |
384 | built-in caching support.") | |
385 | (license (package-license perl)))) | |
386 | ||
e61fd0f0 EB |
387 | (define-public perl-dbix-class-introspectablem2m |
388 | (package | |
389 | (name "perl-dbix-class-introspectablem2m") | |
390 | (version "0.001001") | |
391 | (source | |
392 | (origin | |
393 | (method url-fetch) | |
394 | (uri (string-append "mirror://cpan/authors/id/G/GR/GRODITI/" | |
395 | "DBIx-Class-IntrospectableM2M-" version ".tar.gz")) | |
396 | (sha256 | |
397 | (base32 | |
398 | "0p9zx1yc1f6jg583l206wilsni2v8mlngc2vf2q8yn10pmy4y6wm")))) | |
399 | (build-system perl-build-system) | |
400 | (propagated-inputs | |
401 | `(("perl-dbix-class" ,perl-dbix-class))) | |
402 | (home-page "http://search.cpan.org/dist/DBIx-Class-IntrospectableM2M") | |
403 | (synopsis "Introspect many-to-many relationships") | |
404 | (description "Because the many-to-many relationships are not real | |
405 | relationships, they can not be introspected with DBIx::Class. Many-to-many | |
406 | relationships are actually just a collection of convenience methods installed | |
407 | to bridge two relationships. This DBIx::Class component can be used to store | |
408 | all relevant information about these non-relationships so they can later be | |
409 | introspected and examined.") | |
708155df EB |
410 | (license (package-license perl)))) |
411 | ||
412 | (define-public perl-dbix-class-schema-loader | |
413 | (package | |
414 | (name "perl-dbix-class-schema-loader") | |
415 | (version "0.07042") | |
416 | (source | |
417 | (origin | |
418 | (method url-fetch) | |
419 | (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/" | |
420 | "DBIx-Class-Schema-Loader-" version ".tar.gz")) | |
421 | (sha256 | |
422 | (base32 | |
423 | "0sb48as7azmj6s4acxh98wcvcik7lxm7dcjz1c3wdrkrbmbbz0jf")))) | |
424 | (build-system perl-build-system) | |
425 | (native-inputs | |
426 | `(("perl-config-any" ,perl-config-any) | |
427 | ("perl-config-general" ,perl-config-general) | |
428 | ("perl-dbd-sqlite" ,perl-dbd-sqlite) | |
429 | ("perl-dbix-class-introspectablem2m" ,perl-dbix-class-introspectablem2m) | |
430 | ("perl-moose" ,perl-moose) | |
431 | ("perl-moosex-markasmethods" ,perl-moosex-markasmethods) | |
432 | ("perl-moosex-nonmoose" ,perl-moosex-nonmoose) | |
433 | ("perl-namespace-autoclean" ,perl-namespace-autoclean) | |
434 | ("perl-test-deep" ,perl-test-deep) | |
435 | ("perl-test-differences" ,perl-test-differences) | |
436 | ("perl-test-exception" ,perl-test-exception) | |
437 | ("perl-test-pod" ,perl-test-pod) | |
438 | ("perl-test-warn" ,perl-test-warn))) | |
439 | (propagated-inputs | |
440 | `(("perl-class-unload" ,perl-class-unload) | |
441 | ("perl-class-inspector" ,perl-class-inspector) | |
442 | ("perl-class-accessor-grouped" ,perl-class-accessor-grouped) | |
443 | ("perl-class-c3-componentised" ,perl-class-c3-componentised) | |
444 | ("perl-carp-clan" ,perl-carp-clan) | |
445 | ("perl-data-dump" ,perl-data-dump) | |
446 | ("perl-dbix-class" ,perl-dbix-class) | |
447 | ("perl-hash-merge" ,perl-hash-merge) | |
448 | ("perl-list-moreutils" ,perl-list-moreutils) | |
449 | ("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase) | |
450 | ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number) | |
451 | ("perl-lingua-en-tagger" ,perl-lingua-en-tagger) | |
452 | ("perl-namespace-clean" ,perl-namespace-clean) | |
453 | ("perl-mro-compat" ,perl-mro-compat) | |
454 | ("perl-scope-guard" ,perl-scope-guard) | |
455 | ("perl-string-camelcase" ,perl-string-camelcase) | |
456 | ("perl-string-toidentifier-en" ,perl-string-toidentifier-en) | |
457 | ("perl-sub-name" ,perl-sub-name) | |
458 | ("perl-try-tiny" ,perl-try-tiny))) | |
459 | (arguments `(#:tests? #f)) ;TODO: t/20invocations.t fails | |
460 | (home-page "http://search.cpan.org/dist/DBIx-Class-Schema-Loader") | |
461 | (synopsis "Create a DBIx::Class::Schema based on a database") | |
462 | (description "DBIx::Class::Schema::Loader automates the definition of a | |
463 | DBIx::Class::Schema by scanning database table definitions and setting up the | |
464 | columns, primary keys, unique constraints and relationships.") | |
274da61d LC |
465 | (license (package-license perl)))) |
466 | ||
467 | (define-public perl-dbd-sqlite | |
468 | (package | |
469 | (name "perl-dbd-sqlite") | |
470 | (version "1.42") | |
471 | (source (origin | |
472 | (method url-fetch) | |
473 | (uri (string-append | |
474 | "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-" | |
475 | version ".tar.gz")) | |
476 | (sha256 | |
477 | (base32 | |
478 | "14x9cjsc8dz8ad1nad0bqiq9cbk1rjfb8h5y0rpk3pdl38y6afxb")))) | |
479 | (build-system perl-build-system) | |
480 | (inputs `(("sqlite" ,sqlite))) | |
481 | (propagated-inputs `(("perl-dbi" ,perl-dbi))) | |
482 | (synopsis "SQlite interface for Perl") | |
483 | (description "DBD::SQLite is a Perl DBI driver for SQLite, that includes | |
484 | the entire thing in the distribution. So in order to get a fast transaction | |
485 | capable RDBMS working for your Perl project you simply have to install this | |
486 | module, and nothing else.") | |
487 | (license (package-license perl)) | |
488 | (home-page "http://search.cpan.org/~ishigaki/DBD-SQLite/lib/DBD/SQLite.pm"))) | |
14e84b2d | 489 | |
dd90952e EB |
490 | (define-public perl-sql-abstract |
491 | (package | |
492 | (name "perl-sql-abstract") | |
493 | (version "1.81") | |
494 | (source | |
495 | (origin | |
496 | (method url-fetch) | |
497 | (uri (string-append "mirror://cpan/authors/id/R/RI/RIBASUSHI/" | |
498 | "SQL-Abstract-" version ".tar.gz")) | |
499 | (sha256 | |
500 | (base32 | |
501 | "17sgwq3mvqjhv3b77cnvrq60xgp8harjhlnvpwmxc914rqc5ckaz")))) | |
502 | (build-system perl-build-system) | |
503 | (native-inputs | |
504 | `(("perl-test-deep" ,perl-test-deep) | |
505 | ("perl-test-exception" ,perl-test-exception) | |
506 | ("perl-test-warn" ,perl-test-warn))) | |
507 | (propagated-inputs | |
508 | `(("perl-hash-merge" ,perl-hash-merge) | |
509 | ("perl-moo" ,perl-moo) | |
510 | ("perl-mro-compat" ,perl-mro-compat) | |
511 | ("perl-text-balanced" ,perl-text-balanced))) | |
512 | (home-page "http://search.cpan.org/dist/SQL-Abstract") | |
513 | (synopsis "Generate SQL from Perl data structures") | |
514 | (description "This module was inspired by the excellent DBIx::Abstract. | |
515 | While based on the concepts used by DBIx::Abstract, the concepts used have | |
516 | been modified to make the SQL easier to generate from Perl data structures. | |
517 | The underlying idea is for this module to do what you mean, based on the data | |
518 | structures you provide it, so that you don't have to modify your code every | |
519 | time your data changes") | |
520 | (license (package-license perl)))) | |
14e84b2d JD |
521 | |
522 | (define-public unixodbc | |
523 | (package | |
524 | (name "unixodbc") | |
525 | (version "2.3.2") | |
526 | (source (origin | |
527 | (method url-fetch) | |
528 | (uri | |
529 | (string-append | |
530 | "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-" version ".tar.gz")) | |
531 | (sha256 | |
532 | (base32 "16jw5fq7wgfky6ak1h2j2pqx99jivsdl4q8aq6immpr55xs5jd4w")))) | |
533 | (build-system gnu-build-system) | |
534 | (synopsis "Data source abstraction library") | |
535 | (description "Unixodbc is a library providing an API with which to access | |
536 | data sources. Data sources include SQL Servers and any software with an ODBC | |
537 | Driver.") | |
538 | (license lgpl2.1+) | |
539 | ;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL" | |
540 | (home-page "http://www.unixodbc.org"))) |