about summary refs log tree commit diff
path: root/pkgs/servers/nosql
diff options
context:
space:
mode:
authorMitchell Skaggs <skaggsm333@gmail.com>2024-06-15 23:56:05 -0500
committerMitchell Skaggs <skaggsm333@gmail.com>2024-06-16 00:00:32 -0500
commitd7aecd3cb0073633628806fc1ee215b69f3384a0 (patch)
tree5da20ecc6cf6178442fead9a6b97fe18928a8b2c /pkgs/servers/nosql
parent746c18462587129dec96052dfde42c2bc53c3754 (diff)
{influxdb, influxdb2}: fix build on aarch64-linux
An inadvertent reliance on `char` being signed crept into `libflux`;
this patch specifies a signed 8-bit type for the literal and then
explicitly casts to the appropriate platform `c_char` type.
Diffstat (limited to 'pkgs/servers/nosql')
-rw-r--r--pkgs/servers/nosql/influxdb/default.nix1
-rw-r--r--pkgs/servers/nosql/influxdb2/default.nix1
-rw-r--r--pkgs/servers/nosql/influxdb2/fix-unsigned-char.patch13
3 files changed, 15 insertions, 0 deletions
diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix
index 7f0091f1bee3d..739fab6f81197 100644
--- a/pkgs/servers/nosql/influxdb/default.nix
+++ b/pkgs/servers/nosql/influxdb/default.nix
@@ -23,6 +23,7 @@ let
         excludes = [ ];
         hash = "sha256-6LOTgbOCfETNTmshyXgtDZf9y4t/2iqRuVPkz9dYPHc=";
       })
+      ../influxdb2/fix-unsigned-char.patch
     ];
     sourceRoot = "${src.name}/libflux";
     cargoHash = "sha256-O+t4f4P5291BuyARH6Xf3LejMFEQEBv+qKtyjHRhclA=";
diff --git a/pkgs/servers/nosql/influxdb2/default.nix b/pkgs/servers/nosql/influxdb2/default.nix
index 2fcb078a9a830..81333a9f1ec30 100644
--- a/pkgs/servers/nosql/influxdb2/default.nix
+++ b/pkgs/servers/nosql/influxdb2/default.nix
@@ -48,6 +48,7 @@ let
         excludes = [ ];
         hash = "sha256-6LOTgbOCfETNTmshyXgtDZf9y4t/2iqRuVPkz9dYPHc=";
       })
+      ./fix-unsigned-char.patch
     ];
     sourceRoot = "${src.name}/libflux";
     cargoHash = "sha256-O+t4f4P5291BuyARH6Xf3LejMFEQEBv+qKtyjHRhclA=";
diff --git a/pkgs/servers/nosql/influxdb2/fix-unsigned-char.patch b/pkgs/servers/nosql/influxdb2/fix-unsigned-char.patch
new file mode 100644
index 0000000000000..173e5b30e5ee1
--- /dev/null
+++ b/pkgs/servers/nosql/influxdb2/fix-unsigned-char.patch
@@ -0,0 +1,13 @@
+diff --git a/flux/src/cffi.rs b/flux/src/cffi.rs
+index ba18e3d5..0c1badf8 100644
+--- a/flux/src/cffi.rs
++++ b/flux/src/cffi.rs
+@@ -1149,7 +1149,7 @@ from(bucket: v.bucket)
+     fn parse_with_invalid_utf8() {
+         let cfname = CString::new("foo.flux").unwrap();
+         let cfname_ptr: *const c_char = cfname.as_ptr();
+-        let v: Vec<c_char> = vec![-61, 0];
++        let v: Vec<c_char> = vec![-61i8 as c_char, 0];
+         let csrc: *const c_char = &v[0];
+         // Safety: both pointers are valid
+         let pkg = unsafe { flux_parse(cfname_ptr, csrc) };