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. > > Building gpsd (3.15-1) with your patch applied: > cp /home/srs/DEBs/gpsd/gpsd-3.15/gpsd.rules > /home/srs/DEBs/gpsd/gpsd-3.15/debian/gpsd.udev > cp: cannot create regular file > ‘/home/srs/DEBs/gpsd/gpsd-3.15/debian/gpsd.udev’: Permission denied
Please erase your build tree and restart the build from scratch. You probably have a remaining non-writable gpsd.udev file. > 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). Samuel