Binding OS-specific values and POSIX-extensions
Submitted by Michael 'Mickey' Lauer
Link to original bug (#793443)
Description
This is a meta-bug to discuss how we should handle OS-specific values in the future.
The current situation is as follows:
1.) We have posix.vapi, which is supposed to only contain values specified by POSIX. Unfortunately there is at least one (bug 686214) entity where we made a mistake.
2.) We have linux.vapi, which is supposed to contain only Linux-specific APIs. As a matter of fact though, it has been the chosen place to also add some POSIX extensions that are provided by the actual C library rather than the operating system (e.g., bug 773271).
3.) Many Vala programs work just fine on BSD and macOS and there might be a desire to add platform-specific VAPIs for those as well (e.g., bug 722201).
How should we move forward? While we, of course, should not encourage writing platform-specific programs, we should still offer it as a possibility – hence ship those VAPIs with the core Vala package.
I could imagine adding a glibc.vapi for some of the non-POSIX extensions, since they really are C library specific rather than Linux-specific. This would also mean moving bindings between different VAPI files. If we were to go this route, we need to find a good time for that, since these may break some programs.