]>
git.ipfire.org Git - thirdparty/lxc.git/log
Christian Brauner [Fri, 22 Jan 2021 14:38:18 +0000 (15:38 +0100)]
autotools: enable static builds for commands
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Fri, 22 Jan 2021 18:30:45 +0000 (19:30 +0100)]
autotools: enable static builds for tools
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Fri, 22 Jan 2021 18:16:06 +0000 (19:16 +0100)]
configure: support static binaries
Including openssl handling.
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Fri, 22 Jan 2021 16:56:14 +0000 (17:56 +0100)]
initutils: fix missing includes
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Fri, 22 Jan 2021 13:31:08 +0000 (14:31 +0100)]
tree-wide: fix some header inclusions
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Fri, 22 Jan 2021 16:55:50 +0000 (17:55 +0100)]
Merge pull request #3623 from cotequeiroz/seccomp
Fix compilation without seccomp when libseccomp is installed
Stéphane Graber [Fri, 22 Jan 2021 15:06:51 +0000 (10:06 -0500)]
Merge pull request #3628 from brauner/2021-01-22/fixes
conf: fix containers retaining CAP_NET_ADMIN
Christian Brauner [Fri, 22 Jan 2021 12:30:52 +0000 (13:30 +0100)]
lxc_attach: include rexec conditionally
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Fri, 22 Jan 2021 12:21:54 +0000 (13:21 +0100)]
lsm: remove obsolute comment about constructor
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Fri, 22 Jan 2021 11:17:56 +0000 (12:17 +0100)]
cgroups: fix cgroup mounting
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Fri, 22 Jan 2021 10:41:11 +0000 (11:41 +0100)]
conf: fix containers retaining CAP_NET_ADMIN
Fixes: #3627
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Eneas U de Queiroz [Sat, 16 Jan 2021 16:54:07 +0000 (13:54 -0300)]
configure: skip libseccomp tests if it is disabled
Move the block checking for libseccomp api compatibility inside
AM_COND_IF([ENABLE_SECCOMP] ... ).
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
Eneas U de Queiroz [Fri, 25 Dec 2020 16:54:14 +0000 (13:54 -0300)]
commands: fix check for seccomp notify support
Use HAVE_SECCOMP_NOTIFY instead of HAVE_DECL_SECCOMP_NOTIFY_FD.
Currently the latter will be true if the declaration is found by
configure, even if 'configure --disable-seccomp' is used.
HAVE_SECCOMP_NOTIFY is defined in lxcseccomp.h if both HAVE_SECCOMP and
HAVE_DECL_SECCOMP_NOTIFY_FD are true, which is the correct behavior.
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
Stéphane Graber [Mon, 11 Jan 2021 14:05:22 +0000 (09:05 -0500)]
Merge pull request #3617 from motiejus/lxc-net-dnsmasq
make lxc-net's dnsmasq hermetic
Motiejus Jakštys [Mon, 11 Jan 2021 10:49:35 +0000 (12:49 +0200)]
make lxc-net hermetic w.r.t. existing dnsmasq config
lxc's dnsmasq will try to read system's dnsmasq if `--conf-file` is not
specified. This is likely not desirable, as lxc's dnsmasq should be
self-contained.
On my system the conflicting options are `--bind-interfaces` and
`--bind-dynamic`, since the same host is doing other DNS-y things
unrelated to lxc.
This is an incompatible change, since lxc's dnsmasq will stop honoring
system's `/etc/dnsmasq.conf`, and some systems may be relying on it.
Given that, I believe it should not depend on it by default, since
dnsmasq is lxc's implementation detail. However, if the user desires,
the old behavior could be brought back by setting
`LXC_DHCP_CONFILE=/etc/dnsmasq.conf` in `/etc/default/lxc-net`.
Signed-off-by: Motiejus Jakštys <motiejus@jakstys.lt>
Stéphane Graber [Sat, 9 Jan 2021 22:47:53 +0000 (17:47 -0500)]
Merge pull request #3615 from sirh3e/master
Changed Version from 2.*.* to 4.*.*
sirh3e [Sat, 9 Jan 2021 19:24:59 +0000 (20:24 +0100)]
Changed Version from 2.*.* to 4.*.*
Signed-off-by: sirh3e <marvin.huber@bluewin.ch>
Stéphane Graber [Mon, 4 Jan 2021 11:19:00 +0000 (12:19 +0100)]
Merge pull request #3614 from brauner/2021-01-04/fixes
capability fixes
Christian Brauner [Mon, 4 Jan 2021 10:21:53 +0000 (11:21 +0100)]
conf: fix CAP_NET_ADMIN-based mount handling
Fixes: e8b9c9ec6fb9 ("unmounted proc/sys/net if dropping CAP_NET_ADMIN")
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Mon, 4 Jan 2021 10:06:02 +0000 (11:06 +0100)]
conf: add lxc_wants_cap() helper
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Mon, 4 Jan 2021 10:15:34 +0000 (11:15 +0100)]
macro: define all capabilities
Fixes: #3612
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Mon, 4 Jan 2021 09:53:19 +0000 (10:53 +0100)]
conf: add new capabilities CAP_{BLOCK_SUSPEND,PERFMON,BPF,CAP_CHECKPOINT_RESTORE}
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Mon, 4 Jan 2021 09:50:07 +0000 (10:50 +0100)]
conf: define missing capabilities
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Mon, 4 Jan 2021 09:45:44 +0000 (10:45 +0100)]
macro: use ascending order for capabilities
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Stéphane Graber [Mon, 28 Dec 2020 10:39:53 +0000 (05:39 -0500)]
Merge pull request #3608 from brauner/2020-12-27/no_rootfs
bugfixes
Christian Brauner [Sun, 27 Dec 2020 11:18:13 +0000 (12:18 +0100)]
cgroup2: move bpf device cgroup program to struct cgroup_ops
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Sun, 27 Dec 2020 10:19:51 +0000 (11:19 +0100)]
utils: allow cross-device resolution
This is needed to enable containers without a rootfs.
Fixes: #3607
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Stéphane Graber [Tue, 15 Dec 2020 14:08:44 +0000 (09:08 -0500)]
Merge pull request #3603 from brauner/2020-12-15/bugfixes
confile: don't accidently alter lxc.cgroup.dir
Christian Brauner [Tue, 15 Dec 2020 10:56:50 +0000 (11:56 +0100)]
confile: don't accidently alter lxc.cgroup.dir
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Tue, 15 Dec 2020 10:54:34 +0000 (11:54 +0100)]
confile: cleanup set_config_hooks()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Stéphane Graber [Mon, 14 Dec 2020 22:42:29 +0000 (17:42 -0500)]
Merge pull request #3601 from brauner/2020-12-14/bugfixes
conf: fix block-device based rootfs mounting
Christian Brauner [Mon, 14 Dec 2020 16:52:44 +0000 (17:52 +0100)]
conf: fix block-device based rootfs mounting
Fixes: #3598
Cc: stable-4.0
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Mon, 14 Dec 2020 09:31:36 +0000 (10:31 +0100)]
Merge pull request #3600 from zhenr667/3091
unmounted proc/sys/net by dropping CAP_NET_ADMIN
zhenr667 [Sun, 13 Dec 2020 22:00:59 +0000 (16:00 -0600)]
unmounted proc/sys/net if dropping CAP_NET_ADMIN
Signed-off-by: Henry Zhang <henryzhang99@gmail.com>
Stéphane Graber [Thu, 10 Dec 2020 20:37:24 +0000 (15:37 -0500)]
Merge pull request #3595 from brauner/2020-12-08/fixes
tree-wide: fixes
Christian Brauner [Thu, 10 Dec 2020 19:48:48 +0000 (20:48 +0100)]
criu: cleanup load_tty_major_minor()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Thu, 10 Dec 2020 19:41:56 +0000 (20:41 +0100)]
confile_utils: cleanup strprint()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 13:53:23 +0000 (14:53 +0100)]
confile: cleanup set_config_net_l2proxy()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:51:04 +0000 (11:51 +0100)]
conf: fix unchecked return value
Fixes: Coverity: 1465854
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:49:55 +0000 (11:49 +0100)]
utils: fix unchecked return value
Fixes: Coverity 1465853
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:48:47 +0000 (11:48 +0100)]
cgroups/cgfsng: remove logically dead code
Fixes: Coverity 1461761
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:46:22 +0000 (11:46 +0100)]
storage/btrfs: add missing return
Fixes: Coverity 1461749
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:45:15 +0000 (11:45 +0100)]
network: use empty initializer
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:43:38 +0000 (11:43 +0100)]
storage/lvm: cleanup do_lvm_create()
Fixes: Coverity 1461741
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:39:29 +0000 (11:39 +0100)]
utils: cleanup get_rundir()
Fixes: Coverity 1461740
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:35:18 +0000 (11:35 +0100)]
lxclock: cleanup lxclock_name()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:33:38 +0000 (11:33 +0100)]
lxclock: cleanup dump_stacktrace()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:32:55 +0000 (11:32 +0100)]
lxclock: cleanup lxc_putlock()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:31:53 +0000 (11:31 +0100)]
lxclock: cleanup lxcunlock()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:23:09 +0000 (11:23 +0100)]
lxclock: cleanup lxclock()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:18:10 +0000 (11:18 +0100)]
lxclock: cleanup lxclock_name()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:16:10 +0000 (11:16 +0100)]
lxclock: cleanup lxc_newlock()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:13:36 +0000 (11:13 +0100)]
lxclock: logically dead code
Fixes: Coverity 1461722
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 10:11:18 +0000 (11:11 +0100)]
cmd/lxc_init: ignore return value
Fixes: Coverity 1440390
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 09:28:02 +0000 (10:28 +0100)]
confile_utils: cleanup sig_parse()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 09:27:44 +0000 (10:27 +0100)]
confile_utils: cleanup rt_sig_num()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 09:27:08 +0000 (10:27 +0100)]
confile_utils: cleanup sig_num()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 09:26:34 +0000 (10:26 +0100)]
confile_utils: cleanup lxc_inherit_namespace()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 09:06:22 +0000 (10:06 +0100)]
confile_utils: cleanup lxc_container_name_to_pid()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 09:06:06 +0000 (10:06 +0100)]
lxc: add cleanup helpers
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 09:00:40 +0000 (10:00 +0100)]
confile_utils: cleanup new_hwaddr()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:59:56 +0000 (09:59 +0100)]
confile_utils: cleanup network_ifname()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:59:32 +0000 (09:59 +0100)]
confile_utils: cleanup set_config_bool_item()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:58:52 +0000 (09:58 +0100)]
confile_utils: cleanup set_config_string_item_max()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:58:11 +0000 (09:58 +0100)]
confile_utils: cleanup set_config_string_item()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:55:26 +0000 (09:55 +0100)]
confile_utils: cleanup lxc_ipvlan_flag_to_isolation()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:55:04 +0000 (09:55 +0100)]
confile_utils: cleanup lxc_ipvlan_isolation_to_flag()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:54:51 +0000 (09:54 +0100)]
confile_utils: cleanup lxc_ipvlan_isolation
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:54:35 +0000 (09:54 +0100)]
confile_utils: cleanup lxc_ipvlan_flag_to_mode()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:54:14 +0000 (09:54 +0100)]
confile_utils: cleanup lxc_ipvlan_mode_to_flag()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:53:57 +0000 (09:53 +0100)]
confile_utils: cleanup lxc_ipvlan_mode
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:53:29 +0000 (09:53 +0100)]
confile_utils: cleanup lxc_macvlan_flag_to_mode()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:53:06 +0000 (09:53 +0100)]
confile_utils: cleanup lxc_macvlan_mode_to_flag()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:52:44 +0000 (09:52 +0100)]
confile_utils: cleanup lxc_macvlan_mode
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:52:24 +0000 (09:52 +0100)]
confile_utils: cleanup lxc_veth_flag_to_mode()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:52:00 +0000 (09:52 +0100)]
confile_utils: cleanup lxc_veth_mode_to_flag()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:51:38 +0000 (09:51 +0100)]
confile_utils: cleanup lxc_veth_mode
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:51:08 +0000 (09:51 +0100)]
confile_utils: cleanup lxc_free_networks()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:49:29 +0000 (09:49 +0100)]
confile_utils: cleanup lxc_remove_nic_by_idx()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:46:55 +0000 (09:46 +0100)]
confile_utils: cleanup lxc_get_netdev_by_idx()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:46:22 +0000 (09:46 +0100)]
confile_utils: cleanup lxc_network_add()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:44:23 +0000 (09:44 +0100)]
confile_utils: cleanup parse_idmaps()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:32:51 +0000 (09:32 +0100)]
confile: cleanup lxc_list_net()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:32:07 +0000 (09:32 +0100)]
confile: lxc_list_subkeys()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:31:30 +0000 (09:31 +0100)]
confile: cleanup get_config_net_veth_ipv6_route()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:31:01 +0000 (09:31 +0100)]
confile: cleanup get_config_net_ipv6_address()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:30:40 +0000 (09:30 +0100)]
confile: cleanup get_config_net_ipv6_gateway()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:30:18 +0000 (09:30 +0100)]
confile: cleanup get_config_net_veth_ipv4_route()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:29:50 +0000 (09:29 +0100)]
confile: cleanup get_config_net_ipv4_address()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:28:43 +0000 (09:28 +0100)]
confile: cleanup get_config_net_ipv4_gateway()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:28:24 +0000 (09:28 +0100)]
confile: cleanup get_config_net_vlan_id()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:28:04 +0000 (09:28 +0100)]
confile: cleanup get_config_net_mtu()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:27:50 +0000 (09:27 +0100)]
confile: cleanup get_config_net_hwaddr()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:27:34 +0000 (09:27 +0100)]
confile: cleanup get_config_net_script_down()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:27:06 +0000 (09:27 +0100)]
confile: cleanup get_config_net_script_up()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:26:45 +0000 (09:26 +0100)]
confile: cleanup get_config_net_veth_vlan_id()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Wed, 9 Dec 2020 08:26:24 +0000 (09:26 +0100)]
confile: cleanup get_config_net_veth_pair()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Tue, 8 Dec 2020 18:03:09 +0000 (19:03 +0100)]
confile: cleanup get_config_net_veth_mode()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Tue, 8 Dec 2020 18:02:47 +0000 (19:02 +0100)]
confile: cleanup get_config_net_ipvlan_isolation()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Christian Brauner [Tue, 8 Dec 2020 18:02:22 +0000 (19:02 +0100)]
confile: cleanup get_config_net_ipvlan_mode()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>