On Mon, 2015-10-12 at 14:49 +0200, Samuel Thibault wrote: > Svante Signell, le Mon 12 Oct 2015 14:45:09 +0200, a écrit : > > On Mon, 2015-10-12 at 02:08 +0200, Samuel Thibault wrote: > > > The commit I have just pushed, which does make sense, does fix gpsd at > > > least.
> Please erase your build tree and restart the build from scratch. You > probably have a remaining non-writable gpsd.udev file. Yes, I had forgotten to remove it. Thanks! > > Since the packages I've built builds fine using the condition below: > > if (file != MACH_PORT_NULL && (nn->openmodes & newmodes)) > > please explain what is wrong with it and why it works while your does > > not? > > I have explained at length how the function is supposed to behave in > my previous mail. Your proposed change does not meet what I said. > Notably, in the nn->openmodes = O_READ and newmodes = O_WRITE case, > it'll be wrong: nn->openmodes & newmodes will be zero, and thus the > 'file' port will be used as such, but it will not have O_WRITE mode! > Subsequent writes to the file will then fail (and if they don't, that's > another bug to be fixed). OK I buy your explanation; though there seems to be remaining bugs.