Orphaned as in, the data is still in the .AppleDouble folder, but won't be accessed anymore. Note, the extended attributes I am referring to are the ones created by macOS, such as the infamous "com.apple.quarantine" and other metadata. Off hand, I don't know of any applications that store important data in EAs, but this is still considered data loss. The AFP commands to manipulate them didn't show up until OS X 10.4 with AFP 3.2 (FPSetExtAttr, etc.).It is wild that such a bug was not discovered for 13 years. By orphaned, you're saying that Netatalk won't read it again, or is it still read and processed on every access?
Unfortunately many of the required packages for Ubuntu build are too new for my environment. Due to persistent breakage I do not upgrade unless forced to by cutoff of security patches. Still on Ubuntu 18.04 here. If/when I upgrade my system I'll be glad to to do some testing....
Most of this was via emulated machines, so real hardware testing is always appreciated. Get out your rare clients like an Apple IIe Workstation card (@shirsch), or AppleShare for MS-DOS and break this thing! Modern TCP/IP client testing is appreciated as well as I'm concerned about any possible regressions.
* I can't get PhoneNet PC, MacLan Connect, or Apple ][ AppleTalk to
connect to the netatalk fileserver.
Netatalk doesn't implement the entire AFP protocol. One thing it
lacks is short-filename support, which these systems require. One
would think that with Windows 95 having support for longer
filenames, it would be OK, but Mirimar still uses short file-name
calls. Use Samba for your PC's.
It is also my understanding that forking as a design decision is outdated, and that threads are superior in this era of multi-core CPUs. This is something that has indeed been on my mind ever since Apple started enforcing their anti-fork policy in Sonoma. (Bypassing the policy is not a hack per se. But Apple may revoke the policy override in a future macOS release.)Every now and then, I play around with Netatalk's source code, especially with my attempt to integrate userspace AppleTalk communication which worked with version 2, but requiring some hacks. These hacks were all related to Netatalks frequent use of fork() to generate child processes. While working around problems related to this, I got the impression that forks are somehow regarded as obsolete on macOS. Netatalk even needs some sort of hack to properly run on the latest versions of macOS (OBJC_DISABLE_INITIALIZE_FORK_SAFETY).
Have there ever been considerations to replace forks with threads or other approaches?