Merge pull request #121546 from superherointj/package-firebird
firebird: 2.5.7 -> 2.5.9, init 3.0.7, init 4.0.0-rc1
This commit is contained in:
commit
a088175a26
3 changed files with 78 additions and 83 deletions
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch, libtool }:
|
||||
{ lib, stdenv, fetchurl, fetchpatch, libtool, libtommath }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libtomcrypt";
|
||||
|
@ -17,14 +17,16 @@ stdenv.mkDerivation rec {
|
|||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ libtool ];
|
||||
nativeBuildInputs = [ libtool libtommath ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace makefile.shared --replace "LT:=glibtool" "LT:=libtool"
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
makeFlagsArray=(PREFIX=$out \
|
||||
makeFlagsArray+=(PREFIX=$out \
|
||||
CFLAGS="-DUSE_LTM -DLTM_DESC -DLTC_PTHREAD" \
|
||||
EXTRALIBS=\"-ltommath\" \
|
||||
INSTALL_GROUP=$(id -g) \
|
||||
INSTALL_USER=$(id -u))
|
||||
'';
|
||||
|
|
|
@ -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
|
||||
|
||||
# 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 built easily by nix (by dropping the #elif case and
|
||||
# make | make)
|
||||
icu ? null
|
||||
|
||||
, superServer ? false
|
||||
, port ? 3050
|
||||
, serviceName ? "gds_db"
|
||||
}:
|
||||
|
||||
/*
|
||||
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.
|
||||
|
||||
manual says that you usually don't notice the difference between a and b.
|
||||
|
||||
I'm only interested in the embedder shared libary for now.
|
||||
So everything isn't tested yet
|
||||
|
||||
*/
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.5.7.27050-0";
|
||||
let base = {
|
||||
pname = "firebird";
|
||||
|
||||
# enableParallelBuilding = false; build fails
|
||||
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 ];
|
||||
};
|
||||
|
||||
# http://tracker.firebirdsql.org/browse/CORE-3246
|
||||
preConfigure = ''
|
||||
makeFlags="$makeFlags CPU=$NIX_BUILD_CORES"
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
buildInputs = [ libedit icu ];
|
||||
|
||||
LD_LIBRARY_PATH = lib.makeLibraryPath [ icu ];
|
||||
|
||||
configureFlags = [
|
||||
"--with-system-editline"
|
||||
] ++ (lib.optional superServer "--enable-superserver");
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -r gen/Release/firebird/* $out
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
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");
|
||||
}; in {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/firebird/Firebird-${version}.tar.bz2";
|
||||
sha256 = "06hp6bq5irqvm3h03s79qjgcc3jsjpq150y9aq7anklx9v4nhfqa";
|
||||
};
|
||||
firebird_2_5 = stdenv.mkDerivation (base // rec {
|
||||
version = "2.5.9";
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
src = fetchFromGitHub {
|
||||
owner = "FirebirdSQL";
|
||||
repo = "firebird";
|
||||
rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}";
|
||||
sha256 = "sha256-YyvlMeBux80OpVhsCv+6IVxKXFRsgdr+1siupMR13JM=";
|
||||
};
|
||||
|
||||
# configurePhase = ''
|
||||
# sed -i 's@cp /usr/share/automake-.*@@' autogen.sh
|
||||
# sh autogen.sh $configureFlags --prefix=$out
|
||||
# '';
|
||||
buildInputs = [libedit icu automake autoconf libtool];
|
||||
configureFlags = base.configureFlags ++ [ "--with-system-icu" ];
|
||||
|
||||
# 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";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -r gen/firebird/* $out
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
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_3 = stdenv.mkDerivation (base // rec {
|
||||
version = "3.0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FirebirdSQL";
|
||||
repo = "firebird";
|
||||
rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}";
|
||||
sha256 = "sha256-8nGan10qjW8dFF89BL/tUWtwMGhahBiODbOqRrHSrbs=";
|
||||
};
|
||||
|
||||
buildInputs = base.buildInputs ++ [ zlib libtommath ];
|
||||
|
||||
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 ];
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
@ -18839,8 +18839,8 @@ in
|
|||
|
||||
fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
|
||||
|
||||
firebird = callPackage ../servers/firebird { icu = null; /*stdenv = gcc5Stdenv;*/ };
|
||||
firebirdSuper = firebird.override { icu = icu58; superServer = true; /*stdenv = gcc5Stdenv;*/ };
|
||||
inherit (callPackages ../servers/firebird { }) firebird_4 firebird_3 firebird_2_5;
|
||||
firebird = firebird_3;
|
||||
|
||||
freeradius = callPackage ../servers/freeradius { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue