|
Разработчики Ubuntu вернули вариант утилиты cp из набора GNU Coreutils после выявления несовместимости в реализации cp из состава Rust Coreutils, из-за которой стал завершаться ошибкой скрипт для сборки Live-образов (livecd-rootfs).
В релизе Ubuntu 24.04 из-за выявленных уязвимостей были возвращены утилиты cp, mv и rm из GNU Coreutils, но в обновлении пакета coreutils-from-uutils 0.0.0~ubuntu26 было возобновлено использование утилит из набора Rust Coreutils. Проблема возникла из-за вызова в сборочном скрипте утилиты cp с опциями "-afL", которые нормально обрабатывались в GNU Coreutils, но в Rust Coreutils привели к возвращению ошибки "cp: -r not specified; omitting directory <dir-name>".
Ошибка возникала из-за иного поведения при обработке конфликтующих между собой опций "-L" и "-a". Опция "-L" предписывает разыменовывать символические ссылки, в то время как составная опция "-a", заменяемая на "-dR --preserve=all", содержит опцию "-d", запрещающую разыменование символических ссылок. В Rust Coreutils составная опция "-a" отбрасывалась целиком вместо отдельного удаления конфликтующего флага "-d", что приводило к пропаданию флага "-R", необходимого для рекурсивного копирования директорий, а также флага "--preserve=all", используемого для сохранения прежних атрибутов в копии.
|