From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id eVN5GayVpl8ELwAA0tVLHw (envelope-from ) for ; Sat, 07 Nov 2020 12:40:12 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id AG7DFKyVpl9JfwAAB5/wlQ (envelope-from ) for ; Sat, 07 Nov 2020 12:40:12 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id BC089940415 for ; Sat, 7 Nov 2020 12:40:11 +0000 (UTC) Received: from localhost ([::1]:40520 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kbNVq-0003Js-5d for larch@yhetil.org; Sat, 07 Nov 2020 07:40:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:51458) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kbNVi-0003JY-6Y for guix-patches@gnu.org; Sat, 07 Nov 2020 07:40:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:46518) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kbNVh-0008EU-Sg for guix-patches@gnu.org; Sat, 07 Nov 2020 07:40:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kbNVh-0004cv-PX for guix-patches@gnu.org; Sat, 07 Nov 2020 07:40:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#44389] [PATCH] gnu: Add firebird. Resent-From: Christopher Baines Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 07 Nov 2020 12:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44389 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Tobias Geerinckx-Rice Cc: 44389@debbugs.gnu.org Received: via spool by 44389-submit@debbugs.gnu.org id=B44389.160475279817772 (code B ref 44389); Sat, 07 Nov 2020 12:40:01 +0000 Received: (at 44389) by debbugs.gnu.org; 7 Nov 2020 12:39:58 +0000 Received: from localhost ([127.0.0.1]:58064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kbNVZ-0004cW-Vf for submit@debbugs.gnu.org; Sat, 07 Nov 2020 07:39:58 -0500 Received: from mira.cbaines.net ([212.71.252.8]:40612) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kbNVX-0004cM-6x for 44389@debbugs.gnu.org; Sat, 07 Nov 2020 07:39:52 -0500 Received: from localhost (188.28.119.85.threembb.co.uk [188.28.119.85]) by mira.cbaines.net (Postfix) with ESMTPSA id 1EAC327BC16; Sat, 7 Nov 2020 12:39:50 +0000 (GMT) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id f425d443; Sat, 7 Nov 2020 12:39:47 +0000 (UTC) References: <20201102114852.7394-1-me@tobias.gr> User-agent: mu4e 1.4.13; emacs 27.1 From: Christopher Baines In-reply-to: <20201102114852.7394-1-me@tobias.gr> Date: Sat, 07 Nov 2020 12:39:44 +0000 Message-ID: <87r1p5pchb.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -1.0 (-) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: -3.11 X-TUID: d/VvmKCxJsXq --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Tobias Geerinckx-Rice via Guix-patches via writes: > * gnu/packages/databases.scm (firebird): New public variable. > --- > > Guix, > > This adds Firebird to enable LibreOffice Base. > > Kind regards, > > T G-R > > gnu/packages/databases.scm | 174 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 174 insertions(+) > > diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm > index 0d8342b04a..c1a9482b5d 100644 > --- a/gnu/packages/databases.scm > +++ b/gnu/packages/databases.scm > @@ -87,13 +87,16 @@ > #:use-module (gnu packages guile) > #:use-module (gnu packages time) > #:use-module (gnu packages golang) > + #:use-module (gnu packages icu4c) > #:use-module (gnu packages jemalloc) > #:use-module (gnu packages language) > + #:use-module (gnu packages libedit) > #:use-module (gnu packages libevent) > #:use-module (gnu packages linux) > #:use-module (gnu packages logging) > #:use-module (gnu packages man) > #:use-module (gnu packages maths) > + #:use-module (gnu packages multiprecision) > #:use-module (gnu packages ncurses) > #:use-module (gnu packages onc-rpc) > #:use-module (gnu packages parallel) > @@ -308,6 +311,177 @@ ElasticSearch server") > (home-page "https://github.com/patientslikeme/es_dump_restore") > (license license:expat))) >=20=20 > +(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 enti= rely > + "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) > + (arguments > + `(#:configure-flags > + (let ((out (assoc-ref %outputs "out"))) > + (list (string-append "--with-fbsbin=3D" out "/sbin") > + (string-append "--with-fbdoc=3D" out "/share/doc/" > + ,name "-" ,version) > + (string-append "--with-fbconf=3D" out "/lib/firebird") > + (string-append "--with-fbintl=3D" out "/lib/firebird/intl= ") > + (string-append "--with-fbmisc=3D" out "/lib/firebird/misc= ") > + (string-append "--with-fbmsg=3D" out "/lib/firebird") > + (string-append "--with-fbplugins=3D" out "/lib/firebird/p= lugins") > + (string-append "--with-fbudf=3D" out "/lib/firebird/UDF") > + "--with-fbglock=3D/run/firebird" > + "--with-fblog=3D/var/log/firebird" > + "--with-fbhelp=3D/var/lib/firebird/system" > + "--with-fbsecure-db=3D/var/lib/firebird/secure" > + "--without-fbsample" > + "--without-fbsample-db" > + "--with-system-editline")) > + #:make-flags > + (list (string-append "CC=3D" ,(cc-for-target)) > + ;; The plugins/ can't find libfbclient otherwise. > + (string-append "LDFLAGS=3D-Wl,-rpath=3D" > + (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\"") > + "") > + (("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)|addFirebi= rdUser") > + ":") > + ;; Skip phases that are merely pointless on Guix. > + (("buildUninstallFile|installInitdScript|startFirebird") = ":") > + ;; Omit randomly generated password with bonus timestamp. > + (("setDBAPassword") ":")) > + > + ;; These files are not relevant on Guix nor missed by insta= ll.sh. > + (for-each delete-file-recursively > + (find-files "doc" "README\\.(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 _ > + ;; =E2=80=98isql=E2=80=99 needs to run & find libfbclient.s= o during the build. > + ;; This doubles as a rudimentary test in lieu of a test sui= te. > + (setenv "LD_LIBRARY_PATH" > + (string-append (assoc-ref %build-inputs "icu4c") "/= lib")) > + #t)) > + (add-after 'install 'remove-examples > + (lambda* (#:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + (for-each delete-file-recursively > + (find-files out "example")) > + #t))) > + (add-after 'install 'remove-debug-symbols > + (lambda* (#:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + (for-each delete-file-recursively > + (find-files out "^\\.debug$")) > + ;; The ordering of lines in this file is not deterministi= c. > + (delete-file > + (string-append out "/lib/firebird/misc/manifest_debug.tx= t")) > + #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 s= tored > +procedures, cursors, and triggers, @acronym{UDFs, user-defined functions= }, and > +more. Transactions provide full ACID-compliant referential integrity. I'm all for listing features in descriptions, but I generally remove "and more" in favour of something like "... rich suppport for ANSI SQL including PSQL stored procedures, cursors and triggers". The "and more" just sounds to promotional. Anyway, the description as is is also fine. > +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 serve= r, > +Firebird can grow to terabyte scale with proper tuning---although Postgr= eSQL > +may be a better choice for such very large environments. > + > +Firebird can also be embedded into stand-alone applications that don't w= ant 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/serv= er > +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 lice= nces > + license:mpl1.1 ; examples/interfaces/0{6,8}*.cpp > + license:public-domain)))) ; including files without explicit = licence > + > (define-public leveldb > (package > (name "leveldb") All looks good to me :) --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl+mlZBfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9XcEUw/+N1gfN6vHc3/FCZBE2pQw/1PlMQpg8IKm rzZ00zT7CZq/r0CmT6a8NgYbaoU4PrEZym4IhvEoj1x4fWrAaq4YXa3e9fYoCaLz TcJw/eSajZi2x2LQcKz039iFnVu18mr1Ylns3v1Q3Cw9SiZv5HZCA/CKMjiObNw7 04QqxX7k1PEhfb8KS0q95TCI7OwQi8vbmJhfMAOMHBQz6/8gUm6UZYL9UhDQwaWo uCtyciEUi80zsHzD90tdwIHeAdDovyMVSr4LSEr1eMsh55nt6A2tPQvOw6fPfZxb DhAaiiKncMU8wlwo0hhdCb/Nc0fmHBx6D+yU4ZVKEikx5/dAa6YnPQrgwCrlgZJb /YZWBIA+4MdkM9oYllb7vQ0+4BnQ4d2J9I5ZZTALGoRXGultaVlIUHrEJEMRcGDm gne9zfcMsvwyc60mrvd6xVNuaXbbYoga8Itp/UoPB+Oi1+TDBl4/XdkY9PjbOSyV lAkFGd0Fve0msP0niYrz7McTHWvLO7F1MCVzXi7IY1dMc4zb0/C7lyXg/L5Uv26s VAmka5xjixf4nKaHvzqYT8FhnuMxsDSCJ97OlJpQGaOGLzjuZ53QIZsKM2m+Q9sQ SPUaChC+V6g5c52JboXaNWuD2+ibNFLYKvL7J/HGH2oQuzt7VcHeBsrVgTwdYGT5 ndLn7dnqV/I= =cCi1 -----END PGP SIGNATURE----- --=-=-=--