 |
Canonical has been migrating some of the core components of Ubuntu from C-based programs to programs written in the Rust language. Rust is designed to avoid common memory issues (and exploits) that are often found in C code. However, when major, core components change, other types of problems can arise. As Linuxiac reports, an incompatibility was found between the GNU cp command and the Rust-based equivalent: "According to the bug report, Ubuntu briefly reinstated the Rust Coreutils version of cp in coreutils-from 0.0.0~ubuntu26. This change caused failures in livecd-rootfs, one of the packages responsible for building Ubuntu live images. The bug was labeled Critical, and the immediate solution was to restore GNU cp. The technical issue involved how uutils cp handled combinations of archive and symlink-related options, particularly cases like cp -afL. In GNU cp, the -a option is equivalent to -dR --preserve=all, which includes recursive copying and attribute preservation. The Rust implementation, however, handled some mutually exclusive flags too aggressively." |