gnu: Add Catch.
[jackhill/guix/guix.git] / gnu / packages / databases.scm
CommitLineData
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
88SQL, 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
148management system that supports the standardized Structured Query
149Language.")
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
171ACID compliant, has full support for foreign keys, joins, views, triggers, and
172stored procedures (in multiple languages). It includes most SQL:2008 data
173types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and
174TIMESTAMP. It also supports storage of binary large objects, including
175pictures, 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
208manipulating text-based, human-editable databases. Despite being text-based,
209databases created with Recutils carry all of the expected features such as
c5779c93
LC
210unique fields, primary keys, time stamps and more. Many different field
211types 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
248zero-configuration, transactional SQL database engine. SQLite is the most
249widely deployed SQL database engine in the world. The source code for SQLite
250is 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,
285and BSD's DB except that it allows multiple simultaneous writers and uses
286locking internally to keep writers from trampling on each other. TDB is also
287extremely 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
353Class::DBI (with a compatibility layer as a springboard for porting) and a
354resultset API that allows abstract encapsulation of database operations. It
355aims to make representing queries in your code as perl-ish as possible while
356still providing access to as many of the capabilities of the database as
357possible, including retrieving related records from multiple tables in a
358single 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
384built-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
405relationships, they can not be introspected with DBIx::Class. Many-to-many
406relationships are actually just a collection of convenience methods installed
407to bridge two relationships. This DBIx::Class component can be used to store
408all relevant information about these non-relationships so they can later be
409introspected 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
463DBIx::Class::Schema by scanning database table definitions and setting up the
464columns, 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
484the entire thing in the distribution. So in order to get a fast transaction
485capable RDBMS working for your Perl project you simply have to install this
486module, 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.
515While based on the concepts used by DBIx::Abstract, the concepts used have
516been modified to make the SQL easier to generate from Perl data structures.
517The underlying idea is for this module to do what you mean, based on the data
518structures you provide it, so that you don't have to modify your code every
519time 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
536data sources. Data sources include SQL Servers and any software with an ODBC
537Driver.")
538 (license lgpl2.1+)
539 ;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
540 (home-page "http://www.unixodbc.org")))