From cf762c8f58529849d373b5007d9b5ff73ae16172 Mon Sep 17 00:00:00 2001 From: Marc Weber Date: Tue, 30 Jul 2013 16:33:46 +0200 Subject: [PATCH] firebirdSuper settings document why its better to not use --with-system-icu See patch for nixos adding firebird service Signed-off-by: Marc Weber --- pkgs/development/libraries/icu/default.nix | 1 + pkgs/servers/firebird/default.nix | 49 ++++++++++++++++++---- pkgs/top-level/all-packages.nix | 3 +- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix index 3d37db20edcd..838d6f7b75fd 100644 --- a/pkgs/development/libraries/icu/default.nix +++ b/pkgs/development/libraries/icu/default.nix @@ -1,6 +1,7 @@ {stdenv, fetchurl}: let + pname = "icu4c"; version = "51.1"; in diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix index 8ad16a3df2e9..365af29595c1 100644 --- a/pkgs/servers/firebird/default.nix +++ b/pkgs/servers/firebird/default.nix @@ -1,4 +1,20 @@ -{stdenv, fetchurl, libedit, icu +{stdenv, fetchurl, libedit, ncurses, automake, autoconf, libtool +, + # icu = null: use icu which comes with firebird + + # icu = pkgs.icu => you may have trouble sharing database files with windows + # users if "Collation unicode" columns are being used + # windows icu version is *30.dll, however neither the icu 3.0 nor the 3.6 + # sources look close to what ships with this package. + # Thus I think its best to trust firebird devs and use their version + + # icu version missmatch may cause such error when selecting from a table: + # "Collation unicode for character set utf8 is not installed" + + # icu 3.0 can still be build easily by nix (by dropping the #elif case and + # make | make) + icu ? null + , superServer ? false , port ? 3050 , serviceName ? "gds_db" @@ -6,9 +22,9 @@ /* there are 3 ways to use firebird: - a) superserver + a) superserver - one process, one thread for each connection - b) classic + b) classic - is built by default - one process for each connection - on linux direct io operations (?) @@ -22,23 +38,38 @@ */ stdenv.mkDerivation rec { - version = "2.5.2.26539-0"; + version = "2.5.2.26540-0"; name = "firebird-${version}"; + # enableParallelBuilding = false; build fails + + # http://tracker.firebirdsql.org/browse/CORE-3246 + preConfigure = '' + makeFlags="$makeFlags CPU=$NIX_BUILD_CORES" + ''; + configureFlags = [ "--with-serivec-port=${builtins.toString port}" "--with-service-name=${serviceName}" - # "--with-system-icu" - # "--with-system-editline" + # "--disable-static" + "--with-system-editline" + "--with-fblog=/var/log/firebird" + "--with-fbconf=/etc/firebird" + "--with-fbsecure-db=/var/db/firebird/system" ] - ++ (stdenv.lib.optional superServer "--enable-superserver=true"); + ++ (stdenv.lib.optional (icu != null) "--with-system-icu") + ++ (stdenv.lib.optional superServer "--enable-superserver"); src = fetchurl { url = "mirror://sourceforge/firebird/Firebird-${version}.tar.bz2"; - sha256 = "1j5bcfl35hr6i4lcd08zls19bal2js3ar16gnwkzbhwxkxbyb43b"; + sha256 = "0887a813wffp44hnc2gmwbc4ylpqw3fh3hz3bf6q3648344a9fdv"; }; - buildInputs = [libedit icu]; + # configurePhase = '' + # sed -i 's@cp /usr/share/automake-.*@@' autogen.sh + # sh autogen.sh $configureFlags --prefix=$out + # ''; + buildInputs = [libedit icu automake autoconf libtool]; # TODO: Probably this hase to be tidied up.. # make install requires beeing. disabling the root checks diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 256a2b5cb4d7..0f1dc340c08e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5970,7 +5970,8 @@ let fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { }; - firebird = callPackage ../servers/firebird { }; + firebird = callPackage ../servers/firebird { icu = null; }; + firebirdSuper = callPackage ../servers/firebird { superServer = true; }; freepops = callPackage ../servers/mail/freepops { };