kapacitor: fix build of embedded libflux dependency with current rust

The embedded `libflux` dependency of `kapacitor` fails to build with
more current rust tooling due to an unneeded `.clone()` call that
is promoted into an error message by a strict linting build config.

This introduces a patch that removes the offending method call.
The issue is already resolved upstream, but even the current `kapacitor`
version still depends on this specific version of `libflux` [1], and the
respective git commit contains a lot of other (automated) changes [2],
so cherry-picking the patch via a GitHub URL seems even more brittle.

[1]: https://github.com/influxdata/kapacitor/blob/v1.7.1/go.mod#L26
[2]: e7f7023848 (diff-96572e971d9e19b54290a434debbf7db054b21c9ce19035159542756ffb8ab87)
This commit is contained in:
Manuel Frischknecht 2023-11-26 19:46:45 +01:00
parent b016575818
commit 8e6e709ca1
2 changed files with 23 additions and 0 deletions

View file

@ -20,6 +20,16 @@ let
hash = "sha256-v9MUR+PcxAus91FiHYrMN9MbNOTWewh7MT6/t/QWQcM=";
};
patches = [
# This fixes a linting error due to an unneeded call to `.clone()`
# that gets enforced by a strict `deny(warnings)` build config.
# This is already fixed with newer versions of `libflux`, but it
# has been changed in a giant commit with a lot of autmated changes:
# https://github.com/influxdata/flux/commit/e7f7023848929e16ad5bd3b41d217847bd4fd72b#diff-96572e971d9e19b54290a434debbf7db054b21c9ce19035159542756ffb8ab87
#
# Can be removed as soon as kapacitor depends on a newer version of `libflux`, cf:
# https://github.com/influxdata/kapacitor/blob/v1.7.0/go.mod#L26
./fix-linting-error-on-unneeded-clone.patch
# https://github.com/influxdata/flux/pull/5273
# fix compile error with Rust 1.64
(fetchpatch {

View file

@ -0,0 +1,13 @@
diff --git a/flux-core/src/semantic/flatbuffers/types.rs b/flux-core/src/semantic/flatbuffers/types.rs
index c3eecf06..9baf4070 100644
--- a/flux-core/src/semantic/flatbuffers/types.rs
+++ b/flux-core/src/semantic/flatbuffers/types.rs
@@ -715,7 +715,7 @@ mod tests {
fn test_serde(expr: &'static str) {
// let want = parser::parse(expr).unwrap();
- let mut p = parser::Parser::new(expr.clone());
+ let mut p = parser::Parser::new(expr);
let typ_expr = p.parse_type_expression();
if let Err(err) = ast::check::check(ast::walk::Node::TypeExpression(&typ_expr)) {