I'd post a screenshot, but:
Code: Select all
bash: cd: /home/sortie/sortix/ports/libfreetype: No such file or directory
Oh, that's odd. I just built my libfreetype port and now the source code directory has mysteriously disappeared? But- I am not,
what? I'm not deleting that anywhere! Hmm, this can be reproduced. I suppose I'll strace recursively the entire build process tree and see what process is running the unlinkat system call.
Code: Select all
execve("/bin/rm", ["rm", "-rf", "--", "/home/sortie/sortix/ports/libfreetype", [/* 63 vars */]) = 0
Right, my port build program uses a temporary directory in /tmp to store temporary things and I clean it up upon process exit, where I fork and execve rm -rf. But that code cleans up the temporary bin dir in the PATH, not the source directory! I guess I'll pull up the source code and see if I used the wrong variable.
Code: Select all
char* bindir = print_string("%s/bin", tmp_directory);
assert(bindir);
on_exit(cleanup_file_or_directory, bindir);
That's odd. I can verify that the correct temporary path is given to on_exit, the source directory is not given here, that would be impossi-
Oh-
$@!&ing $@!&!
Turns out I'm
lucky that only unimportant directories began disappearing.