git: 7eb89cf86e6b - main - www/varnish-libvmod-fileserver: fix build on ARM / POWER
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 08 Jan 2023 11:52:44 UTC
The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/ports/commit/?id=7eb89cf86e6b50ca33c43a9e3c733bbab131d0b0 commit 7eb89cf86e6b50ca33c43a9e3c733bbab131d0b0 Author: Piotr Kubaj <pkubaj@FreeBSD.org> AuthorDate: 2023-01-08 11:41:25 +0000 Commit: Piotr Kubaj <pkubaj@FreeBSD.org> CommitDate: 2023-01-08 11:52:39 +0000 www/varnish-libvmod-fileserver: fix build on ARM / POWER Fix build with unsigned char instead signed char: 133 | iface.ifr_name[i] = c as i8; | ----------------- ^^^^^^^ expected `u8`, found `i8` --- ...-cargo-crates_varnish-0.0.12_src_vcl_convert.rs | 14 ++++++++ ...atch-cargo-crates_varnish-0.0.12_src_vcl_ctx.rs | 38 ++++++++++++++++++++++ ...tch-cargo-crates_varnish-0.0.12_src_vcl_http.rs | 23 +++++++++++++ ...argo-crates_varnish-0.0.12_src_vcl_processor.rs | 28 ++++++++++++++++ ...patch-cargo-crates_varnish-0.0.12_src_vcl_ws.rs | 28 ++++++++++++++++ .../files/patch-src_lib.rs | 38 ++++++++++++++++++++++ 6 files changed, 169 insertions(+) diff --git a/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_convert.rs b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_convert.rs new file mode 100644 index 000000000000..f36c8f28509e --- /dev/null +++ b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_convert.rs @@ -0,0 +1,14 @@ +--- cargo-crates/varnish-0.0.12/src/vcl/convert.rs.orig 2023-01-08 01:32:37 UTC ++++ cargo-crates/varnish-0.0.12/src/vcl/convert.rs +@@ -139,9 +139,9 @@ impl IntoVCL<VCL_STRING> for &[u8] { + // try to save some work if the buffer is already in the workspace + // and if it's followed by a null byte + if unsafe { varnish_sys::WS_Allocated(ws.raw, self.as_ptr() as *const c_void, self.len() as i64 + 1) == 1 && *self.as_ptr().add(self.len()) == b'\0' } { +- Ok(self.as_ptr() as *const i8) ++ Ok(self.as_ptr() as *const c_char) + } else { +- Ok(ws.copy_bytes_with_null(&self)?.as_ptr() as *const i8) ++ Ok(ws.copy_bytes_with_null(&self)?.as_ptr() as *const c_char) + } + } + } diff --git a/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_ctx.rs b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_ctx.rs new file mode 100644 index 000000000000..90ab140bde5a --- /dev/null +++ b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_ctx.rs @@ -0,0 +1,38 @@ +--- cargo-crates/varnish-0.0.12/src/vcl/ctx.rs.orig 2023-01-08 01:41:36 UTC ++++ cargo-crates/varnish-0.0.12/src/vcl/ctx.rs +@@ -4,6 +4,7 @@ use std::os::raw::{c_uint, c_void}; + + use crate::vcl::http::HTTP; + use crate::vcl::ws::{TestWS, WS}; ++use std::os::raw::c_char; + use std::ptr; + use varnish_sys::{ + busyobj, req, sess, vrt_ctx, vsb, vsl_log, ws, VSL_tag_e_SLT_Debug, VSL_tag_e_SLT_Error, +@@ -103,7 +104,7 @@ impl<'a> Ctx<'a> { + // not great, we have to copy the string to add a null character + let c_cstring = CString::new(msg).unwrap(); + unsafe { +- VRT_fail(self.raw, "%s\0".as_ptr() as *const i8, c_cstring.as_ptr()); ++ VRT_fail(self.raw, "%s\0".as_ptr() as *const c_char, c_cstring.as_ptr()); + } + 0 + } +@@ -116,8 +117,8 @@ impl<'a> Ctx<'a> { + log(logtag, msg); + } else { + let t = varnish_sys::txt { +- b: msg.as_ptr() as *const i8, +- e: msg.as_ptr().add(msg.len()) as *const i8, ++ b: msg.as_ptr() as *const c_char, ++ e: msg.as_ptr().add(msg.len()) as *const c_char, + }; + varnish_sys::VSLbt(p.vsl, logtag.into_u32(), t); + +@@ -245,6 +246,6 @@ impl Event { + pub fn log(logtag: LogTag, msg: &str) { + unsafe { + let c_cstring = CString::new(msg).unwrap(); +- varnish_sys::VSL(logtag.into_u32(), 0, b"%s\0".as_ptr() as *const i8, c_cstring.as_ptr() as *const u8); ++ varnish_sys::VSL(logtag.into_u32(), 0, b"%s\0".as_ptr() as *const c_char, c_cstring.as_ptr() as *const u8); + } + } diff --git a/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_http.rs b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_http.rs new file mode 100644 index 000000000000..bab021b8c1f9 --- /dev/null +++ b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_http.rs @@ -0,0 +1,23 @@ +--- cargo-crates/varnish-0.0.12/src/vcl/http.rs.orig 2023-01-08 02:38:57 UTC ++++ cargo-crates/varnish-0.0.12/src/vcl/http.rs +@@ -12,7 +12,7 @@ + //! this [issue](https://github.com/gquintard/varnish-rs/issues/4). + + #![allow(clippy::not_unsafe_ptr_arg_deref)] +-use std::os::raw::c_uint; ++use std::os::raw::{c_char, c_uint}; + use std::slice::{from_raw_parts, from_raw_parts_mut}; + use std::str::from_utf8; + +@@ -53,9 +53,9 @@ impl<'a> HTTP<'a> { + let hdr_buf = ws.copy_bytes_with_null(&value)?; + unsafe { + let mut hd = self.raw.hd.offset(idx as isize); +- (*hd).b = hdr_buf.as_ptr() as *const i8; ++ (*hd).b = hdr_buf.as_ptr() as *const c_char; + /* -1 accounts for the null character */ +- (*hd).e = hdr_buf.as_ptr().add(hdr_buf.len() - 1) as *const i8; ++ (*hd).e = hdr_buf.as_ptr().add(hdr_buf.len() - 1) as *const c_char; + let hdf = self.raw.hdf.offset(idx as isize); + *hdf = 0; + } diff --git a/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_processor.rs b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_processor.rs new file mode 100644 index 000000000000..3ee7f7ed2243 --- /dev/null +++ b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_processor.rs @@ -0,0 +1,28 @@ +--- cargo-crates/varnish-0.0.12/src/vcl/processor.rs.orig 2023-01-08 02:45:31 UTC ++++ cargo-crates/varnish-0.0.12/src/vcl/processor.rs +@@ -5,6 +5,7 @@ + //! *Note:* The rust wrapper here is pretty thin and the vmod writer will most probably need to have to + //! deal with the raw Varnish internals. + ++use std::os::raw::c_char; + use std::os::raw::c_int; + use std::os::raw::c_void; + use std::ptr; +@@ -129,7 +130,7 @@ pub unsafe extern "C" fn gen_vdp_push<T: VDP>( + /// Create a `varnish_sys::vdp` that can be fed to `varnish_sys::VRT_AddVDP` + pub fn new_vdp<T: VDP>() -> varnish_sys::vdp { + varnish_sys::vdp { +- name: T::name().as_ptr() as *const i8, ++ name: T::name().as_ptr() as *const c_char, + init: Some(gen_vdp_init::<T>), + bytes: Some(gen_vdp_push::<T>), + fini: Some(gen_vdp_fini::<T>), +@@ -246,7 +247,7 @@ pub unsafe extern "C" fn wrap_vfp_fini<T: VFP>(ctxp: * + /// Create a `varnish_sys::vfp` that can be fed to `varnish_sys::VRT_AddVFP` + pub fn new_vfp<T: VFP>() -> varnish_sys::vfp { + varnish_sys::vfp { +- name: T::name().as_ptr() as *const i8, ++ name: T::name().as_ptr() as *const c_char, + init: Some(wrap_vfp_init::<T>), + pull: Some(wrap_vfp_pull::<T>), + fini: Some(wrap_vfp_fini::<T>), diff --git a/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_ws.rs b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_ws.rs new file mode 100644 index 000000000000..bf5cebff2b6d --- /dev/null +++ b/www/varnish-libvmod-fileserver/files/patch-cargo-crates_varnish-0.0.12_src_vcl_ws.rs @@ -0,0 +1,28 @@ +--- cargo-crates/varnish-0.0.12/src/vcl/ws.rs.orig 2023-01-08 02:53:56 UTC ++++ cargo-crates/varnish-0.0.12/src/vcl/ws.rs +@@ -10,6 +10,7 @@ + //! **Note:** unless you know what you are doing, you should probably just use the automatic type + //! conversion provided by [`crate::vcl::convert`], or store things in + //! [`crate::vcl::vpriv::VPriv`]. ++use std::os::raw::c_char; + use std::ffi::c_void; + use std::ptr; + use std::slice::from_raw_parts_mut; +@@ -213,7 +214,7 @@ impl<'a> Drop for ReservedBuf<'a> { + pub struct TestWS { + c_ws: varnish_sys::ws, + #[allow(dead_code)] +- space: Vec<i8>, ++ space: Vec<c_char>, + } + + impl TestWS { +@@ -229,7 +230,7 @@ impl TestWS { + TestWS { + c_ws: varnish_sys::ws { + magic: varnish_sys::WS_MAGIC, +- id: ['t' as i8, 's' as i8, 't' as i8, '\0' as i8], ++ id: ['t' as c_char, 's' as c_char, 't' as c_char, '\0' as c_char], + s, + f: s, + r: ptr::null_mut(), diff --git a/www/varnish-libvmod-fileserver/files/patch-src_lib.rs b/www/varnish-libvmod-fileserver/files/patch-src_lib.rs new file mode 100644 index 000000000000..8823009ab880 --- /dev/null +++ b/www/varnish-libvmod-fileserver/files/patch-src_lib.rs @@ -0,0 +1,38 @@ +--- src/lib.rs.orig 2023-01-08 03:03:24 UTC ++++ src/lib.rs +@@ -5,7 +5,7 @@ use std::collections::HashMap; + use std::collections::hash_map::DefaultHasher; + use std::hash::{Hash, Hasher}; + use std::io::{BufRead, BufReader, Read}; +-use std::os::raw::{c_uint, c_void}; ++use std::os::raw::{c_char, c_uint, c_void}; + use std::os::unix::fs::MetadataExt; + use std::ptr; + +@@ -113,7 +113,7 @@ impl root { + ctx.raw, + &METHODS.methods, + info_ptr as *mut std::ffi::c_void, +- format!("{}\0", vcl_name).as_ptr() as *const i8, ++ format!("{}\0", vcl_name).as_ptr() as *const c_char, + ) + }; + +@@ -170,7 +170,7 @@ struct VfpWrapper { + } + static FILE_VFP: VfpWrapper = VfpWrapper { + vfp: varnish_sys::vfp { +- name: "fileserver\0".as_ptr() as *const i8, ++ name: "fileserver\0".as_ptr() as *const c_char, + init: None, + pull: Some(varnish::vcl::processor::wrap_vfp_pull::<BackendResp>), + fini: Some(varnish::vcl::processor::wrap_vfp_fini::<BackendResp>), +@@ -233,7 +233,7 @@ unsafe extern "C" fn be_gethdrs( + ); + + if (*bo.req).req_body_status != varnish_sys::BS_CACHED.as_ptr() { +- bo.no_retry = "req.body not cached\0".as_ptr() as *const i8; ++ bo.no_retry = "req.body not cached\0".as_ptr() as *const c_char; + } + + if (*bo.req).req_body_status == varnish_sys::BS_ERROR.as_ptr() {