When a destination file doesn't exist, the previous implementation couldn't distinguish between creation failure due to existing files vs other reasons. If both opening and creating fail, the destination is definitely a broken symlink. - Add recursive symlink resolution with depth limit (32) in create_destination_file() - Use O_NOFOLLOW to detect symlink during file creation - When creation fails with ELOOP, read symlink target and recursively create it - Replace filesystem functions with internal utils for consistent error handling - Add proper broken symlink detection and resolution logic This ensures mount destinations work correctly even when they point to broken symlinks, by creating the missing target files in the symlink chain. Signed-off-by: ComixHe <ComixHe1895@outlook.com> |
||
|---|---|---|
| .github/workflows | ||
| .obs | ||
| LICENSES | ||
| app/ll-box/src | ||
| cmake | ||
| cmake.external | ||
| external | ||
| src/linyaps_box | ||
| tests | ||
| tools | ||
| .clang-format | ||
| .cmake-format.py | ||
| .deepsource.toml | ||
| .editorconfig | ||
| .gitignore | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| LICENSE | ||
| README.md | ||
| README.zh_CN.md | ||
| REUSE.toml | ||
README.md
linyaps-box
**en** | [zh_CN](./README.zh_CN.md)
This project is a simple OCI runtime mainly used by linyaps, which is a toolkit for Linux desktop application distributing.
Build
It is recommend to use cmake-presets:
cmake --workflow --preset=dev
License
This project is licensed under LGPL-3.0-or-later.