Возвращение в Ubuntu утилиты cp из Rust Coreutils привело к сбою при сборке livecd-rootfs
Разработчики 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», используемого для сохранения прежних атрибутов в копии.
Источник: http://www.opennet.ru/opennews/art.shtml? num=65842
© OpenNet
