Files
RedBear-OS/src
vasilito 9ac798d333 fix: cookbook self-heals dangling and stale recipe source symlinks
Path-source recipes symlink recipes/<comp>/source at the local fork. The
guard used Path::exists(), which follows symlinks, so two cases silently
failed and then aborted the build with EEXIST:

  * a DANGLING symlink (left behind after the checkout moved) reports
    exists()==false, so nothing was removed;
  * a live symlink TO a directory reports true, but remove_dir_all()
    refuses to operate on a symlink and the error was swallowed by .ok().

Every core fork (relibc, kernel, base, bootloader, installer, redoxfs,
userutils) was dangling for this reason and no build could start.

force_symlink() classifies the entry with symlink_metadata() (which does
not follow the final component) and removes it correctly. It also writes
a RELATIVE link: recipe source links are committed build state that must
survive the checkout being moved or cloned to another prefix, and an
absolute link bakes in one machine's layout.

fetch_make_symlink() now repairs a same_as link whose target no longer
matches the recipe, instead of keeping it forever.
2026-08-03 09:09:37 +03:00
..
2026-07-05 22:29:19 +03:00