Part of the conversation here could be side-stepped by introducing per-platform meta.maintainers. Let’s ignore the implementation details for now and assume that each package has a set of maintainers, that map to various platforms.
We can then use that information to declare if a package is supported for a given platform. If it’s unsupported, it doesn’t become a release blocker. If it annoys you, then become a maintainer of the package!
If we forget about macOS for a minute and think of Risc5 or other interesting architectures, the same problem exists there; not everybody has access to those machines. And the x86_64-linux maintainer might not want to wait on the Risc5 guy to come around. So I believe some mechanism like that is needed anyways.
Another benefit is that it gives users a better picture of which package is supported for which platform. And also encourages their participation if they see a package they like that isn’t supported on their platform.
A problem prefiguring this, though, is that being a package maintainer is neither a responsibility nor a privilege as things stand currently. (I believe there is already an endless discourse thread on this, so hopefully I’ve not re-lit that particular dumpster fire…)
For what it’s worth, the Darwin stdenv rework PR is up. It includes changes to the open-source CoreFoundation to no longer link libcurl. It’s not possible to drop curl from the Darwin stdenv bootstrap completely (because too many things use fetchFromGitHub, unfortunately), but it simplifies the build and should hopefully make changes to curl less painful (because it never makes it to the final stdenv and won’t trip the allowedRequisites check). It should be possible to revert the SystemConfiguration patch once the PR is merged. (I mention this because several curl issues were cited in the Darwin demotion RFC.)
It makes contributing to Nix harder for new comers that don’t own a Darwin machine, for example my first contribution was a Graphical Program that should be supported by Mac and Linux but failed to build on Mac and not having any way of debugging this is really frustrating.
All you can be expected to do as a Linux package maintainer is this:
platforms = linux ++ darwin;
broken = stdenv.isDarwin;
Leave it to a Darwin person to do the Darwin stuff. Reach out to the darwin people (i.e. ping @darwin-maintainers), wait a few days and if noone answers your call, broken = stdenv.isDarwin; it is.
By “do that” you mean write such a remote builder it or use it if it already exists? See the equivalent for darwin maintainers: Nixpkgs 24.05 manual | Nix & NixOS.