[ATrpms-users] Question about SELinux and nvidia packaging

Harry Orenstein holists at verizon.net
Sun Apr 27 08:31:20 CEST 2008


Axel,

I don't know if this is strictly an issue to take up here but, if you feel I 
should take this elsewhere, please let me know.

I infrequently get the following error on boot when mythbackend starts up:

/usr/bin/mythbackend: error while loading shared 
libraries: /usr/lib/nvidia-graphics-169.12/libGLcore.so.1: cannot restore 
segment prot after reloc: Permission denied

Now, I'm not sure why mythbackend has to use the nvidia libs since it doesn't 
generate any output, but that doesn't seem to be a question to ask here.  I 
did some googling, and the best I can tell is that this happens when the 
context of the indicated lib is not set correctly.

The file is a symlink to libGLcore.so.169.12.  The symlink has a context 
different than the context set by the policy file for other nvidia files 
(textrel_shlib_t) because symlinks are not set in the policy.  I assume 
they're not expected because symlinks would not be set up by a standard 
installation of the nvidia drivers.

My idea for a solution is to duplicate the policy's context entry for 
libGLcore, which only sets regular files (--), as a local policy and set it 
for symlinks (-l).  The error happens infrequently enough that I have not yet 
been able to tell if it works (no error.. yet).

Would it be possible to add an semanage command to the packaging for the 
nvidia driver?  Something like:

/usr/sbin/semanage fcontext -a -f -l -t 
textrel_shlib_t "/usr/lib(64)?/nvidia-graphics(-[^/]*/)?libGL(core)?\.so(\.
[^/]*)*"

Would it cause a problem if multiple versions of the nvidia driver were 
installed (adding the local context via semanage might throw an error if it 
already exists).

Hope my explanation makes some sense.  Any thoughts on this would be welcome.  
TIA!!


-- Harry O.



More information about the atrpms-users mailing list