]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
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>
10 years agocgmanager: implement attach
Serge Hallyn [Thu, 30 Jan 2014 12:15:32 +0000 (12:15 +0000)]
cgmanager: implement attach

The cgroupfs-specific code is moved from attach.c to cgroup.c.

lxc-cgmanager now only chgrps the container's cgroup, so that the
unprivileged user still owns the tasks file allowing him to enter
the container cgroup (for attach).

Some other changes rolled into the cgmanager update:

Make the list of subsystems not per-handler, as it will not change.  As
a result, the only state we need to keep in the per-handler cgroup data
is the char *cgroup_path, so we can drop the cgm_data struct altogether.

Catch nih errors (as not doing so causes later crashes).

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-ubuntu-cloud: Update arm* cross
Stéphane Graber [Fri, 31 Jan 2014 09:34:03 +0000 (09:34 +0000)]
lxc-ubuntu-cloud: Update arm* cross

| host arch | arm64 | armhf | armel |
-------------------------------------
| arm64     |   X   |   X   |   X   |
| armhf     |       |   X   |   X   |
| armel     |       |   X   |   X   |
-------------------------------------

Although optional, all existing arm64 silicon supports 32bit instructions.
armel/armhf is only a userspace change, so they are interchangeable.
However armhf isn't supported on all armel platforms (e.g. armv6) but
all those we support have hard-float.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-ubuntu-cloud: various small changes
Scott Moser [Thu, 30 Jan 2014 16:21:08 +0000 (11:21 -0500)]
lxc-ubuntu-cloud: various small changes

 * ppc64el images now exist and generally function.
   Instead of failing because an arch isnt in the list,
   let that check happen by ability to download something.
 * update the hard coded ubuntu releases to know about 'trusty'
   and drop no longer supported releases (consistent with behavior
   when distro-info is available)
 * shorten the logic that decides if host and container arch
   are supported.
 * support skipping "invalid arch" check entirely via undocumented
   variable UCTEMPLATE_SKIP_ARCH_CHECK.
 * update usage to reference 'tryreleased' as the default 'stream'
 * give good error message if user tries 'released' and there
   is no released version available.

Signed-off-by: Scott Moser <smoser@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix lxc-stop's argument parsing
Robert Vogelgesang [Thu, 30 Jan 2014 15:18:50 +0000 (16:18 +0100)]
Fix lxc-stop's argument parsing

Change lxc-stop's argument parsing so that it matches what the help option
and the man page both describe.

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agouse susv3 head arguments
Bogdan Purcareata [Thu, 30 Jan 2014 17:07:21 +0000 (12:07 -0500)]
use susv3 head arguments

Without enabling INCLUDE_SUSv2 in busybox, we need to use head's -n argument,
rather than -#.

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: lxc-info -c doesn't require RUNNING
Stéphane Graber [Fri, 31 Jan 2014 09:16:04 +0000 (09:16 +0000)]
doc: lxc-info -c doesn't require RUNNING

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agobdev: Rename mount_unknow_fs to mount_unknown_fs
Stéphane Graber [Thu, 30 Jan 2014 12:18:55 +0000 (12:18 +0000)]
bdev: Rename mount_unknow_fs to mount_unknown_fs

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoupstart: Make sure FORWARD is allowed for containers
Stéphane Graber [Thu, 30 Jan 2014 14:29:58 +0000 (14:29 +0000)]
upstart: Make sure FORWARD is allowed for containers

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocgmanager chown: close socketpair on error paths
Serge Hallyn [Wed, 29 Jan 2014 17:31:49 +0000 (17:31 +0000)]
cgmanager chown: close socketpair on error paths

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years ago[PATCH cgmanager chown: don't do a gratuitous fork
Serge Hallyn [Wed, 29 Jan 2014 16:17:09 +0000 (16:17 +0000)]
[PATCH cgmanager chown: don't do a gratuitous fork

userns_exec_1() clones a new task to manipulate.  We don't
need to fork before calling that.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoInclude config.h early for _GNU_SOURCE with uClibc
Natanael Copa [Wed, 29 Jan 2014 14:23:50 +0000 (14:23 +0000)]
Include config.h early for _GNU_SOURCE with uClibc

This fixes the following compile errors with uClibc:

lxc_snapshot.c: In function 'print_file':
lxc_snapshot.c:71:2: error: implicit declaration of function 'getline' [-Werror=implicit-function-declaration]
  while (getline(&line, &sz, f) != -1) {
  ^
cc1: all warnings being treated as errors

lxc_usernsexec.c: In function 'read_default_map':
lxc_usernsexec.c:181:2: error: implicit declaration of function 'getline' [-Werror=implicit-function-declaration]
  while (getline(&line, &sz, fin) != -1) {
  ^
cc1: all warnings being treated as errors

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoInclude config.h early for _GNU_SOURCE with musl libc
Natanael Copa [Wed, 29 Jan 2014 14:23:49 +0000 (14:23 +0000)]
Include config.h early for _GNU_SOURCE with musl libc

This fixes various compile errors when building with musl libc. For
example:

In file included from start.c:66:0:
monitor.h:38:12: error: 'NAME_MAX' undeclared here (not in a function)
  char name[NAME_MAX+1];
            ^
start.c: In function 'setup_signal_fd':
start.c:202:2: error: implicit declaration of function 'sigfillset' [-Werror=implicit-function-declaration]
  if (sigfillset(&mask) ||
  ^

...

In file included from freezer.c:36:0:
monitor.h:39:12: error: 'NAME_MAX' undeclared here (not in a function)
  char name[NAME_MAX+1];
            ^
...

In file included from cgroup.c:45:0:
conf.h:87:13: error: 'IFNAMSIZ' undeclared here (not in a function)
  char veth1[IFNAMSIZ]; /* needed for deconf */
             ^
cgroup.c: In function 'find_cgroup_subsystems':
cgroup.c:230:3: error: implicit declaration of function 'strdup' [-Werror=implicit-function-declaration]
   (*kernel_subsystems)[kernel_subsystems_count] = strdup(line);
   ^
...

In file included from conf.c:65:0:
conf.h:87:13: error: 'IFNAMSIZ' undeclared here (not in a function)
  char veth1[IFNAMSIZ]; /* needed for deconf */
             ^
In file included from conf.c:66:0:
conf.c: In function 'run_buffer':
log.h:263:9: error: implicit declaration of function 'strsignal' [-Werror=implicit-function-declaration]
  struct lxc_log_locinfo locinfo = LXC_LOG_LOCINFO_INIT;  \
         ^
...

af_unix.c: In function 'lxc_abstract_unix_send_credential':
af_unix.c:208:9: error: variable 'cred' has initializer but incomplete type
  struct ucred cred = {
         ^
af_unix.c:209:3: error: unknown field 'pid' specified in initializer
   .pid = getpid(),
   ^
af_unix.c:209:3: error: excess elements in struct initializer [-Werror]
af_unix.c:209:3: error: (near initialization for 'cred') [-Werror]
af_unix.c:210:3: error: unknown field 'uid' specified in initializer
   .uid = getuid(),
   ^
af_unix.c:210:3: error: excess elements in struct initializer [-Werror]
af_unix.c:210:3: error: (near initialization for 'cred') [-Werror]
af_unix.c:211:3: error: unknown field 'gid' specified in initializer
   .gid = getgid(),
   ^

and more...

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoCheck for non-posix utmpxname in configure
Natanael Copa [Wed, 29 Jan 2014 14:23:48 +0000 (14:23 +0000)]
Check for non-posix utmpxname in configure

utmpx.h is specified in POSIX but utmpxname is not so we check for
utmpxname in configure script.

This fixes the following compile error with musl libc:
lxcutmp.c: In function 'utmp_get_runlevel':
lxcutmp.c:249:2: error: implicit declaration of function 'utmpxname' [-Werror=implicit-function-declaration]
  if (!access(path, F_OK) && !utmpxname(path))
    ^

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoDon't include linux/if_bridge.h
Natanael Copa [Wed, 29 Jan 2014 14:23:47 +0000 (14:23 +0000)]
Don't include linux/if_bridge.h

Instead rely on struct ethhdr from net/ethernet.h

This fixes build error with musl libc:
In file included from /usr/include/linux/if_bridge.h:17:0,
                 from network.c:47:
/usr/include/linux/if_ether.h:133:8: error: redefinition of 'struct ethhdr'
 struct ethhdr {
        ^
In file included from /usr/include/net/ethernet.h:10:0,
                 from network.c:42:
/usr/include/netinet/if_ether.h:93:8: note: originally defined here
 struct ethhdr {
        ^

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoInclude limits.h for NAME_MAX
Natanael Copa [Wed, 29 Jan 2014 14:23:46 +0000 (14:23 +0000)]
Include limits.h for NAME_MAX

This fixes compile error with musl libc:
In file included from start.c:66:0:
monitor.h:38:12: error: 'NAME_MAX' undeclared here (not in a function)
  char name[NAME_MAX+1];
            ^

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoInclude strings.h for strcasecmp
Natanael Copa [Wed, 29 Jan 2014 14:23:45 +0000 (14:23 +0000)]
Include strings.h for strcasecmp

This fixes the following error with musl libc:
In file included from start.c:59:0:
log.h: In function 'lxc_log_priority_to_int':
log.h:136:2: error: implicit declaration of function 'strcasecmp' [-Werror=implicit-function-declaration]

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoUse the standard 'unsigned int' instead or non-standard 'uint'
Natanael Copa [Wed, 29 Jan 2014 14:23:44 +0000 (14:23 +0000)]
Use the standard 'unsigned int' instead or non-standard 'uint'

This fixes compile error when build with musl libc:
conf.h:92:2: error: unknown type name 'uint'
  uint   fmask;
  ^

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoInclude poll.h instead of sys/poll.h
Natanael Copa [Wed, 29 Jan 2014 14:23:43 +0000 (14:23 +0000)]
Include poll.h instead of sys/poll.h

poll.h is defined in POSIX:
http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html

This fixes a compile warning when building with musl libc:
In file included from start.c:46:0:
/usr/include/sys/poll.h:1:2: error: #warning redirecting incorrect #include <sys
/poll.h> to <poll.h> [-Werror=cpp]
 #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
  ^

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agouserns_exec_1: catch errors in the spawned process.
Serge Hallyn [Wed, 29 Jan 2014 15:17:06 +0000 (15:17 +0000)]
userns_exec_1: catch errors in the spawned process.

lxc_map_ids can call system(3), which on error from the
spawned process returns > 0.  No path should return > 0
when it meant success.  So check the lxc_map_ids() value
to be != rather than just < 0.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoTwo further cgroup cleanups:
Robert Vogelgesang [Wed, 29 Jan 2014 13:52:35 +0000 (14:52 +0100)]
Two further cgroup cleanups:

Move the test of mp->need_cpuset_init to a logically better place.
Avoid misleading error messages.

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-alpine: disable sys_admin by default
Natanael Copa [Wed, 29 Jan 2014 13:00:48 +0000 (13:00 +0000)]
lxc-alpine: disable sys_admin by default

It is normally not needed.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoubuntu/ubuntu-cloud: Add support for arm64 and ppc64el
Stéphane Graber [Tue, 28 Jan 2014 18:01:17 +0000 (18:01 +0000)]
ubuntu/ubuntu-cloud: Add support for arm64 and ppc64el

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-monitord.log should not be created with mode 0666
Robert Vogelgesang [Tue, 28 Jan 2014 11:01:54 +0000 (12:01 +0100)]
lxc-monitord.log should not be created with mode 0666

lxc_monitord_spawn() in src/lxc/monitor.c contained "umask(0);", and
because of this, lxc-monitord created lxc-monitord.log with mode 0666.
World-writeable log files are bad, so remove this umask(0).

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-alpine: mount tmpfs on /dev/shm
Kaarle Ritvanen [Tue, 28 Jan 2014 17:03:27 +0000 (19:03 +0200)]
lxc-alpine: mount tmpfs on /dev/shm

Signed-off-by: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc_container_new: fail on config file parse error
Serge Hallyn [Tue, 28 Jan 2014 13:28:19 +0000 (13:28 +0000)]
lxc_container_new: fail on config file parse error

If we have a bad config file entry, fail.  Otherwise lxc-start
will proceed with a partial configuration.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocgroups: adjust previous commit
Serge Hallyn [Wed, 29 Jan 2014 09:40:39 +0000 (09:40 +0000)]
cgroups: adjust previous commit

Remove a memory leak on error path.

Only try to initialize cpuset if cgroup.clonechildren does not exist.

Bump the max value we read from cpuset.{cpus,mems} to 1024.

If cpuset.cpus or .mems is already initialized but is too long, don't fail.

If parent's cpuset.cpus or .mems is too long, record an error and fail.
If anyone actually runs into this, we can simply allocate the required
length as needed, but we don't expect anyone to run into this.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocgroupfs: cpuset support for kernels without cgroup.clone_children
Robert Vogelgesang [Mon, 27 Jan 2014 17:35:23 +0000 (18:35 +0100)]
cgroupfs: cpuset support for kernels without cgroup.clone_children

Hi,

as promised last week, here's my patch for cpuset cgroup support for
kernels without the cgroup.clone_children feature.

My initial patch used "#include <linux/version.h>" and the macros defined
there to decide if cgroup.clone_children should be used or not.  After
having seen Serge Hallyn's patch which he posted to the list last Wednesday,
where he used stat() to check if the cgroup.clone_children file is there,
I rewrote my patch to do the same.

The patch is against 1.0.0.beta3, and it is tested successfully with
RHEL-6's kernel version 2.6.32-431.3.1.el6, compiled without cgmanager
(I've so far not tried to use cgmanager in RHEL-6).

In addition to fixing the cpuset cgroup setup, this patch also fixes a
wrong argument in a call to handle_cgroup_settings() in the same context.

Robert

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agogentoo: Fix /dev/tun generation
Stéphane Graber [Tue, 28 Jan 2014 12:22:06 +0000 (12:22 +0000)]
gentoo: Fix /dev/tun generation

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agogentoo: Add basic userns config
Stéphane Graber [Tue, 28 Jan 2014 09:56:37 +0000 (09:56 +0000)]
gentoo: Add basic userns config

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agogentoo: fix comments about hardened
gza [Tue, 28 Jan 2014 08:34:11 +0000 (09:34 +0100)]
gentoo: fix comments about hardened

Signed-off-by: gza <github.guillaume@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agogentoo: template rework
gza [Sun, 26 Jan 2014 19:55:23 +0000 (20:55 +0100)]
gentoo: template rework

Now splited config 2 settings available
* common
** featureful oriented settings
* moresecure
** security oriented

Signed-off-by: gza <github.guillaume@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agogentoo: fix typo, may break host init system
gza [Sat, 25 Jan 2014 06:02:12 +0000 (07:02 +0100)]
gentoo: fix typo, may break host init system

Signed-off-by: gza <github.guillaume@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoexport lxc_cmd_get_config_item via API and use in lxc-info
S.Çağlar Onur [Mon, 27 Jan 2014 22:57:37 +0000 (17:57 -0500)]
export lxc_cmd_get_config_item via API and use in lxc-info

This allows external users to query network related config items
from the running containers.

changes since v1:
- function name change

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agochange version to 1.0.0.beta3 in configure.ac
Stéphane Graber [Mon, 27 Jan 2014 13:52:20 +0000 (13:52 +0000)]
change version to 1.0.0.beta3 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoattach test: always flush stdout
Serge Hallyn [Mon, 27 Jan 2014 11:05:15 +0000 (05:05 -0600)]
attach test: always flush stdout

Otherwise, after a fork, both pids may be flushing.  When
redirecting output to a file, this causes duplicate (or really
far worse) output.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-download: Tweak cache location
Stéphane Graber [Sun, 26 Jan 2014 11:47:48 +0000 (11:47 +0000)]
lxc-download: Tweak cache location

 - Also include the variant in the path
 - Fix invalid LXC_CACHE_BASE
 - Drop redundant code

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxccontainer: fix whitespaces
Luka Perkov [Sun, 26 Jan 2014 00:26:56 +0000 (00:26 +0000)]
lxccontainer: fix whitespaces

Signed-off-by: Luka Perkov <luka.perkov@sartura.hr>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodoc: fix the SEE ALSO section of Japanese lxc-user-nic(1)
KATOH Yasufumi [Mon, 27 Jan 2014 06:39:40 +0000 (15:39 +0900)]
doc: fix the SEE ALSO section of Japanese lxc-user-nic(1)

* update for commit e43157b4b2410a99096576dbdac831cf438133b7

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoIgnore lxc-test-usernic
Stéphane Graber [Sun, 26 Jan 2014 05:17:25 +0000 (00:17 -0500)]
Ignore lxc-test-usernic

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxccontainer: remove PID file after lxc_start return
Qiang Huang [Fri, 24 Jan 2014 03:41:27 +0000 (11:41 +0800)]
lxccontainer: remove PID file after lxc_start return

Make the way symmetric. This also fix the file leak in
daemon model.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoclose the fd on error
S.Çağlar Onur [Sat, 25 Jan 2014 05:46:04 +0000 (00:46 -0500)]
close the fd on error

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxcapi_clone: exit early on snapshot clones
Serge Hallyn [Sat, 25 Jan 2014 22:28:24 +0000 (16:28 -0600)]
lxcapi_clone: exit early on snapshot clones

If the user explicitly asks for a snapshot clone (in which
case maybe_snap is not set), we cannot abide this currently.
Rather than exit later with more cryptic error messages, exit
out early.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-alpine: copy /etc/TZ to container if present
Kaarle Ritvanen [Sat, 25 Jan 2014 21:09:54 +0000 (23:09 +0200)]
lxc-alpine: copy /etc/TZ to container if present

Signed-off-by: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-download: Fix to work without mktemp
Stéphane Graber [Fri, 24 Jan 2014 23:23:28 +0000 (18:23 -0500)]
lxc-download: Fix to work without mktemp

mktemp isn't always available in busybox.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: chown cgroups to the container root
Serge Hallyn [Fri, 24 Jan 2014 05:56:15 +0000 (23:56 -0600)]
cgmanager: chown cgroups to the container root

After this patch, starting an unprivileged container using
cgmanager gets the cgroup chown to the container root, so
that it can install the cgmanager (proxy) and make cgroup
requests.

(Still desirable and not in this patch is the automatic setup of
/sys/fs/cgroup/manager/sock, which you can currently do with
two lxc.mount.entries)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Fix startone
Stéphane Graber [Fri, 24 Jan 2014 20:51:27 +0000 (15:51 -0500)]
tests: Fix startone

 - Fix cgroup test to work on multi-core systems
 - Drop user interaction

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoconf: Fix clear_config_item on lxc.network entries
Stéphane Graber [Fri, 24 Jan 2014 20:20:04 +0000 (15:20 -0500)]
conf: Fix clear_config_item on lxc.network entries

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Fix lxc-user-nic path
Stéphane Graber [Fri, 24 Jan 2014 17:51:01 +0000 (12:51 -0500)]
tests: Fix lxc-user-nic path

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Fix python3 API test
Stéphane Graber [Fri, 24 Jan 2014 19:00:02 +0000 (14:00 -0500)]
tests: Fix python3 API test

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Don't require user interaction in containertests
Stéphane Graber [Fri, 24 Jan 2014 18:49:47 +0000 (13:49 -0500)]
tests: Don't require user interaction in containertests

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix previous change to use defined()
Stéphane Graber [Fri, 24 Jan 2014 18:42:37 +0000 (13:42 -0500)]
Fix previous change to use defined()

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoSupport __NR_set_ns as well.
Stéphane Graber [Fri, 24 Jan 2014 18:27:26 +0000 (13:27 -0500)]
Support __NR_set_ns as well.

Apparently some older systems didn't have __NR_setns but had __NR_set_ns.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: fix See Also lxc-usernet.conf -> lxc-usernet
Dwight Engen [Fri, 24 Jan 2014 18:00:59 +0000 (13:00 -0500)]
doc: fix See Also lxc-usernet.conf -> lxc-usernet

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoUpdate CentOS and Fedora templates to support archtectures option.
Michael H. Warfield [Thu, 23 Jan 2014 20:58:16 +0000 (15:58 -0500)]
Update CentOS and Fedora templates to support archtectures option.

Added code to the CentOS and Fedora templates so that x86 32 bit containers
may be built on x86_64 platforms.  Like archectectures may also be trivially
used as well.

Option added is "-a {arch}".

Additionally cleaned up some bash specific logic.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoidmap_add_id: fix broken behavior
Serge Hallyn [Fri, 24 Jan 2014 04:23:24 +0000 (22:23 -0600)]
idmap_add_id: fix broken behavior

The geteuid() addition is being made the first element of the lxc_list,
but the first element is just a head whose entry is ignored.  Therefore
userns_exec_1() was starting its tasks without the caller's uid mapped
into the namespace.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoadd lua-alt-getopt dependency
Dwight Engen [Fri, 24 Jan 2014 15:06:38 +0000 (10:06 -0500)]
add lua-alt-getopt dependency

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Add Japanese lxc-config(1)
KATOH Yasufumi [Fri, 24 Jan 2014 09:37:22 +0000 (18:37 +0900)]
doc: Add Japanese lxc-config(1)

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Fix createtest
Stéphane Graber [Fri, 24 Jan 2014 04:30:14 +0000 (23:30 -0500)]
tests: Fix createtest

Drop 60s delay and clear config before loading it.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: Remove containers after running clonetest
Stéphane Graber [Fri, 24 Jan 2014 04:20:48 +0000 (23:20 -0500)]
tests: Remove containers after running clonetest

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: Drop 60s delay in shutdowntest
Stéphane Graber [Fri, 24 Jan 2014 02:58:50 +0000 (21:58 -0500)]
tests: Drop 60s delay in shutdowntest

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoFix destroy() crash when no config is loaded
Stéphane Graber [Fri, 24 Jan 2014 02:41:28 +0000 (21:41 -0500)]
Fix destroy() crash when no config is loaded

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