postgresqlPackages.omnigres: init at 0-unstable-2025-05-16 (#404027)

authored by Wolfgang Walther and committed by GitHub dcb6e63f 561ec8b5

+86
+86
pkgs/servers/sql/postgresql/ext/omnigres.nix
···
··· 1 + { 2 + brotli, 3 + clang_18, 4 + cmake, 5 + fetchFromGitHub, 6 + flex, 7 + lib, 8 + netcat, 9 + perl, 10 + pkg-config, 11 + postgresql, 12 + postgresqlBuildExtension, 13 + postgresqlTestExtension, 14 + python3, 15 + }: 16 + 17 + let 18 + pgWithExtensions = postgresql.withPackages (ps: [ ps.plpython3 ]); 19 + in 20 + postgresqlBuildExtension (finalAttrs: { 21 + pname = "omnigres"; 22 + version = "0-unstable-2025-05-16"; 23 + 24 + src = fetchFromGitHub { 25 + owner = "omnigres"; 26 + repo = "omnigres"; 27 + rev = "84f14792d80fb6fd60b680b7825245a8e7c5583e"; 28 + hash = "sha256-jOlHXl7ANhMwOPizd5KH+wYZmBNNkkIa9jbXZR8Xu28="; 29 + }; 30 + 31 + strictDeps = true; 32 + 33 + nativeBuildInputs = [ 34 + clang_18 35 + cmake 36 + flex 37 + netcat 38 + pkg-config 39 + perl 40 + python3 41 + ]; 42 + 43 + buildInputs = postgresql.buildInputs ++ [ 44 + brotli 45 + ]; 46 + 47 + cmakeFlags = [ 48 + "-DOPENSSL_CONFIGURED=1" 49 + "-DPG_CONFIG=${pgWithExtensions.pg_config}/bin/pg_config" 50 + "-DPostgreSQL_EXTENSION_DIR=${pgWithExtensions}/share/postgresql/extension/" 51 + "-DPostgreSQL_PACKAGE_LIBRARY_DIR=${pgWithExtensions}/lib/" 52 + "-DPostgreSQL_TARGET_EXTENSION_DIR=${builtins.placeholder "out"}/share/postgresql/extension/" 53 + "-DPostgreSQL_TARGET_PACKAGE_LIBRARY_DIR=${builtins.placeholder "out"}/lib/" 54 + ]; 55 + 56 + enableParallelBuilding = true; 57 + doCheck = false; 58 + 59 + preInstall = '' 60 + patchShebangs script_omni* 61 + mkdir -p $out/lib/ 62 + mkdir -p $out/share/postgresql/extension/ 63 + ''; 64 + 65 + # https://github.com/omnigres/omnigres?tab=readme-ov-file#building--using-extensions 66 + installTargets = [ "install_extensions" ]; 67 + 68 + passthru.tests.extension = postgresqlTestExtension { 69 + inherit (finalAttrs) finalPackage; 70 + sql = '' 71 + -- https://docs.omnigres.org/omni_id/identity_type/#usage 72 + CREATE EXTENSION omni_id; 73 + 74 + SELECT identity_type('user_id'); 75 + ''; 76 + }; 77 + 78 + meta = { 79 + description = "Postgres as a Business Operating System"; 80 + homepage = "https://docs.omnigres.org"; 81 + maintainers = with lib.maintainers; [ mtrsk ]; 82 + platforms = postgresql.meta.platforms; 83 + license = lib.licenses.asl20; 84 + broken = lib.versionOlder postgresql.version "14"; 85 + }; 86 + })