NetBSD has a compatibility layer to Linux' xattr API: https://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/sys/xattr.h (w/ no access to the system namespace, whatever that's used for)
* Support for file system extended attributes.
* This provides an interface that is compatible with Linux's extended
* attribute support. These calls operate on the same extended attributes
* as <sys/extattr.h>, but access only the "user" namespace.
The native mechanism is sys/extattr.h - this then also allows access to the system namespace.
Edit: In fact, it seems that NetBSD's extattr API is identical to FreeBSD's. So this might just be a matter of adding "netbsd" in xattr to the platform check.
Note: OpenBSD has neither ACLs nor xattrs.
Can't get it to work, neither do the command line utilities (listextattr(1) etc). Everything's a EOPNOTSUP, independent of file system (FFS, UDF, ext2fs). Looking at the kernel code and config it should work with at least FFS and UDF (after initattr etc)
If someone uses NetBSD and Borg, feel free to test it whether it actually works (db6ce48)
elif sys.platform.startswith(('freebsd', 'netbsd')):
"whether it actually works" <-- (if you run the tests and the one test in src/borg/testsuite/xattr passes and is not skipped - then it works)