On Mon, Aug 23, 2004 at 06:50:14PM -0400, Joshua Brindle wrote:
Greg KH wrote:
>Please fix that patch up to:
> - not have any ifdef in the .c files
> - use the proper coding style
> - use the same convention as the other build flags have.
>
>Actually, what was wrong with the older selinux support in udev that was
>there? Why not just dig that stuff up and see if it works or not (I bet
>it does...) If so, I'll be glad to add it back in, it's just that too
>many people complained about it when it was in there...
>
>
Who complained and why? When selinux support wasn't built in the
functions were just stubs, how could that have possibly had any effect
whatsoever on anyone else?
there was a bugreport on
debian.org complaining about the d-bus support
which took ONE SECOND per inode created (most probably due to poor
design of d-bus, e.g. not having a prefork'd server like apache does)
due to the multi-exe design of udev (udevd, udev, udevsend) it is quite
difficult to maintain persistent network or socket connections such
that both d-bus and libselinux1 "cacheing" can be taken advantage of.
[libselinux1 does cacheing of file context lookups - this can only
be taken advantage of IF you use a single process, of course - and
udevsend is only given ONE device name to create, and then it exits]
consequently, d-bus support was ripped out and disabled.
and it looks like the selinux support, which wasn't very good anyway,
was also removed and turned into a script that ran "restorecon"
post-inode creation, see /etc/udev.d/default/selinux.
If you could, please paste a patch from the older version so that we
can
see here whether it should work right (it's possible that the libselinux
api changed between then and now)
udev-0.024 was the last version containing selinux support, i had to
track it down.
iirc:
1) it used setfilecon() not setfscreatecon().
2) it ONLY set the permissions on the inode NOT on any symlinks and NOT
on any directories or subdirectories created.
the patch i created is at least an attempt to GetThingsWorking(tm).
if time REALLY IS a major concern:
what _should_ be done is that udev (or udevd) should be patched to
popen("setfiles -q -s", "w") and then when each device inode is
created (and a udevsend is exec'd to do it), the filename of the
device inode is ALSO sent down the pipe to setfiles.
i say should, what i mean is, this is the most non-nasty solution
with the tools and options presently available.
if the file_contexts stuff was somehow pre-munged and
transferred into kernel, and the regexp matching code (or
something similar) was _also_ transferred into the kernel,
then this problem would go away.
l.
--
--
Truth, honesty and respect are rare commodities that all spring from
the same well: Love. If you love yourself and everyone and everything
around you, funnily and coincidentally enough, life gets a lot better.
--
<a href="http://lkcl.net">
lkcl.net </a> <br />
<a href="mailto:lkcl@lkcl.net"> lkcl(a)lkcl.net </a> <br />