Rust Coreutils cp Ended Up Breaking Ubuntu Image Builds With Latest Incompatibility
([Ubuntu] 3 Hours Ago
Rust Coreutils cp)
- Reference: 0001644502
- News link: https://www.phoronix.com/news/Rust-Coreutils-cp-Ubuntu-Images
- Source link:
While the Rust Coreutils offers better memory safety than GNU Coreutils due to being written in the Rust programming language, subtle incompatibilities continue to be spotted in the Rust Coreutils implementations of the different commands. The latest coming to light this week was the Rust Coreutils cp command breaking Ubuntu image builds due to differences in argument handling.
Most kinks have been worked out in Rust Coreutils for compatibility differences with GNU Coreutils since [1]the Rust Coreutils transition in Ubuntu 25.10 last year. There was [2]breakage with some executables , [3]performance shortcomings , and [4]breaking unattended upgrades on Ubuntu . It's been some weeks/months since last hearing about any Rust Coreutils troubles on Ubuntu, especially following the Ubuntu 26.04 LTS release. But this week another notable issue was uncovered that led to Ubuntu reverting back to the GNU Coreutils version of the copy (cp) command.
Per [5]this Launchpad bug report that ended up marking it as a "critical" issue, a bug in how Rust Coreutils' cp command handled the "-L" argument led to Ubuntu image builds failing for Ubuntu live media ISO construction.
There was some suggestions raised of changing the Ubuntu build script instead to avoid reverting back to GNU Coreutils:
"If I may add, if we revert back (and keep reverting) we may not be able to catch such (edge-case) issues. We came to know only because the builds failed. Instead, we can consider patching 'config'(https://git.launchpad.net/livecd-rootfs/tree/live-build/auto/config) file. The combination cp -afL is used in only one place. May be we can change it to something like cp -RL --preserve=all $entry config/? I checked locally and it works."
But in the end, the latest Ubuntu coreutils-from package update has reverted cp back to the GNU Coreutils version as had been also done before due to other bugs.
A fix has been [6]proposed upstream to Rust Coreutils to fix the cp handling but as of writing has yet to be merged.
[1] https://www.phoronix.com/news/Rust-Coreutils-Release-Pocket
[2] https://www.phoronix.com/news/Ubuntu-25.10-Coreutils-Makeself
[3] https://www.phoronix.com/news/Ubuntu-Rust-Coreutils-Perf
[4] https://www.phoronix.com/news/Ubuntu-25.10-Broken-Upgrade
[5] https://bugs.launchpad.net/ubuntu/+source/coreutils-from/+bug/2158691
[6] https://github.com/uutils/coreutils/pull/13258
Most kinks have been worked out in Rust Coreutils for compatibility differences with GNU Coreutils since [1]the Rust Coreutils transition in Ubuntu 25.10 last year. There was [2]breakage with some executables , [3]performance shortcomings , and [4]breaking unattended upgrades on Ubuntu . It's been some weeks/months since last hearing about any Rust Coreutils troubles on Ubuntu, especially following the Ubuntu 26.04 LTS release. But this week another notable issue was uncovered that led to Ubuntu reverting back to the GNU Coreutils version of the copy (cp) command.
Per [5]this Launchpad bug report that ended up marking it as a "critical" issue, a bug in how Rust Coreutils' cp command handled the "-L" argument led to Ubuntu image builds failing for Ubuntu live media ISO construction.
There was some suggestions raised of changing the Ubuntu build script instead to avoid reverting back to GNU Coreutils:
"If I may add, if we revert back (and keep reverting) we may not be able to catch such (edge-case) issues. We came to know only because the builds failed. Instead, we can consider patching 'config'(https://git.launchpad.net/livecd-rootfs/tree/live-build/auto/config) file. The combination cp -afL is used in only one place. May be we can change it to something like cp -RL --preserve=all $entry config/? I checked locally and it works."
But in the end, the latest Ubuntu coreutils-from package update has reverted cp back to the GNU Coreutils version as had been also done before due to other bugs.
A fix has been [6]proposed upstream to Rust Coreutils to fix the cp handling but as of writing has yet to be merged.
[1] https://www.phoronix.com/news/Rust-Coreutils-Release-Pocket
[2] https://www.phoronix.com/news/Ubuntu-25.10-Coreutils-Makeself
[3] https://www.phoronix.com/news/Ubuntu-Rust-Coreutils-Perf
[4] https://www.phoronix.com/news/Ubuntu-25.10-Broken-Upgrade
[5] https://bugs.launchpad.net/ubuntu/+source/coreutils-from/+bug/2158691
[6] https://github.com/uutils/coreutils/pull/13258