gnu: Add firebird.
* gnu/packages/databases.scm (firebird): New public variable.
This commit is contained in:
parent
501b325b7e
commit
3f8158d6f0
1 changed files with 180 additions and 0 deletions
|
@ -87,13 +87,16 @@
|
||||||
#:use-module (gnu packages guile)
|
#:use-module (gnu packages guile)
|
||||||
#:use-module (gnu packages time)
|
#:use-module (gnu packages time)
|
||||||
#:use-module (gnu packages golang)
|
#:use-module (gnu packages golang)
|
||||||
|
#:use-module (gnu packages icu4c)
|
||||||
#:use-module (gnu packages jemalloc)
|
#:use-module (gnu packages jemalloc)
|
||||||
#:use-module (gnu packages language)
|
#:use-module (gnu packages language)
|
||||||
|
#:use-module (gnu packages libedit)
|
||||||
#:use-module (gnu packages libevent)
|
#:use-module (gnu packages libevent)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages logging)
|
#:use-module (gnu packages logging)
|
||||||
#:use-module (gnu packages man)
|
#:use-module (gnu packages man)
|
||||||
#:use-module (gnu packages maths)
|
#:use-module (gnu packages maths)
|
||||||
|
#:use-module (gnu packages multiprecision)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages onc-rpc)
|
#:use-module (gnu packages onc-rpc)
|
||||||
#:use-module (gnu packages parallel)
|
#:use-module (gnu packages parallel)
|
||||||
|
@ -308,6 +311,183 @@ ElasticSearch server")
|
||||||
(home-page "https://github.com/patientslikeme/es_dump_restore")
|
(home-page "https://github.com/patientslikeme/es_dump_restore")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public firebird
|
||||||
|
(package
|
||||||
|
(name "firebird")
|
||||||
|
(version "3.0.7")
|
||||||
|
(source
|
||||||
|
(let ((revision "33374-0"))
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/FirebirdSQL/"
|
||||||
|
"firebird/releases/download/R"
|
||||||
|
(string-replace-substring version "." "_") "/"
|
||||||
|
"Firebird-" version "." revision ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32 "0xpy1bncz36c6n28y7kllm1dkrdkn4vb4gw2n43f2351mznmrf5c"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
`(begin
|
||||||
|
(for-each
|
||||||
|
delete-file-recursively
|
||||||
|
(list "extern/btyacc/test" ; TODO: package and remove entirely
|
||||||
|
"extern/editline"
|
||||||
|
"extern/icu"
|
||||||
|
"extern/libtommath"
|
||||||
|
"extern/zlib"
|
||||||
|
"src/include/firebird/impl/boost"
|
||||||
|
|
||||||
|
;; Missing licence.
|
||||||
|
"builds/install/arch-specific/solaris"
|
||||||
|
"extern/SfIO"
|
||||||
|
"src/msgs/templates.sql"
|
||||||
|
|
||||||
|
;; Generated files missing sources.
|
||||||
|
"doc/Firebird-3-QuickStart.pdf"
|
||||||
|
(string-append "doc/Firebird-" ,version
|
||||||
|
"-ReleaseNotes.pdf")
|
||||||
|
"doc/README.SecureRemotePassword.html"))
|
||||||
|
#t)))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(outputs (list "debug" "out"))
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags
|
||||||
|
(let ((out (assoc-ref %outputs "out")))
|
||||||
|
(list (string-append "--with-fbsbin=" out "/sbin")
|
||||||
|
(string-append "--with-fbdoc=" out "/share/doc/"
|
||||||
|
,name "-" ,version)
|
||||||
|
(string-append "--with-fbconf=" out "/lib/firebird")
|
||||||
|
(string-append "--with-fbintl=" out "/lib/firebird/intl")
|
||||||
|
(string-append "--with-fbmisc=" out "/lib/firebird/misc")
|
||||||
|
(string-append "--with-fbmsg=" out "/lib/firebird")
|
||||||
|
(string-append "--with-fbplugins=" out "/lib/firebird/plugins")
|
||||||
|
(string-append "--with-fbudf=" out "/lib/firebird/UDF")
|
||||||
|
"--with-fbglock=/run/firebird"
|
||||||
|
"--with-fblog=/var/log/firebird"
|
||||||
|
"--with-fbhelp=/var/lib/firebird/system"
|
||||||
|
"--with-fbsecure-db=/var/lib/firebird/secure"
|
||||||
|
"--without-fbsample"
|
||||||
|
"--without-fbsample-db"
|
||||||
|
"--with-system-editline"))
|
||||||
|
#:make-flags
|
||||||
|
(list (string-append "CC=" ,(cc-for-target))
|
||||||
|
;; The plugins/ can't find libfbclient otherwise.
|
||||||
|
(string-append "LDFLAGS=-Wl,-rpath="
|
||||||
|
(assoc-ref %outputs "out") "/lib"))
|
||||||
|
#:tests? #f ; no test suite
|
||||||
|
#:modules ((guix build gnu-build-system)
|
||||||
|
(guix build utils)
|
||||||
|
(srfi srfi-26))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'use-system-boost
|
||||||
|
(lambda _
|
||||||
|
(substitute* "src/include/firebird/Message.h"
|
||||||
|
(("\"\\./impl/boost/preprocessor/seq/for_each_i\\.hpp\"")
|
||||||
|
"<boost/preprocessor/seq/for_each_i.hpp>")
|
||||||
|
(("FB_BOOST_") "BOOST_"))
|
||||||
|
#t))
|
||||||
|
(add-after 'unpack 'patch-installation
|
||||||
|
(lambda _
|
||||||
|
(substitute*
|
||||||
|
"builds/install/arch-specific/linux/makeInstallImage.sh.in"
|
||||||
|
(("/bin/sh") (which "bash"))
|
||||||
|
;; Remove shell script helpers from $PATH.
|
||||||
|
(("(addLibs|cp) .*\\.sh .*@FB_SBINDIR@") ":")
|
||||||
|
;; Put files where Guix users expect them.
|
||||||
|
(("(License\\.txt.*)@FB_CONFDIR" match)
|
||||||
|
(string-append match "@FB_DOCDIR@"))
|
||||||
|
(("@FB_CONFDIR@(.*License\\.txt.*)" match)
|
||||||
|
(string-append "@FB_DOCDIR@" match))
|
||||||
|
(("(cp .*/doc/.*)@FB_CONFDIR@(.*)" _ head tail)
|
||||||
|
(string-append head "@FB_DOCDIR@" tail "\n")))
|
||||||
|
(substitute*
|
||||||
|
(list "builds/install/posix-common/changeServerMode.sh.in"
|
||||||
|
"builds/install/posix-common/install.sh.in")
|
||||||
|
;; Skip phases that (could) cause problems in Guix.
|
||||||
|
(("check(InstallUser|IfServerRunning|Libraries)|addFirebirdUser")
|
||||||
|
":")
|
||||||
|
;; Skip phases that are merely pointless on Guix.
|
||||||
|
(("buildUninstallFile|installInitdScript|startFirebird") ":")
|
||||||
|
;; Omit randomly generated password with bonus timestamp.
|
||||||
|
(("setDBAPassword") ":"))
|
||||||
|
|
||||||
|
;; These promote proprietary workflows not relevant on Guix.
|
||||||
|
(for-each delete-file-recursively
|
||||||
|
(find-files "doc" "README\\.(build\\.msvc|NT|Win)"))
|
||||||
|
#t))
|
||||||
|
(add-after 'configure 'delete-init-scripts
|
||||||
|
(lambda _
|
||||||
|
(delete-file-recursively "gen/install/misc")
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'set-build-environment-variables
|
||||||
|
(lambda _
|
||||||
|
;; ‘isql’ needs to run & find libfbclient.so during the build.
|
||||||
|
;; This doubles as a rudimentary test in lieu of a test suite.
|
||||||
|
(setenv "LD_LIBRARY_PATH"
|
||||||
|
(string-append (assoc-ref %build-inputs "icu4c") "/lib"))
|
||||||
|
#t))
|
||||||
|
(add-before 'install 'keep-embedded-debug-symbols
|
||||||
|
(lambda _
|
||||||
|
;; Let the gnu-build-system separate & deal with them later.
|
||||||
|
;; XXX Upstream would use ‘--strip-unneeded’, shaving a whole
|
||||||
|
;; megabyte off Guix's 7.7M libEngine12.so, for example.
|
||||||
|
(substitute* "gen/Makefile.install"
|
||||||
|
(("readelf") "false"))
|
||||||
|
#t))
|
||||||
|
(add-after 'install 'prune-undesirable-files
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(with-directory-excursion out
|
||||||
|
;; Remove example binaries.
|
||||||
|
(for-each delete-file-recursively
|
||||||
|
(find-files "." "example"))
|
||||||
|
;; Delete (now-)empty directories.
|
||||||
|
(for-each rmdir
|
||||||
|
(list "include/firebird/impl"
|
||||||
|
"lib/firebird/plugins/udr"))
|
||||||
|
#t)))))))
|
||||||
|
(inputs
|
||||||
|
`(("boost" ,boost)
|
||||||
|
("editline" ,editline)
|
||||||
|
("icu4c" ,icu4c-67)
|
||||||
|
("libtommath" ,libtommath)
|
||||||
|
("ncurses" ,ncurses)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(home-page "https://www.firebirdsql.org")
|
||||||
|
(synopsis "Relational database with many ANSI SQL standard features")
|
||||||
|
(description
|
||||||
|
"Firebird is an SQL @acronym{RDBMS, relational database management system}
|
||||||
|
with rich support for ANSI SQL (e.g., @code{INSERT...RETURNING}), PSQL stored
|
||||||
|
procedures, cursors, and triggers, @acronym{UDFs, user-defined functions}, and
|
||||||
|
more. Transactions provide full ACID-compliant referential integrity.
|
||||||
|
|
||||||
|
The database requires very little manual maintenance once set up, making it
|
||||||
|
ideal for small business or embedded use.
|
||||||
|
|
||||||
|
When installed as a traditional local or remote (network) database server,
|
||||||
|
Firebird can grow to terabyte scale with proper tuning---although PostgreSQL
|
||||||
|
may be a better choice for such very large environments.
|
||||||
|
|
||||||
|
Firebird can also be embedded into stand-alone applications that don't want or
|
||||||
|
need a full client & server. Used in this manner, it offers richer SQL support
|
||||||
|
than SQLite as well as the option to seamlessly migrate to a client/server
|
||||||
|
database later.")
|
||||||
|
(properties
|
||||||
|
`((lint-hidden-cve . ("CVE-2017-6369"))))
|
||||||
|
(license
|
||||||
|
;; See doc/license/README.license.usage.txt for rationale & details.
|
||||||
|
(list license:bsd-3 ; src/common/sha2/
|
||||||
|
license:bsd-4 ; src/common/enc.cpp
|
||||||
|
license:gpl2+ ; builds/posix/make.defaults
|
||||||
|
(license:non-copyleft "file:///builds/install/misc/IPLicense.txt"
|
||||||
|
"InterBase Public License v1.0")
|
||||||
|
(license:non-copyleft "file:///builds/install/misc/IDPLicense.txt"
|
||||||
|
"Initial Developer's Public License v1.0")
|
||||||
|
license:lgpl2.1 ; exception for OSI-compatible licences
|
||||||
|
license:mpl1.1 ; examples/interfaces/0{6,8}*.cpp
|
||||||
|
license:public-domain)))) ; including files without explicit licence
|
||||||
|
|
||||||
(define-public leveldb
|
(define-public leveldb
|
||||||
(package
|
(package
|
||||||
(name "leveldb")
|
(name "leveldb")
|
||||||
|
|
Reference in a new issue