Bruno Haible wrote: > On an NFSv3 file system on Solaris 10 a gettext fails during qset_acl: > > msgmerge: preserving permissions for `mm-u-2.po~': Operation not supported on > transport endpoint > FAIL: msgmerge-update-2 > > This fixes it. > > > 2009-08-30 Bruno Haible <br...@clisp.org> > > Fix an unnecessary error on Solaris 10 on NFSv3 file systems. > * lib/set-mode-acl.c (qset_acl) [Solaris 10 new]: Treat EOPNOTSUPP like > ENOSYS. > > --- lib/set-mode-acl.c.orig 2009-08-31 00:48:33.000000000 +0200 > +++ lib/set-mode-acl.c 2009-08-31 00:21:09.000000000 +0200 > @@ -234,7 +234,7 @@ > acl_free (aclp); > if (ret < 0) > { > - if (saved_errno == ENOSYS) > + if (saved_errno == ENOSYS || saved_errno == EOPNOTSUPP) > return chmod_or_fchmod (name, desc, mode); > errno = saved_errno; > return -1;
I was wondering about this general issue a couple of days ago when pondering: http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=2bc0f3c At the application level we often want to check for this "not supported" condition while not caring where the failure occurred. I.E. I was wondering whether apps should usually be calling something like: bool not_supported (int error) { switch (error) { case ENOSYS: /* Function not implemented */ case EOPNOTSUPP: /* Operation not supported */ case ENOTSUP: /* Operation not supported */ case ENOTTY: /* Inappropriate ioctl for device */ return true; default: return false; } } cheers, Pádraig.