]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
10 years agoalways ensure a /proc while setting up container
Serge Hallyn [Sat, 15 Feb 2014 05:57:12 +0000 (23:57 -0600)]
always ensure a /proc while setting up container

Otherwise we can't open /proc/self/fd to find the fds to close.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agochange version to 1.0.0.rc2 in configure.ac
Stéphane Graber [Sat, 15 Feb 2014 04:08:00 +0000 (23:08 -0500)]
change version to 1.0.0.rc2 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocoverity: Don't pass uninitialized var to write
Stéphane Graber [Fri, 14 Feb 2014 21:20:17 +0000 (16:20 -0500)]
coverity: Don't pass uninitialized var to write

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Check fcntl return value
Stéphane Graber [Fri, 14 Feb 2014 21:07:41 +0000 (16:07 -0500)]
coverity: Check fcntl return value

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Check return value of setenv
Stéphane Graber [Fri, 14 Feb 2014 21:06:17 +0000 (16:06 -0500)]
coverity: Check return value of setenv

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Check fstat return value
Stéphane Graber [Fri, 14 Feb 2014 21:03:00 +0000 (16:03 -0500)]
coverity: Check fstat return value

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Silence potential null-deref warning
Stéphane Graber [Fri, 14 Feb 2014 20:59:23 +0000 (15:59 -0500)]
coverity: Silence potential null-deref warning

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Check fread length
Stéphane Graber [Fri, 14 Feb 2014 20:56:28 +0000 (15:56 -0500)]
coverity: Check fread length

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agore-open cgmanager socket after fork in daemonized start
Serge Hallyn [Fri, 14 Feb 2014 23:16:58 +0000 (00:16 +0100)]
re-open cgmanager socket after fork in daemonized start

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-start: close inherited fds right before exec
Serge Hallyn [Fri, 14 Feb 2014 22:23:24 +0000 (23:23 +0100)]
lxc-start: close inherited fds right before exec

Not before we've even forked.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agomove fnv_64a_buf to utils.c and remove mutliple copies (v2)
S.Çağlar Onur [Fri, 14 Feb 2014 06:38:09 +0000 (01:38 -0500)]
move fnv_64a_buf to utils.c and remove mutliple copies (v2)

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocoverity: fix resource leak
Dwight Engen [Fri, 14 Feb 2014 14:49:51 +0000 (09:49 -0500)]
coverity: fix resource leak

also fix the check if the string will fit the local buffer

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoJapanese lxc-usernsexec manpage: fix typo
KATOH Yasufumi [Fri, 14 Feb 2014 06:38:42 +0000 (15:38 +0900)]
Japanese lxc-usernsexec manpage: fix typo

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-usernsexec manpage: fix typo (command name is not lxc-unshare)
Serge Hallyn [Fri, 14 Feb 2014 04:39:38 +0000 (22:39 -0600)]
lxc-usernsexec manpage: fix typo (command name is not lxc-unshare)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agochange version to 1.0.0.beta4 in configure.ac
Stéphane Graber [Thu, 13 Feb 2014 23:51:50 +0000 (18:51 -0500)]
change version to 1.0.0.beta4 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoRevert "move fnv_64a_buf to utils.c and remove mutliple copies"
Stéphane Graber [Thu, 13 Feb 2014 22:34:26 +0000 (17:34 -0500)]
Revert "move fnv_64a_buf to utils.c and remove mutliple copies"

Fix clang breakage.

This reverts commit 7cd32872b697e02a9a326e80d52ef0b934de530c.

10 years agomove fnv_64a_buf to utils.c and remove mutliple copies
S.Çağlar Onur [Thu, 13 Feb 2014 21:57:12 +0000 (16:57 -0500)]
move fnv_64a_buf to utils.c and remove mutliple copies

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoreindent src/lxc/af_unix.c
S.Çağlar Onur [Thu, 13 Feb 2014 21:43:45 +0000 (16:43 -0500)]
reindent src/lxc/af_unix.c

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocreate fd, stdin, stdout, stderr symlinks in /dev
Dwight Engen [Thu, 13 Feb 2014 21:13:03 +0000 (16:13 -0500)]
create fd, stdin, stdout, stderr symlinks in /dev

The kernel's Documentation/devices.txt says that these symlinks should
exist in /dev (they are listed in the "Compulsory" section). I'm not
currently adding nfsd and X0R since they are required for iBCS, but
they can be easily added to the array later if need be.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agopython3: Update apitest
Stéphane Graber [Thu, 13 Feb 2014 18:41:31 +0000 (13:41 -0500)]
python3: Update apitest

This update will make it work unprivileged as well as testing a few of
the new functions.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agopython3: Drop API warning and fix pep8/pyflakes3
Stéphane Graber [Thu, 13 Feb 2014 17:50:54 +0000 (12:50 -0500)]
python3: Drop API warning and fix pep8/pyflakes3

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-start-ephemeral: Use attach
Stéphane Graber [Thu, 13 Feb 2014 17:42:21 +0000 (12:42 -0500)]
lxc-start-ephemeral: Use attach

With this change, systems that support it will use attach to run any
provided command.

This doesn't change the default behaviour of attaching to tty1, but it
does make it much easier to script or even get a quick shell with:
lxc-start-ephemeral -o p1 -n p2 -- /bin/bash

I'm doing the setgid,initgroups,setuid,setenv magic in python rather
than using the attach_wait parameters as I need access to the pwd module
in the target namespace to grab the required information.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoUpdate rootfs README
Stéphane Graber [Thu, 13 Feb 2014 18:52:50 +0000 (13:52 -0500)]
Update rootfs README

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix crash in rename with undefined containers
Stéphane Graber [Thu, 13 Feb 2014 18:40:34 +0000 (13:40 -0500)]
Fix crash in rename with undefined containers

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-ls: Add a few new columns
Stéphane Graber [Thu, 13 Feb 2014 16:00:36 +0000 (11:00 -0500)]
lxc-ls: Add a few new columns

This adds support for:
 - memory (total memory)
 - ram
 - swap

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agopython3: Add missing get_running_config_item binding
Stéphane Graber [Thu, 13 Feb 2014 15:59:19 +0000 (10:59 -0500)]
python3: Add missing get_running_config_item binding

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Do chdir following chroot
Stéphane Graber [Thu, 13 Feb 2014 16:17:48 +0000 (11:17 -0500)]
coverity: Do chdir following chroot

We used to do chdir(path), chroot(path). That's correct but not properly
handled coverity, so do chroot(path), chdir("/") instead as that's the
recommended way.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodoc: Update lxc.container.conf(5)
KATOH Yasufumi [Thu, 13 Feb 2014 07:11:08 +0000 (16:11 +0900)]
doc: Update lxc.container.conf(5)

- Update Japanese man for commit a7c27357b33d726a326a11e1e72f68e1546b994a, seccomp v2
- Fix typo in English man

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese man pages for aufs support
KATOH Yasufumi [Thu, 13 Feb 2014 07:11:07 +0000 (16:11 +0900)]
doc: Update Japanese man pages for aufs support

Update lxc-clone(1) and lxc-snapshot(1) for commit 1f92162dc0432b6f7f8156d22348f22934cbea3f
and improve some translations

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agooverlayfs_clonepaths: if unpriv then rsync in a userns
Serge Hallyn [Thu, 13 Feb 2014 06:52:52 +0000 (00:52 -0600)]
overlayfs_clonepaths: if unpriv then rsync in a userns

This allows lxc-snapshot and lxc-clone -s from an overlayfs container
to work unprivileged.  (lxc-clone -s from a directory backed container
already did work)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoAdd the seccomp examples to EXTRA_DIST
Stéphane Graber [Thu, 13 Feb 2014 04:19:45 +0000 (23:19 -0500)]
Add the seccomp examples to EXTRA_DIST

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoseccomp: extend manpage, and add examples
Serge Hallyn [Wed, 12 Feb 2014 23:50:36 +0000 (17:50 -0600)]
seccomp: extend manpage, and add examples

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoseccomp: don't support v2 if seccomp_syscall_resolve_name_arch is not avilable
Serge Hallyn [Wed, 12 Feb 2014 23:20:22 +0000 (17:20 -0600)]
seccomp: don't support v2 if seccomp_syscall_resolve_name_arch is not avilable

Also don't use arm arch if not defined

This *should* fix build so precise, but I didn't fire one off.
I did test that builds with libseccomp2 still work as expected.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix some configure.ac issues
Stéphane Graber [Wed, 12 Feb 2014 22:46:06 +0000 (17:46 -0500)]
Fix some configure.ac issues

 - Run on distro without lsb_release
 - Don't try and interpret with_runtime_path as a command
 - Don't print stuff on screen while in the middle of a check

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotravis: Build using the daily PPA
Stéphane Graber [Wed, 12 Feb 2014 22:30:12 +0000 (17:30 -0500)]
travis: Build using the daily PPA

Now that we depend on seccomp2, the backport currently in precise is too
old to allow for a succesful build, so instead use ppa:ubuntu-lxc/daily
which contains recent versions of all needed build-dependencies.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocoverity: Check return value from open
Stéphane Graber [Wed, 12 Feb 2014 21:21:45 +0000 (16:21 -0500)]
coverity: Check return value from open

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Drop dead code
Stéphane Graber [Wed, 12 Feb 2014 21:15:10 +0000 (16:15 -0500)]
coverity: Drop dead code

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Don't store fgets return value if we don't use it
Stéphane Graber [Wed, 12 Feb 2014 21:12:39 +0000 (16:12 -0500)]
coverity: Don't store fgets return value if we don't use it

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: check return value of fcntl in usernsexec
Stéphane Graber [Wed, 12 Feb 2014 21:08:08 +0000 (16:08 -0500)]
coverity: check return value of fcntl in usernsexec

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Always check mkdir_p's return value
Stéphane Graber [Wed, 12 Feb 2014 20:53:21 +0000 (15:53 -0500)]
coverity: Always check mkdir_p's return value

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Check return value of fcntl in lxc_popen
Stéphane Graber [Wed, 12 Feb 2014 20:39:33 +0000 (15:39 -0500)]
coverity: Check return value of fcntl in lxc_popen

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocoverity: Free bdev in clone_update_rootfs
Stéphane Graber [Wed, 12 Feb 2014 20:33:57 +0000 (15:33 -0500)]
coverity: Free bdev in clone_update_rootfs

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoseccomp: introduce v2 policy (v2)
Serge Hallyn [Wed, 12 Feb 2014 21:50:20 +0000 (15:50 -0600)]
seccomp: introduce v2 policy (v2)

v2 allows specifying system calls by name, and specifying
architecture.  A policy looks like:

2
whitelist
open
read
write
close
mount
[x86]
open
read

Also use SCMP_ACT_KILL by default rather than SCMP_ACT_ERRNO(31)  -
which confusingly returns 'EMLINK' on x86_64.  Note this change
is also done for v1 as I think it is worthwhile.

With this patch, I can in fact use a seccomp policy like:

2
blacklist
mknod errno 0

after which 'sudo mknod null c 1 3' silently succeeds without
creating the null device.

changelog v2:
  add blacklist support
  support default action
  support per-rule action

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agobdev: Add aufs support
Stéphane Graber [Wed, 12 Feb 2014 19:01:02 +0000 (14:01 -0500)]
bdev: Add aufs support

This is pretty much copy/paste from overlayfs.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotravis: Drop workaround introduced last week
Stéphane Graber [Wed, 12 Feb 2014 20:07:11 +0000 (15:07 -0500)]
travis: Drop workaround introduced last week

Travis has now corrected the bug in their build environment so we no
longer need to force the autogen script through bash.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-start-ephemeral: Allow unprivileged run
Stéphane Graber [Wed, 12 Feb 2014 16:58:15 +0000 (11:58 -0500)]
lxc-start-ephemeral: Allow unprivileged run

This allows running lxc-start-ephemeral using overlayfs. aufs remains
blocked as it hasn't been looked at and patched to work in the kernel at
this point (not sure if it ever wil).

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocheck for access to lxcpath
Serge Hallyn [Wed, 12 Feb 2014 04:20:03 +0000 (22:20 -0600)]
check for access to lxcpath

The previous check for access to rootfs->path failed in the case of
overlayfs or loop backign stores.  Instead just check early on for
access to lxcpath.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix build failure (broken makefile)
Stéphane Graber [Wed, 12 Feb 2014 00:49:19 +0000 (19:49 -0500)]
Fix build failure (broken makefile)

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Don't hardcode architecture
Stéphane Graber [Tue, 11 Feb 2014 23:49:39 +0000 (18:49 -0500)]
tests: Don't hardcode architecture

If on Ubuntu, then match the host's own architecture, this should allow
for our tests to pass on the armhf CI environment.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: Add lxc-test-autostart
Stéphane Graber [Tue, 11 Feb 2014 23:40:18 +0000 (18:40 -0500)]
tests: Add lxc-test-autostart

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agobdev: allow unprivileged overlayfs snapshots
Serge Hallyn [Tue, 11 Feb 2014 19:43:19 +0000 (13:43 -0600)]
bdev: allow unprivileged overlayfs snapshots

Also make sure to chown the new rootfs path to the container owner.
This is how we make sure that the container root is allowed to write
under delta0.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoAdd --with-runtime-path to configure
Stéphane Graber [Tue, 11 Feb 2014 22:40:20 +0000 (17:40 -0500)]
Add --with-runtime-path to configure

This allows older distros to override /run with whatever their own path
is, mostly useful for old RedHat and possibly Android.

Reported-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoconf: Save lxc.network.ipv4 broadcast address
Stéphane Graber [Tue, 11 Feb 2014 21:31:44 +0000 (16:31 -0500)]
conf: Save lxc.network.ipv4 broadcast address

Reported-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxcapi-snapshot: don't snapshot directory-backed containers
Serge Hallyn [Mon, 10 Feb 2014 20:19:42 +0000 (14:19 -0600)]
lxcapi-snapshot: don't snapshot directory-backed containers

Instead force a copy clone.  Else if the user makes a change
to the original container, the snapshot will be affected.
The user should first create a snapshot clone, then use
and snapshot that clone while leaving the original container
untouched.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agowarn about insufficient permissions
Serge Hallyn [Mon, 10 Feb 2014 22:57:08 +0000 (16:57 -0600)]
warn about insufficient permissions

With this patch, if an unprivileged user has $HOME 700 or
750 and does

lxc-start -n c1

he'll see an error like:

lxc_container: Permission denied - could not access /home/serge.  Please grant it 'x' access, or add an ACL for t he container root.

(This addresses bug pad.lv/1277466)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-plamo: various small changes
TAMUKI Shoichi [Sat, 8 Feb 2014 09:15:40 +0000 (18:15 +0900)]
lxc-plamo: various small changes

- Change redirection of fd 200 to 9 (greater than 9 may conflict with
  fd the shell uses internally)
- Replace numeric line addressing of ed to regular expression to avoid
  correcting the line addressing at each modification of init scripts
- Correct the option order (trivial)

Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agotravis: Workaround buggy build environment
Stéphane Graber [Sat, 8 Feb 2014 01:22:56 +0000 (20:22 -0500)]
travis: Workaround buggy build environment

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoWhitespace fix
Stéphane Graber [Sat, 8 Feb 2014 00:36:50 +0000 (19:36 -0500)]
Whitespace fix

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agobionic: Define faccessat if missing
Stéphane Graber [Fri, 7 Feb 2014 20:21:24 +0000 (15:21 -0500)]
bionic: Define faccessat if missing

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoadd_device_node: act in a chroot
Serge Hallyn [Fri, 7 Feb 2014 19:00:50 +0000 (13:00 -0600)]
add_device_node: act in a chroot

The goal is to avoid an absolute symlink in the guest redirecting
us to the host's /dev.  Thanks to the libvirt team for considering
that possibility!

We want to work on kernels which do not support setns, so we simply
chroot into the container before doing any rm/mknod.  If /dev/vda5
is a symlink to /XXX, or /dev is a symlink to /etc, this is now
correctly resolved locally in the chroot.

We would have preferred to use realpath() to check that the resolved
path is not changed, but realpath across /proc/pid/root does not
work as expected.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc_autostart: Update following shutdown() API change
Stéphane Graber [Fri, 7 Feb 2014 15:23:35 +0000 (10:23 -0500)]
lxc_autostart: Update following shutdown() API change

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolog: Drop trailing \n from log messages
Stéphane Graber [Fri, 7 Feb 2014 15:19:27 +0000 (10:19 -0500)]
log: Drop trailing \n from log messages

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolog: Don't crash when name is NULL
Stéphane Graber [Fri, 7 Feb 2014 14:15:39 +0000 (09:15 -0500)]
log: Don't crash when name is NULL

This fixes a crash in lxc-autostart following the addition of
lxc_log_init as lxc-autostart doesn't use the name property.

Signed-off-by: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agochange version to 1.0.0.beta4 in configure.ac
Stéphane Graber [Fri, 7 Feb 2014 00:19:28 +0000 (19:19 -0500)]
change version to 1.0.0.beta4 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: only include CFLAGS and LDADD when needed
Dwight Engen [Thu, 6 Feb 2014 22:38:16 +0000 (17:38 -0500)]
cgmanager: only include CFLAGS and LDADD when needed

lxc-cgroup doesn't depend on cgmanager

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: Pass http_proxy through sudo environment
Stéphane Graber [Thu, 6 Feb 2014 22:35:55 +0000 (17:35 -0500)]
tests: Pass http_proxy through sudo environment

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodownload: Use port-80 pool for gpg over http
Stéphane Graber [Thu, 6 Feb 2014 22:34:12 +0000 (17:34 -0500)]
download: Use port-80 pool for gpg over http

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotemplates: Make sure usual locations are in PATH
Stéphane Graber [Thu, 6 Feb 2014 21:23:59 +0000 (16:23 -0500)]
templates: Make sure usual locations are in PATH

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodownload: Fix previous change
Stéphane Graber [Thu, 6 Feb 2014 22:11:51 +0000 (17:11 -0500)]
download: Fix previous change

The previous change to support http proxies only worked when http_proxy
was set... Instead add some detection code and only use :80 when using
http_proxy.

That's a bit of a workaround, but it's the only way I could find to get
GPG to work with http_proxy.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoimplement cgmanager nrtasks
Dwight Engen [Thu, 6 Feb 2014 20:38:04 +0000 (15:38 -0500)]
implement cgmanager nrtasks

This op will be used on older kernels where container shutdown via reboot(2)
is not implemented and we use the utmp watching code.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoAdd missing include of signal.h
Stéphane Graber [Thu, 6 Feb 2014 18:53:31 +0000 (13:53 -0500)]
Add missing include of signal.h

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodownload: Force hkp on port 80 (for http proxies)
Stéphane Graber [Thu, 6 Feb 2014 17:24:58 +0000 (12:24 -0500)]
download: Force hkp on port 80 (for http proxies)

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agosplit cgroup handling into discrete backends
Dwight Engen [Wed, 5 Feb 2014 21:59:26 +0000 (16:59 -0500)]
split cgroup handling into discrete backends

- refactor cgroup into two backends, the classic cgfs driver and the new
  cgmanager. Instead of lxc_handler knowing about the internals of each,
  have it just store an opaque pointer to a struct that is private to
  each backend.

- rename a couple of cgroup functions for consistency: those that are
  considered an API (ie. exported by lxc.h) begin with lxc_ and those that
  are not are just cgroup_*

- made as many backend routines static as possible, only cg*_ops_init is
  exported

- made a nrtasks op which is needed by the utmp code for monitoring
  container shutdown, currently only implemented for the cgfs backend

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agomove cgroup.c to cgfs.c in preparation for backend change
Dwight Engen [Wed, 5 Feb 2014 21:59:16 +0000 (16:59 -0500)]
move cgroup.c to cgfs.c in preparation for backend change

This is just a move without any changes so history will be preserved.
Makefile.am was modified so that lxc will still build and run.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agodoc: Add the common options section to lxc-create(1)
KATOH Yasufumi [Thu, 6 Feb 2014 11:54:21 +0000 (20:54 +0900)]
doc: Add the common options section to lxc-create(1)

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotemplates: improve refusing to run unprivileged
TAMUKI Shoichi [Thu, 6 Feb 2014 10:38:39 +0000 (19:38 +0900)]
templates: improve refusing to run unprivileged

For all templates except lxc-ubuntu-cloud and lxc-download, detect not
only --mapped-uid but also --mapped-gid and error out.  Detecting will
not be done after -- parameter because of non-option parameters.

Also, change the mode of lxc-archlinux.in 100755 to 100644.

Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoUpdate license of lsm/selinux.c
Jonas Eriksson [Thu, 6 Feb 2014 10:24:30 +0000 (11:24 +0100)]
Update license of lsm/selinux.c

Change the license from GPL to LGPL to avoid a tricky license situation
for liblxc.so.

Signed-off-by: Jonas Eriksson <jonas.eriksson@enea.com>
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc.id_map bug when writing directly to /proc/pid/[ug]id_map [PATCH]
Miquel van Smoorenburg [Wed, 5 Feb 2014 22:38:11 +0000 (23:38 +0100)]
lxc.id_map bug when writing directly to /proc/pid/[ug]id_map [PATCH]

lxc.id_map bug when writing directly to /proc/pid/[ug]id_map

There's some code in src/lxc/conf.c that sets up the UID/GID mapping. It
can use the external newuidmap/newgidmap tools, or it can write to
/proc/pid/[ug]id_map directly. The latter case is broken: lines are written
without a newline (\n) at the end. This patch fixes that. Note that
I did not check if the newuidmap/newgidmap case still works. It should,
but I wasn't able to test it.

Signed-off-by: Miquel van Smoorenburg <mikevs@xs4all.net>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agopython3: Fix trivial error in clone()
Stéphane Graber [Wed, 5 Feb 2014 23:08:36 +0000 (18:08 -0500)]
python3: Fix trivial error in clone()

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolog: Set log_define properly
Stéphane Graber [Wed, 5 Feb 2014 20:18:21 +0000 (15:18 -0500)]
log: Set log_define properly

This sets lxc_log_define to what should be appropriate values for all
existing binaries that call lxc_log_init.

The name is lxc_<bin name>_ui for anything that's user visible and
lxc_<bin name> for anything that's not.

The parent is set to "lxc" for anything using the API and to the
matching C file name for anything that isn't.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agofix build with cgmanager on Fedora
Dwight Engen [Wed, 5 Feb 2014 21:59:10 +0000 (16:59 -0500)]
fix build with cgmanager on Fedora

- configure fails to compile the cgmanager test without -lnih -lnih-dbus

- fix include path from cgmanger commit f1d9bd1a

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocgmanager: update location of include file
Serge Hallyn [Wed, 5 Feb 2014 23:08:59 +0000 (17:08 -0600)]
cgmanager: update location of include file

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agogentoo: fix portage rw problem
gza [Tue, 4 Feb 2014 23:11:11 +0000 (00:11 +0100)]
gentoo: fix portage rw problem

Signed-off-by: Guillaume Zitta <github.guillaume@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agologging: Add lxc_log_options_no_override function
Stéphane Graber [Tue, 4 Feb 2014 18:03:05 +0000 (13:03 -0500)]
logging: Add lxc_log_options_no_override function

In current LXC, loglevel and logfile are write-once functions.
That behaviour was appropriate when those two were first introduced
(pre-API) but with current API, one would expect to be able to
set_config_item those multiple times.

So instead, introduce lxc_log_options_no_override which when called
turns those two config keys read-only and have all existing binaries
which use log_init call that function once they're done setting the
value requested by the user.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocreate: pass --mapped-gid to templates next to --mapped-uid
Serge Hallyn [Tue, 4 Feb 2014 19:33:10 +0000 (13:33 -0600)]
create: pass --mapped-gid to templates next to --mapped-uid

That way templates can fix group ownership alongside uid ownership.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotemplates: Refuse to run unprivileged
Stéphane Graber [Tue, 4 Feb 2014 16:16:07 +0000 (11:16 -0500)]
templates: Refuse to run unprivileged

Only the download and ubuntu-cloud templates work with unprivileged
containers, for all others, detect --mapped-uid and error out as early
as possible, recommending the use of the download template.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agosupport a custom CentOS repository
Harald Dunkel [Sun, 2 Feb 2014 20:33:15 +0000 (21:33 +0100)]
support a custom CentOS repository

This change introduces a flag --repo to the lxc-centos template
to allow using a local repository (e.g. a loop mounted installer
iso on your web server).

Signed-off-by: Harald Dunkel <harri@afaics.de>
Acked-by: Michael H. Warfield <mhw@WittsEnd.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocgmanager: have root escape to root cgroup before starting
Serge Hallyn [Mon, 3 Feb 2014 21:11:16 +0000 (15:11 -0600)]
cgmanager: have root escape to root cgroup before starting

If a user in cgroup /a/b/c does 'lxc-start -n u1', then u1
should be started under /a/b/c/u1.  However if he does
'sudo lxc-start -n u1', then that cgroup shoudl start under
/lxc/u1.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: container-base apparmor abstraction: allow mount move
Serge Hallyn [Mon, 3 Feb 2014 21:16:31 +0000 (15:16 -0600)]
cgmanager: container-base apparmor abstraction: allow mount move

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoFix error message if nodename is too long
Rafal Wojdyla [Thu, 30 Jan 2014 14:13:45 +0000 (15:13 +0100)]
Fix error message if nodename is too long

Signed-off-by: Rafal Wojdyla <ravwojdyla@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc.container.conf(5) for lxc.rootfs.options
KATOH Yasufumi [Mon, 3 Feb 2014 06:41:43 +0000 (15:41 +0900)]
doc: Update Japanese lxc.container.conf(5) for lxc.rootfs.options

update for commit a17b1e65faaffe34c83860e599be21ad8e59b338

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-info(1) to remove "RUNNING" of -c option
KATOH Yasufumi [Mon, 3 Feb 2014 06:41:42 +0000 (15:41 +0900)]
doc: Update Japanese lxc-info(1) to remove "RUNNING" of -c option

update for commit 5c4734bcfb57a9886904e0dec3a2685fea617811

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoshutdown: Rework API and lxc-stop
Stéphane Graber [Fri, 31 Jan 2014 13:56:55 +0000 (13:56 +0000)]
shutdown: Rework API and lxc-stop

With this change, shutdown() will no longer call stop() after the
timeout, instead it'll just return false and it's up to the caller to
then call stop() if appropriate.

This also updates the bindings, tests and other scripts.

lxc-stop is then updated to do proper option checking and use shutdown,
stop or reboot as appropriate.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocgmanager: chmod the container's base directory 775
Serge Hallyn [Fri, 31 Jan 2014 13:03:44 +0000 (13:03 +0000)]
cgmanager: chmod the container's base directory 775

In order for attach to work, the container owner must be able to
write to the tasks file.  Therefore we make the container's cgroup
owned by the container root group, but the container owner uid.
So for the container root to be allowed to create new cgroups, it
needs group write perms.

With this patch, an unprivileged container with an
lxc.mount.auto = cgroup entry entry can run the cgproxy and pass
all cgmanager tests.

Acls would have been another way to do this, but are not yet being
used/exported by cgmanager.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix the timeout == 0 case in lxcapi_shutdown()
Robert Vogelgesang [Fri, 31 Jan 2014 10:47:02 +0000 (11:47 +0100)]
Fix the timeout == 0 case in lxcapi_shutdown()

The timeout argument should be handled as follows:
   -1 => Wait forever
    0 => Don't wait
  > 0 => Wait for timeout seconds

Without this patch, the 0 case is mapped to -1.

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoImplement lxc.rootfs.options
Stéphane Graber [Sun, 26 Jan 2014 05:08:49 +0000 (00:08 -0500)]
Implement lxc.rootfs.options

This introduces a new lxc.rootfs.options which lets you pass new
mountflags/mountdata when mounting the root filesystem.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc_info: Fix -H with -c
Stéphane Graber [Thu, 30 Jan 2014 17:25:21 +0000 (17:25 +0000)]
lxc_info: Fix -H with -c

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agospecify mode whenever mounting tmpfs
Serge Hallyn [Fri, 31 Jan 2014 09:51:21 +0000 (09:51 +0000)]
specify mode whenever mounting tmpfs

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgroup: change unfreeze_fromhandler to return bool
Serge Hallyn [Thu, 30 Jan 2014 14:19:41 +0000 (14:19 +0000)]
cgroup: change unfreeze_fromhandler to return bool

To be more consistent with other cgroup_ops methods, in the hopes
of having less return-value-related mixups.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: support lxc.mount.auto = cgroup
Serge Hallyn [Thu, 30 Jan 2014 14:18:30 +0000 (14:18 +0000)]
cgmanager: support lxc.mount.auto = cgroup

If it (or any variation thereof) is in the container configuration,
then mount /sys/fs/cgroup/cgmanager.lower (if it exists) or
/sys/fs/cgroup/cgmanager into the container so it can run a
cgproxy.

Also make sure to clear our groups when we start or attach to a
container.  Else with unprivileged containers we end up with
lots of nogroups listed in /proc/1/status.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>