#1103725 rust-subversion: FTBFS on many archs: expected raw pointer *const u8, found *const i8

#1103725#5
Date:
2025-04-20 23:39:58 UTC
From:
To:
rust-subversion FTBFS everywhere except on amd64, mips64el, and
loong64.

Example log from arm64:
https://buildd.debian.org/status/fetch.php?pkg=rust-subversion&arch=arm64&ver=0.0.8-3&stamp=1744759574&raw=0

Most of the issues appear to be some pointer definition mismatch for
dirent...

#1103725#10
Date:
2025-04-21 12:31:01 UTC
From:
To:
Rust does not have a core type that is directly equivalent to the
c type char, instead it has a type alias core:ffi::c_char (also
rexported as std::ffi::c_char) which, depending on the target
platform, is an alias for either i8 or u8.

Since it's an alias, and not a fully distinct type (unlike
isize/usize which *are* distinct types) you can mix
i8 with c_char on platforms where the c char type
is signed, and mix u8 with c_char on platforms where
the c type char is unsigned, but doing so will result in
unportable code.