]> git.ipfire.org Git - thirdparty/lxc.git/log
thirdparty/lxc.git
3 months agoselinux: fix typo (AppArmor) stable-6.0
Serge Hallyn [Sat, 12 Apr 2025 04:13:08 +0000 (23:13 -0500)] 
selinux: fix typo (AppArmor)

Signed-off-by: Serge Hallyn <serge@hallyn.com>
3 months agomeson_options.txt: remove space before `:` for consistency
Simon Deziel [Tue, 8 Apr 2025 19:11:44 +0000 (15:11 -0400)] 
meson_options.txt: remove space before `:` for consistency

Essentially doing: `s/ : /: /g`

Signed-off-by: Simon Deziel <simon.deziel@canonical.com>
3 months agomeson_options.txt: don't use str when defining bool default values
Simon Deziel [Tue, 8 Apr 2025 19:10:33 +0000 (15:10 -0400)] 
meson_options.txt: don't use str when defining bool default values

Avoids this deprecation notice from `meson` 1.3.2:

```
:: NOTICE: Future-deprecated features used:
::  * 1.1.0: {'"boolean option" keyword argument "value" of type str'}
```

Other options already use this syntax so backward compat should remain unchanged.

Signed-off-by: Simon Deziel <simon.deziel@canonical.com>
3 months agobionic: Remove custom getline, openpty and prlimit
Stéphane Graber [Tue, 8 Apr 2025 14:49:13 +0000 (10:49 -0400)] 
bionic: Remove custom getline, openpty and prlimit

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agobionic: Remove bionic detection and support
Stéphane Graber [Tue, 8 Apr 2025 14:36:14 +0000 (10:36 -0400)] 
bionic: Remove bionic detection and support

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agoREADME: Remove mention of old LXC version
Stéphane Graber [Tue, 8 Apr 2025 14:46:35 +0000 (10:46 -0400)] 
README: Remove mention of old LXC version

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agostart: Re-introduce first SET_DUMPABLE call
Stéphane Graber [Sat, 5 Apr 2025 05:11:18 +0000 (01:11 -0400)] 
start: Re-introduce first SET_DUMPABLE call

Without it, we're running into issues with complex hooks like nvidia.

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agoRelease LXC 6.0.4 v6.0.4
Stéphane Graber [Thu, 3 Apr 2025 19:42:48 +0000 (15:42 -0400)] 
Release LXC 6.0.4

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agolxc/start: do prctl(PR_SET_DUMPABLE) after last uid/gid switch
Alexander Mikhalitsyn [Thu, 3 Apr 2025 11:26:42 +0000 (13:26 +0200)] 
lxc/start: do prctl(PR_SET_DUMPABLE) after last uid/gid switch

We need to do prctl(PR_SET_DUMPABLE) later, after last lxc_switch_uid_gid()
call. Because otherwise, our earlier call won't be effective as commit_creds()
in the kernel [1] will set_dumpable(task->mm, suid_dumpable) if UID/GID or capabilities
were affected by lxc_switch_uid_gid() call.

This only affects LXC API ->start(struct lxc_container *c, int useinit, char *const argv[])
call when useinit == 1 because in this case we don't perform additinal exec() and
task's dumpable bit remains set to 2 (default value taken from /proc/sys/fs/suid_dumpable).

If useinit == 0, then we do exec() (see start_ops->start callback) and then dumblable
flag will be reset in begin_new_exec() to SUID_DUMP_USER=1 [2]. Then everything will be fine.

Reproducer (problem with lxc-attach).

1. Create unprivileged container

$ ./normalbuild/src/lxc/tools/lxc-create -n testcaps -t download

with busybox template and config:

lxc.idmap = u 0 100000 65536
lxc.idmap = g 0 100000 65536
lxc.init.uid = 1234
lxc.init.gid = 4321
lxc.init.cwd = /
lxc.sched.core = 1

2. Run a container with useinit = 1

$ ./lxcbuild/src/lxc/tools/lxc-execute -n testcaps -l TRACE -o /home/ubuntu/debug.log -- /bin/sleep 100

1. Try to attach

$ strace -f -e prctl ./normalbuild/src/lxc/tools/lxc-attach -n testcaps

prctl(PR_CAPBSET_READ, CAP_MAC_OVERRIDE) = 1
prctl(PR_CAPBSET_READ, 0x30 /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, CAP_CHECKPOINT_RESTORE) = 1
prctl(PR_CAPBSET_READ, 0x2c /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, 0x2a /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_CAPBSET_READ, 0x29 /* CAP_??? */) = -1 EINVAL (Invalid argument)
prctl(PR_SCHED_CORE, PR_SCHED_CORE_GET, 4124, 0 /* PIDTYPE_PID */, [0xd00f7fff]) = 0
strace: Process 4165 attached
strace: Process 4166 attached
[pid  4166] +++ exited with 0 +++
[pid  4164] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4166, si_uid=100000, si_status=0, si_utime=0, si_stime=0} ---
strace: Process 4167 attached
[pid  4167] prctl(PR_SCHED_CORE, PR_SCHED_CORE_SHARE_FROM, 1, 0 /* PIDTYPE_PID */, NULL) = -1 EPERM (Operation not permitted)           <<<<< OOPS
[pid  4165] +++ exited with 0 +++
[pid  4164] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4165, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
lxc-attach: testcaps: ../src/lxc/attach.c: do_attach: 1160 Operation not permitted - Failed to join core scheduling domain of 4124
lxc-attach: testcaps: ../src/lxc/attach.c: do_attach: 1382 Failed to attach to container

prctl(PR_SCHED_CORE, PR_SCHED_CORE_SHARE_FROM...) fails with EPERM, because:
- container's init task->mm: (get_dumpable(mm) != SUID_DUMP_USER)
AND
- mm->user_ns == init_user_ns (as there was no exec() and mm_struct->user_ns was set in the initial
user namespace when we run lxc-execute)
( for more details see [3] )

[1] https://github.com/torvalds/linux/blob/acc4d5ff0b61eb1715c498b6536c38c1feb7f3c1/kernel/cred.c#L412
[2] https://github.com/torvalds/linux/blob/a2cc6ff5ec8f91bc463fd3b0c26b61166a07eb11/fs/exec.c#L1331
[3] https://github.com/torvalds/linux/blob/acc4d5ff0b61eb1715c498b6536c38c1feb7f3c1/kernel/ptrace.c#L344

Reported-by: Stéphane Graber <stgraber@stgraber.org>
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
3 months agolxc/caps: fix open /proc/sys/kernel/cap_last_cap
Alexander Mikhalitsyn [Wed, 2 Apr 2025 09:01:15 +0000 (11:01 +0200)] 
lxc/caps: fix open /proc/sys/kernel/cap_last_cap

Since 7418b27f1 ("tree-wide: use __u32 for capabilities") open
/proc/sys/kernel/cap_last_cap never worked, it was failing with
EXDEV and we were using a fallback codepath to get a last cap.

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
3 months agolxc/conf: handle rootfs open_at error in lxc_mount_rootfs
Alexander Mikhalitsyn [Wed, 2 Apr 2025 08:52:16 +0000 (10:52 +0200)] 
lxc/conf: handle rootfs open_at error in lxc_mount_rootfs

If LXC build is misconfigured, for instance, --prefix=/
and /lib is a symlink to /usr/lib then open_at always fails
to open rootfs. Let's add error print to make it easier to
figure out this.

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
3 months agotools/lxc_attach: fix ENFORCE_MEMFD_REXEC checks
Alexander Mikhalitsyn [Wed, 2 Apr 2025 08:45:11 +0000 (10:45 +0200)] 
tools/lxc_attach: fix ENFORCE_MEMFD_REXEC checks

We unconditionally define ENFORCE_MEMFD_REXEC in meson.build
to a corresponding boolean value, so we need to use #if
instead of #ifdef in the code.

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
3 months agogithub: Add packaging workflow
Stéphane Graber [Tue, 1 Apr 2025 05:08:29 +0000 (01:08 -0400)] 
github: Add packaging workflow

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agoglobal: Switch to new MAC prefix
Stéphane Graber [Sun, 16 Mar 2025 06:23:00 +0000 (02:23 -0400)] 
global: Switch to new MAC prefix

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agoglobal: Switch MAC generation to Zabbly prefix
Stéphane Graber [Sun, 16 Mar 2025 06:20:02 +0000 (02:20 -0400)] 
global: Switch MAC generation to Zabbly prefix

Zabbly obtained the 10:66:6a MAC address prefix for use by
the Linux Containers project.

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agosysconfig/lxc: remove false comment
Managor [Sat, 1 Mar 2025 18:33:43 +0000 (20:33 +0200)] 
sysconfig/lxc: remove false comment

Signed-off-by: Managor <42655600+Managor@users.noreply.github.com>
3 months agoAdded LXC_IPV6_ENABLE option for lxc-net to enable or disable IPv6
Mathias Aerts [Thu, 20 Feb 2025 21:50:04 +0000 (22:50 +0100)] 
Added LXC_IPV6_ENABLE option for lxc-net to enable or disable IPv6

Signed-off-by: Mathias Aerts <mathias.aerts@delta.blue>
3 months agogithub: Switch to native arm64 runners
Stéphane Graber [Thu, 20 Feb 2025 16:27:49 +0000 (11:27 -0500)] 
github: Switch to native arm64 runners

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
3 months agoconfig-bcast: fix incorrect broadcast address calculation
Irnes Mujkanovic [Thu, 20 Feb 2025 14:27:52 +0000 (15:27 +0100)] 
config-bcast: fix incorrect broadcast address calculation

Signed-off-by: Irnes Mujkanovic <irnes.mujkanovic@gmail.com>
3 months agolxc/attach: Revert "- LXC attach should exit on SIGCHLD"
Alexander Mikhalitsyn [Fri, 24 Jan 2025 13:07:36 +0000 (14:07 +0100)] 
lxc/attach: Revert "- LXC attach should exit on SIGCHLD"

This reverts commit f02158439677d0c1d4b2ed2ed1ba9bc43923a05d.

Let's revert this change as it introduces 2 regressions:
1. it's not correct to do exit(2) from a signal handler in this case,
as we skip a proper cleaning procedures like restoring PTY configuration
state (see lxc_terminal_delete()) which leads to a problem with a PTY after lxc-attach exits.

[ hint: just try to use lxc-attach on a main branch with this change and you will
see it. After lxc-attach exits you won't be able to type anything in your
current terminal session as it's messed up. ]

2. this introduces race-condition in the code which leads to a
regression on LXD/(and I believe Incus too) which can be seen as
random "Failed to retrieve PID of executing child process" errors
on "lxc exec"/"incus exec" commands. It's extremely hard to reproduce,
but my guess is that we are getting a race condition here, because
by the time when we set a new signal handler for SIGCHLD, transient process
is still alive and when it exists it generates SIGCHLD which may lead to
exit().

3. This changes a behavior of lxc-attach which was there for *years*
and it's quite scary to be honest. I'm not against having this change, but
in a different form, for example we can add a new command line parameter for
lxc-attach command which will enable this behavior.

My first attempt was to fix that change to prevent race, but then
I've noticed that we also have a more serious problem described in (1),
this requires more work to do.

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
3 months agoconf: warn when capabilities are disabled or libcap is not found
Sotir Danailov [Wed, 8 Jan 2025 23:07:17 +0000 (00:07 +0100)] 
conf: warn when capabilities are disabled or libcap is not found

The reason for this warning, is that the project will compile and when it does
not work, it's not clear from the logs what the reason might be.

Signed-off-by: Sotir Danailov <sndanailov@gmail.com>
3 months agodbus: replace hardcoded dbus address with environment variable
Sotir Danailov [Wed, 8 Jan 2025 22:51:15 +0000 (23:51 +0100)] 
dbus: replace hardcoded dbus address with environment variable

Signed-off-by: Sotir Danailov <sndanailov@gmail.com>
3 months agoconf: log name of invalid capability in error
Sotir Danailov [Wed, 8 Jan 2025 23:05:26 +0000 (00:05 +0100)] 
conf: log name of invalid capability in error

Signed-off-by: Sotir Danailov <sndanailov@gmail.com>
3 months agoconfile-vlanid: undefined is not a zero value
Asain Kujovic [Thu, 2 Jan 2025 21:43:33 +0000 (22:43 +0100)] 
confile-vlanid: undefined is not a zero value

Signed-off-by: Asain Kujovic <asainnp@gmail.com>
3 months ago- LXC attach should exit on SIGCHLD
Asain Kujovic [Tue, 24 Dec 2024 01:13:36 +0000 (02:13 +0100)] 
- LXC attach should exit on SIGCHLD

Signed-off-by: Asain Kujovic <asainnp@gmail.com>
7 months agoRelease LXC 6.0.3 v6.0.3
Stéphane Graber [Thu, 19 Dec 2024 15:48:59 +0000 (10:48 -0500)] 
Release LXC 6.0.3

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agogithub: Improve progress reporting
Stéphane Graber [Thu, 19 Dec 2024 03:49:35 +0000 (22:49 -0500)] 
github: Improve progress reporting

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agogithub: Cleanup OSS-fuzz
Stéphane Graber [Thu, 19 Dec 2024 03:18:26 +0000 (22:18 -0500)] 
github: Cleanup OSS-fuzz

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agogithub: Rework test workflow
Stéphane Graber [Thu, 19 Dec 2024 03:13:05 +0000 (22:13 -0500)] 
github: Rework test workflow

Introduce a main "tests" workflow which runs the LXC testsuite on both
x86_64 and aarch64, on a variety of compilers and OS as well as handling
the santizer runs.

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agogithub: Introduce shared testsuite logic
Stéphane Graber [Thu, 19 Dec 2024 03:12:38 +0000 (22:12 -0500)] 
github: Introduce shared testsuite logic

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agogithub: Introduce shared build logic
Stéphane Graber [Thu, 19 Dec 2024 03:12:22 +0000 (22:12 -0500)] 
github: Introduce shared build logic

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agogithub: Update coverity workflow
Stéphane Graber [Wed, 18 Dec 2024 20:05:57 +0000 (15:05 -0500)] 
github: Update coverity workflow

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agolxc.init: Allow SIGHUP from outside the container
Stéphane Graber [Mon, 16 Dec 2024 19:25:24 +0000 (14:25 -0500)] 
lxc.init: Allow SIGHUP from outside the container

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agolxc.init: Ignore user signals coming from inside the contianer
Stéphane Graber [Mon, 16 Dec 2024 19:25:14 +0000 (14:25 -0500)] 
lxc.init: Ignore user signals coming from inside the contianer

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agolxc.init: Switch to sigaction
Stéphane Graber [Mon, 16 Dec 2024 19:24:14 +0000 (14:24 -0500)] 
lxc.init: Switch to sigaction

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agolxccontainer: fix enter_net_ns helper to work when netns is inherited
Jef Steelant [Fri, 6 Dec 2024 10:20:20 +0000 (11:20 +0100)] 
lxccontainer: fix enter_net_ns helper to work when netns is inherited

If a network namespace is shared by setting lxc.namespace.share.net and
the container is unprivileged, then the network namespace should be
entered before entering the user namespace. However, if an unprivileged
user started a container, then the network namespace should be entered
after entering the user namespace. To solve this, we try to enter the
network namespace before entering the user namespace. If it did not
succeed, it will be tried again inside the uder namespace.

Signed-off-by: Jef Steelant <jef.steelant_ext@softathome.com>
7 months agofix return code of recursive all of cgroup_tree_prune
Guido Jäkel [Wed, 23 Oct 2024 12:07:53 +0000 (14:07 +0200)] 
fix return code of recursive all of cgroup_tree_prune

Signed-off-by: Guido Jäkel <g.jaekel@dnb.de>
7 months agolxc-net: Replace random IPv6 subnet
Stéphane Graber [Fri, 29 Nov 2024 04:06:09 +0000 (23:06 -0500)] 
lxc-net: Replace random IPv6 subnet

This is meant to be a completely random ULA subnet.

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
7 months agomeson: fix minor typo
Seungki Kim [Thu, 24 Oct 2024 16:33:40 +0000 (01:33 +0900)] 
meson: fix minor typo

Fixes: https://github.com/lxc/lxc/issues/4492
Signed-off-by: Seungki Kim <tttuuu888@gmail.com>
7 months agoAvoid null pointer dereference when using shared rootfs.
Steven Galgano [Mon, 14 Oct 2024 19:16:36 +0000 (15:16 -0400)] 
Avoid null pointer dereference when using shared rootfs.
rootfs->storage not set by lxc_storage_prepare when using a shared
rootfs.

Fixes: https://github.com/lxc/lxc/issues/4476
Signed-off-by: Steven Galgano <sgalgano@adjacentlink.com>
7 months agocreate_run_template: don't use txtuid and txtguid out of scope
Serge Hallyn [Thu, 10 Oct 2024 04:18:42 +0000 (23:18 -0500)] 
create_run_template: don't use txtuid and txtguid out of scope

It's ok that we don't free the malloc()d space since we're
immediately exec()ing.

Originally-by: Kurt Godwin <kgodwin@itron.com>
Reported-by: Kurt Godwin <kgodwin@itron.com>
Signed-off-by: Serge Hallyn <serge@hallyn.com>
7 months agoAdd suppport for PuzzleFS images in the oci template
Ariel Miculas-Trif [Wed, 18 Sep 2024 10:07:46 +0000 (13:07 +0300)] 
Add suppport for PuzzleFS images in the oci template

PuzzleFS images (media type 'application/vnd.puzzlefs.image.rootfs.v1')
can be mounted in a similar way to squashfs images, we just have to
detect the type and reuse the existing code for providing a mount
helper. PuzzleFS is a next-generation container filesystem [1] with
several benefits, such as  reduced duplication, reproducible image
builds, direct mounting support and memory safety guarantees.

Since PuzzleFS currently doesn't provide an image config, also add
support for empty image configs, they are supported by the OCI spec [2].

The MOUNT_HELPER is now passed a `--persist <upperdir>` flag, so it
knows that it needs to create an overlay. This is needed because LXC
expects a writable rootfs and both atomfs and puzzlefs are read-only
filesystems.

Example:
```
$ sudo env PATH=$PATH build/src/lxc/tools/lxc-create --name mycontainer -t \
oci -- --url oci:/$HOME/.local/share/puzzlefs/pfs_ubuntu:eg --no-cache

$ sudo build/src/lxc/tools/lxc-start --name mycontainer --foreground /bin/bash
```

--no-cache is needed for puzzlefs until [3] is solved

[1] https://github.com/project-machine/puzzlefs
[2] https://github.com/opencontainers/image-spec/blob/main/manifest.md#image-manifest
[3] https://github.com/project-machine/puzzlefs/issues/131

Signed-off-by: Ariel Miculas-Trif <amiculas@cisco.com>
7 months agomeson.build: drop suggest-attribute=noreturn build option
Serge Hallyn [Thu, 3 Oct 2024 18:41:39 +0000 (13:41 -0500)] 
meson.build: drop suggest-attribute=noreturn build option

The suggest-attribute=noreturn option marks functions which will
never return, to give the compiler some hints.  It catches all of
our src/lxc/tools/*.c *_main functions as follows:

error: function might be candidate for attribute ‘noreturn’ [-Werror=suggest-attribute=noreturn]

But if we mark those __noreturn, then  the compiler complains that:

../src/lxc/tools/lxc_attach.c:320:53: warning: ‘main’ specifies less restrictive attribute than its target ‘lxc_attach_main’: ‘noreturn’ [-Wmissi
ng-attributes]
  320 | int __attribute__((weak, alias("lxc_attach_main"))) main(int argc, char *argv[]);

This recommendation is really not very important, so let's not ask
the build to warn about it.

Signed-off-by: Serge Hallyn <serge@hallyn.com>
7 months agomeson.build: add -ffat-lto-objects
Serge Hallyn [Mon, 16 Sep 2024 12:47:34 +0000 (07:47 -0500)] 
meson.build: add -ffat-lto-objects

Otherwise, if we generate a static library, lintian warns that
it has no code sections.  See

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977596

Signed-off-by: Serge Hallyn <serge@hallyn.com>
10 months agoRelease LXC 6.0.2 v6.0.2
Stéphane Graber [Mon, 16 Sep 2024 15:52:57 +0000 (17:52 +0200)] 
Release LXC 6.0.2

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
10 months agofix possible clang compile error in AARCH
yuncang123 [Sat, 14 Sep 2024 18:03:01 +0000 (02:03 +0800)] 
fix possible clang compile error in AARCH

Signed-off-by: yuncang123 <135211779+yuncang123@users.noreply.github.com>
10 months agoREADME: Update security contact
Stéphane Graber [Sun, 25 Aug 2024 17:17:59 +0000 (13:17 -0400)] 
README: Update security contact

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
10 months agodoc: Fix definitions of get_config_path and set_config_path
Stéphane Graber [Wed, 7 Aug 2024 18:10:59 +0000 (14:10 -0400)] 
doc: Fix definitions of get_config_path and set_config_path

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
10 months agoExit 0 when there's no error
Jip-Hop [Tue, 9 Jul 2024 10:33:36 +0000 (12:33 +0200)] 
Exit 0 when there's no error

Signed-off-by: Jip de Beer <2871973+Jip-Hop@users.noreply.github.com>
10 months agoidmap: Lower logging level of newXidmap tools to INFO
Stéphane Graber [Tue, 16 Jul 2024 14:08:31 +0000 (10:08 -0400)] 
idmap: Lower logging level of newXidmap tools to INFO

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
10 months agoRemove unused function
Stéphane Graber [Wed, 5 Jun 2024 22:40:15 +0000 (18:40 -0400)] 
Remove unused function

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
13 months agoRelease LXC 6.0.1 v6.0.1
Stéphane Graber [Thu, 27 Jun 2024 04:43:29 +0000 (00:43 -0400)] 
Release LXC 6.0.1

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
13 months agomeson: fix build with -Dtools-multicall=true on NixOS
Alexander Mikhalitsyn [Wed, 26 Jun 2024 18:42:55 +0000 (20:42 +0200)] 
meson: fix build with -Dtools-multicall=true on NixOS

See also:
https://github.com/lxc/lxc/pull/4428

Fixes: #4427
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agogithub: exclude clang & ubuntu-24.04 combination
Alexander Mikhalitsyn [Wed, 26 Jun 2024 17:47:31 +0000 (19:47 +0200)] 
github: exclude clang & ubuntu-24.04 combination

Temporary workaround for:
https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-18/+bug/2064187

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agolxc/storage/zfs: ignore false-positive use-after-free warning
Alexander Mikhalitsyn [Wed, 26 Jun 2024 17:28:03 +0000 (19:28 +0200)] 
lxc/storage/zfs: ignore false-positive use-after-free warning

free(dataset) is perfecly valid after failed realloc(dataset, len) call.

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agogithub: properly check apparmor profile changes
Alexander Mikhalitsyn [Tue, 4 Jun 2024 11:49:59 +0000 (13:49 +0200)] 
github: properly check apparmor profile changes

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agogithub: start using ubuntu-24.04
Alexander Mikhalitsyn [Tue, 4 Jun 2024 11:49:19 +0000 (13:49 +0200)] 
github: start using ubuntu-24.04

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agoapparmor: regenerate rules
Alexander Mikhalitsyn [Wed, 5 Jun 2024 12:38:06 +0000 (14:38 +0200)] 
apparmor: regenerate rules

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agoapparmor: use /{,**} instead of /**
Alexander Mikhalitsyn [Wed, 5 Jun 2024 12:33:31 +0000 (14:33 +0200)] 
apparmor: use /{,**} instead of /**

It turned out, that old (and incorrect) rule:
mount options=(rw,make-slave) -> **,

is NOT equivalent to:
mount options=(rw,make-slave) -> /**,

Let's use:
mount options=(rw,make-slave) -> /{,**},

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agoapparmor: regenerate rules
Alexander Mikhalitsyn [Tue, 4 Jun 2024 11:30:51 +0000 (13:30 +0200)] 
apparmor: regenerate rules

Follow the instruction from config/apparmor/README:

./lxc-generate-aa-rules.py container-rules.base > container-rules
cat abstractions/container-base.in container-rules > abstractions/container-base

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agoapparmor: fix rule path pattern specification syntax
Alexander Mikhalitsyn [Tue, 4 Jun 2024 11:28:05 +0000 (13:28 +0200)] 
apparmor: fix rule path pattern specification syntax

See also:
https://bugs.launchpad.net/lxc/+bug/2064144
https://github.com/lxc/incus/pull/889/commits/d2c13e3f6312f08750981a80a510530e881c4ec7

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agolxc-local: remove check for template existence before extraction
Jacob McNamee [Wed, 22 May 2024 14:02:14 +0000 (07:02 -0700)] 
lxc-local: remove check for template existence before extraction

This check always fails because template files do not exist until the
rootfs is unpacked. File existence is already confirmed before replacing
variables

Signed-off-by: Jacob McNamee <jacob@jacobmcnamee.com>
13 months agolxc-local: fix incorrect path to `templates` file
Jacob McNamee [Wed, 22 May 2024 13:44:17 +0000 (06:44 -0700)] 
lxc-local: fix incorrect path to `templates` file

Signed-off-by: Jacob McNamee <jacob@jacobmcnamee.com>
13 months agolxc-local: fix use of `LXC_PATH` before init
Jacob McNamee [Wed, 22 May 2024 13:34:08 +0000 (06:34 -0700)] 
lxc-local: fix use of `LXC_PATH` before init

Signed-off-by: Jacob McNamee <jacob@jacobmcnamee.com>
13 months agoUpdate lxc-execute.sgml.in
KATOH Yasufumi [Fri, 17 May 2024 07:47:16 +0000 (16:47 +0900)] 
Update lxc-execute.sgml.in

Update for a7aa297

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
13 months agoUpdate lxc-{attach,execute}.sgml.in
KATOH Yasufumi [Fri, 17 May 2024 07:21:04 +0000 (16:21 +0900)] 
Update lxc-{attach,execute}.sgml.in

Update for 52bf34d and a7aa297

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
13 months agoUpdate lxc-execute.sgml.in
MMFuba [Sun, 12 May 2024 19:17:57 +0000 (21:17 +0200)] 
Update lxc-execute.sgml.in

add hint to use numerical values for uid and gid

Signed-off-by: MMFuba <114305581+MMFuba@users.noreply.github.com>
13 months agoUpdate lxc-attach.sgml.in
MMFuba [Sun, 12 May 2024 19:13:36 +0000 (21:13 +0200)] 
Update lxc-attach.sgml.in

added hint to use numerical value for uid and gid

Signed-off-by: MMFuba <114305581+MMFuba@users.noreply.github.com>
13 months agonetwork: netdev_configure_server_veth: reduce scope of disable_ipv6_fd/path vars
Alexander Mikhalitsyn [Mon, 8 Apr 2024 10:29:08 +0000 (12:29 +0200)] 
network: netdev_configure_server_veth: reduce scope of disable_ipv6_fd/path vars

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agolxc/network: handle non-existing sysctl <ifname>/disable_ipv6
Alexander Mikhalitsyn [Mon, 8 Apr 2024 10:21:21 +0000 (12:21 +0200)] 
lxc/network: handle non-existing sysctl <ifname>/disable_ipv6

Skip writting to /proc/sys/net/ipv6/conf/<ifname>/disable_ipv6
if it does not exist.

Fixes: #4431
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agogithub: test the lxc multicall binary builds too
Alexander Mikhalitsyn [Sat, 6 Apr 2024 20:11:12 +0000 (22:11 +0200)] 
github: test the lxc multicall binary builds too

Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
13 months agomeson: fix build on NixOS
Alexander Mikhalitsyn [Fri, 5 Apr 2024 15:50:58 +0000 (17:50 +0200)] 
meson: fix build on NixOS

Fixes: #4427
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
15 months agoRelease LXC 6.0.0 v6.0.0
Stéphane Graber [Wed, 3 Apr 2024 03:33:26 +0000 (23:33 -0400)] 
Release LXC 6.0.0

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agoMerge pull request #4424 from stgraber/main
Serge Hallyn [Wed, 3 Apr 2024 02:47:03 +0000 (21:47 -0500)] 
Merge pull request #4424 from stgraber/main

Cleanup MAINTAINERS, COPYING and sort out SPDX headers

15 months agolxc.spec: Align SPDX license id 4424/head
Stéphane Graber [Wed, 3 Apr 2024 00:43:37 +0000 (20:43 -0400)] 
lxc.spec: Align SPDX license id

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agoMakefile: Align SPDX license id
Stéphane Graber [Wed, 3 Apr 2024 00:43:30 +0000 (20:43 -0400)] 
Makefile: Align SPDX license id

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agomeson: Align SPDX license id
Stéphane Graber [Wed, 3 Apr 2024 00:42:09 +0000 (20:42 -0400)] 
meson: Align SPDX license id

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agoCOPYING: Clarify licensing of files without SPDX
Stéphane Graber [Wed, 3 Apr 2024 00:29:39 +0000 (20:29 -0400)] 
COPYING: Clarify licensing of files without SPDX

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agodoc: Add SPDX headers and remove Author field
Stéphane Graber [Wed, 3 Apr 2024 00:23:13 +0000 (20:23 -0400)] 
doc: Add SPDX headers and remove Author field

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agosrc/include: Add SPDX headers
Stéphane Graber [Tue, 2 Apr 2024 22:31:26 +0000 (18:31 -0400)] 
src/include: Add SPDX headers

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agosrc/tests: Add SPDX headers
Stéphane Graber [Tue, 2 Apr 2024 22:24:10 +0000 (18:24 -0400)] 
src/tests: Add SPDX headers

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agohooks: Add SPDX headers
Stéphane Graber [Tue, 2 Apr 2024 21:59:17 +0000 (17:59 -0400)] 
hooks: Add SPDX headers

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agolxc.spec: Clear default changelog
Stéphane Graber [Tue, 2 Apr 2024 21:54:04 +0000 (17:54 -0400)] 
lxc.spec: Clear default changelog

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agolxc.spec: Use SPDX
Stéphane Graber [Tue, 2 Apr 2024 21:52:37 +0000 (17:52 -0400)] 
lxc.spec: Use SPDX

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agotemplate: Use SPDX
Stéphane Graber [Tue, 2 Apr 2024 21:51:55 +0000 (17:51 -0400)] 
template: Use SPDX

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agoconfig/yum: Use SPDX header
Stéphane Graber [Tue, 2 Apr 2024 21:50:03 +0000 (17:50 -0400)] 
config/yum: Use SPDX header

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agoCOPYING: Remove whitespace
Stéphane Graber [Tue, 2 Apr 2024 21:49:54 +0000 (17:49 -0400)] 
COPYING: Remove whitespace

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agoMAINTAINERS: Remove Dwight from the maintainer list
Stéphane Graber [Tue, 2 Apr 2024 21:45:23 +0000 (17:45 -0400)] 
MAINTAINERS: Remove Dwight from the maintainer list

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agoMerge pull request #4377 from adamcstephens/install-options
Stéphane Graber [Tue, 2 Apr 2024 17:46:34 +0000 (13:46 -0400)] 
Merge pull request #4377 from adamcstephens/install-options

build: add more options for customizing install

15 months agoMerge pull request #4423 from stgraber/main
Serge Hallyn [Tue, 2 Apr 2024 15:51:03 +0000 (10:51 -0500)] 
Merge pull request #4423 from stgraber/main

lxc-checkconfig improvements

15 months agolxc-checkconfig: Fix shellcheck 4423/head
Stéphane Graber [Tue, 2 Apr 2024 15:26:48 +0000 (11:26 -0400)] 
lxc-checkconfig: Fix shellcheck

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agolxc-checkconfig: Show namespace limits
Stéphane Graber [Tue, 2 Apr 2024 15:21:43 +0000 (11:21 -0400)] 
lxc-checkconfig: Show namespace limits

Closes #4259

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
15 months agoMerge pull request #4422 from mihalicyn/ct_list_fix
Stéphane Graber [Tue, 2 Apr 2024 14:53:31 +0000 (10:53 -0400)] 
Merge pull request #4422 from mihalicyn/ct_list_fix

lxc-ls: list names with whitespaces in `--active`.

15 months agolxc-ls: list names with whitespaces in `--active`. 4422/head
Edênis Freindorfer Azevedo [Wed, 15 Sep 2021 03:12:52 +0000 (00:12 -0300)] 
lxc-ls: list names with whitespaces in `--active`.

Fixes: #3970
Signed-off-by: Edênis Freindorfer Azevedo <edenisfa@gmail.com>
[ small fixes ]
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
15 months agoMerge pull request #4421 from mihalicyn/lxc_copy_fixes
Stéphane Graber [Tue, 2 Apr 2024 13:07:45 +0000 (09:07 -0400)] 
Merge pull request #4421 from mihalicyn/lxc_copy_fixes

lxc/tools: set default log_priority to ERROR

15 months agoMerge pull request #4418 from mihalicyn/cumulative_fixes_2apr2024
Stéphane Graber [Tue, 2 Apr 2024 13:05:54 +0000 (09:05 -0400)] 
Merge pull request #4418 from mihalicyn/cumulative_fixes_2apr2024

confile_utils: fix incorrect multiply_overflow test #2

15 months agoMerge pull request #4420 from mihalicyn/autostart_fix
Christian Brauner [Tue, 2 Apr 2024 12:55:51 +0000 (14:55 +0200)] 
Merge pull request #4420 from mihalicyn/autostart_fix

tools/lxc_autostart: don't fail when there are no containers

15 months agoMerge pull request #4419 from mihalicyn/fixup_mod_rdep
Christian Brauner [Tue, 2 Apr 2024 12:55:16 +0000 (14:55 +0200)] 
Merge pull request #4419 from mihalicyn/fixup_mod_rdep

lxc/lxccontainer: specify file mode in open() call inside mod_rdep

15 months agolxc/tools: set default log_priority to ERROR 4421/head
Alexander Mikhalitsyn [Tue, 2 Apr 2024 11:58:35 +0000 (13:58 +0200)] 
lxc/tools: set default log_priority to ERROR

For some reason, we don't have default log_priority
set for many tools which leads to the situation when
tools can fail silently even if error occurs.

Fixes: #4405
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
15 months agotools/lxc_autostart: don't fail when there are no containers 4420/head
Alexander Mikhalitsyn [Tue, 2 Apr 2024 11:43:08 +0000 (13:43 +0200)] 
tools/lxc_autostart: don't fail when there are no containers

Fixes: #3847
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>