summaryrefslogtreecommitdiff
path: root/pkgs/servers/firebird/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/firebird/default.nix')
-rw-r--r--pkgs/servers/firebird/default.nix137
1 files changed, 65 insertions, 72 deletions
diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix
index 2d4e22ba2443..fa3a8d022983 100644
--- a/pkgs/servers/firebird/default.nix
+++ b/pkgs/servers/firebird/default.nix
@@ -1,91 +1,84 @@
-{lib, stdenv, fetchurl, libedit, automake, autoconf, libtool
-,
- # icu = null: use icu which comes with firebird
+{ lib, stdenv, fetchFromGitHub, libedit, autoreconfHook, zlib, unzip, libtommath, libtomcrypt, icu, superServer ? false }:
- # 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
+let base = {
+ pname = "firebird";
- # icu version missmatch may cause such error when selecting from a table:
- # "Collation unicode for character set utf8 is not installed"
+ meta = with lib; {
+ description = "SQL relational database management system";
+ homepage = "https://firebirdsql.org/";
+ changelog = "https://github.com/FirebirdSQL/firebird/blob/master/CHANGELOG.md";
+ license = [ "IDPL" "Interbase-1.0" ];
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ marcweber ];
+ };
- # icu 3.0 can still be built easily by nix (by dropping the #elif case and
- # make | make)
- icu ? null
+ nativeBuildInputs = [ autoreconfHook ];
-, superServer ? false
-, port ? 3050
-, serviceName ? "gds_db"
-}:
+ buildInputs = [ libedit icu ];
-/*
- there are 3 ways to use firebird:
- a) superserver
- - one process, one thread for each connection
- b) classic
- - is built by default
- - one process for each connection
- - on linux direct io operations (?)
- c) embedded.
+ LD_LIBRARY_PATH = lib.makeLibraryPath [ icu ];
- manual says that you usually don't notice the difference between a and b.
+ configureFlags = [
+ "--with-system-editline"
+ ] ++ (lib.optional superServer "--enable-superserver");
- I'm only interested in the embedder shared libary for now.
- So everything isn't tested yet
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out
+ cp -r gen/Release/firebird/* $out
+ runHook postInstall
+ '';
-*/
+}; in {
-stdenv.mkDerivation rec {
- version = "2.5.7.27050-0";
- pname = "firebird";
+ firebird_2_5 = stdenv.mkDerivation (base // rec {
+ version = "2.5.9";
- # enableParallelBuilding = false; build fails
+ src = fetchFromGitHub {
+ owner = "FirebirdSQL";
+ repo = "firebird";
+ rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}";
+ sha256 = "sha256-YyvlMeBux80OpVhsCv+6IVxKXFRsgdr+1siupMR13JM=";
+ };
- # http://tracker.firebirdsql.org/browse/CORE-3246
- preConfigure = ''
- makeFlags="$makeFlags CPU=$NIX_BUILD_CORES"
- '';
+ configureFlags = base.configureFlags ++ [ "--with-system-icu" ];
- configureFlags =
- [ "--with-serivec-port=${builtins.toString port}"
- "--with-service-name=${serviceName}"
- "--with-system-editline"
- "--with-fblog=/var/log/firebird"
- "--with-fbconf=/etc/firebird"
- "--with-fbsecure-db=/var/db/firebird/system"
- ]
- ++ (lib.optional (icu != null) "--with-system-icu")
- ++ (lib.optional superServer "--enable-superserver");
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out
+ cp -r gen/firebird/* $out
+ runHook postInstall
+ '';
- src = fetchurl {
- url = "mirror://sourceforge/firebird/Firebird-${version}.tar.bz2";
- sha256 = "06hp6bq5irqvm3h03s79qjgcc3jsjpq150y9aq7anklx9v4nhfqa";
- };
+ meta = base.meta // { platforms = [ "x86_64-linux" ]; };
+ });
- hardeningDisable = [ "format" ];
+ firebird_3 = stdenv.mkDerivation (base // rec {
+ version = "3.0.7";
- # configurePhase = ''
- # sed -i 's@cp /usr/share/automake-.*@@' autogen.sh
- # sh autogen.sh $configureFlags --prefix=$out
- # '';
- buildInputs = [libedit icu automake autoconf libtool];
+ src = fetchFromGitHub {
+ owner = "FirebirdSQL";
+ repo = "firebird";
+ rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}";
+ sha256 = "sha256-8nGan10qjW8dFF89BL/tUWtwMGhahBiODbOqRrHSrbs=";
+ };
- # TODO: Probably this hase to be tidied up..
- # make install requires beeing. disabling the root checks
- # dosen't work. Copying the files manually which can be found
- # in ubuntu -dev -classic, -example packages:
- # maybe some of those files can be removed again
- installPhase = "cp -r gen/firebird $out";
+ buildInputs = base.buildInputs ++ [ zlib libtommath ];
- meta = {
- description = "SQL relational database management system";
- homepage = "https://www.firebirdnews.org";
- license = ["IDPL" "Interbase-1.0"];
- maintainers = [lib.maintainers.marcweber];
- platforms = lib.platforms.linux;
- broken = true;
- };
+ meta = base.meta // { platforms = [ "x86_64-linux" ]; };
+ });
+
+ firebird_4 = stdenv.mkDerivation (base // rec {
+ version = "4.0.0-rc1";
+
+ src = fetchFromGitHub {
+ owner = "FirebirdSQL";
+ repo = "firebird";
+ rev = "T4_0_0_RC1";
+ sha256 = "sha256-FLaRePosF5dtJ+fmrfvzkE6wawC9Z9YLhT/ZWkwWXb4=";
+ };
+
+ buildInputs = base.buildInputs ++ [ zlib unzip libtommath libtomcrypt ];
+ });
}