From 5f96f303eb9438d0395ad0b66e92e435531d7700 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 8 Sep 2014 17:48:03 +0200 Subject: gnu: Consolidate databases in (gnu packages databases). * gnu/packages/databases.scm: New file, with the contents of the following deleted files. * gnu/packages/mysql.scm, gnu/packages/postgresql.scm, gnu/packages/recutils.scm, gnu/packages/sqlite.scm, gnu/packages/bdb.scm: Remove. * gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly. * gnu/packages/apl.scm, gnu/packages/dc.scm, gnu/packages/games.scm, gnu/packages/gnunet.scm, gnu/packages/linux.scm, gnu/packages/mail.scm, gnu/packages/mpd.scm, gnu/packages/nvi.scm, gnu/packages/openldap.scm, gnu/packages/package-management.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/rdf.scm, gnu/packages/version-control.scm: Adjust to new module name. --- gnu/packages/databases.scm | 245 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 gnu/packages/databases.scm (limited to 'gnu/packages/databases.scm') diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm new file mode 100644 index 0000000000..553a078a88 --- /dev/null +++ b/gnu/packages/databases.scm @@ -0,0 +1,245 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès +;;; Copyright © 2012 Andreas Enge +;;; Copyright © 2013 Cyril Roelandt +;;; Copyright © 2014 David Thompson +;;; Copyright © 2014 Mark H Weaver +;;; +;;; 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 . + +(define-module (gnu packages databases) + #:use-module (gnu packages) + #:use-module (gnu packages perl) + #:use-module (gnu packages linux) + #:use-module (gnu packages openssl) + #:use-module (gnu packages compression) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages readline) + #:use-module (gnu packages emacs) + #:use-module (gnu packages check) + #:use-module (gnu packages algebra) + #:use-module (gnu packages curl) + #:use-module (gnu packages gnupg) + #:use-module ((guix licenses) + #:select (gpl2 gpl3+ x11-style bsd-style + public-domain)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match)) + +(define-public bdb + (package + (name "bdb") + (version "5.3.21") + (source (origin + (method url-fetch) + (uri (string-append "http://download.oracle.com/berkeley-db/db-" version + ".tar.gz")) + (sha256 (base32 + "1f2g2612lf8djbwbwhxsvmffmf9d7693kh2l20195pqp0f9jmnfx")))) + (build-system gnu-build-system) + (outputs '("out" ; programs, libraries, headers + "doc")) ; 94 MiB of HTML docs + (arguments + '(#:tests? #f ; no check target available + #:phases + (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + ;; '--docdir' is not honored, so we need to patch. + (substitute* "dist/Makefile.in" + (("docdir[[:blank:]]*=.*") + (string-append "docdir = " doc "/share/doc/bdb"))) + + (zero? + (system* "./dist/configure" + (string-append "--prefix=" out) + (string-append "CONFIG_SHELL=" (which "bash")) + (string-append "SHELL=" (which "bash")) + + ;; The compatibility mode is needed by some packages, + ;; notably iproute2. + "--enable-compat185")))) + %standard-phases))) + (synopsis "db, the Berkeley database") + (description + "Berkeley DB is an embeddable database allowing developers the choice of +SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") + (license (bsd-style "file://LICENSE" + "See LICENSE in the distribution.")) + (home-page + "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html"))) + +(define-public mysql + (package + (name "mysql") + (version "5.1.73") + (source (origin + (method url-fetch) + (uri (string-append + "http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-" + version ".tar.gz")) + (sha256 + (base32 + "1dfwi4ck0vq6sdci6gz0031s7zz5lc3pddqlgm0292s00l9y5sq5")))) + (build-system gnu-build-system) + (inputs + `(("procps" ,procps) + ("openssl" ,openssl) + ("perl" ,perl) + ("zlib" ,zlib) + ("ncurses" ,ncurses))) + (arguments + '(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw)) ; for "rm -rf" + #:phases (alist-cons-after + 'install 'clean-up + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove the 112 MiB of tests that get installed. + (let ((out (assoc-ref outputs "out"))) + (define (rm-rf dir) + (file-system-fold (const #t) ; enter? + (lambda (file stat result) ; leaf + (delete-file file)) + (const #t) ; down + (lambda (dir stat result) ; up + (rmdir dir)) + (const #t) + (lambda (file stat errno result) + (format (current-error-port) + "error: ~a: ~a~%" + file (strerror errno))) + #t + (string-append out "/" dir))) + (rm-rf "mysql-test") + (rm-rf "sql-bench") + + ;; Compress the 14 MiB Info file. + (zero? + (system* "gzip" "--best" + (string-append out "/share/info/mysql.info"))))) + %standard-phases))) + (home-page "http://www.mysql.com/") + (synopsis "A fast, easy to use, and popular database") + (description + "MySQL is a fast, reliable, and easy to use relational database +management system that supports the standardized Structured Query +Language.") + (license gpl2))) + +(define-public postgresql + (package + (name "postgresql") + (version "9.3.5") + (source (origin + (method url-fetch) + (uri (string-append "http://ftp.postgresql.org/pub/source/v" + version "/postgresql-" version ".tar.gz")) + (sha256 + (base32 + "08kga00izykgvnx7hn995wc4zjqslspapaa8z63045p1ya14mr4g")))) + (build-system gnu-build-system) + (inputs + `(("readline" ,readline) + ("zlib" ,zlib))) + (home-page "http://www.postgresql.org/") + (synopsis "Powerful object-relational database system") + (description + "PostgreSQL is a powerful object-relational database system. It is fully +ACID compliant, has full support for foreign keys, joins, views, triggers, and +stored procedures (in multiple languages). It includes most SQL:2008 data +types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and +TIMESTAMP. It also supports storage of binary large objects, including +pictures, sounds, or video.") + (license (x11-style "file://COPYRIGHT")))) + +(define-public recutils + (package + (name "recutils") + (version "1.7") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/recutils/recutils-" + version ".tar.gz")) + (sha256 + (base32 + "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93")))) + (build-system gnu-build-system) + + ;; Running tests in parallel leads to test failures and crashes in + ;; torture/utils. + (arguments '(#:parallel-tests? #f)) + + (native-inputs `(("emacs" ,emacs) + ("bc" ,bc))) + + ;; TODO: Add more optional inputs. + ;; FIXME: Our Bash doesn't have development headers (need for the 'readrec' + ;; built-in command), but it's not clear how to get them installed. + ;; See . + (inputs `(("curl" ,curl) + ("libgcrypt" ,libgcrypt) + ("check" ,check))) + (synopsis "Manipulate plain text files as databases") + (description + "GNU Recutils is a set of tools and libraries for creating and +manipulating text-based, human-editable databases. Despite being text-based, +databases created with Recutils carry all of the expected features such as +unique fields, primary keys, time stamps and more. Many different field types +are supported, as is encryption.") + (license gpl3+) + (home-page "http://www.gnu.org/software/recutils/"))) + +(define-public sqlite + (package + (name "sqlite") + (version "3.8.4.3") + (source (origin + (method url-fetch) + ;; TODO: Download from sqlite.org once this bug : + ;; http://lists.gnu.org/archive/html/bug-guile/2013-01/msg00027.html + ;; has been fixed. + (uri (let ((numeric-version + (match (string-split version #\.) + ((first-digit other-digits ...) + (string-append first-digit + (string-pad-right + (string-concatenate + (map (cut string-pad <> 2 #\0) + other-digits)) + 6 #\0)))))) + (string-append + "mirror://sourceforge/sqlite.mirror/SQLite%20" version + "/sqlite-autoconf-" numeric-version ".tar.gz"))) + (sha256 + (base32 + "0rcdsk5sz34w8vy0g5yhfms4saiq81i872jxx5m5sjij7bi9bsg0")) + (patches + (list (search-patch "sqlite-large-page-size-fix.patch"))))) + (build-system gnu-build-system) + (home-page "http://www.sqlite.org/") + (synopsis "The SQLite database management system") + (description + "SQLite is a software library that implements a self-contained, serverless, +zero-configuration, transactional SQL database engine. SQLite is the most +widely deployed SQL database engine in the world. The source code for SQLite is +in the public domain.") + (license public-domain))) -- cgit v1.2.3