1{ lib, buildPecl, fetchFromGitHub, writeText, libcouchbase, zlib, php, substituteAll }:
2let
3 pname = "couchbase";
4 version = "3.2.0";
5in
6buildPecl {
7 inherit pname version;
8
9 src = fetchFromGitHub {
10 owner = "couchbase";
11 repo = "php-couchbase";
12 rev = "v${version}";
13 sha256 = "sha256-rvlyH28xWLIVwK3yqqdhkoD1h6kl8FDq3Byo7mhV3jM=";
14 };
15
16 configureFlags = [ "--with-couchbase" ];
17
18 buildInputs = [ libcouchbase zlib ];
19 internalDeps = lib.optionals (lib.versionOlder php.version "8.0") [ php.extensions.json ];
20
21 patches = [
22 (substituteAll {
23 src = ./libcouchbase.patch;
24 inherit libcouchbase;
25 })
26 ];
27
28 meta = with lib; {
29 description = "Couchbase Server PHP extension";
30 license = licenses.asl20;
31 homepage = "https://docs.couchbase.com/php-sdk/current/project-docs/sdk-release-notes.html";
32 maintainers = teams.php.members;
33 };
34}