git: 3e99d4e97814 - main - databases/gobang: Fix build with rust 1.73.0

From: Mikael Urankar <mikael_at_FreeBSD.org>
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);