To me, it looks like Apple played fast and loose here, changing the expected behavior of something as fundamental as "open", without even mentioning it anywhere (and if they didn't even notice their changes would affect this behavior, that's another problem).
A change like this does not just break PostgreSQL, dotnet (and thereby anything running on dotnet), VirtualBox, and whatever else was mentioned by name, it will break almost everything in subtle ways, because almost nobody ever implemented correct EINTR behavior in the context of these APIs.
Take away good software and all that's left are Apple's "shinies". If it weren't for the potential game-changer that they have with the M1, I'd almost say that they wanted to kill off the Mac as anything other than an iOS development box.
I've no idea whether the behaviour Apple introduced is allowed by the standard, but it seems that it is at least quite common to not explicitly handle this EINTR error because there is an alternative way to just tell the OS to retry instead of returning this error. So I wouldn't be so quick to claim that the downstream apps are coded improperly.
https://pubs.opengroup.org/onlinepubs/9699919799/functions/o...
https://pubs.opengroup.org/onlinepubs/9699919799/functions/r...
closedir may:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/c...
What is the point indeed.
It's a breaking change.
[1]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/s...
[2]: https://developer.apple.com/library/archive/documentation/Sy...