[libvirt] [PATCH RFC] LXC: add HOME environment variable

We lacked of HOME environment variable, set 'HOME=/' as default. Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> --- src/lxc/lxc_container.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 1cf2c8f..9df9c04 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -236,6 +236,7 @@ static virCommandPtr lxcContainerBuildInitCmd(virDomainDefPtr vmDef, virCommandAddEnvString(cmd, "PATH=/bin:/sbin"); virCommandAddEnvString(cmd, "TERM=linux"); virCommandAddEnvString(cmd, "container=lxc-libvirt"); + virCommandAddEnvString(cmd, "HOME=/"); virCommandAddEnvPair(cmd, "container_uuid", uuidstr); if (nttyPaths > 1) virCommandAddEnvPair(cmd, "container_ttys", virBufferCurrentContent(&buf)); -- 1.9.0

ping
-----Original Message----- From: libvir-list-bounces@redhat.com [mailto:libvir-list-bounces@redhat.com] On Behalf Of Chen Hanxiao Sent: Friday, July 25, 2014 2:40 PM To: libvir-list@redhat.com Subject: [libvirt] [PATCH RFC] LXC: add HOME environment variable
We lacked of HOME environment variable, set 'HOME=/' as default.
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> --- src/lxc/lxc_container.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 1cf2c8f..9df9c04 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -236,6 +236,7 @@ static virCommandPtr lxcContainerBuildInitCmd(virDomainDefPtr vmDef, virCommandAddEnvString(cmd, "PATH=/bin:/sbin"); virCommandAddEnvString(cmd, "TERM=linux"); virCommandAddEnvString(cmd, "container=lxc-libvirt"); + virCommandAddEnvString(cmd, "HOME=/"); virCommandAddEnvPair(cmd, "container_uuid", uuidstr); if (nttyPaths > 1) virCommandAddEnvPair(cmd, "container_ttys", virBufferCurrentContent(&buf)); -- 1.9.0
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

On Tue, Aug 05, 2014 at 02:40:53AM +0000, chenhanxiao@cn.fujitsu.com wrote:
ping
-----Original Message----- From: libvir-list-bounces@redhat.com [mailto:libvir-list-bounces@redhat.com] On Behalf Of Chen Hanxiao Sent: Friday, July 25, 2014 2:40 PM To: libvir-list@redhat.com Subject: [libvirt] [PATCH RFC] LXC: add HOME environment variable
We lacked of HOME environment variable, set 'HOME=/' as default.
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> --- src/lxc/lxc_container.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 1cf2c8f..9df9c04 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -236,6 +236,7 @@ static virCommandPtr lxcContainerBuildInitCmd(virDomainDefPtr vmDef, virCommandAddEnvString(cmd, "PATH=/bin:/sbin"); virCommandAddEnvString(cmd, "TERM=linux"); virCommandAddEnvString(cmd, "container=lxc-libvirt"); + virCommandAddEnvString(cmd, "HOME=/"); virCommandAddEnvPair(cmd, "container_uuid", uuidstr); if (nttyPaths > 1) virCommandAddEnvPair(cmd, "container_ttys", virBufferCurrentContent(&buf));
I'm curious what expects to have a $HOME env var set. I'd tend to view the setting of $HOME to be something that the software in the container should take care of. Setting HOME=/ in libvirt isn't a problem, I'm just curious why we need it. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On Mon, Aug 11, 2014 at 11:13 AM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Tue, Aug 05, 2014 at 02:40:53AM +0000, chenhanxiao@cn.fujitsu.com wrote:
ping
-----Original Message----- From: libvir-list-bounces@redhat.com [mailto:libvir-list-bounces@redhat.com] On Behalf Of Chen Hanxiao Sent: Friday, July 25, 2014 2:40 PM To: libvir-list@redhat.com Subject: [libvirt] [PATCH RFC] LXC: add HOME environment variable
We lacked of HOME environment variable, set 'HOME=/' as default.
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> --- src/lxc/lxc_container.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 1cf2c8f..9df9c04 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -236,6 +236,7 @@ static virCommandPtr lxcContainerBuildInitCmd(virDomainDefPtr vmDef, virCommandAddEnvString(cmd, "PATH=/bin:/sbin"); virCommandAddEnvString(cmd, "TERM=linux"); virCommandAddEnvString(cmd, "container=lxc-libvirt"); + virCommandAddEnvString(cmd, "HOME=/"); virCommandAddEnvPair(cmd, "container_uuid", uuidstr); if (nttyPaths > 1) virCommandAddEnvPair(cmd, "container_ttys", virBufferCurrentContent(&buf));
I'm curious what expects to have a $HOME env var set. I'd tend to view the setting of $HOME to be something that the software in the container should take care of.
The kernel sets up $HOME for the init process. Therefore any init can assume that $HOME is set. libvirt currently violates that implicit rule.
Setting HOME=/ in libvirt isn't a problem, I'm just curious why we need it.
Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
-- Thanks, //richard

On Tue, Aug 12, 2014 at 11:21:41AM +0200, Richard Weinberger wrote:
On Mon, Aug 11, 2014 at 11:13 AM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Tue, Aug 05, 2014 at 02:40:53AM +0000, chenhanxiao@cn.fujitsu.com wrote:
ping
-----Original Message----- From: libvir-list-bounces@redhat.com [mailto:libvir-list-bounces@redhat.com] On Behalf Of Chen Hanxiao Sent: Friday, July 25, 2014 2:40 PM To: libvir-list@redhat.com Subject: [libvirt] [PATCH RFC] LXC: add HOME environment variable
We lacked of HOME environment variable, set 'HOME=/' as default.
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> --- src/lxc/lxc_container.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 1cf2c8f..9df9c04 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -236,6 +236,7 @@ static virCommandPtr lxcContainerBuildInitCmd(virDomainDefPtr vmDef, virCommandAddEnvString(cmd, "PATH=/bin:/sbin"); virCommandAddEnvString(cmd, "TERM=linux"); virCommandAddEnvString(cmd, "container=lxc-libvirt"); + virCommandAddEnvString(cmd, "HOME=/"); virCommandAddEnvPair(cmd, "container_uuid", uuidstr); if (nttyPaths > 1) virCommandAddEnvPair(cmd, "container_ttys", virBufferCurrentContent(&buf));
I'm curious what expects to have a $HOME env var set. I'd tend to view the setting of $HOME to be something that the software in the container should take care of.
The kernel sets up $HOME for the init process. Therefore any init can assume that $HOME is set. libvirt currently violates that implicit rule.
Ah ok, that makese sense then. ACK
Setting HOME=/ in libvirt isn't a problem, I'm just curious why we need it.
Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

-----Original Message----- On Tue, Aug 12, 2014 at 11:21:41AM +0200, Richard Weinberger wrote:
On Mon, Aug 11, 2014 at 11:13 AM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Tue, Aug 05, 2014 at 02:40:53AM +0000, chenhanxiao@cn.fujitsu.com wrote:
ping
-----Original Message----- From: libvir-list-bounces@redhat.com [mailto:libvir-list-bounces@redhat.com] On Behalf Of Chen Hanxiao Sent: Friday, July 25, 2014 2:40 PM To: libvir-list@redhat.com Subject: [libvirt] [PATCH RFC] LXC: add HOME environment variable
We lacked of HOME environment variable, set 'HOME=/' as default.
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> --- src/lxc/lxc_container.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 1cf2c8f..9df9c04 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -236,6 +236,7 @@ static virCommandPtr lxcContainerBuildInitCmd(virDomainDefPtr vmDef, virCommandAddEnvString(cmd, "PATH=/bin:/sbin"); virCommandAddEnvString(cmd, "TERM=linux"); virCommandAddEnvString(cmd, "container=lxc-libvirt"); + virCommandAddEnvString(cmd, "HOME=/"); virCommandAddEnvPair(cmd, "container_uuid", uuidstr); if (nttyPaths > 1) virCommandAddEnvPair(cmd, "container_ttys", virBufferCurrentContent(&buf));
I'm curious what expects to have a $HOME env var set. I'd tend to view the setting of $HOME to be something that the software in the container should take care of.
The kernel sets up $HOME for the init process. Therefore any init can assume that $HOME is set. libvirt currently violates that implicit rule.
Ah ok, that makese sense then. ACK
Could anyone help to push this patch according to Dan's ACK? Thanks, - Chen
Setting HOME=/ in libvirt isn't a problem, I'm just curious why we need it.
Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On 09/04/2014 03:58 AM, Chen, Hanxiao wrote:
The kernel sets up $HOME for the init process. Therefore any init can assume that $HOME is set. libvirt currently violates that implicit rule.
Ah ok, that makese sense then. ACK
Could anyone help to push this patch according to Dan's ACK?
Done, after amending the commit message to include Richard's summary of why it is important. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On Fri, Jul 25, 2014 at 8:39 AM, Chen Hanxiao <chenhanxiao@cn.fujitsu.com> wrote:
We lacked of HOME environment variable, set 'HOME=/' as default.
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> --- src/lxc/lxc_container.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 1cf2c8f..9df9c04 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -236,6 +236,7 @@ static virCommandPtr lxcContainerBuildInitCmd(virDomainDefPtr vmDef, virCommandAddEnvString(cmd, "PATH=/bin:/sbin"); virCommandAddEnvString(cmd, "TERM=linux"); virCommandAddEnvString(cmd, "container=lxc-libvirt"); + virCommandAddEnvString(cmd, "HOME=/"); virCommandAddEnvPair(cmd, "container_uuid", uuidstr); if (nttyPaths > 1) virCommandAddEnvPair(cmd, "container_ttys", virBufferCurrentContent(&buf));
Looks sane to me. Reviewed-by: Richard Weinberger <richard@nod.at> -- Thanks, //richard
participants (6)
-
Chen Hanxiao
-
Chen, Hanxiao
-
chenhanxiao@cn.fujitsu.com
-
Daniel P. Berrange
-
Eric Blake
-
Richard Weinberger