]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
10 years agouse same ifndef/define format for all headers
S.Çağlar Onur [Fri, 9 May 2014 03:51:07 +0000 (23:51 -0400)]
use same ifndef/define format for all headers

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: detect whether cgmanager supports name= subsystems
Serge Hallyn [Thu, 8 May 2014 17:23:53 +0000 (12:23 -0500)]
cgmanager: detect whether cgmanager supports name= subsystems

On older cgmanager the support was broken.  So rather than
fail container starts altogether, just keep the old lxc behavior
in this case by not using name= subsystems.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Fix Japanese lxc.container.conf(5)
KATOH Yasufumi [Thu, 8 May 2014 09:04:55 +0000 (18:04 +0900)]
doc: Fix Japanese lxc.container.conf(5)

commit aafea1f was incomplete.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agopython3: remove assert since hwaddr isn't set by the download template
Dwight Engen [Wed, 7 May 2014 13:52:00 +0000 (09:52 -0400)]
python3: remove assert since hwaddr isn't set by the download template

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoinstall lxc-patch.py 644 to fix rpmlint warning
Dwight Engen [Wed, 7 May 2014 11:52:17 +0000 (07:52 -0400)]
install lxc-patch.py 644 to fix rpmlint warning

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoarchlinux template: added sigpwr handling to systemd (lxc-stop)
Edvinas Klovas [Sat, 3 May 2014 17:15:36 +0000 (19:15 +0200)]
archlinux template: added sigpwr handling to systemd (lxc-stop)

archlinux is using systemd and systemd's configuration does not have any
services setup to handle sigpwr hook which is sent by lxc-stop command. By
enabling sigpwr service we make sure that lxc-stop will work.

Signed-off-by: Edvinas Klovas <edvinas@pnd.io>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: use absolute cgroup path to switch cgroups at attach
Serge Hallyn [Thu, 1 May 2014 20:27:55 +0000 (15:27 -0500)]
cgmanager: use absolute cgroup path to switch cgroups at attach

If an unprivileged user does 'lxc-start -n u1' in one
login session, followed by 'lxc-attach -n u1' in another
session, the attach will fail if the sessions are in different
cgroups.  The same is true of lxc-cgroup commands.

Address this by using the GetPidCgroupAbs and MovePidAbs
which work with the containers' cgroup path relative to
the cgproxy.

Since GetPidCgroupAbs is new to api version 3 in cgmanager,
use the old method if we are on an older cgmanager.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Tested-by: "S.Çağlar Onur" <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: also handle named subsystems (like name=systemd)
Serge Hallyn [Fri, 2 May 2014 18:36:32 +0000 (13:36 -0500)]
cgmanager: also handle named subsystems (like name=systemd)

Read /proc/self/cgroup instead of /proc/cgroups, so as to catch
named subsystems.  Otherwise the contaienrs will not be fully
moved into the container cgroups.

Also free line which was being leaked.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agobtrfs: support unprivileged destroy
Serge Hallyn [Tue, 6 May 2014 21:43:19 +0000 (21:43 +0000)]
btrfs: support unprivileged destroy

Do this by calling the bdev->destroy() hook from a user namespace
configured as the container's.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agobtrfs: support unprivileged create and clone
Serge Hallyn [Tue, 6 May 2014 20:50:45 +0000 (20:50 +0000)]
btrfs: support unprivileged create and clone

btrfs subvolume ioctls are usable by unprivileged users, so allow
unprivileged containers to reside on btrfs.

This patch does not yet enable destroy.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocorrect license on file to LGPL vs. GPL and fix address
Dwight Engen [Tue, 6 May 2014 20:12:00 +0000 (16:12 -0400)]
correct license on file to LGPL vs. GPL and fix address

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agodoc: Update lxc.container.conf(5) for improving lxc.mount.auto
KATOH Yasufumi [Tue, 6 May 2014 17:05:14 +0000 (02:05 +0900)]
doc: Update lxc.container.conf(5) for improving lxc.mount.auto

Update for commit 0769b82

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agodoc: Update Japanese lxc.container.conf(5) for mounting /sys/fs/cgroup rw
KATOH Yasufumi [Tue, 6 May 2014 17:05:13 +0000 (02:05 +0900)]
doc: Update Japanese lxc.container.conf(5) for mounting /sys/fs/cgroup rw

Update for commit b46f055

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc.mount.auto: improve defaults for cgroup and cgroup-full
Christian Seiler [Sat, 3 May 2014 18:57:46 +0000 (20:57 +0200)]
lxc.mount.auto: improve defaults for cgroup and cgroup-full

If the user specifies cgroup or cgroup-full without a specifier (:ro,
:rw or :mixed), this changes the behavior. Previously, these were
simple aliases for the :mixed variants; now they depend on whether the
container also has CAP_SYS_ADMIN; if it does they resolve to the :rw
variants, if it doesn't to the :mixed variants (as before).

If a container has CAP_SYS_ADMIN privileges, any filesystem can be
remounted read-write from within, so initially mounting the cgroup
filesystems partially read-only as a default creates a false sense of
security. It is better to default to full read-write mounts to show the
administrator what keeping CAP_SYS_ADMIN entails.

If an administrator really wants both CAP_SYS_ADMIN and the :mixed
variant of cgroup or cgroup-full automatic mounts, they can still
specify that explicitly; this commit just changes the default without
specifier.

Signed-off-by: Christian Seiler <christian@iwakd.de>
Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoFactor out capability parsing logic
Christian Seiler [Sat, 3 May 2014 18:57:45 +0000 (20:57 +0200)]
Factor out capability parsing logic

Currently, setup_caps and dropcaps_except both use the same parsing
logic for parsing capabilities (try to identify by name, but allow
numerical specification). Since this is a common routine, separate it
out to improve maintainability and reuseability.

Signed-off-by: Christian Seiler <christian@iwakd.de>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocgfs: don't mount /sys/fs/cgroup readonly
Christian Seiler [Sat, 3 May 2014 18:57:44 +0000 (20:57 +0200)]
cgfs: don't mount /sys/fs/cgroup readonly

Ubuntu containers have had trouble with automatic cgroup mounting that
was not read-write (i.e. lxc.mount.auto = cgroup{,-full}:{ro,mixed}) in
containers without CAP_SYS_ADMIN. Ubuntu's mountall program reads
/lib/init/fstab, which contains an entry for /sys/fs/cgroup. Since
there is no ro option specified for that filesystem, mountall will try
to remount it readwrite if it is already mounted. Without
CAP_SYS_ADMIN, that fails and mountall will interrupt boot and wait for
user input on whether to proceed anyway or to manually fix it,
effectively hanging container bootup.

This patch makes sure that /sys/fs/cgroup is always a readwrite tmpfs,
but that the actual cgroup hierarchy paths (/sys/fs/cgroup/$subsystem)
are readonly if :ro or :mixed is used. This still has the desired
effect within the container (no cgroup escalation possible and programs
get errors if they try to do so anyway), while keeping Ubuntu
containers happy.

Signed-off-by: Christian Seiler <christian@iwakd.de>
Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agopython-lxc: minor fixes to __init__.py
Stéphane Graber [Tue, 6 May 2014 03:34:04 +0000 (22:34 -0500)]
python-lxc: minor fixes to __init__.py

Set a base class for the network object and set the encoding in the
header. Neither of those changes are required for python3 but they do
make it easier for anyone trying to make a python2 binding.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoAdd missing MAX_STACKDEPTH define on MUTEX_DEBUGGING build
Serge Hallyn [Tue, 6 May 2014 03:32:31 +0000 (22:32 -0500)]
Add missing MAX_STACKDEPTH define on MUTEX_DEBUGGING build

Corrected a small oversight when locking related code was moved from
src/lxc/utils.c to src/lxc/lxclock.c.

Signed-off-by: Stephen M Bennett <stephen_m_bennett@hotmail.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-ls: Force running against containers without python
Stéphane Graber [Mon, 5 May 2014 15:51:19 +0000 (10:51 -0500)]
lxc-ls: Force running against containers without python

When using --nesting, we exec ourselves in the container context, if we
somehow need to dynamically-load modules from there, things break. So
make sure we pre-load everything we may need.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoRevert "cgfs: don't mount /sys/fs/cgroup readonly"
Stéphane Graber [Fri, 2 May 2014 21:19:55 +0000 (17:19 -0400)]
Revert "cgfs: don't mount /sys/fs/cgroup readonly"

This reverts commit 8d783edcae3723a0106d75e1ff31b016e8b1d02c.

10 years agolxc-ls: Cache groups and show bygroup in autostart
Stéphane Graber [Fri, 2 May 2014 17:19:46 +0000 (13:19 -0400)]
lxc-ls: Cache groups and show bygroup in autostart

This makes sure we only query lxc.group once and then reuse that list
for filtering, listing groups and autostart.

When a container is auto-started only as part of a group, autostart will
now show by-group instead of yes.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-ls(1) for the new -g/--group argument
KATOH Yasufumi [Fri, 2 May 2014 16:57:59 +0000 (01:57 +0900)]
doc: Update Japanese lxc-ls(1) for the new -g/--group argument

Update for commit 0f02786

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgfs: don't mount /sys/fs/cgroup readonly
Serge Hallyn [Fri, 2 May 2014 16:35:10 +0000 (11:35 -0500)]
cgfs: don't mount /sys/fs/cgroup readonly

/sys/fs/cgroup is just a size-limited tmpfs, and making it ro does
nothing to affect our ability alter mount settings of its subdirs.
OTOH making it ro can upset mountall in the container which tries
to remount it rw, which may be refused.

So just don't do it.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Cc: Christian Seiler <christian@iwakd.de>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-ls: Allow the use of --groups without --fancy
Stéphane Graber [Fri, 2 May 2014 15:16:51 +0000 (11:16 -0400)]
lxc-ls: Allow the use of --groups without --fancy

There wasn't a good reason for that limit, we can simply make the code
slightly slower when --groups is passed and still have the expected
output even without --fancy.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-create(1) for 'none' bdev type
KATOH Yasufumi [Fri, 2 May 2014 06:50:41 +0000 (15:50 +0900)]
doc: Update Japanese lxc-create(1) for 'none' bdev type

Update for commit 50040b5

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-clone(1) for fixing typo
KATOH Yasufumi [Fri, 2 May 2014 06:03:06 +0000 (15:03 +0900)]
doc: Update Japanese lxc-clone(1) for fixing typo

Update for commit 0e98b3bd319e887e76e37b513545d0e8eb893f24

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-ls: Typo in manpage
Stéphane Graber [Thu, 1 May 2014 22:37:42 +0000 (18:37 -0400)]
lxc-ls: Typo in manpage

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-ls: Update lxc.group handling
Stéphane Graber [Thu, 1 May 2014 22:35:21 +0000 (18:35 -0400)]
lxc-ls: Update lxc.group handling

This introduces a new -g/--group argument to filter containers based on
their groups.

This supports the rather obvious: --group blah
Which will only list containers that are in group blah.

It may also be passed multiple times: --group blah --group bleh
Which will list containers that are in either (or both) blah or bleh.

And it also takes: --group blah,bleh --group doh
Which will list containers that are either in BOTH blah and bleh or in doh.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-create: make 'none' bdev type work again
Serge Hallyn [Thu, 1 May 2014 16:33:05 +0000 (11:33 -0500)]
lxc-create: make 'none' bdev type work again

This should address https://github.com/lxc/lxc/issues/199

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agouse correct lxc-init path in sshd template
Nikolay Martynov [Thu, 1 May 2014 04:46:49 +0000 (00:46 -0400)]
use correct lxc-init path in sshd template

lxc-init got moved into SBINDIR/init.lxc recently.
This broke sshd template because path wasn't updated there.
This patch should fix this issue.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoalpinelinux: set correct lxc_arch for x86
Carlo Landmeter [Tue, 15 Apr 2014 09:51:53 +0000 (09:51 +0000)]
alpinelinux: set correct lxc_arch for x86

Signed-off-by: Carlo Landmeter <clandmeter@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agofix minor typo in .gitignore
S.Çağlar Onur [Mon, 28 Apr 2014 23:22:43 +0000 (19:22 -0400)]
fix minor typo in .gitignore

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoclang: Fix build warnings for 3.4
Stéphane Graber [Wed, 30 Apr 2014 16:15:06 +0000 (12:15 -0400)]
clang: Fix build warnings for 3.4

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-oracle: fix warnings/errors from some rpm scriptlets
Dwight Engen [Tue, 29 Apr 2014 21:50:38 +0000 (17:50 -0400)]
lxc-oracle: fix warnings/errors from some rpm scriptlets

- Some scriptlets expect fstab to exist so create it before doing the
  yum install

- Set the rootfs selinux label same as the hosts or else the PREIN script
  from initscripts will fail when running groupadd utmp, which prevents
  creation of OL4.x containers on hosts > OL6.x.

- Move creation of devices into a separate function

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoapparmor: allow writes to sem* and msg* sysctls
Serge Hallyn [Tue, 29 Apr 2014 19:57:49 +0000 (14:57 -0500)]
apparmor: allow writes to sem* and msg* sysctls

/proc/sys/kernel/sem* and /proc/sys/kernel/msg* are ipc sysctls
which are properly namespaced.  Allow writes to them from
containers.

Reported-by: Dan Kegel <dank@kegel.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agorevert 1d16785 - fixes #191
S.Çağlar Onur [Tue, 29 Apr 2014 00:16:09 +0000 (20:16 -0400)]
revert 1d16785 - fixes #191

According to Serge, we no longer need to keep cgmanager connection open.

As long as my tests go it seems to be working fine.

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoRevert "snapshots: move snapshot directory"
Serge Hallyn [Mon, 28 Apr 2014 22:33:36 +0000 (17:33 -0500)]
Revert "snapshots: move snapshot directory"

This reverts commit 276a086264a0fc1703128578d38c0574127a1c2f.

It breaks lxc-test-snapshot, and perhaps we should go with
stgraber's suggestion of using $lxcpath/$lxcname/snaps/

10 years agooutput lxc.arch as i686 for PER_LINUX32
Dwight Engen [Mon, 28 Apr 2014 20:51:06 +0000 (16:51 -0400)]
output lxc.arch as i686 for PER_LINUX32

When outputing the lxc.arch setting, use i686 instead of x86 since the
later is not a valid input to setarch, nor will the kernel output
UTS_MACHINE as x86. The kernel sets utsname.machine to i[3456]86, which
all map to PER_LINUX32.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoallow all iX86 strings for lxc.arch
Dwight Engen [Mon, 28 Apr 2014 20:50:51 +0000 (16:50 -0400)]
allow all iX86 strings for lxc.arch

This change accepts all the same strings for lxc.arch that setarch(8) does.

Note that we continue to parse plain x86 as PER_LINUX32 so as not to break
existing lxc configuration files.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-user-nic: handle failure in create_nic
Serge Hallyn [Mon, 28 Apr 2014 20:52:08 +0000 (15:52 -0500)]
lxc-user-nic: handle failure in create_nic

Failures were being ignored, leading up to an eventual segfault.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoConvert punctuation marks in Japanese man pages
KATOH Yasufumi [Wed, 23 Apr 2014 07:59:07 +0000 (16:59 +0900)]
Convert punctuation marks in Japanese man pages

This only converts punctuation marks from FULLWIDTH COMMA/FULL STOP to
IDEOGRAPHIC COMMA/FULL STOP in Japanese man pages. The contents of man
pages do not change at all.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: fix fd leak in error case (1011105)
Dwight Engen [Mon, 21 Apr 2014 13:18:06 +0000 (09:18 -0400)]
coverity: fix fd leak in error case (1011105)

I inadvertently introduced this with commit 8bf1e61e.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoCheck for symlinks before attempting create.
Michael H. Warfield [Fri, 25 Apr 2014 16:06:44 +0000 (12:06 -0400)]
Check for symlinks before attempting create.

Check for symlinks before attempting create.

When attempting to create the compulsory symlinks in /dev,
check for the existence of the link using stat first before
blindly attempting to create the link.

This works around an apparent quirk in the kernel VFS on read-only
file systems where the returned error code might be EEXIST or EROFS
depending on previous access to the /dev directory and its entries.

Reported-by: William Dauchy <william@gandi.net>
Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Tested-by: William Dauchy <william@gandi.net>
10 years agosnapshots: move snapshot directory
Serge Hallyn [Wed, 16 Apr 2014 19:04:45 +0000 (14:04 -0500)]
snapshots: move snapshot directory

Originally we kept snapshots under /var/lib/lxcsnaps.  If a
separate btrfs is mounted at /var/lib/lxc, then we can't
make btrfs snapshots under /var/lib/lxcsnaps.

This patch moves the default directory to /var/lib/lxc/lxcsnaps.
If /var/lib/lxcsnaps already exists, then use that.  Don't allow
any container to be used with the name 'lxcsnaps'.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc startup: manually mark every shared mount entry as slave
Serge Hallyn [Wed, 16 Apr 2014 16:01:22 +0000 (11:01 -0500)]
lxc startup: manually mark every shared mount entry as slave

If you 'ip netns add x1', this creates /run/netns and /run/netns/x1
as shared mounts.  When a container starts, it umounts these after
pivot_root, and the umount is propagated to the host.

Worse, doing mount("", "/", NULL, MS_SLAVE|MS_REC, NULL) does not
suffice to change those, even after binding /proc/mounts onto
/etc/mtab.

So, I give up.  Do this manually, walking over /proc/self/mountinfo
and changing the mount propagation on everything marked as shared.

With this patch, lxc-start no longer unmounts /run/netns/* on the
host.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-clone man page: fix typos
Serge Hallyn [Mon, 28 Apr 2014 13:42:24 +0000 (08:42 -0500)]
lxc-clone man page: fix typos

In the body of the manpage, replace a few errant 'fssize's with the
more appropriate word.

Reported-by: MegaBrutal <megabrutal@megabrutal.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocppcheck: fix unchecked realloc in lxc_info.c
Serge Hallyn [Tue, 15 Apr 2014 20:49:36 +0000 (15:49 -0500)]
cppcheck: fix unchecked realloc in lxc_info.c

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: don't call nih_dbus_setup
Serge Hallyn [Fri, 11 Apr 2014 15:01:51 +0000 (10:01 -0500)]
cgmanager: don't call nih_dbus_setup

it actually sets us up to run the nih_mainloop, but we will never run
that.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-oracle: use db_load from container
Dwight Engen [Wed, 9 Apr 2014 19:20:30 +0000 (15:20 -0400)]
lxc-oracle: use db_load from container

This makes it so that the host doesn't need to have an old, compat
version of db43_load installed by using the db_load from the just
installed container. Some newer distributions do not even have an old
enough compat-db4 package available.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-oracle: only create media repo when --baseurl is specified
Dwight Engen [Wed, 9 Apr 2014 19:20:21 +0000 (15:20 -0400)]
lxc-oracle: only create media repo when --baseurl is specified

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-oracle: update to support OL7
Dwight Engen [Tue, 8 Apr 2014 20:28:54 +0000 (16:28 -0400)]
lxc-oracle: update to support OL7

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-oracle: allow installing from arbitrary yum repo
Dwight Engen [Tue, 8 Apr 2014 15:17:26 +0000 (11:17 -0400)]
lxc-oracle: allow installing from arbitrary yum repo

With this change, you can install a container from a mounted .iso, or any
yum repo with the necessary packages. Unlike the --url option, the repo
does not need to be a mirror of public-yum, but the arch and release must
be specified. For example to install OL6.5 from an .iso image:

mount -o loop OracleLinux-R6-U5-Server-x86_64-dvd.iso /mnt
lxc-create -n OL6.5 -t oracle -- --baseurl=file:///mnt -a x86_64 -R 6.5

The template will create two yum .repo files within the container such that
additional packages can be installed from local media, or the container can
be updated from public-yum, whichever is available. Local media must be bind
mounted from the host onto the containers' /mnt for the former .repo to work:

mount --bind /mnt $LXCPATH/OL6.5/rootfs/mnt

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoFix typo in previous commit
Stéphane Graber [Tue, 8 Apr 2014 21:23:23 +0000 (17:23 -0400)]
Fix typo in previous commit

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests; Bump wait delay for shutdown to 120s
Stéphane Graber [Tue, 8 Apr 2014 21:12:00 +0000 (17:12 -0400)]
tests; Bump wait delay for shutdown to 120s

On very busy boards with slow IO, the shutdown process can take over 60s
as the disk is syncing.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoapparmor: Use more generic allow rule for pivot
Stéphane Graber [Tue, 8 Apr 2014 17:17:27 +0000 (13:17 -0400)]
apparmor: Use more generic allow rule for pivot

Recent fixes in the apparmor kernel code is now making at least the CI
environment and quite possibly some others fail due to an invalid path
in the pivot_root stanza.

So update both lines to allow a more generic pivot_root call for
anything in LXC's work directory.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodoc: Update Japanese lxc-stop(1) to describe about exit value
KATOH Yasufumi [Tue, 8 Apr 2014 08:53:58 +0000 (17:53 +0900)]
doc: Update Japanese lxc-stop(1) to describe about exit value

Update for commit 13bc2fd2370f8e3778d81f58ac8dda5746550a4f

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: cgm_get: len = 0 is a query for length only
Serge Hallyn [Mon, 7 Apr 2014 17:52:43 +0000 (12:52 -0500)]
cgmanager: cgm_get: len = 0 is a query for length only

The caller might (like lxc-test-startone does) pass in a valid
(or invalid) buffer and 0 length.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc_*.c: don't exit with -1
Serge Hallyn [Mon, 7 Apr 2014 16:56:20 +0000 (11:56 -0500)]
lxc_*.c: don't exit with -1

In this patch I tried to stick with each file's coding style, however I
think we should probably change that.  Every main() should always not
return and only exit;  they should always return EXIT_SUCCESS or EXIT_FAILURE
with the only exceptions being cases where we are returning a child's
exit status (lxc_execute, lxc_attach, lxc_init).

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoarchlinux: add debugging info for missing network link
Ryan Mulligan [Mon, 7 Apr 2014 02:24:24 +0000 (19:24 -0700)]
archlinux: add debugging info for missing network link

Signed-off-by: Ryan Mulligan <ryan@ryantm.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc_start: return 1 not -1 on error
Serge Hallyn [Mon, 7 Apr 2014 15:06:56 +0000 (10:06 -0500)]
lxc_start: return 1 not -1 on error

So that exit status doesn't show up as 255.

Reported-by: Andrey Khozov <avkhozov@googlemail.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc_spawn: initialize netpipe
Serge Hallyn [Sat, 5 Apr 2014 02:26:16 +0000 (21:26 -0500)]
lxc_spawn: initialize netpipe

When rebooting an unprivileged container, netpipe starts out
as not -1.  If count_veths somehow changed this could lead
to trying to send data over nonexistent pipe.  (Ok can't
*really* happen, as it currently stands, but it's an open
end)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoarchlinux: Code cleanups (v2)
Leonid Isaev [Tue, 1 Apr 2014 02:24:31 +0000 (22:24 -0400)]
archlinux: Code cleanups (v2)

Cleanups:
1. Do not modify container's /etc/hosts (archlinux uses /etc/nsswitch.conf)
2. Remove duplicate lines from config
3. Print a nicer final message
4. Get rid of some grep's

Signed-off-by: Leonid Isaev <lisaev@umail.iu.edu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoRevert "archlinux: Code cleanups"
Stéphane Graber [Fri, 4 Apr 2014 23:27:18 +0000 (19:27 -0400)]
Revert "archlinux: Code cleanups"

This reverts commit 34fd08f87bc2f9340c760721f5e5f728b49297a9.

10 years agoarchlinux: Code cleanups
Leonid Isaev [Mon, 31 Mar 2014 21:14:34 +0000 (17:14 -0400)]
archlinux: Code cleanups

Cleanups:
1. Do not modify container's /etc/hosts (archlinux uses /etc/nsswitch.conf)
2. Remove duplicate lines from config
3. Print a nicer final message
4. Get rid of some grep's in favor of bash regex

Signed-off-by: Leonid Isaev <lisaev@umail.iu.edu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoarchlinux: Create per-container pacman host key
Leonid Isaev [Mon, 31 Mar 2014 21:11:58 +0000 (17:11 -0400)]
archlinux: Create per-container pacman host key

Do not copy the pacman master key from the host, as this opens it to
attacks; generate a new secret hostkey.

Signed-off-by: Leonid Isaev <lisaev@umail.iu.edu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoarchlinux: Fix default package selection
Leonid Isaev [Tue, 1 Apr 2014 02:20:48 +0000 (22:20 -0400)]
archlinux: Fix default package selection

Do not cherry-pick packages for the default install to avoid dependency
issues. Instead, install the base group modulo blacklisted packages.

Signed-off-by: Leonid Isaev <lisaev@umail.iu.edu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoMove lxc-monitord.log out of /var/lib/lxc/
Robert Vogelgesang [Fri, 4 Apr 2014 17:04:03 +0000 (19:04 +0200)]
Move lxc-monitord.log out of /var/lib/lxc/

Place log file into LOGPATH instead of LXCPATH (but still use the
given lxcpath if the latter differs from LXCPATH).

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix wait_for_bridge() in sysvinit script
Robert Vogelgesang [Fri, 4 Apr 2014 17:01:34 +0000 (19:01 +0200)]
Fix wait_for_bridge() in sysvinit script

Fix parsing of /etc/lxc/default.conf, i. e. ignore comments, and don't
require whitespace left and right of the equal sign.

Make the early return actually work.

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoadd init.lxc to .gitignore
S.Çağlar Onur [Fri, 4 Apr 2014 19:13:29 +0000 (15:13 -0400)]
add init.lxc to .gitignore

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoapparmor: Update profiles for current upstream parser
Stéphane Graber [Fri, 4 Apr 2014 21:14:58 +0000 (17:14 -0400)]
apparmor: Update profiles for current upstream parser

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agofix lxc-info printing duplicate lines
Dwight Engen [Thu, 3 Apr 2014 01:13:05 +0000 (21:13 -0400)]
fix lxc-info printing duplicate lines

When lxc-info's stdout is not line buffered (ie. "lxc-info -n foo |more")
the first three lines will be duplicated. This is because c->get_ips()
comes next and it forks and the child will exit() causing its fds to be
closed which flushes out its (fork duplicated) stdio buffers. The lines are
then duplicated when the parent actually gets around to flushing out its
stdio. This causes problems for programs (such as the lxc-webpanel) which
are popen()ing lxc-info.

The fix here isn't necessarily the right one, but does show what the
problem is. Seems like maybe we should fix this inside of get_ips(), for
other API callers as well.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoAdded lxc.arch to configuration files for CentOS and Fedora
Michael H. Warfield [Wed, 2 Apr 2014 20:54:39 +0000 (16:54 -0400)]
Added lxc.arch to configuration files for CentOS and Fedora

Added lxc.arch to the resulting container configuration files
to support i686 on x86_64 cross arch containers.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agomake monitor/monitord more resilient to unexpected termination
Dwight Engen [Wed, 2 Apr 2014 17:12:38 +0000 (13:12 -0400)]
make monitor/monitord more resilient to unexpected termination

Reported-by: Florian Klink <flokli@flokli.de>
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoapparmor: deny writes to most of /proc/sys (v2)
Serge Hallyn [Tue, 1 Apr 2014 23:03:07 +0000 (01:03 +0200)]
apparmor: deny writes to most of /proc/sys (v2)

Allow writes to kernel.shm*, net.*, kernel/domainname and
kernel/hostname,

Also fix a bug in the lxc-generate-aa-rules.py script in a
path which wasn't being exercised before, which returned a
path element rather than its child.

Changelog (v2): remove trailing / from block path

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoenable sshd by default like other templates
Guillaume ZITTA [Wed, 2 Apr 2014 05:59:46 +0000 (07:59 +0200)]
enable sshd by default like other templates

Signed-off-by: Guillaume ZITTA <lxc@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-gentoo, fix lack of any generated locale
Guillaume ZITTA [Tue, 1 Apr 2014 21:48:51 +0000 (23:48 +0200)]
lxc-gentoo, fix lack of any generated locale

fix lack of any generated locale

Signed-off-by: Guillaume ZITTA <lxc@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Try to make shutdowntest a bit more robust
Stéphane Graber [Tue, 1 Apr 2014 20:38:39 +0000 (16:38 -0400)]
tests: Try to make shutdowntest a bit more robust

This should help it run better on slow test environment like the LXC CI
armhf builder.
 - Wait longer for the container to start
 - Wait longer for the container to shutdown
 - On failure to shutdown, kill the container
 - Always destroy the container if it's around

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agofix lxc-console not working by default
Guillaume ZITTA [Tue, 1 Apr 2014 19:30:47 +0000 (21:30 +0200)]
fix lxc-console not working by default

fix lxc-console not working by default

Signed-off-by: Guillaume ZITTA <lxc@zitta.fr>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoapparmor: auto-generate the blacklist rules
Serge Hallyn [Sat, 29 Mar 2014 02:05:31 +0000 (21:05 -0500)]
apparmor: auto-generate the blacklist rules

This uses the generate-apparmor-rules.py script I sent out some time
ago to auto-generate apparmor rules based on a higher level set of
block/allow rules.

Add apparmor policy testcase to make sure that some of the paths we
expect to be denied (and allowed) write access to are in fact in
effect in the final policy.

With this policy, libvirt in a container is able to start its
default network, which previously it could not.

v2: address feedback from stgraber
  put lxc-generate-aa-rules.py into EXTRA_DIST
  add lxc-test-apparmor, container-base and container-rules to .gitignore
  take lxc-test-apparmor out of EXTRA_DIST
  make lxc-generate-aa-rules.py pep8-compliant
  don't automatically generate apparmor rules
  This is only bc we can't be guaranteed that python3 will be
  available.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoapparmor: don't allow mounting cgroupfs by default
Serge Hallyn [Mon, 31 Mar 2014 22:29:40 +0000 (17:29 -0500)]
apparmor: don't allow mounting cgroupfs by default

Leave the line to do it (commented out) as some users may not be
using cgmanager, and may in fact still need those mounts.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodownload: Set a 30s timeout for wget request
Stéphane Graber [Tue, 1 Apr 2014 01:43:27 +0000 (21:43 -0400)]
download: Set a 30s timeout for wget request

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: Also propagate the https proxy
Stéphane Graber [Tue, 1 Apr 2014 01:42:58 +0000 (21:42 -0400)]
tests: Also propagate the https proxy

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoUse on_path to find init.lxc
Stéphane Graber [Fri, 28 Mar 2014 18:10:26 +0000 (14:10 -0400)]
Use on_path to find init.lxc

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc.spec: adjust for move of libexecdir/lxc-init to sbin/lxc.init
Dwight Engen [Mon, 31 Mar 2014 22:58:27 +0000 (18:58 -0400)]
lxc.spec: adjust for move of libexecdir/lxc-init to sbin/lxc.init

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoadd yum plugin to repatch rootfs on yum update
Dwight Engen [Thu, 27 Mar 2014 20:46:38 +0000 (16:46 -0400)]
add yum plugin to repatch rootfs on yum update

oracle-template: Split patching rootfs vs one time setup into separate
shell functions so the template can be run with --patch.

oracle-template: Update to install the yum plugin and itself (as lxc-patch)
into a container. The plugin just runs lxc-patch --patch <path> so it is
fairly generic, but in this case it is running a copy of the template inside
the container.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoconfig_network_type: set macvlan default mode to private
Bogdan Purcareata [Fri, 28 Mar 2014 14:31:41 +0000 (10:31 -0400)]
config_network_type: set macvlan default mode to private

If a default mode is not set, the container requires an explicit
mode specified in the config file, otherwise creating the
container fails.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agomove lxc-init to /sbin/init.lxc
Serge Hallyn [Thu, 27 Mar 2014 15:36:06 +0000 (10:36 -0500)]
move lxc-init to /sbin/init.lxc

Using the multiarch dir causes problems when running lxc-execute
on amd64 with an i386 container.  /sbin/lxc-init is a more confusing
name and will show up in 'lxc<tab>'.  /sbin/init.lxc should be quite
obvious as an init for lxc.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocheck whether rootfs is shared before running pre-mount hooks
Florian Klink [Thu, 27 Mar 2014 15:50:17 +0000 (16:50 +0100)]
check whether rootfs is shared before running pre-mount hooks

this expands c597baa8f9 and 2c6f3fc932.

Also move the block using detect_ramfs_rootfs() from setup_rootfs() to
lxc_setup()

Signed-off-by: Florian Klink <flokli@flokli.de>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agonetwork.c: Add missing LXC_NET_NONE option + refactor
Bogdan Purcareata [Wed, 26 Mar 2014 15:35:09 +0000 (11:35 -0400)]
network.c: Add missing LXC_NET_NONE option + refactor

Add LXC_NET_NONE to known lxc_network_types, so parsing a config
file with lxc.network.type = none does not result in failure
(e.g. doc/examples/lxc-no-netns.conf). Options have also been
reordered to match the enum in conf.h.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocommands: handle epipe
Serge Hallyn [Tue, 25 Mar 2014 20:50:06 +0000 (15:50 -0500)]
commands: handle epipe

If we start a lxc_wait on a container while it is exiting, it is
possible that we open the command socket, then the command socket
monitor closes all its mainloop sockets and exit, then we send our
credentials. Then we get killed by SIGPIPE.

Handle that case, recognizing that if we get sigpipe then the
container is (now) stopped.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agouserns: Update bind-mounted devices
Stéphane Graber [Mon, 24 Mar 2014 03:58:38 +0000 (23:58 -0400)]
userns: Update bind-mounted devices

This updates all configs to include the exact same set of 7 bind-mounted
devices:
 - console
 - full
 - null
 - random
 - tty
 - urandom
 - zero

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-ls: Optimize things a bit
Stéphane Graber [Sun, 23 Mar 2014 03:26:59 +0000 (23:26 -0400)]
lxc-ls: Optimize things a bit

Don't bother access information that the user didn't request.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-ls: Fix memory reporting
Stéphane Graber [Sat, 22 Mar 2014 23:17:36 +0000 (19:17 -0400)]
lxc-ls: Fix memory reporting

This resolves the memory math when memsw is enabled and fixes reporting
of nested containers memory when using cgmanager.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-busybox: follow symlinks when inspecting busybox binary
Bogdan Purcareata [Mon, 24 Mar 2014 16:43:03 +0000 (12:43 -0400)]
lxc-busybox: follow symlinks when inspecting busybox binary

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoAdded root_password_expired password control tuning knob.
Michael H. Warfield [Sat, 22 Mar 2014 17:59:59 +0000 (13:59 -0400)]
Added root_password_expired password control tuning knob.

Added the environment variable "root_password_expired" to
control if the initial, temporary, root password is initially
set up as "expired".  If set to "yes" (default), the root password
is set as "expired" and the user must change it at first login.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoSupport SIGPWR in Fedora and Centos containers.
Michael H. Warfield [Sat, 22 Mar 2014 17:58:35 +0000 (13:58 -0400)]
Support SIGPWR in Fedora and Centos containers.

Added code to catch SIGPWR for Upstart in Fedora and CentOS
containers as well as for Systemd in Fedora containers.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoSet timezone for new container if not previously defined.
Michael H. Warfield [Sat, 22 Mar 2014 17:57:36 +0000 (13:57 -0400)]
Set timezone for new container if not previously defined.

If the container does not already contain an /etc/localtime
timezone definition, then copy a definition from the host to
the container.  This is often a symlink to an appropriate
system timezone definition files and is presumed to exist in

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix arch cross-build when running distro cross-build.
Michael H. Warfield [Sat, 22 Mar 2014 17:56:41 +0000 (13:56 -0400)]
Fix arch cross-build when running distro cross-build.

Corner case existed when building a cross-arch container (i686 on x86_64)
on a cross-distro host (Fedora container on Ubuntu host).  Fixed the
arch "fixup" code to do the right thing when running from the bootstrap.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agofix console stdin,stdout,stderr fds
Dwight Engen [Tue, 11 Mar 2014 19:44:54 +0000 (15:44 -0400)]
fix console stdin,stdout,stderr fds

The fds for stdin,stdout,stderr that we were leaving open for /sbin/init
in the container were those from /dev/tty or lxc.console (if given), which
wasn't right. Inside the container it should only have access to the pty
that lxc creates representing the console.

This was noticed because busybox's init was resetting the termio on its
stdin which was effecting the actual users terminal instead of the pty.
This meant it was setting icanon so were were not passing keystrokes
immediately to the pty, and hence command line history/editing wasn't
working.

Fix by dup'ing the console pty to stdin,stdout,stderr just before
exec()ing /sbin/init. Fix fd leak in error handling that I noticed while
going through this code.

Also tested with lxc.console = none, lxc.console = /dev/tty7 and no
lxc.console specified.

V2: The first version was getting EBADF sometimes on dup2() because
lxc_console_set_stdfds() was being called after lxc_check_inherited()
had already closed the fds for the pty. Fix by calling
lxc_check_inherited() as late as possible which also extends coverage
of open fd checked code.

V3: Don't move lxc_check_inherited() since it needs to be called while
the tmp proc mount is still mounted. Move call to lxc_console_set_stdfds()
just before it.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoUpdate Japanese lxc-create(1) for 'best' option
KATOH Yasufumi [Fri, 21 Mar 2014 17:19:33 +0000 (02:19 +0900)]
Update Japanese lxc-create(1) for 'best' option

Update for commit a526a632e007c0d666dbe953cf7b39fbf26b63db

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>