mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
Explicitly pass uml_dir argument to user-mode-linux
uml_dir overrides user-mode-linux's default of ~/.uml. This is needed for a couple of different reasons: libvirt expects this to default to virGetUserDirectory(geteuid()) + '/.uml'. However, user-mode-linux actually uses the HOME environment variable to determine where to look for the uml sockets, but if running libvirtd under sudo (which I routinely do during development), $HOME is pointing at my user's homedir, while my euid is 0, so libvirt looks in /root. Also (and this was my actual motivation for this patch), if HOME isn't set at all, user-mode-linux utterly fails. Looking at the code, it seems it's meant to emit a warning, but alas, it doesn't for some reason. If running libvirtd from upstart, HOME is not set, so any system using upstart will need this change. Signed-off-by: Soren Hansen <soren@linux2go.dk>
This commit is contained in:
parent
deaa9e3ebd
commit
0a58eed3d9
@ -409,7 +409,7 @@ static char *umlNextArg(char *args)
|
||||
* for a given virtual machine.
|
||||
*/
|
||||
int umlBuildCommandLine(virConnectPtr conn,
|
||||
struct uml_driver *driver ATTRIBUTE_UNUSED,
|
||||
struct uml_driver *driver,
|
||||
virDomainObjPtr vm,
|
||||
fd_set *keepfd,
|
||||
const char ***retargv,
|
||||
@ -499,7 +499,6 @@ int umlBuildCommandLine(virConnectPtr conn,
|
||||
ADD_ENV_COPY("LD_PRELOAD");
|
||||
ADD_ENV_COPY("LD_LIBRARY_PATH");
|
||||
ADD_ENV_COPY("PATH");
|
||||
ADD_ENV_COPY("HOME");
|
||||
ADD_ENV_COPY("USER");
|
||||
ADD_ENV_COPY("LOGNAME");
|
||||
ADD_ENV_COPY("TMPDIR");
|
||||
@ -508,6 +507,7 @@ int umlBuildCommandLine(virConnectPtr conn,
|
||||
//ADD_ARG_PAIR("con0", "fd:0,fd:1");
|
||||
ADD_ARG_PAIR("mem", memory);
|
||||
ADD_ARG_PAIR("umid", vm->def->name);
|
||||
ADD_ARG_PAIR("uml_dir", driver->monitorDir);
|
||||
|
||||
if (vm->def->os.root)
|
||||
ADD_ARG_PAIR("root", vm->def->os.root);
|
||||
|
Loading…
x
Reference in New Issue
Block a user