Repository navigation
feat(libkernel): carry chflags implementation - #4379
Conversation
|
The PR description was corrected to use the template section headings ( |
|
Title path for this one, from a Windows run (catalog build,
|
|
Rebase handoff — rebased onto current One conflict in Verified on Linux (CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release,
To pick it up: Head is |
29346d8 to
30d54e5
Compare
45d3a89 to
d9449c6
Compare
|
Windows validation with title evidence (Windows 11 Pro 26220, WinLibs MinGW-w64 GCC 15.2.0 r7, Ninja, Release, PS5MC (PPSA99420) relinked against that build: before, |
Dropped the duplicate GUEST_EOPNOTSUPP, resolved the path through ResolvePathError_nid_no_patch like chmod, mapped lookup errors with FilesystemError, and covered chflags in the parent-traversal test.
|
Title run with this PR: Windows 11, MinGW GCC 15.2.0 (WinLibs), Release. Built on
Build problem at this head ( AI-assisted (Claude Code). |
PS5MC (PPSA99420, Kodi 22) imports chflags (ixrw0h2tWuI) from libkernel.prx, one reference. Predicted stop once the imports ahead of it (pthread_getthreadid_np, sendfile, wcstok, pause, setrlimit and the termios calls) are covered (not a run): FAIL: unresolved ELF import ixrw0h2tWuI from libkernel.prx The NID is computed with tools/nid_names.py and matches aerolib. Follows FreeBSD 11.4 (8c639945a44588f6cfdddfb057bb5aad88735da0) sys/kern/vfs_syscalls.c kern_chflagsat and setfflags, and sys/ufs/ufs/ufs_vnops.c ufs_setattr, for a root caller: the lookup through the guest resolver gives EFAULT, ENOENT and ENOTDIR (also for a file reached through a trailing slash or used as a directory), a bit outside the 17 UFS flags of sys/sys/stat.h (VNOVAL included) gives EOPNOTSUPP, and SF_SNAPSHOT gives EPERM, since the snapshot flag cannot be toggled. No host keeps BSD file flags and stat reports st_flags 0, so flags 0 succeed without touching the file and any other flag throws with the flags named. UF_READONLY and the other Windows-attribute flags are not mapped to FILE_ATTRIBUTE_READONLY and its siblings: UFS stores them without enforcing them, and on Windows the read-only attribute is already the owner write bit of chmod. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 16e5b7c)
71fbc3c to
dfc9223
Compare
|
The title-run report identified a duplicate |
|
Follow-up verification on the pushed head |
What
Carries the
chflagsimplementation from issue #3632. It validates the guest path, reports missing and unsupported flag errors, rejectsSF_SNAPSHOT, and throws an explicit unsupported-host error when asked to set recognized BSD file flags that the host does not store.PPSA99420 reaches the
chflagsimport on currentmainnow that its earlier stops have merged (issue #1578). This PR carries onlychflags; the other calls from #3632 are separate changes.Tested
guest_filesystem_tests; CTestguest_filesystempassed 1/1.git diff --checkpassed on that earlier head.Checklist
main; no open PR implements the same functionchflags