blob: 4cb028c6e584f63e0309a2ad5b69cae2f2498d66 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
{
lib,
clangStdenv,
fetchFromGitHub,
openssl,
pkg-config,
rustPlatform,
useMoldLinker,
versionCheckHook,
withMold ? with clangStdenv.hostPlatform; isLinux,
}:
let
stdenv = if withMold then useMoldLinker clangStdenv else clangStdenv;
in
rustPlatform.buildRustPackage.override { inherit stdenv; } (finalAttrs: {
pname = "pgdog";
version = "0.1.58";
src = fetchFromGitHub {
owner = "pgdogdev";
repo = "pgdog";
tag = "v${finalAttrs.version}";
hash = "sha256-Hw9U2WHMJEiC0gQGJmUr8/xehsYe9jr8cxFnbdgTWKw=";
};
cargoHash = "sha256-znrpe09PhC3Vn5iUP39/TBwCeYseBE5cLTxhrb02qps=";
# Hardcoded paths for C compiler and linker
postPatch = ''
rm .cargo/config.toml
'';
env.RUSTFLAGS = "--cfg tokio_unstable";
cargoBuildFlags = [
"--package"
"pgdog"
];
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
];
buildInputs = [
openssl
];
strictDeps = true;
# Several tests rely on networking
doCheck = false;
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
meta = {
description = "PostgreSQL connection pooler, load balancer, and database sharder";
homepage = "https://pgdog.dev/";
changelog = "https://github.com/pgdogdev/pgdog/releases/tag/v${finalAttrs.version}";
license = lib.licenses.agpl3Only;
mainProgram = "pgdog";
maintainers = with lib.maintainers; [ EpicEric ];
platforms = lib.platforms.all;
};
})
|