From 3cdfa9471c6a7884e8e9427a47dd4e7ed93cbec1 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Fri, 22 Aug 2025 19:26:35 +0100 Subject: [PATCH] postgresqlPackages.pgvecto-rs: fix build with rust 1.89 The `dangerous_implicit_autorefs` lint now causes a compile error [1], which breaks pgvecto-rs. This commit forces the lint to only throw a warning. [1]: https://github.com/rust-lang/rust/pull/141661 --- ...002-allow-dangerous-implicit-autorefs.diff | 21 +++++++++++++++++++ .../sql/postgresql/ext/pgvecto-rs/package.nix | 3 +++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/servers/sql/postgresql/ext/pgvecto-rs/0002-allow-dangerous-implicit-autorefs.diff diff --git a/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0002-allow-dangerous-implicit-autorefs.diff b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0002-allow-dangerous-implicit-autorefs.diff new file mode 100644 index 000000000000..34230c372de0 --- /dev/null +++ b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0002-allow-dangerous-implicit-autorefs.diff @@ -0,0 +1,21 @@ +diff --git a/crates/common/src/lib.rs b/crates/common/src/lib.rs +index 18172b9..6fc7e82 100644 +--- a/crates/common/src/lib.rs ++++ b/crates/common/src/lib.rs +@@ -1,3 +1,4 @@ ++#![warn(dangerous_implicit_autorefs)] + pub mod clean; + pub mod dir_ops; + pub mod file_atomic; +diff --git a/src/lib.rs b/src/lib.rs +index 068c65d..82609e9 100644 +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -6,6 +6,7 @@ + #![allow(clippy::needless_range_loop)] + #![allow(clippy::single_match)] + #![allow(clippy::too_many_arguments)] ++#![warn(dangerous_implicit_autorefs)] + + mod bgworker; + mod datatype; diff --git a/pkgs/servers/sql/postgresql/ext/pgvecto-rs/package.nix b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/package.nix index 323674e11833..412e46646247 100644 --- a/pkgs/servers/sql/postgresql/ext/pgvecto-rs/package.nix +++ b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/package.nix @@ -27,6 +27,9 @@ buildPgrxExtension (finalAttrs: { (replaceVars ./0001-read-clang-flags-from-environment.diff { clang = lib.getExe clang; }) + # Rust 1.89 denies implicit autorefs by default, making the compilation fail. + # This restores the behaviour of previous rust versions by making the lint throw a warning instead. + ./0002-allow-dangerous-implicit-autorefs.diff ]; src = fetchFromGitHub {