Date: Fri, 29 May 2026 20:48:58 +0000 From: Piotr Kubaj <pkubaj@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 9eea24f124e7 - main - audio/maolan: port to powerpc64* Message-ID: <6a19fbba.32740.52f652d4@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/ports/commit/?id=9eea24f124e71760c1e149a3c7eabac95d61bb43 commit 9eea24f124e71760c1e149a3c7eabac95d61bb43 Author: Piotr Kubaj <pkubaj@FreeBSD.org> AuthorDate: 2026-05-28 11:20:26 +0000 Commit: Piotr Kubaj <pkubaj@FreeBSD.org> CommitDate: 2026-05-29 20:48:53 +0000 audio/maolan: port to powerpc64* Usual replacing of i8's with c_char. --- audio/maolan/Makefile | 2 +- .../files/patch-cargo-crates_lilv-0.2.4_src_ui.rs | 13 ++++ ...s_maolan-engine-0.0.20_src_plugins_vst3_host.rs | 20 +++++ ...an-engine-0.0.20_src_plugins_vst3_interfaces.rs | 91 ++++++++++++++++++++++ 4 files changed, 125 insertions(+), 1 deletion(-) diff --git a/audio/maolan/Makefile b/audio/maolan/Makefile index 13e8f054398f..613413090767 100644 --- a/audio/maolan/Makefile +++ b/audio/maolan/Makefile @@ -9,7 +9,7 @@ WWW= https://maolan.github.io LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -ONLY_FOR_ARCHS= amd64 +ONLY_FOR_ARCHS= amd64 powerpc64 powerpc64le LIB_DEPENDS= libavutil.so:multimedia/ffmpeg \ libjack.so:audio/jack \ diff --git a/audio/maolan/files/patch-cargo-crates_lilv-0.2.4_src_ui.rs b/audio/maolan/files/patch-cargo-crates_lilv-0.2.4_src_ui.rs new file mode 100644 index 000000000000..e9d7b85a795f --- /dev/null +++ b/audio/maolan/files/patch-cargo-crates_lilv-0.2.4_src_ui.rs @@ -0,0 +1,13 @@ +--- cargo-crates/lilv-0.2.4/src/ui.rs.orig 2026-05-28 08:42:48 UTC ++++ cargo-crates/lilv-0.2.4/src/ui.rs +@@ -140,8 +140,8 @@ unsafe extern "C" fn supported_func<S: UISupport>( + } + + unsafe extern "C" fn supported_func<S: UISupport>( +- container_type_uri: *const i8, +- ui_type_uri: *const i8, ++ container_type_uri: *const std::os::raw::c_char, ++ ui_type_uri: *const std::os::raw::c_char, + ) -> u32 { + S::supported( + CStr::from_ptr(container_type_uri).to_str().unwrap(), diff --git a/audio/maolan/files/patch-cargo-crates_maolan-engine-0.0.20_src_plugins_vst3_host.rs b/audio/maolan/files/patch-cargo-crates_maolan-engine-0.0.20_src_plugins_vst3_host.rs new file mode 100644 index 000000000000..55915c57b78d --- /dev/null +++ b/audio/maolan/files/patch-cargo-crates_maolan-engine-0.0.20_src_plugins_vst3_host.rs @@ -0,0 +1,20 @@ +--- cargo-crates/maolan-engine-0.0.20/src/plugins/vst3/host.rs.orig 2026-05-28 09:11:22 UTC ++++ cargo-crates/maolan-engine-0.0.20/src/plugins/vst3/host.rs +@@ -179,7 +179,7 @@ fn class_info_to_plugin_info( + } + } + +-fn tuid_to_string(tuid: &[i8; 16]) -> String { ++fn tuid_to_string(tuid: &[std::os::raw::c_char; 16]) -> String { + // Convert TUID to hexadecimal string + tuid.iter() + .map(|&b| format!("{:02X}", b as u8)) +@@ -204,7 +204,7 @@ mod tests { + let class_info = ClassInfo { + name: "Synth".to_string(), + category: "Instrument".to_string(), +- cid: [0x12_i8; 16], ++ cid: [0x12_i8 as std::os::raw::c_char; 16], + }; + + let info = class_info_to_plugin_info( diff --git a/audio/maolan/files/patch-cargo-crates_maolan-engine-0.0.20_src_plugins_vst3_interfaces.rs b/audio/maolan/files/patch-cargo-crates_maolan-engine-0.0.20_src_plugins_vst3_interfaces.rs new file mode 100644 index 000000000000..0c34db17e4ca --- /dev/null +++ b/audio/maolan/files/patch-cargo-crates_maolan-engine-0.0.20_src_plugins_vst3_interfaces.rs @@ -0,0 +1,91 @@ +--- cargo-crates/maolan-engine-0.0.20/src/plugins/vst3/interfaces.rs.orig 2026-05-28 09:11:22 UTC ++++ cargo-crates/maolan-engine-0.0.20/src/plugins/vst3/interfaces.rs +@@ -193,7 +193,7 @@ impl PluginFactory { + } + + /// Create an instance of a plugin using the trait +- pub fn create_instance(&self, class_id: &[i8; 16]) -> Result<PluginInstance, String> { ++ pub fn create_instance(&self, class_id: &[std::os::raw::c_char; 16]) -> Result<PluginInstance, String> { + use vst3::Steinberg::IPluginFactoryTrait; + + let mut instance_ptr: *mut c_void = std::ptr::null_mut(); +@@ -201,7 +201,7 @@ impl PluginFactory { + let result = unsafe { + self.factory.createInstance( + class_id.as_ptr(), +- IComponent::IID.as_ptr() as *const i8, ++ IComponent::IID.as_ptr() as *const std::os::raw::c_char, + &mut instance_ptr, + ) + }; +@@ -246,7 +246,7 @@ impl PluginFactory { + + pub fn create_edit_controller( + &self, +- class_id: &[i8; 16], ++ class_id: &[std::os::raw::c_char; 16], + ) -> Result<ComPtr<IEditController>, String> { + use vst3::Steinberg::IPluginFactoryTrait; + +@@ -255,7 +255,7 @@ impl PluginFactory { + let result = unsafe { + self.factory.createInstance( + class_id.as_ptr(), +- IEditController::IID.as_ptr() as *const i8, ++ IEditController::IID.as_ptr() as *const std::os::raw::c_char, + &mut instance_ptr, + ) + }; +@@ -293,7 +293,7 @@ pub struct ClassInfo { + pub struct ClassInfo { + pub name: String, + pub category: String, +- pub cid: [i8; 16], ++ pub cid: [std::os::raw::c_char; 16], + } + + /// Information about the plugin factory +@@ -522,7 +522,7 @@ impl PluginInstance { + let vtbl = (*component_raw).vtbl; + let query_interface = (*vtbl).base.base.queryInterface; + // Cast IID from [u8; 16] to [i8; 16] +- let iid = std::mem::transmute::<&[u8; 16], &[i8; 16]>(&IAudioProcessor::IID); ++ let iid = std::mem::transmute::<&[u8; 16], &[std::os::raw::c_char; 16]>(&IAudioProcessor::IID); + query_interface(component_raw as *mut _, iid, &mut processor_ptr) + }; + +@@ -537,7 +537,7 @@ impl PluginInstance { + let component_raw = self.component.as_ptr(); + let vtbl = (*component_raw).vtbl; + let query_interface = (*vtbl).base.base.queryInterface; +- let iid = std::mem::transmute::<&[u8; 16], &[i8; 16]>(&IEditController::IID); ++ let iid = std::mem::transmute::<&[u8; 16], &[std::os::raw::c_char; 16]>(&IEditController::IID); + query_interface(component_raw as *mut _, iid, &mut controller_ptr) + }; + if query_result == kResultOk && !controller_ptr.is_null() { +@@ -1621,7 +1621,7 @@ fn get_module_path(bundle_path: &Path) -> Result<std:: + } + } + +-fn extract_cstring(bytes: &[i8]) -> String { ++fn extract_cstring(bytes: &[std::os::raw::c_char]) -> String { + let len = bytes.iter().position(|&c| c == 0).unwrap_or(bytes.len()); + let u8_bytes: Vec<u8> = bytes[..len].iter().map(|&b| b as u8).collect(); + String::from_utf8_lossy(&u8_bytes).to_string() +@@ -1663,14 +1663,14 @@ mod tests { + + #[test] + fn extract_cstring_stops_at_nul_and_uses_lossy_utf8() { +- let bytes = [b'A' as i8, b'B' as i8, -1, 0, b'Z' as i8]; ++ let bytes = [b'A' as std::os::raw::c_char, b'B' as std::os::raw::c_char, -1i8 as std::os::raw::c_char, 0, b'Z' as std::os::raw::c_char]; + + assert_eq!(extract_cstring(&bytes), "AB\u{FFFD}"); + } + + #[test] + fn extract_cstring_uses_full_slice_when_not_nul_terminated() { +- let bytes = [b'X' as i8, b'Y' as i8, b'Z' as i8]; ++ let bytes = [b'X' as std::os::raw::c_char, b'Y' as std::os::raw::c_char, b'Z' as std::os::raw::c_char]; + + assert_eq!(extract_cstring(&bytes), "XYZ"); + }home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a19fbba.32740.52f652d4>
