On 2/21/23 19:04, Daniel P. Berrangé wrote:
AFAIK, libnbd/nbdkit haven't made a statement about what
platforms
they aim to target. In my response I'm more or less assuming though
that you would only care about similar modern platforms to QEMU/libvirt,
and thus POSIX conformance would not be needed in all areas. Maybe
libnbd/nbdkit want to be more explicit about what they target as
platforms to make the portability requirements clear to contributors ?
libnbd's README.md requires
* Linux, FreeBSD or OpenBSD.
Other OSes may also work but we have only tested these three.
* GCC or Clang
* GNU make
* bash
* [...]
nbdkit's requires
* Linux, macOS, Windows, FreeBSD, OpenBSD or Haiku
* GCC or Clang
* bash
* GNU make
* [...]
To me, anything beyond Linux on those OS lists is entirely untestable
*locally*, hence my reliance on POSIX. CI is a horrible way (compared to
a published technical standard) to figure out whether each individual
interface works as needed everywhere, even just across this small set of
OSes. Having to look at multiple OS manual pages is just slightly less
horrible (and I consider those less trustworthy than POSIX; see again
the conflict between the linux man pages and the glibc documentation
from GNU). The POSIX people have done *huge work* to save us that effort.
Sticking with POSIX might make us work more (as in, write technically
superfluous code), but I've always felt fewer nasty surprises are
waiting to ambush us that way.
I don't think we have documentation that describes the broadest
intersection of these OSes specifically. (We don't even have
conflict-free documentation just for Linux!)
Laszlo