Porting to other platforms -------------------------- First, determine if your OS supports the full 28 functions of the POSIX.1e draft (if so, define HAVE_LEVEL2) or only the first 11 functions (most common case, meaning only HAVE_LEVEL1). If your OS supports only LEVEL1, modift setup.py as appropriately; unfortunately, the functionality of the module is quite low. If your OS supports LEVEL2, there is a function which you must define: testing if an acl_permset_t contains a given permission. For example, under Linux, the acl library defines: int acl_get_perm(acl_permset_t permset_d, acl_perm_t perm); under FreeBSD, the library defines ``acl_get_perm_np`` with a similar syntax. So just see how this is implemented in your platform and either define a simple macro or a full function with the syntax: static int get_perm(acl_permset_t permset_d, acl_perm_t perm); which must return 1 if the permset contains perm and 0 otherwise.