git: 3e99d4e97814 - main - databases/gobang: Fix build with rust 1.73.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 24 Oct 2023 10:23:15 UTC
The branch main has been updated by mikael: URL: https://cgit.FreeBSD.org/ports/commit/?id=3e99d4e978144e6e424bda44e3041abfc6cc92bf commit 3e99d4e978144e6e424bda44e3041abfc6cc92bf Author: Mikael Urankar <mikael@FreeBSD.org> AuthorDate: 2023-10-16 10:39:44 +0000 Commit: Mikael Urankar <mikael@FreeBSD.org> CommitDate: 2023-10-24 10:21:47 +0000 databases/gobang: Fix build with rust 1.73.0 Import upstream patch to fix the following build error with rust 1.73.0 error[E0308]: mismatched types --> /wrkdirs/usr/ports/databases/gobang/work/gobang-0.1.0-alpha.5/cargo-crates/num-bigint-0.3.2/src/biguint/convert.rs:70:19 | 70 | .div_ceil(&big_digit::BITS.into()) | -------- ^^^^^^^^^^^^^^^^^^^^^^^ expected `u64`, found `&_` | | | arguments to this method are incorrect error[E0308]: mismatched types --> /wrkdirs/usr/ports/databases/gobang/work/gobang-0.1.0-alpha.5/cargo-crates/num-bigint-0.3.2/src/biguint/convert.rs:585:19 | 585 | .div_ceil(&u64::from(bits)) | -------- ^^^^^^^^^^^^^^^^ expected `u64`, found `&u64` | | | arguments to this method are incorrect PR: 274499 Approved by: portmgr (build fix blanket) --- databases/gobang/Makefile | 2 +- databases/gobang/files/patch-rust-1.73.0 | 64 ++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/databases/gobang/Makefile b/databases/gobang/Makefile index 3ebf3f1f65cb..646fd3ff7e62 100644 --- a/databases/gobang/Makefile +++ b/databases/gobang/Makefile @@ -1,7 +1,7 @@ PORTNAME= gobang DISTVERSIONPREFIX= v DISTVERSION= 0.1.0-alpha.5 -PORTREVISION= 7 +PORTREVISION= 8 CATEGORIES= databases MAINTAINER= yuri@FreeBSD.org diff --git a/databases/gobang/files/patch-rust-1.73.0 b/databases/gobang/files/patch-rust-1.73.0 new file mode 100644 index 000000000000..aa0bf93735c8 --- /dev/null +++ b/databases/gobang/files/patch-rust-1.73.0 @@ -0,0 +1,64 @@ +From a8fc78c1e28c55af83a57d97dff3f6a93c45b46c Mon Sep 17 00:00:00 2001 +From: Philippe Antoine <contact@catenacyber.fr> +Date: Fri, 3 Sep 2021 09:29:36 +0200 +Subject: [PATCH] rust: use explicitily Integer::div_ceil + +cf https://github.com/rust-lang/rust/issues/88581 +--- + src/biguint.rs | 2 +- + src/biguint/convert.rs | 15 ++++++--------- + 2 files changed, 7 insertions(+), 10 deletions(-) + +diff --git a/src/biguint.rs b/src/biguint.rs +index 271a8837..623823c8 100644 +--- cargo-crates/num-bigint-0.3.2/src/biguint.rs ++++ cargo-crates/num-bigint-0.3.2/src/biguint.rs +@@ -395,7 +395,7 @@ impl Roots for BigUint { + // Try to guess by scaling down such that it does fit in `f64`. + // With some (x * 2ⁿᵏ), its nth root ≈ (ⁿ√x * 2ᵏ) + let extra_bits = bits - (core::f64::MAX_EXP as u64 - 1); +- let root_scale = extra_bits.div_ceil(&n64); ++ let root_scale = Integer::div_ceil(&extra_bits, &n64); + let scale = root_scale * n64; + if scale < bits && bits - scale > n64 { + (self >> scale).nth_root(n) << root_scale +diff --git a/src/biguint/convert.rs b/src/biguint/convert.rs +index edeed84c..799152d5 100644 +--- cargo-crates/num-bigint-0.3.2/src/biguint/convert.rs ++++ cargo-crates/num-bigint-0.3.2/src/biguint/convert.rs +@@ -65,9 +65,8 @@ fn from_inexact_bitwise_digits_le(v: &[u8], bits: u8) -> BigUint { + debug_assert!(!v.is_empty() && bits <= 8 && big_digit::BITS % bits != 0); + debug_assert!(v.iter().all(|&c| BigDigit::from(c) < (1 << bits))); + +- let big_digits = (v.len() as u64) +- .saturating_mul(bits.into()) +- .div_ceil(&big_digit::BITS.into()) ++ let big_digits = (v.len() as u64).saturating_mul(bits.into()); ++ let big_digits = Integer::div_ceil(&big_digits, &big_digit::BITS.into()) + .to_usize() + .unwrap_or(core::usize::MAX); + let mut data = Vec::with_capacity(big_digits); +@@ -580,9 +579,8 @@ pub(super) fn to_bitwise_digits_le(u: &BigUint, bits: u8) -> Vec<u8> { + let last_i = u.data.len() - 1; + let mask: BigDigit = (1 << bits) - 1; + let digits_per_big_digit = big_digit::BITS / bits; +- let digits = u +- .bits() +- .div_ceil(&u64::from(bits)) ++ let digits = u.bits(); ++ let digits = Integer::div_ceil(&digits, &u64::from(bits)) + .to_usize() + .unwrap_or(core::usize::MAX); + let mut res = Vec::with_capacity(digits); +@@ -608,9 +606,8 @@ fn to_inexact_bitwise_digits_le(u: &BigUint, bits: u8) -> Vec<u8> { + debug_assert!(!u.is_zero() && bits <= 8 && big_digit::BITS % bits != 0); + + let mask: BigDigit = (1 << bits) - 1; +- let digits = u +- .bits() +- .div_ceil(&u64::from(bits)) ++ let digits = u.bits(); ++ let digits = Integer::div_ceil(&digits, &u64::from(bits)) + .to_usize() + .unwrap_or(core::usize::MAX); + let mut res = Vec::with_capacity(digits);