commit 39d4bdd12696fa2c50f588988f7d51805b855b62 Author: MSVSphere Packaging Team Date: Fri Dec 20 14:54:56 2024 +0300 import rust-biquad-0.4.2-3.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e047648 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/biquad-0.4.2.crate diff --git a/.rust-biquad.metadata b/.rust-biquad.metadata new file mode 100644 index 0000000..98be6a7 --- /dev/null +++ b/.rust-biquad.metadata @@ -0,0 +1 @@ +6cab4d26ad4844450b5a38bb0390d8976e62c27f SOURCES/biquad-0.4.2.crate diff --git a/SOURCES/README.md b/SOURCES/README.md new file mode 100644 index 0000000..4cd4147 --- /dev/null +++ b/SOURCES/README.md @@ -0,0 +1,3 @@ +# rust-biquad + +The rust-biquad package diff --git a/SOURCES/biquad-fix-metadata.diff b/SOURCES/biquad-fix-metadata.diff new file mode 100644 index 0000000..09f9bad --- /dev/null +++ b/SOURCES/biquad-fix-metadata.diff @@ -0,0 +1,8 @@ +--- biquad-0.4.2/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ biquad-0.4.2/Cargo.toml 2023-07-22T15:54:37.244965+00:00 +@@ -21,4 +21,4 @@ + license = "MIT OR Apache-2.0" + repository = "https://github.com/korken89/biquad-rs" + [dependencies.libm] +-version = "0.1.4" ++version = "0.2" diff --git a/SOURCES/biquad-libm0.2.patch b/SOURCES/biquad-libm0.2.patch new file mode 100644 index 0000000..f561941 --- /dev/null +++ b/SOURCES/biquad-libm0.2.patch @@ -0,0 +1,268 @@ +diff --git a/src/coefficients.rs b/src/coefficients.rs +index 52c3d1f..c8e0c4b 100644 +--- a/src/coefficients.rs ++++ b/src/coefficients.rs +@@ -40,8 +40,7 @@ + use crate::{frequency::Hertz, Errors}; + + // For some reason this is not detected properly +-#[allow(unused_imports)] +-use libm::{F32Ext, F64Ext}; ++use libm::{tan, sin, cos, pow, tanf, sinf, cosf, powf, sqrt, sqrtf}; + + /// Common Q value of the Butterworth low-pass filter + pub const Q_BUTTERWORTH_F32: f32 = core::f32::consts::FRAC_1_SQRT_2; +@@ -111,7 +110,7 @@ impl Coefficients { + }) + } + Type::SinglePoleLowPass => { +- let omega_t = (omega / 2.0).tan(); ++ let omega_t = tanf(omega / 2.0); + let a0 = 1.0 + omega_t; + + Ok(Coefficients { +@@ -126,8 +125,8 @@ impl Coefficients { + // The code for omega_s/c and alpha is currently duplicated due to the single pole + // low pass filter not needing it and when creating coefficients are commonly + // assumed to be of low computational complexity. +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sinf(omega); ++ let omega_c = cosf(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = (1.0 - omega_c) * 0.5; +@@ -146,8 +145,8 @@ impl Coefficients { + }) + } + Type::HighPass => { +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sinf(omega); ++ let omega_c = cosf(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = (1.0 + omega_c) * 0.5; +@@ -166,8 +165,8 @@ impl Coefficients { + }) + } + Type::BandPass => { +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sinf(omega); ++ let omega_c = cosf(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = omega_s / 2.0; +@@ -188,8 +187,8 @@ impl Coefficients { + }) + } + Type::Notch => { +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sinf(omega); ++ let omega_c = cosf(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = 1.0; +@@ -208,8 +207,8 @@ impl Coefficients { + }) + } + Type::AllPass => { +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sinf(omega); ++ let omega_c = cosf(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = 1.0 - alpha; +@@ -228,17 +227,17 @@ impl Coefficients { + }) + } + Type::LowShelf(db_gain) => { +- let a = 10.0f32.powf(db_gain / 40.0); +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let a = powf(10.0f32,db_gain / 40.0); ++ let omega_s = sinf(omega); ++ let omega_c = cosf(omega); + let alpha = omega_s / (2.0 * q_value); + +- let b0 = a * ((a + 1.0) - (a - 1.0) * omega_c + 2.0 * alpha * a.sqrt()); ++ let b0 = a * ((a + 1.0) - (a - 1.0) * omega_c + 2.0 * alpha * sqrtf(a)); + let b1 = 2.0 * a * ((a - 1.0) - (a + 1.0) * omega_c); +- let b2 = a * ((a + 1.0) - (a - 1.0) * omega_c - 2.0 * alpha * a.sqrt()); +- let a0 = (a + 1.0) + (a - 1.0) * omega_c + 2.0 * alpha * a.sqrt(); ++ let b2 = a * ((a + 1.0) - (a - 1.0) * omega_c - 2.0 * alpha * sqrtf(a)); ++ let a0 = (a + 1.0) + (a - 1.0) * omega_c + 2.0 * alpha * sqrtf(a); + let a1 = -2.0 * ((a - 1.0) + (a + 1.0) * omega_c); +- let a2 = (a + 1.0) + (a - 1.0) * omega_c - 2.0 * alpha * a.sqrt(); ++ let a2 = (a + 1.0) + (a - 1.0) * omega_c - 2.0 * alpha * sqrtf(a); + + Ok(Coefficients { + a1: a1 / a0, +@@ -249,17 +248,17 @@ impl Coefficients { + }) + } + Type::HighShelf(db_gain) => { +- let a = 10.0f32.powf(db_gain / 40.0); +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let a = powf(10.0f32,db_gain / 40.0); ++ let omega_s = sinf(omega); ++ let omega_c = cosf(omega); + let alpha = omega_s / (2.0 * q_value); + +- let b0 = a * ((a + 1.0) + (a - 1.0) * omega_c + 2.0 * alpha * a.sqrt()); ++ let b0 = a * ((a + 1.0) + (a - 1.0) * omega_c + 2.0 * alpha * sqrtf(a)); + let b1 = -2.0 * a * ((a - 1.0) + (a + 1.0) * omega_c); +- let b2 = a * ((a + 1.0) + (a - 1.0) * omega_c - 2.0 * alpha * a.sqrt()); +- let a0 = (a + 1.0) - (a - 1.0) * omega_c + 2.0 * alpha * a.sqrt(); ++ let b2 = a * ((a + 1.0) + (a - 1.0) * omega_c - 2.0 * alpha * sqrtf(a)); ++ let a0 = (a + 1.0) - (a - 1.0) * omega_c + 2.0 * alpha * sqrtf(a); + let a1 = 2.0 * ((a - 1.0) - (a + 1.0) * omega_c); +- let a2 = (a + 1.0) - (a - 1.0) * omega_c - 2.0 * alpha * a.sqrt(); ++ let a2 = (a + 1.0) - (a - 1.0) * omega_c - 2.0 * alpha * sqrtf(a); + + Ok(Coefficients { + a1: a1 / a0, +@@ -270,9 +269,9 @@ impl Coefficients { + }) + } + Type::PeakingEQ(db_gain) => { +- let a = 10.0f32.powf(db_gain / 40.0); +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let a = powf(10.0f32,db_gain / 40.0); ++ let omega_s = sinf(omega); ++ let omega_c = cosf(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = 1.0 + alpha * a; +@@ -327,7 +326,7 @@ impl Coefficients { + }) + } + Type::SinglePoleLowPass => { +- let omega_t = (omega / 2.0).tan(); ++ let omega_t = tan(omega / 2.0); + let a0 = 1.0 + omega_t; + + Ok(Coefficients { +@@ -342,8 +341,8 @@ impl Coefficients { + // The code for omega_s/c and alpha is currently duplicated due to the single pole + // low pass filter not needing it and when creating coefficients are commonly + // assumed to be of low computational complexity. +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sin(omega); ++ let omega_c = cos(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = (1.0 - omega_c) * 0.5; +@@ -364,8 +363,8 @@ impl Coefficients { + }) + } + Type::HighPass => { +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sin(omega); ++ let omega_c = cos(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = (1.0 + omega_c) * 0.5; +@@ -386,8 +385,8 @@ impl Coefficients { + }) + } + Type::Notch => { +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sin(omega); ++ let omega_c = cos(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = 1.0; +@@ -408,8 +407,8 @@ impl Coefficients { + }) + } + Type::BandPass => { +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sin(omega); ++ let omega_c = cos(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = omega_s / 2.0; +@@ -430,8 +429,8 @@ impl Coefficients { + }) + } + Type::AllPass => { +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let omega_s = sin(omega); ++ let omega_c = cos(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = 1.0 - alpha; +@@ -450,17 +449,17 @@ impl Coefficients { + }) + } + Type::LowShelf(db_gain) => { +- let a = 10.0f64.powf(db_gain / 40.0); +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let a = pow(10.0f64,db_gain / 40.0); ++ let omega_s = sin(omega); ++ let omega_c = cos(omega); + let alpha = omega_s / (2.0 * q_value); + +- let b0 = a * ((a + 1.0) - (a - 1.0) * omega_c + 2.0 * alpha * a.sqrt()); ++ let b0 = a * ((a + 1.0) - (a - 1.0) * omega_c + 2.0 * alpha * sqrt(a)); + let b1 = 2.0 * a * ((a - 1.0) - (a + 1.0) * omega_c); +- let b2 = a * ((a + 1.0) - (a - 1.0) * omega_c - 2.0 * alpha * a.sqrt()); +- let a0 = (a + 1.0) + (a - 1.0) * omega_c + 2.0 * alpha * a.sqrt(); ++ let b2 = a * ((a + 1.0) - (a - 1.0) * omega_c - 2.0 * alpha * sqrt(a)); ++ let a0 = (a + 1.0) + (a - 1.0) * omega_c + 2.0 * alpha * sqrt(a); + let a1 = -2.0 * ((a - 1.0) + (a + 1.0) * omega_c); +- let a2 = (a + 1.0) + (a - 1.0) * omega_c - 2.0 * alpha * a.sqrt(); ++ let a2 = (a + 1.0) + (a - 1.0) * omega_c - 2.0 * alpha * sqrt(a); + + Ok(Coefficients { + a1: a1 / a0, +@@ -471,17 +470,17 @@ impl Coefficients { + }) + } + Type::HighShelf(db_gain) => { +- let a = 10.0f64.powf(db_gain / 40.0); +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let a = pow(10.0f64,db_gain / 40.0); ++ let omega_s = sin(omega); ++ let omega_c = cos(omega); + let alpha = omega_s / (2.0 * q_value); + +- let b0 = a * ((a + 1.0) + (a - 1.0) * omega_c + 2.0 * alpha * a.sqrt()); ++ let b0 = a * ((a + 1.0) + (a - 1.0) * omega_c + 2.0 * alpha * sqrt(a)); + let b1 = -2.0 * a * ((a - 1.0) + (a + 1.0) * omega_c); +- let b2 = a * ((a + 1.0) + (a - 1.0) * omega_c - 2.0 * alpha * a.sqrt()); +- let a0 = (a + 1.0) - (a - 1.0) * omega_c + 2.0 * alpha * a.sqrt(); ++ let b2 = a * ((a + 1.0) + (a - 1.0) * omega_c - 2.0 * alpha * sqrt(a)); ++ let a0 = (a + 1.0) - (a - 1.0) * omega_c + 2.0 * alpha * sqrt(a); + let a1 = 2.0 * ((a - 1.0) - (a + 1.0) * omega_c); +- let a2 = (a + 1.0) - (a - 1.0) * omega_c - 2.0 * alpha * a.sqrt(); ++ let a2 = (a + 1.0) - (a - 1.0) * omega_c - 2.0 * alpha * sqrt(a); + + Ok(Coefficients { + a1: a1 / a0, +@@ -492,9 +491,9 @@ impl Coefficients { + }) + } + Type::PeakingEQ(db_gain) => { +- let a = 10.0f64.powf(db_gain / 40.0); +- let omega_s = omega.sin(); +- let omega_c = omega.cos(); ++ let a = pow(10.0f64,db_gain / 40.0); ++ let omega_s = sin(omega); ++ let omega_c = cos(omega); + let alpha = omega_s / (2.0 * q_value); + + let b0 = 1.0 + alpha * a; diff --git a/SPECS/rust-biquad.spec b/SPECS/rust-biquad.spec new file mode 100644 index 0000000..ca1cec5 --- /dev/null +++ b/SPECS/rust-biquad.spec @@ -0,0 +1,98 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.7.3) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 3; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +# Generated by rust2rpm 24 +%bcond_without check +%global debug_package %{nil} + +%global crate biquad + +Name: rust-biquad +Version: 0.4.2 +Release: %autorelease +Summary: Library for digital second order IIR filtrers, also known as biquads + +License: MIT OR Apache-2.0 +URL: https://crates.io/crates/biquad +Source: %{crates_source} +# Manually created patch for downstream crate metadata changes +# * bump libm to 0.2 +Patch: biquad-fix-metadata.diff +# Update to support libm 0.2 +# https://github.com/melodyaheath/biquad-rs/commit/848d9392f081bf53c02b02c256cb3b60cbbf4afc +Patch: biquad-libm0.2.patch + +BuildRequires: rust-packaging >= 21 + +%global _description %{expand: +A library for digital second order IIR filtrers, also known as biquads.} + +%description %{_description} + +%package devel +Summary: %{summary} +BuildArch: noarch + +%description devel %{_description} + +This package contains library source intended for building other packages which +use the "%{crate}" crate. + +%files devel +%license %{crate_instdir}/LICENSE-APACHE +%license %{crate_instdir}/LICENSE-MIT +%doc %{crate_instdir}/CHANGELOG.md +%doc %{crate_instdir}/README.md +%{crate_instdir}/ + +%package -n %{name}+default-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+default-devel %{_description} + +This package contains library source intended for building other packages which +use the "default" feature of the "%{crate}" crate. + +%files -n %{name}+default-devel +%ghost %{crate_instdir}/Cargo.toml + +%prep +%autosetup -n %{crate}-%{version_no_tilde} -p1 +%cargo_prep + +%generate_buildrequires +%cargo_generate_buildrequires + +%build +%cargo_build + +%install +%cargo_install + +%if %{with check} +%check +%cargo_test +%endif + +%changelog +* Fri Dec 20 2024 MSVSphere Packaging Team - 0.4.2-3 +- Rebuilt for MSVSphere 10 + +## START: Generated by rpmautospec +* Fri Jul 19 2024 Fedora Release Engineering - 0.4.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 0.4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jul 23 2023 Davide Cavalca - 0.4.2-1 +- Initial import; Fixes: RHBZ#2224760 +## END: Generated by rpmautospec