Merge pull request #296336 from marsam/refactor-cargo-pgrx
cargo-pgrx: refactor
This commit is contained in:
commit
86de7cd867
@ -1,39 +1,74 @@
|
||||
{ lib, stdenv, fetchCrate, rustPlatform, pkg-config, openssl, Security }:
|
||||
{ lib
|
||||
, darwin
|
||||
, fetchCrate
|
||||
, openssl
|
||||
, pkg-config
|
||||
, rustPlatform
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "cargo-pgrx";
|
||||
version = "0.11.2";
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
inherit version pname;
|
||||
generic =
|
||||
{ version
|
||||
, hash
|
||||
, cargoHash
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-pgrx";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit version pname;
|
||||
hash = "sha256-8NlpMDFaltTIA8G4JioYm8LaPJ2RGKH5o6sd6lBHmmM=";
|
||||
inherit version;
|
||||
|
||||
src = fetchCrate {
|
||||
inherit version pname hash;
|
||||
};
|
||||
|
||||
inherit cargoHash;
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.isLinux [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [
|
||||
openssl
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.Security
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export PGRX_HOME=$(mktemp -d)
|
||||
'';
|
||||
|
||||
checkFlags = [
|
||||
# requires pgrx to be properly initialized with cargo pgrx init
|
||||
"--skip=command::schema::tests::test_parse_managed_postmasters"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Build Postgres Extensions with Rust";
|
||||
homepage = "https://github.com/pgcentralfoundation/pgrx";
|
||||
changelog = "https://github.com/pgcentralfoundation/pgrx/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ happysalada ];
|
||||
mainProgram = "cargo-pgrx";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
cargo-pgrx_0_10_2 = generic {
|
||||
version = "0.10.2";
|
||||
hash = "sha256-FqjfbJmSy5UCpPPPk4bkEyvQCnaH9zYtkI7txgIn+ls=";
|
||||
cargoHash = "sha256-syZ3cQq8qDHBLvqmNDGoxeK6zXHJ47Jwkw3uhaXNCzI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI=";
|
||||
cargo-pgrx_0_11_2 = generic {
|
||||
version = "0.11.2";
|
||||
hash = "sha256-8NlpMDFaltTIA8G4JioYm8LaPJ2RGKH5o6sd6lBHmmM=";
|
||||
cargoHash = "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals stdenv.isDarwin [ Security ];
|
||||
|
||||
preCheck = ''
|
||||
export PGRX_HOME=$(mktemp -d)
|
||||
'';
|
||||
|
||||
checkFlags = [
|
||||
# requires pgrx to be properly initialized with cargo pgrx init
|
||||
"--skip=command::schema::tests::test_parse_managed_postmasters"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Build Postgres Extensions with Rust!";
|
||||
mainProgram = "cargo-pgrx";
|
||||
homepage = "https://github.com/tcdi/pgrx";
|
||||
changelog = "https://github.com/tcdi/pgrx/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ happysalada ];
|
||||
cargo-pgrx_0_11_3 = generic {
|
||||
version = "0.11.3";
|
||||
hash = "sha256-UHIfwOdXoJvR4Svha6ud0FxahP1wPwUtviUwUnTmLXU=";
|
||||
cargoHash = "sha256-j4HnD8Zt9uhlV5N7ldIy9564o9qFEqs5KfXHmnQ1WEw=";
|
||||
};
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib
|
||||
, buildPgrxExtension
|
||||
, cargo-pgrx
|
||||
, cargo-pgrx_0_11_2
|
||||
, clang_16
|
||||
, fetchCrate
|
||||
, fetchFromGitHub
|
||||
@ -23,27 +23,11 @@ let
|
||||
bindgenHook = rustPlatform.bindgenHook.override { inherit clang; };
|
||||
};
|
||||
|
||||
in
|
||||
(buildPgrxExtension.override {
|
||||
# Upstream only works with a fixed version of cargo-pgrx for each release,
|
||||
# so we're pinning it here to avoid future incompatibility.
|
||||
# See https://docs.pgvecto.rs/developers/development.html#environment, step 6
|
||||
cargo-pgrx_0_11_2 = cargo-pgrx.overrideAttrs (old: rec {
|
||||
pname = "cargo-pgrx";
|
||||
version = "0.11.2";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "cargo-pgrx";
|
||||
inherit version;
|
||||
hash = "sha256-8NlpMDFaltTIA8G4JioYm8LaPJ2RGKH5o6sd6lBHmmM=";
|
||||
};
|
||||
|
||||
cargoDeps = old.cargoDeps.overrideAttrs (_: {
|
||||
inherit src;
|
||||
outputHash = "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI=";
|
||||
});
|
||||
});
|
||||
|
||||
in
|
||||
(buildPgrxExtension.override {
|
||||
cargo-pgrx = cargo-pgrx_0_11_2;
|
||||
rustPlatform = rustPlatform';
|
||||
}) rec {
|
||||
|
@ -3,31 +3,12 @@
|
||||
, buildPgrxExtension
|
||||
, postgresql
|
||||
, nixosTests
|
||||
, cargo-pgrx
|
||||
, cargo-pgrx_0_10_2
|
||||
, fetchCrate
|
||||
, nix-update-script
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
let
|
||||
cargo-pgrx_0_10_2 = cargo-pgrx.overrideAttrs (old: rec {
|
||||
name = "cargo-pgrx-${version}";
|
||||
version = "0.10.2";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "cargo-pgrx";
|
||||
inherit version;
|
||||
hash = "sha256-FqjfbJmSy5UCpPPPk4bkEyvQCnaH9zYtkI7txgIn+ls=";
|
||||
};
|
||||
|
||||
cargoDeps = old.cargoDeps.overrideAttrs (_: {
|
||||
inherit src;
|
||||
outputHash = "sha256-XyI3RaPI3Edm/tCP2xoZemib2d2n2cAhobgk9Oafg6s=";
|
||||
});
|
||||
});
|
||||
|
||||
in
|
||||
|
||||
(buildPgrxExtension.override { cargo-pgrx = cargo-pgrx_0_10_2; }) rec {
|
||||
inherit postgresql;
|
||||
|
||||
|
@ -16829,9 +16829,13 @@ with pkgs;
|
||||
buildPgxExtension = callPackage ../development/tools/rust/cargo-pgx/buildPgxExtension.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
cargo-pgrx = callPackage ../development/tools/rust/cargo-pgrx/default.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
inherit (callPackages ../development/tools/rust/cargo-pgrx { })
|
||||
cargo-pgrx_0_10_2
|
||||
cargo-pgrx_0_11_2
|
||||
cargo-pgrx_0_11_3
|
||||
;
|
||||
cargo-pgrx = cargo-pgrx_0_11_2;
|
||||
|
||||
buildPgrxExtension = callPackage ../development/tools/rust/cargo-pgrx/buildPgrxExtension.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user