Commit Graph

62 Commits

Author SHA1 Message Date
Bruce Ashfield
51a891439b lxc: update to v5.0.2
We drop a patch that has been merged upsream, and also bump the
version to lxc-5.0.2, which comprises the following commits:

    d57173681 Release LXC 5.0.2
    17c85aac6 Fix build error on sparc64 caused by using the gold linker
    b7dfb1312 lxc-default-cgns apparmor profile: allow overlay mounts
    5cde898f4 lxc_user_nic: fix get_mtu() error handling
    80553b5b4 Patching an incoming CVE (CVE-2022-47952)
    1089f49c5 build: force linking against liblxc
    0d2a03118 checkconfig: Fix filesystem capability check
    e17429580 checkconfig: Tweak cgroup handling
    4ab76611d checkconfig: Tweak layout
    0bca9bb18 checkconfig: Hide version if no lxc-start
    957e0a5d9 checkconfig: Fix mixed tabs/spaces
    4916a16bd src/lxc/meson.build: fix build without apparmor
    a330126b4 build: use cc.get_define to detect FS_CONFIG_* symbols
    c89be8325 cgroups: fix cgroup layout detection in __initialize_cgroups
    7802f3647 state: additional check in lxc_wait to prevent OOB
    4b434bf52 cgroups: check snprintf retval in unpriv_systemd_create_scope
    0eca8d2ea cgroups: fix buffer out-of-bounds access in enable_controllers_delegation
    4ce8345d6 network: always initialize struct nl_handler
    28a1591cd apparmor: properly check lxc_strmmap ret value
    bd56c89ea github: fix coverity (add libpam-dev)
    a1ead0dcc github: fix coverity build
    9e35b3ecd conf: ensure mount tunnel is a dependent mount
    2ff447445 apparmor: allow shared mounts in start-container.in
    58e878209 conf: create separate peer group for container's root
    06b4612ee cgroups: only allocate user namespace if we have to
    2662959b8 cgroups: use userns_exec_full() during cgroup removal
    4dcc84c6b README: remove lgtm
    748720ceb tests: lxc-test-reboot: Fix build on ia64
    5749e2e20 Unroll IN_SET since the max usage is 2 elements check
    495b1bbf4 tests: lxc-test-checkpoint-restore: use trap to do cleanup
    77e08b887 tools: lxc-destroy: update help message for --force
    9165ff1ed lxc/attach: Detect EACCES from execvp and convert to 126 exit status
    011faff36 lxc-attach: Fix lost return codes of spawned processes that are killed
    931693945 Update README.md
    a6287882e conf: allow cross-device links
    8fa6d765a build(deps): bump actions/checkout from 2 to 3
    e08c1b740 Update cifuzz.yml
    0e9e64db8 fix error message when use tools with -? option
    f1a61a5f0 use sd_bus_call_method_async to replace the asyncv one
    ca863bd72 tree-wide: split open helpers into open_utils.h
    02900160c build: prevent the inclusion of linux/mount.h with a hack
    51b8763b0 mount_utils: remove conf.h include
    460243f40 mount: move mount utilities from syscall_wrappers.h into mount_utils.h
    d5d7e2036 tree-wide: minimize liburing.h inclusion
    e2b8776bb meson: fix docbook2x detection
    d1dfce9c5 tree-wide: use struct open_how directly
    c9bca3326 tree-wide: use struct clone_args directly
    497479ea3 tree-wide: wipe direct or indirect linux/mount.h inclusion
    02f4bd00f build: check for FS_CONFIG_* header symbol in sys/mount.h
    c222fb567 gitignore: Simplify
    22e8a7941 meson.build: strip newline for variable assignments
    d5600cf76 meson.build: strip newlines from git output
    7d6b53438 src/lxc/meson.build: fix the static library path
    1d5c7e771 build: drop build-time systemd dependency
    59f69162c build: only build init.lxc.static if libcap is statically linkable
    062c2d980 build: fix handling of dependancies to fix build on openSUSE
    2a9743bba cgroups: fix -Waddress warning
    e510d6bd8 build: detect sys/pidfd.h availability
    b7b269680 build: detect where struct mount_attr is declared
    5313e5048 meson.build: allow explicit distrosysconfdir
    0539095ac Release LXC 5.0.1
    a1329fefe README: update security mails
    315d4cec6 meson.build: fix build without stack-protector
    aba631cd4 meson.build: fix build with -Dcapabilities=false
    c2ee9b440 src/lxc/log.h: fix STRERROR_R_CHAR_P
    d441ee585 meson: add remaining still-in-use config checks
    00a79876b Store mount options in correct variable
    da0f35646 Fix off-by-one error constructing mount options
    31bff905a add check for statvfs
    242289b6b start: fix namespace sharing
    41f602361 conf: fix append_ttyname()
    ea4fd7f85 start: record inherited namespaces earlier to make it available for idmapped rootfs setup
    e74fd55bc start: don't overwrite file descriptors during namespace preservation
    dcfd75bb4 conf: log file descriptors on error during idmapped mount setup
    c3e648700 fix for issue 4026: set broadcast to 0.0.0.0 for /31 and /32
    cfcbdb75f use systemd dbus StartTransientUnit for unpriv cgroup2
    28726f215 Fix uninitialized read in parse_cap when libcap is not used
    d663495ee meson: Generate compile commands by iterating over an array

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2023-01-19 15:42:25 -05:00
Chen Qi
da285876dc lxc: fix compilation error for ARM/ARM64
There's compilation error when building lxc for ARM/ARM64 BSPs.
The error message is as below:

  | ../git/src/lxc/cgroups/cgfsng.c🔢111: error: incompatible
    type for argument 10 of 'sd_bus_call_method_asyncv'

The 10th argument is of type va_list but NULL is supplied, thus causing
compilation error.

So we use sd_bus_call_method_async to replace the asyncv one to
solve this issue.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-08-25 22:55:48 -04:00
Bruce Ashfield
05f316f70a lxc: update to 5.x and meson
This is a significant update to lxc as autotools has been replaced
with meson.

Not all existing autotools options have meson equivalents, so there
may be differences in functionallity.

As part of this update, and unused features have been dropped, mainly
when the meson equivalent was not available.

Basic / core functionality has been tested with systemd, sysvinit
requires more work, and patches will be accepted to restore that
capability.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-08-25 22:55:48 -04:00
Bruce Ashfield
3ca7a147e0 lxc: update to 4.0.12
We refresh our wget -> curl patch for context, but otherwise, no other
changes are required.

Bumping lxc to version lxc-4.0.12-8-g5ba5725cb, which comprises the following commits:

    5ba5725cb cgroups: modify cgroup2 attach logic
    1e4631641 ttys: ensure container_ttys= env variable is set correctly
    8ef019a6c doc: Fix reverse allowlist/denylist in Japanese man page
    f1c4a17e7 cgroups: log fd of newly created cgroup
    f7446b4e1 cgroups: check that opened file descriptor is a cgroup filesystem
    71ba7f656 doc: Fix reverse allowlist/denylist
    f314419d1 lxc-checkconfig: Fix bashism
    ca4c25c6e lxc-net: don't start by default inside lxc
    7e37cc96b Release LXC 4.0.12
    d678aa61e lxccontainer: allow xdev when creating the container dir
    bc61d2354 github: Clear default ACL on /home
    fb0e0b3dd github: add systemd-coredump
    53e0d390c github: more detailed compilation instructions
    db84a8b6b github: log system info
    e9282b6a6 github: ensure system liblxc is wiped
    ad8a3bd68 lxccontainer: properly wrap lxcapi_create()
    bceb81cd2 build: simplify thread local storage handling
    919da35b0 build: only enable LTO for regular builds
    d0a1e9c44 lxccontainer: simplify partial file creation
    62b5c0051 lxccontainer: improve create_partial()
    bfe24cb6a lxccontainer: improve do_lxcapi_create()
    1a5c236ac lxccontainer: improve do_lxcapi_save_config()
    bae0d7196 conf: log termination status
    4eb09aaad conf: improve userns_exec_mapped_root()
    928943280 github: stop installing gnupg now that it's unused
    7c70b0d14 lxc-download: Rely on HTTPS only
    199d2077c Update README.md: Fix broken link (403 Forbidden)
    0b6b230e3 attach: don't pointlessly call cgroup_init()
    dbef704fb commands: log command during file descriptor retrieval
    733f9c909 lxc-checkconfig.in: CONFIG_NF_NAT_IPV4 was removed from the kernel 2019-03-03
    ce392e230 (trivial) Fix error message, failure was connect not bind
    5628bff79 seccomp: close seccomp notifier fd in cleanup handler
    1f2af83a9 seccomp: only guard seccomp notify behind HAVE_DECL_SECCOMP_NOTIFY_FD
    9451303d5 api-extensions: don't advertise seccomp notify support if it's not compiled in
    23d07c315 use 2 sysfs instances for sys:mixed
    0dd3258bd Revert "api: ->save_config() doesn't need to create container dir"
    93edd510a api: ->save_config() doesn't need to create container dir
    28b2e04f1 cgroups: fix compiler warning
    15515f9a3 Revert "initutils: use vfork() in lxc_container_init()"
    41d2530d1 macro: ensure necessary io_uring flags are defined
    fc4e948c9 autotools: Avoid multiple liblxc.so with --enable-pam
    a616a311a build: refuse to compile with unsupported liburing version
    93be4e512 tests: add lxc.proc.* test
    d8027e49c tests: add lxc.sysctls.* test
    6f580343e test: improve logging helpers
    a10ff3418 conf: improve logging setting sysctl and /proc/<pid>/ parameters
    334cf7beb conf: apply /proc/sys and /proc/<pid>/ parameters
    1b74e01ad tests: include config.h
    c36379431 build: move _FILE_OFFSET_BITS to common option
    f24c234ee start: log signal name and number
    4915c9112 process_utils: add signal_name() helper
    78baec37d build: improve liburing support detection
    1a102b310 mainloop: make ifdefs easier to follow
    cf931928f Replace last occurence of 'which' with 'command -v'
    1ec5939b4 Replace deprecated backticks with $() construct
    fdfb4a13d Replace 'which' with 'command -v' in tests too
    71743e811 start: check event loop type before closing fd
    f69e6b4d3 mainloop: make sure that descr->ring is allocated
    1a8895855 Replace 'which' with 'command -v'
    9219277cc build: add io-uring-event-loop option
    d04eb166c build: add static libcap to output
    bc51048b7 confile: don't use path_simplify() on lxc.{execute,init}.cmd
    48728e988 conf: add cgroup2, cgroup2:ro, cgroup2:force, cgroup2:ro:force options
    4d3aad49d AUTHORS: Update to point to git history
    e328a988e conf: handle kernels without or not using SMT
    d40b0deb4 doc: fix typo in English lxc.container.conf(5)
    49fab27fc doc: Add lxc.sched.core to Japanese lxc.container.conf(5)
    1ad1cab80 doc: add loglevels to ja and ko common options
    1505f0780 conf: make it more obvious how auto-mount flags are defined
    429233cf0 criu: support restoring containers with pre-created veth devices
    48e079bf3 Release LXC 4.0.11

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-03-21 17:31:28 -04:00
Xu, Yanfei
3bff112a44 lxc: update to 4.0.11
update to 4.0.11

1.drop two patches that have been integrated to upstream repo.
2.drop tests-add-no-validate-when-using-download-template.patch
  because it is no longer appropriate as the "download" has been
  replaced with "busybox"
3.fix the apply failure of templates-use-curl-instead-of-wget.patch
4.update lxc from 4.0.10 to 4.0.11

Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-11-02 09:57:03 -04:00
sana kazi
807506c777 lxc: Fix -c command for lxc-attach
Added fix_c_command.patch the -c command seems to be broken because
the passed context is ignored and always overwritten by the context
specified in the config file.

Signed-off-by: Sana Kazi <Sana.Kazi@kpit.com>
Signed-off-by: Sana Kazi <sanakazisk19@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-16 18:18:28 -04:00
sana kazi
88a8ccb980 lxc: Enable seccomp support for lxc
Enabled seccomp support for lxc.
Also added a patch to enable seccomp.profile only when compiled with
libseccomp. Currently, seccomp.profile is silently ignored. This
could lead to the false impression that the seccomp filter is
applied while it actually isn't.

Signed-off-by: Sana Kazi <Sana.Kazi@kpit.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-09 14:44:51 -04:00
Bruce Ashfield
baa8c9cd62 lxc: update to 4.0.9
Bumping lxc to a newer 4.0 -stable release.

We drop two patches that have been integrated to the upstream repo, but
otherwise, things are the same.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-07-12 14:40:23 -04:00
Bruce Ashfield
ac03ddb8b4 lxc: add upstream-status to patch
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-04-18 22:29:57 -04:00
RameshkrishnanX Geddy Sekar
d65587d727 lxc-recipe: Fix compilation without seccomp when libseccomp is installed
Original URL:  https://github.com/lxc/lxc/pull/3623

Signed-off-by: RameshkrishnanX Geddy Sekar <rameshkrishnanx.geddy.sekar@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-04-18 20:10:00 -04:00
Bruce Ashfield
d10f21a722 lxc: update to 4.0.6
Updating to the next minor revision in the LTS.

We also drop two patches that are included in the main repository
as partof this bump.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-02-07 07:58:51 -05:00
Mingli Yu
d898bd1ca5 lxc: remove deprecated options in lxc*.service
Remove deprecated options in lxc*.service to silence below warning:
 # systemctl status lxc
 [snip]
 /usr/lib/systemd/system/lxc.service:17: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
 /usr/lib/systemd/system/lxc.service:18: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-10-01 23:08:10 -04:00
Bruce Ashfield
65abc719f3 lxc: update to v4.0.4
While we are updating, we refresh one patch to remove fuzz, otherwise
there are no significant changes.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-08-18 13:53:25 +00:00
Bruce Ashfield
a24ce339fd lxc: refresh patches to remove fuzz
The recent uprev of lxc left some fuzz in a patches. devtool refresh
cleans this up, and no runtime issues have been detected.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-04-14 15:57:19 -04:00
Yanfei Xu
660ffa675e lxc: uprev from 3.2.1 to 4.0.1
Update to the just released 4.0.1. And drop some patches contained
in this released.

Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-04-13 13:53:05 -04:00
Oleksii Kurochko
15e9fc23ec lxc: Backport patch that renames memfd_create() function
When Autotools makes configuration of LXC, the check of
the memfd_create() function fails because __stub_memfd_create and
__stub___memfd_create (The GNU C library defines this for functions
which it implements to always fail with ENOSYS) are defined in Glibc,
which leads to the fact that the macro HAVE_MEMFD_CREATE is not
defined and LXC provides defintion of the memfd_create() function as
static inline which in turn conflicts with a definition from
the <bits/mman-shared.h> file and causes an error:
| In file included from ../../../lxc-3.2.1/src/lxc/conf.c:79:
| <src_path>//lxc/syscall_wrappers.h:77:19: error: static declaration
| of 'memfd_create' follows non-static declaration
| | static inline int memfd_create(const char *name, unsigned int flags) {
| |                   ^~~~~~~~~~~~
| In file included from /usr/include/bits/mman-linux.h:111,
|                  from /usr/include/bits/mman.h:34,
|                  from /usr/include/sys/mman.h:41,
|                  from <src_path>/lxc-3.2.1/src/lxc/conf.c:42:
| /usr/include/bits/mman-shared.h:50:5: note: previous declaration
|  of 'memfd_create' was here
| | int memfd_create (const char *__name, unsigned int __flags) __THROW;
| |     ^~~~~~~~~~~~

Upstream PR: https://github.com/lxc/lxc/pull/3168 (merged)

Signed-off-by: Oleksii Kurochko <olkuroch@cisco.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-02-27 16:54:44 -05:00
Maximilian Blenk
b8c810c608 lxc: Backport patches for keyring options
The added patches allow to set the SELinux context for the session
keyring that is created by lxc. In addition it is possible to disable
the creation of a new session keyring completely.

Upstream PR: https://github.com/lxc/lxc/pull/3260 (merged)

If lxc is executed on a SELinux enabled system, these options can be
used to assign the expected label to the session keyring.

Signed-off-by: Maximilian Blenk <maximilian.blenk@bmw.de>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-02-13 17:21:41 -05:00
Joakim Roubert
468a24df91 templates/lxc-download.in: Use curl instead of wget
When curl's MIT license is preferable to wget's GPLv3. Which it is in
several situations.

Change-Id: I72ee1ce66493c564557b73fae80f5219ef83af6d
Signed-off-by: Joakim Roubert <joakimr@axis.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-09-18 13:53:26 -04:00
Yunguo Wei
af40c87298 lxc: restore the ability to move nl80211 device
nl80211 device can't be moved to another namespace due to
e389f2afd8509(start: unify and simplify network creation), and lxc
community has fixed this issue with:

commit 3dd7829433f63b2ec1323a1f237efa7d67ea6e2b lxc upstream

This patch is grabbing the commit above, and should be abandoned with
lxc uprev afterwards.

See more details here: https://github.com/lxc/lxc/issues/3105

Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-09-14 23:51:13 -04:00
Mingli Yu
87526423d5 lxc: Upgrade to 3.0.2
* Refresh patch to avoid fuzz warnings
* Update to 3.0.2 as lxc-destroy failed when
  system boot in nfs rootfs in lxc 3.0.1 as below:
  # lxc-destroy -n test9
  lxc-destroy: test9: utils.c: _recursive_rmdir: 149 Failed to delete /var/lib/lxc/test9
  lxc-destroy: test9: lxccontainer.c: container_destroy: 2946 Failed to destroy directory "/var/lib/lxc/test9" for "test9"
  Destroying test9 failed

  Update to 3.0.2 to fix the above issue

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-10-22 04:41:50 -04:00
Sinan Kaya
c9c0d5ef20 lxc: make error report compatible with ptest
ptest puts the test status at the beginning of the test. Follow
the style.

BEGIN: /usr/lib/lxc/ptest
 ### Starting LXC ptest ###
SKIPPED: lxc-test-apparmor
FAIL: lxc-test-attach
PASS: lxc-test-automount
FAIL: lxc-test-autostart
PASS: lxc-test-cgpath
PASS: lxc-test-cloneconfig
PASS: lxc-test-clonetest
PASS: lxc-test-concurrent
FAIL: lxc-test-console
PASS: lxc-test-containertests
PASS: lxc-test-createconfig
FAIL: lxc-test-createtest
FAIL: lxc-test-destroytest
PASS: lxc-test-device-add-remove
PASS: lxc-test-get_item
PASS: lxc-test-getkeys
PASS: lxc-test-list
PASS: lxc-test-locktests
PASS: lxc-test-lxcpath
PASS: lxc-test-may-control
PASS: lxc-test-reboot
PASS: lxc-test-saveconfig
SKIPPED: lxc-test-shutdowntest
PASS: lxc-test-snapshot
PASS: lxc-test-startone
PASS: lxc-test-utils

Results:
    PASSED = 19
    FAILED = 5
    SKIPPED = 2
(for details check individual test log in ./logs directory)

 ### LXC ptest complete ###
END: /usr/lib/lxc/ptest

Signed-off-by: Sinan Kaya <okaya@kernel.org>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-10-16 10:25:40 -04:00
Jeremy Puhlman
6c354d1621 lxc: uprev 3.0.1
- Bug fix release
- Fixes gcc8 build failures
- Update patch for fuzz issues.
- remove --disable-python and --disable-lua as they have been removed

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-06-11 12:05:40 -04:00
Mark Asselstine
1a5853f87c lxc: use compiled tests instead of copying source building on target
The tests are already built when we do_compile so we only need to copy
them to the ptest path and create a wrapper script to run them. This
has the added benefit of reducing the size of the lxc package.

We have to manipulate the test sources some to remove gpg validation
and a few other minor changes, none of which actually change what is
being tested (notes are provided in the associated commit logs).

The following are the ptest results currently acheived:

    ### Starting LXC ptest ###
    ./tests/lxc-test-api-reboot FAIL
    ./tests/lxc-test-apparmor SKIPPED
    ./tests/lxc-test-attach PASS
    ./tests/lxc-test-automount PASS
    ./tests/lxc-test-autostart PASS
    ./tests/lxc-test-cgpath PASS
    ./tests/lxc-test-cloneconfig PASS
    ./tests/lxc-test-clonetest PASS
    ./tests/lxc-test-concurrent PASS
    ./tests/lxc-test-config-jump-table PASS
    ./tests/lxc-test-console PASS
    ./tests/lxc-test-console-log PASS
    ./tests/lxc-test-containertests PASS
    ./tests/lxc-test-createconfig PASS
    ./tests/lxc-test-createtest PASS
    ./tests/lxc-test-criu-check-feature PASS
    ./tests/lxc-test-destroytest PASS
    ./tests/lxc-test-device-add-remove PASS
    ./tests/lxc-test-get_item PASS
    ./tests/lxc-test-getkeys PASS
    ./tests/lxc-test-list PASS
    ./tests/lxc-test-locktests PASS
    ./tests/lxc-test-lxcpath PASS
    ./tests/lxc-test-may-control PASS
    ./tests/lxc-test-no-new-privs PASS
    ./tests/lxc-test-parse-config-file PASS
    ./tests/lxc-test-raw-clone PASS
    ./tests/lxc-test-reboot PASS
    ./tests/lxc-test-rootfs PASS
    ./tests/lxc-test-saveconfig PASS
    ./tests/lxc-test-share-ns PASS
    ./tests/lxc-test-shortlived PASS
    ./tests/lxc-test-shutdowntest SKIPPED
    ./tests/lxc-test-snapshot PASS
    ./tests/lxc-test-startone PASS
    ./tests/lxc-test-state-server SKIPPED
    ./tests/lxc-test-utils PASS

    Results:
        PASSED = 33
        FAILED = 1
        SKIPPED = 3
        (for details check individual test log in ./logs directory)

    ### LXC ptest complete ###

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-06-03 23:26:52 -04:00
Mark Asselstine
b6bccf42d1 lxc: fixup 'download' template use
We have a new dependency on 'mountpoint' which is now called in the
download template script. We also hit an upstream bug due to improper
use of 'mktemp', so we apply a patch to fix this and sent the fix
upstream as well.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-06-03 23:26:51 -04:00
Mark Asselstine
0d7cfe8660 lxc: uprev to v3.0.0
Update to the latest lxc release. This requires some minor patch
updates (fuzz and offset, not content) along with dropping a no longer
needed fix for gcc7 (gcc 7.3 is everywhere and is patched).

The ptests were already busted before the uprev so I was not able to
run them but I will follow up with a fix for this. I did run against
our usual usecases 'lxc-create', 'lxc-console', 'lxc-ls',
'lxc-destroy', 'lxc-start', 'lxc-execute', 'lxc-attach'... and there
were no issues (outcomes matched v2.0.8).

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-06-03 23:26:51 -04:00
Mark Asselstine
52f807ef78 lxc: cleanup the lxc-networking package
Adding missing RDEPENDS on iptables, the lxc-net service will fail
without this. Use the new 'pkg_postinst_ontarget_' instead of failing
out to signal runtime postinst scripts, this conforms with the latest
expectation for bitbake. The interfaces file is specific to sysvinit
and unneeded for systemd so block the creation of these files only
when building for sysvinit.

Lastly add a default 'lxc-net' file. Since we have a separate
lxc-networking package we can complete it with this configuration
which is sourced by '/etc/default/lxc' (which is part of the core lxc
package). In doing this we are like Debian when the lxc-networking
package is not installed in the image, and like Ubuntu when it is.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-05-29 10:27:53 -04:00
Mark Asselstine
00a801aee1 dnsmasq: add dnsmasq.d entries for lxc and libvirt
A while ago changes were merged to meta-openembedded to make
/etc/dnsmasq.d (and specifically the files it contains) referenced
when the main instance of dnsmasq is run (see dnsmasq.service and
commit ba665493a0dd [dnsmasq: allow for dnsmasq instances to reuse
default dnsmasq.conf]).

We, however, continued to modify the global configuration
(/etc/dnsmasq.conf) to keep the main instance of dnsmasq from
attaching to virbr0 and lxcbr0, by using 'bind-dynamic'. This approach
is problematic, since it is common that other instances of dnsmasq
will make use of the global configuration file and may have
incompatible options. We see this for example when attempting to start
lxc-net which will attempt to use 'bind-interface' which is
incompatible with 'bind-dynamic' that we were adding to the global
configuration.

Here we remove our change to the global configuration (leaving it
mostly empty as it should be) and instead have lxc and libvirt
packages instruct the global instance not to bind to virbr0 and lxcbr0
by adding configuration files to /etc/dnsmasq.d (setting
except-interface).

The added benefit to this approach is that if lxc or libvirt are not
part of an image the global configuration will not be modified in such
a way as to expect that they are present.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-28 11:12:26 -05:00
Mark Asselstine
6987659825 lxc: temporary workaround for gcc 7 issue
gcc 7 has a bug:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=11672
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78969

In order to avoid the build failure that this causes we reduce the
range by one. Better to have a slight reduction in the range than
having nobody to be able to build and use lxc.

Once gcc is fixed this can be reverted.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-06-19 08:37:25 -04:00
Huang Qiyu
e73608d56e lxc: 2.0.0 -> 2.0.8
1)Upgrade lxc from 2.0.0 to 2.0.8.

2)Delete two patches, since it is integrated upstream.
  Delete Generate-lxc-restore-net-properly.patch,this script has already been rearchitected out of existence by cba98d127bf490b018a016b792ae05fd2d29c5ee

  Delete Use-AC_HEADER_MAJOR-to-detect-major-minor-makedev.patch,this script has already been rearchitected out of existence by af6824fce9c9536fbcabef8d5547f6c486f55fdf from git://github.com/lxc/lxc.git

3)Modify two patches, since the data has been changed.
  automake-ensure-VPATH-builds-correctly.patch
  runtest.patch

Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-06-13 18:26:15 -04:00
Mark Asselstine
a9616ca504 lxc: fixup builds with newer glibc
The poky/oe-core commit [glibc: Upgrade to 2.25 snapshot] brought with
it a change that has apparently been in the works for a while, to move
major() and minor() definitions from <sys/types.h> to
<sys/sysmacros.h>. This version of glibc took the step of adding a
warning about this change which results in the build failure of lxc
since we build with -Werror:

  | lxclvm.c:139:13: error: In the GNU C Library, "major" is defined
  |  by <sys/sysmacros.h>. For historical compatibility, it is
  |  currently defined by <sys/types.h> as well, but we plan to
  |  remove this soon. To use "major", include <sys/sysmacros.h>
  |  directly. If you did not intend to use a system-defined macro
  |  "major", you should undefine it after including <sys/types.h>. [-Werror]
  |     major(statbuf.st_rdev), minor(statbuf.st_rdev));
  |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Instead of dropping -Werror we are opting instead to apply the
upstream fix for this since it is available and applies relatively
cleanly.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-02-02 15:55:38 -05:00
Bruce Ashfield
38cdaf39bf lxc: update to 2.0.0
2.0.0 is released, and contains many of the patches we've been carrying for
1.x.

With this updated, we drop upstream backports (and submitted patches), and
refresh on patch. Otherwise, everything is the same.

Sanity tested on x86-64.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-04-25 16:26:23 -04:00
fli
23459b9b70 meta-virtualization: enable lxc-start support wlan0
Cherry picked patch from lxc upstream commit:
f2e206ff47<lxc: let lxc-start support wlan phys>
to enable lxc-start command support wlan0 device
and make cube-essential support paththrough wlan
device from host to lxc containers.

Signed-off-by: fli <fupan.li@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-04-22 10:27:40 -04:00
Bogdan Purcareata
bffe56510c lxc: warning fixes in busybox template
Warnings fixes:
- optional mounts when dirs not available
- busybox dynamically linked
- fstab not available in container

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-03-29 12:35:41 -04:00
Bogdan Purcareata
f3e5987296 lxc: upstream fixes for lxc-execute
These patches address some warnings that LXC throws when running
an application container. They are currently applied in the official
repository.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-03-07 11:30:37 -05:00
Jim Somerville
49e29c7f83 lxc: logs: use base filenames when reporting src files
Problem:  Logs are nice in that they report the source file,
routine, and line number where an issue occurs.  But the
file is printed as the absolute filename.  Users do not
need to see a long spew of path directory names where the package
just happened to have been built on some host somewhere.  It
can be confusing to anyone other than the developer.

Solution:  Introduce a configure option to chop off all leading
directories so that just the source filename ie. basename is printed.

[ Upstream status:  Not needed.  These absolute filenames are a
  consequence of poky/bitbake feeding the absolute filenames to
  the compiler.  If you build lxc outside of poky/bitbake, just
  the basenames are fed to the compiler. ]

Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-10-02 08:52:48 -04:00
Jim Somerville
1e5442714a lxc: doc: fix broken manpage build
docbook2man fails to build the man pages in poky
due to missing the ancient Davenport 3.0 DTD.
Poky meta has the Oasis 3.1 version so upgrade
to use that instead.

Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-08-13 23:39:37 -04:00
Jim Somerville
fb380fd60f lxc: upgrade to version 1.1.2
This version has better support for unprivileged
containers.

Two patches are deleted as they are now included.
One new patch is introduced to fix a file not found error at
the install build step.

Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-07-14 14:32:07 -04:00
Bogdan Purcareata
c59f888d61 lxc: Add OpenSSH support for Busybox containers
Add command line parameter to create Busybox containers
with OpenSSH support. As a prerequisite, OpenSSH needs
to be installed on the host system.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-05-07 14:13:21 -04:00
Dmitry Eremin-Solenikov
23e15f52a0 lxc: fix building when B != S
If lxc is built not in the source dir, upstart files will fail to be
installed, because of Makefile error.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-04-11 00:20:49 -04:00
Bruce Ashfield
1365af123e lxc: fix systemd init issues
To generate a proper systemd.service file we should use lxc's builtin
configuration option for the initscript type. To support both sysvinit
and systemd, we trigger off the DISTRO var and enable the proper init
system accordingly.

When properly configured, lxc will create helper scripts and install
the service file, so we can delete the explicit copy of the service
file and let the default rules trigger and install what is needed.

The helper files installed by lxc require a lsb function that is not
commonly available in the 'functions' library: "action". To ensure that
the helper scripts operate, we create a local action() routine with
the expected semantics.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-04-11 00:17:55 -04:00
Bogdan Purcareata
055742a99e lxc: Update support for seccomp on PPC architectures
Update the LXC recipe with the upstream-applied version of the patch.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-03-17 09:42:07 -04:00
Bogdan Purcareata
e1b0876fa9 lxc: Add support for seccomp on PPC architectures
Add the necessary bits to enable seccomp support for LXC running on PPC
architectures. libseccomp added support for PPC [1], yet to be applied to
Yocto/meta-security.

[1] https://github.com/seccomp/libseccomp/tree/working-ppc64

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-03-13 14:46:02 -04:00
Bogdan Purcareata
ea1539e965 lxc: fix reboot for Busybox containers
Busybox powered containers rely on a different signal for reboot - SIGTERM,
rather than the default SIGINT.

Apply the upstream support adding the infrastructure for defining a custom
reboot signal for a container, and default this signal to SIGTERM for Busybox
containers.  The original patches have been applied on the upstream master LXC
branch, and required a minor backport.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-03-10 13:14:57 -04:00
Bruce Ashfield
4eee3730ff lxc: uprev to 1.0.7
lxc 1.0.7 is available, and integrates two patches that we were carrying
against 1.0.6 .. so we do the update, and drop the two busybox patches.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2015-01-20 14:16:19 -05:00
Bogdan Purcareata
c6b10c569d lxc: add unprivileged Busybox containers support
Integrate 2 upstream patches that enable creating unprivileged Busybox
containers.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-11-03 08:04:39 -05:00
Bogdan Purcareata
b0745517d1 lxc: fixup VPATH builds
Rework patch 5b57bf462b [lxc: fixup VPATH builds]
since the new version of LXC refactored one of the files and it no longer
applies. Provide a fix for what's left.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-10-02 22:57:10 -04:00
Bogdan Purcareata
246fc0bfaf lxc: Update version to 1.0.6
Also remove patch file that no longer applies.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-10-02 22:57:10 -04:00
Maxin B. John
7605c820e4 lxc: Uprev to 1.0.5
Update lxc to latest available version: 1.0.5
Remove already upstreamed patches.

Signed-off-by: Maxin B. John <maxin.john@enea.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-07-29 10:05:12 -04:00
Mark Asselstine
5b57bf462b lxc: fixup VPATH builds
Poky commit 69b6eaca3d9b635e8a61a0fdbd814b558e91901d [autotools:
Enable separate builddir by default] enforced separate build
directories, which is supported by automake. Unfortunately lxc had a
few make directives which didn't take into account VPATH builds so
fixing them up here to allow the lxc build to complete successfully.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-05-08 12:37:25 -04:00
Mihaela Sendrea
10edbcd8ca lxc: Add ptest support
Install lxc test suite and run it as ptest.

Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2014-04-15 19:44:34 -04:00