Commit Graph

4750 Commits

Author SHA1 Message Date
Sergei Trofimovich
af6824fce9 Use AC_HEADER_MAJOR to detect major()/minor()/makedev()
Before the change build failed on Gentoo as:

  bdev/lxclvm.c: In function 'lvm_detect':
  bdev/lxclvm.c:140:4: error: implicit declaration of function 'major' [-Werror=implicit-function-declaration]
    major(statbuf.st_rdev), minor(statbuf.st_rdev));
    ^~~~~
  bdev/lxclvm.c:140:28: error: implicit declaration of function 'minor' [-Werror=implicit-function-declaration]
    major(statbuf.st_rdev), minor(statbuf.st_rdev));
                            ^~~~~

glibc plans to remove <sys/sysmacros.h> from glibc's <sys/types.h>:
    https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html

Gentoo already applied glibc patch to experimental glibc-2.24
to start preparingfor the change.

Autoconf has AC_HEADER_MAJOR to find out which header defines
reqiured macros:
    https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Particular-Headers.html

This change should also increase portability across other libcs.

Bug: https://bugs.gentoo.org/604360
Signed-off-by: Sergei Trofimovich <siarheit@google.com>
2017-01-21 11:57:13 +00:00
Christian Brauner
b7329cebaf Merge pull request #1382 from evgeni/lsb-cgroupfs-mount
add cgroupfs-mount to Should-Start/Stop sysvinit LSB headers
2017-01-12 15:38:27 +01:00
Evgeni Golov
2704c1ccdd add cgroupfs-mount to Should-Start/Stop sysvinit LSB headers
otherwise init might try to start the containers before cgroupfs was
mounted.

Debian-Bug: https://bugs.debian.org/850212

Signed-off-by: Evgeni Golov <evgeni@debian.org>
2017-01-12 12:51:55 +01:00
Serge Hallyn
3728ed350c Merge pull request #1381 from brauner/2017-01-11/fix_volatile_containers
tools/lxc-start: remove c->is_defined(c) check
2017-01-11 10:05:32 -06:00
Christian Brauner
72c78e0e1c
tools/lxc-start: remove c->is_defined(c) check
We do not check here whether the container is defined, because we support
volatile containers. Which means the container does not need to be created for
it to be started. You can just pass a configuration file as argument and start
the container right away.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-01-11 16:20:20 +01:00
Serge Hallyn
e3cca06889 Merge pull request #1373 from brauner/2016-01-02/fix_execute_and_improve_setgroups
start: fix execute and improve setgroups() calls
2017-01-07 10:33:57 -06:00
Christian Brauner
87bf0db03d
start: check for CAP_SETGID before setgroups()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-01-07 12:50:26 +01:00
Christian Brauner
ca364dc0dd
caps: add lxc_cap_is_set()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-01-07 12:40:37 +01:00
Christian Brauner
d08f8d2f74
start: fix execute and improve setgroups() calls
lxc_execute() and lxc-execute where broken when a user tried to switch to a
non-root uid/gid. This prevented necessary setup operations like mounting the
rootfs which require root in the user namespace. This commit separates
switching to root in the user namespace from switching to the requested uid/gid
by lxc_execute().
This should be safe: Once we switched to root in the user namespace via
setuid() and then switch to a non-root uid/gid in the user namespace for
lxc_execute() via setuid() we cannot regain root privileges again. So we can
only make us safer (Unless I forget about some very intricate user namespace
nonsense; which is not as unlikely as I try to make it sound.).

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-01-07 11:18:22 +01:00
Christian Brauner
dbaf55a353
utils: add uid, gid, group convenience wrappers
This commit adds lxc_switch_uid_gid() which allows to switch the uid and gid of
a process via setuid() and setgid() and lxc_setgroups() which allows to set
groups via setgroups(). The main advantage is that they nicely log the switches
they perform.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-01-07 11:18:19 +01:00
Stéphane Graber
4484e6f80c Merge pull request #1379 from brauner/2017-01-04/fix_android
tools: only check for O_RDONLY
2017-01-04 17:30:09 +01:00
Stéphane Graber
4d690b8c5c Merge pull request #1376 from brauner/2017-01-04/sic_semper_assertis
tree-wide: Sic semper assertis!
2017-01-04 16:40:31 +01:00
Christian Brauner
371802081a
tools: only check for O_RDONLY
On some Android systems the lxc folders where containers are stored might be
read-only and so checking for O_RDWR, will effectively make the tools useless
on these systems, so let's dumb the check down to O_RDONLY.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-01-04 16:28:50 +01:00
Christian Brauner
97bc24229c
tree-wide: Sic semper assertis!
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-01-04 15:19:46 +01:00
Christian Brauner
c9ee396595 Merge pull request #1378 from Cypresslin/fix-api-test-s390x
python3-lxc: fix api_test.py on s390x
2017-01-04 13:33:52 +01:00
Po-Hsu Lin
e170106812 python3-lxc: fix api_test.py on s390x
The api_test.py script uses Trusty release by default, which does not
have s390x image. Switch to Xenial to solve this.

Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
2017-01-04 19:23:04 +08:00
Stéphane Graber
f290a8061f Merge pull request #1374 from brauner/2017-01-03/fix_suggest_default_idmap
conf: fix suggest_default_idmap()
2017-01-03 18:22:47 +01:00
Christian Brauner
b7930180d1
conf: fix suggest_default_idmap()
We need to remove the newline otherwise lxc_safe_uint() will fail as it detects
an invalid (non-numeric) char in the string.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2017-01-03 11:08:25 +01:00
Stéphane Graber
a87e4d015e Merge pull request #1365 from brauner/2016-12-25/skip_test_on_broken_overlayfs_symlinks
tests: skip unpriv tests on broken overlay module
2016-12-29 09:09:39 -05:00
Christian Brauner
90e4eead72
tests: skip unpriv tests on broken overlay module
This mainly affects Trusty. The 3.13 kernel has a broken overlay module which
does not handle symlinks correctly. This is a problem for containers that use
an overlay based rootfs since safe_mount() uses /proc/<pid>/fd/<fd-number> in
its calls to mount().

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2016-12-28 16:43:55 +01:00
Christian Brauner
64fa248372 Merge pull request #1360 from ffontaine/master
Add --enable-gnutls option
2016-12-19 09:07:55 +01:00
Fabrice Fontaine
c8601571aa Add --enable-gnutls option
Previously HAVE_LIBGNUTLS was never set in config.h even if gnutls was
detected as AC_CHECK_LIB default action-if-found was overriden by
enable_gnutls=yes
This patch adds an --enable-gnutls option and will call AC_CHECK_LIB
with the default action to write HAVE_LIBGNUTLS in config.h

Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com>
2016-12-18 21:42:07 +01:00
Serge Hallyn
8b7ffa302d Merge pull request #1343 from lifupan/master
confile: support the network link string pattern matching
2016-12-16 12:46:32 -06:00
Christian Brauner
7d091d9e96 Merge pull request #1358 from evgeni/no-default-passwords
do not set insecure passwords
2016-12-16 00:16:34 +01:00
Christian Brauner
555fc01aa7 Merge pull request #1357 from evgeni/opensuse-systemd-fixes
OpenSUSE systemd fixes
2016-12-16 00:15:47 +01:00
Evgeni Golov
37fbf44812 do not set insecure passwords
Signed-off-by: Evgeni Golov <evgeni@debian.org>
2016-12-15 20:04:15 +01:00
Evgeni Golov
62386d9319 lxc-opensuse: rm poweroff.target -> sigpwr.target copy
Given commit 330ae3d350:

    lxccontainer: detect if we should send SIGRTMIN+3

    This is required by systemd to cleanly shutdown. Other init systems should not
    have SIGRTMIN+3 in the blocked signals set.

we should stop poking around with sigpwr.target for systemd.

Signed-off-by: Evgeni Golov <evgeni@debian.org>
2016-12-15 20:02:10 +01:00
Evgeni Golov
000f7f1c56 don't try to get stuff from /usr/lib/systemd on the host
it might not even be there…

Signed-off-by: Evgeni Golov <evgeni@debian.org>
2016-12-15 19:59:13 +01:00
fli
576400e5e0 confile: support the network link string pattern matching
Enable lxc network config support the following type and link:

lxc.network.type = phys
lxc.network.link = eth+

Here, the suffix '+' will trigger a string pattern matching
and when lxc find any network interfaces name prefixed with
"eth" such as "eth0", "eth1", "ethxxxx" and so on, it will
try to move them into the container's namespace; If it didn't
find any matching, it would do nothing for this configure
line.

Signed-off-by: fli <fupan.li@windriver.com>
2016-12-12 18:11:13 -08:00
Christian Brauner
154a741200 Merge pull request #1354 from tsdmgz/leap-422-template
templates: update openSUSE release to 42.2
2016-12-13 00:11:27 +01:00
Christian Brauner
b0a17c4a21 Merge pull request #1352 from evgeni/powerpc
Debian: powerpc and architecture fixes
2016-12-12 22:37:44 +01:00
Terzeus S. Dominguez
e080c49ab0
Remove libgcc_s1 from openSUSE template
Removed libgcc_s1 because it breaks container building for openSUSE.

Related: openSUSE/obs-build#188

Signed-off-by: Terzeus S. Dominguez <tsdmgz@gmail.com>
2016-12-13 05:01:05 +08:00
Santiago Ruano Rincón
944d1191f3 templates/lxc-debian.in: handle ppc hostarch -> powerpc
Signed-off-by: Santiago Ruano Rincón <santiago@debian.org>
Signed-off-by: Evgeni Golov <evgeni@debian.org>
2016-12-12 21:26:00 +01:00
Santiago Ruano Rincón
7d4c775a81 templates/lxc-debian.in: Fix typo in calling dpkg with --print-foreign-architectures option
Signed-off-by: Santiago Ruano Rincón <santiago@debian.org>
Signed-off-by: Evgeni Golov <evgeni@debian.org>
2016-12-12 21:25:09 +01:00
Terzeus S. Dominguez
3ddfde2ad1
Set openSUSE to be unconfined by AppArmor
Uncommented lxc.aa_profile = unconfined. Otherwise, container fails to
start up.

Signed-off-by: Terzeus S. Dominguez <tsdmgz@gmail.com>
2016-12-13 03:51:18 +08:00
Terzeus S. Dominguez
e783e4bd74
Change openSUSE default release to Leap 42.2
Signed-off-by: Terzeus S. Dominguez <tsdmgz@gmail.com>
2016-12-13 01:48:53 +08:00
Terzeus S. Dominguez
76a8633817
Update openSUSE template for Leap 42.2
Aside from adding a 42.2 option, $DISTRO comparisons for Leap have been
changed [ exp ] => [[ exp ]] to accomodate pattern matching for future
releases.

Signed-off-by: Terzeus S. Dominguez <tsdmgz@gmail.com>
2016-12-13 01:48:53 +08:00
Stéphane Graber
759e73a56e Merge pull request #1351 from Blub/cleanup/save-errno
conf, attach: save errno across call to close
2016-12-10 19:43:08 +01:00
Wolfgang Bumiller
fad6ef95ff conf, attach: save errno across call to close
Save errno across some calls to close() since it can be
interrupted.

Signed-off-by: Wolfgang Bumiller <wry.git@bumiller.com>
2016-12-10 19:12:02 +01:00
Stéphane Graber
f1f9cbf294 Merge pull request #1346 from brauner/2016-11-08/fix_attach_fd_leak_master
attach: close lsm label file descriptor
2016-12-09 10:37:06 +01:00
Christian Brauner
1d8e5ca2df
attach: close lsm label file descriptor
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2016-12-08 23:13:11 +01:00
Christian Brauner
0f6bc7aff3 Merge pull request #1344 from FooDeas/fix-getty
templates: fix getty service startup
2016-12-08 14:22:32 +01:00
FooDeas
e95d7a59ca templates: fix getty service startup
Commit bf39edb39e broke the handling of the getty service file with an '@' character in filename. So the startup condition was not fixed.

Because the parameter was quoted with the causal commit, the escaping has to be removed.

Signed-off-by: Andreas Eberlein foodeas@aeberlein.de
2016-12-08 14:03:10 +01:00
Stéphane Graber
27cc1441b0 Merge pull request #1342 from brauner/2016-12-06/fix_printf_lxc_top
tools: account for different architectures
2016-12-06 11:02:44 -05:00
Christian Brauner
9dba726e16
tools: account for different architectures
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2016-12-06 16:42:28 +01:00
Christian Brauner
862722a2c3 Merge pull request #1341 from attivio/lxc-top-iops
attach batch mode with -b flag which prints csv output with a timestamp
2016-12-06 14:25:32 +01:00
martin
b420058dd3 attach batch mode with -b flag which prints csv output with a timestamp
Signed-off-by: martin <martin@attivio.com>
2016-12-05 15:09:14 -05:00
Christian Brauner
de1d1db19d Merge pull request #1337 from stgraber/master
tests; Don't cause test failures on cleanup errors
2016-12-03 11:29:11 -05:00
Stéphane Graber
f8df61b2b7 Merge pull request #1340 from brauner/2016-12-02/cap_drop_keep_report_better_error
conf: clearly report to either use drop or keep
2016-12-02 14:04:03 -05:00
Christian Brauner
7389ca267f
conf: clearly report to either use drop or keep
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
2016-12-02 19:41:11 +01:00