fix: uutils-tar build + ncurses patch for ncurses-6.6

uutils-tar (WIP recipe):
- Pin to commit 8ecd8e0 (rust-version 1.85.0, compatible with our
  nightly-2025-10-03 toolchain)
- Fix nix-0.30.1 Redox bug: SaFlags_t declared as c_ulong but libc-0.2.184
  defines SA_*/sa_flags as c_int. Patch SaFlags_t to c_int.
- Enable nix pty module for Redox (relibc has all POSIX PTY functions)
- Add forkpty to libc-0.2.184 Redox module (relibc's pty.h defines it
  but libc crate doesn't expose it)

ncurses:
- Remove obsolete first hunk from redox.patch (cf_includedir lines
  already removed in ncurses-6.6). Keep second hunk (redox* platform
  detection).
This commit is contained in:
2026-06-19 03:35:28 +03:00
parent 121ad07561
commit 28b9621f17
2 changed files with 42 additions and 12 deletions
+1 -10
View File
@@ -1,15 +1,6 @@
diff -ruwN source/configure source-new/configure
--- source/configure 2022-11-06 04:13:26.000000000 +0700
+++ source-new/configure 2026-02-17 13:42:38.449890407 +0700
@@ -3480,8 +3480,6 @@
echo $ECHO_N "checking if $CXX works... $ECHO_C" >&6
save_CPPFLAGS="$CPPFLAGS"
- eval cf_includedir=${includedir}
- CPPFLAGS="$CPPFLAGS -I${cf_includedir}"
cat >"conftest.$ac_ext" <<_ACEOF
#line 3487 "configure"
+++ source-new/configure 2026-06-19 00:00:00.000000000 +0700
@@ -6386,7 +6384,7 @@
fi
cf_cv_rm_so_locs=yes
+41 -2
View File
@@ -1,6 +1,45 @@
#TODO not compiled or tested
[source]
git = "https://github.com/uutils/tar"
shallow_clone = true
rev = "8ecd8e0bfde251de26df450efcec2da45135af9c"
[build]
template = "cargo"
template = "custom"
script = """
DYNAMIC_INIT
# nix-0.30.1 has three Redox bugs:
# 1. SaFlags_t is c_ulong (u64) but libc-0.2.184 defines SA_* and sa_flags
# as c_int (i32). Fix: change SaFlags_t to c_int for Redox.
# 2. The pty module is excluded for Redox (cfg(not(any(redox, fuchsia)))),
# but relibc now has all POSIX PTY functions. Fix: remove Redox exclusion.
# 3. libc-0.2.184 doesn't expose forkpty for Redox, but relibc's pty.h
# defines it. Fix: add forkpty declaration to libc Redox module.
for nix_src in /home/kellito/.cargo/registry/src/*/nix-0.30.1; do
if [ -f "$nix_src/src/sys/signal.rs" ]; then
# Fix 1: SaFlags_t type mismatch
sed -i 's/type SaFlags_t = libc::c_ulong;/type SaFlags_t = libc::c_int;/' \
"$nix_src/src/sys/signal.rs"
fi
if [ -f "$nix_src/src/lib.rs" ]; then
# Fix 2: Enable pty module for Redox
sed -i 's/#\\[cfg(not(any(target_os = "redox", target_os = "fuchsia")))\\]/#[cfg(not(target_os = "fuchsia"))]/' \
"$nix_src/src/lib.rs"
fi
done
# Fix 3: Add forkpty to libc Redox module (relibc's pty.h defines it)
for libc_src in /home/kellito/.cargo/registry/src/*/libc-0.2.184; do
if [ -f "$libc_src/src/unix/redox/mod.rs" ] && ! grep -q 'pub fn forkpty' "$libc_src/src/unix/redox/mod.rs"; then
sed -i '/pub fn login_tty(fd: c_int) -> c_int;/a\\
pub fn forkpty(\\
amaster: *mut c_int,\\
name: *mut c_char,\\
termp: *const termios,\\
winp: *const crate::winsize,\\
) -> c_int;' \
"$libc_src/src/unix/redox/mod.rs"
fi
done
cookbook_cargo
"""