Die Entwickler von Ubuntu haben die cp-Utility aus dem GNU Coreutils-Paket zurückgebracht, nachdem eine Inkompatibilität in der Implementierung des cp-Kommandos aus den Rust Coreutils festgestellt wurde, die dazu führte, dass das Skript zum Erstellen von Live-Images (livecd-rootfs) mit einem Fehler abbrach.
In der Ubuntu-Version 24.04 wurden aufgrund von festgestellten Sicherheitsanfälligkeiten die Kommandos cp, mv und rm aus den GNU Coreutils zurückgebracht. Im Update des Pakets coreutils-from-uutils 0.0.0~ubuntu26 wurde jedoch die Nutzung der Kommandos aus den Rust Coreutils wieder aufgenommen. Das Problem trat auf, weil im Build-Skript das cp-Kommando mit den Optionen „-afL“ aufgerufen wurde, die in den GNU Coreutils korrekt verarbeitet wurden, in den Rust Coreutils jedoch zu dem Fehler „cp: -r not specified; omitting directory “ führten.
Der Fehler trat aufgrund eines unterschiedlichen Verhaltens beim Verarbeiten der sich konfligierenden Optionen „-L“ und „-a“ auf. Die Option „-L“ verlässt sich auf das Auflösen symbolischer Links, während die kombinierte Option „-a“, die durch „-dR —preserve=all“ ersetzt wird, die Option „-d“ enthält, die das Auflösen symbolischer Links verbietet. In Rust Coreutils wurde die kombinierte Option „-a“ vollständig verworfen, anstatt das konfliktbehaftete Flag „-d“ einzeln zu entfernen, was dazu führte, dass das Flag „-R“, das für das rekursive Kopieren von Verzeichnissen erforderlich ist, sowie das Flag „—preserve=all“, das verwendet wird, um die alten Attribute in der Kopie zu erhalten, verloren gingen.
Quelle: opennet.ru
