Ubuntu inkişaf etdiriciləri Rust Coreutils-dən cp utilitinin icrasında uyğunsuzluq aşkarlandıqdan sonra GNU Coreutils dəstindən cp utilitinin variantını geri qaytardılar ki, bu da Live-şəkillərin (livecd-rootfs) yığılmasında xətaya səbəb oldu.
Ubuntu 24.04 buraxılışında aşkar edilmiş zəifliklər səbəbindən GNU Coreutils-dən cp, mv və rm utilitləri geri qaytarıldı, amma coreutils-from-uutils 0.0.0~ubuntu26 paketinin yeniləməsində Rust Coreutils dəstindən olan utilitlərin istifadəsi bərpa edildi. Problem, cp utilitinin «-afL» seçimləri ilə çağırılması ilə bağlı oldu, bu seçimlər GNU Coreutils-də normal işləyirdi, lakin Rust Coreutils-də «cp: -r not specified; omitting directory » xətası ilə nəticələndi.
Xəta, «-L» və «-a» arasında bir-biri ilə münaqişədə olan seçimlərin emalında fərqli davranışdan irəli gəldi. «-L» seçimi simvolik bağlantıların de-referencing edilməsini tələb edir, eyni zamanda «-a» seçimdən ibarət olan tərkibdəki seçim isə «-dR —preserve=all» olub, «-d» seçimini əhatə edir ki, bu da simvolik bağlantıların de-referencing edilməsini qadağan edir. Rust Coreutils-də tərkibdəki «-a» tamamilə atıldı, yerinə isə münaqişəli «-d» seçiminin silinməsi lazım idi, bu da «-R» seçiminin itirilməsinə və rekurziv direktoriyaların kopyalanması üçün lazım olan «—preserve=all» seçiminin itkisinə səbəb oldu.
Mənbə: opennet.ru
