
By replacing upstream's pg_config binary with a shell script, we: - gain the ability to run pg_config easily when cross-compiling, - can remove the fake pg_config in the default output, - can remove the pg_config wrapper script dealing with special cases. Some 20 years ago, pg_config *was* a shell script upstream, too. It was changed to a binary, when it was made "relocatable", so it would return paths depending on the location of the "postgres" binary. However, this is exactly the thing that just hurts us in nixpkgs - we don't want those paths to change, we want them to always point at the right outputs. By writing the script ourselves, this becomes a lot less painful. This approach means more lines of codes, but all of them are dead simple and we have a lot less complexity overall. Additionally, pg_config is now made a separate derivation, only exposed as "postgresql.pg_config". This has the nice side-effect, that all users of postgresql and libpq in nixpkgs must be very *explicit* about their dependency on pg_config. This gives a lot more visibility into the state of affairs regarding pkg-config support for libpq, which ultimately is the much better solution.
49 lines
837 B
Nix
49 lines
837 B
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
autoreconfHook,
|
|
cxxtools,
|
|
libpq,
|
|
libmysqlclient,
|
|
sqlite,
|
|
zlib,
|
|
openssl,
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "tntdb";
|
|
version = "1.4";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "maekitalo";
|
|
repo = "tntdb";
|
|
rev = "V${version}";
|
|
hash = "sha256-ciqHv077sXnvCx+TJjdY1uPrlCP7/s972koXjGLgWhU=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
autoreconfHook
|
|
libpq.pg_config
|
|
];
|
|
|
|
buildInputs = [
|
|
cxxtools
|
|
libpq
|
|
libmysqlclient
|
|
sqlite
|
|
zlib
|
|
openssl
|
|
];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
meta = with lib; {
|
|
homepage = "http://www.tntnet.org/tntdb.html";
|
|
description = "C++ library which makes accessing SQL databases easy and robust";
|
|
platforms = platforms.linux;
|
|
license = licenses.lgpl21;
|
|
maintainers = [ maintainers.juliendehos ];
|
|
};
|
|
}
|