Dan Smith wrote:
Allow check for containers support to be done without CLONE_NEWNET,
and then
determine support on the fly by checking for iproute2 support and a
successful clone(CLONE_NEWNET). This lets us set a flag for later, as well
as not completely disable LXC support on a system without NETNS support.
The CLONE_NEWNET will fail if the network namespace is not compiled in.
I understand this check but it looks like a little random. You are not
100% sure this clone has failed because the network namespace is not
supported. That can be another subsystem or namespace which has failed
during the initialization of the namespaces.
Why don't you simply check the presence of the 'netns' process ?
Concerning iproute2, I think this is the work of the installer to check
the dependencies, eg. the libvirt rpm depends on iproute2-x.y.z version rpm.