diff options
| -rw-r--r-- | recipes-containers/lxc/files/Generate-lxc-restore-net-properly.patch | 121 | ||||
| -rw-r--r-- | recipes-containers/lxc/files/lxc-helper-create-local-action-function.patch | 38 | ||||
| -rw-r--r-- | recipes-containers/lxc/files/ppc-add-seccomp-support-for-lxc.patch | 111 | ||||
| -rw-r--r-- | recipes-containers/lxc/lxc_1.1.2.bb (renamed from recipes-containers/lxc/lxc_1.0.7.bb) | 9 |
4 files changed, 125 insertions, 154 deletions
diff --git a/recipes-containers/lxc/files/Generate-lxc-restore-net-properly.patch b/recipes-containers/lxc/files/Generate-lxc-restore-net-properly.patch new file mode 100644 index 00000000..5adb730c --- /dev/null +++ b/recipes-containers/lxc/files/Generate-lxc-restore-net-properly.patch | |||
| @@ -0,0 +1,121 @@ | |||
| 1 | From e08f3573b3561f1f0490624f7ca95b7ccd8157cb Mon Sep 17 00:00:00 2001 | ||
| 2 | Message-Id: <e08f3573b3561f1f0490624f7ca95b7ccd8157cb.1435177418.git.Jim.Somerville@windriver.com> | ||
| 3 | From: Jim Somerville <Jim.Somerville@windriver.com> | ||
| 4 | Date: Wed, 24 Jun 2015 16:16:38 -0400 | ||
| 5 | Subject: [PATCH 1/1] Generate lxc-restore-net properly | ||
| 6 | |||
| 7 | It's a script that should be run through the configure | ||
| 8 | mechanism the same as the others. We simply rename it | ||
| 9 | to have a .in extension and add it to configure.ac . | ||
| 10 | |||
| 11 | Also, by generating the script from a .in file, it gets | ||
| 12 | placed into the build directory. This plays nice with | ||
| 13 | build systems that keep the src separate from the build | ||
| 14 | directory. Without this change, the install step won't | ||
| 15 | find the lxc-restore-net script as it still just resides | ||
| 16 | in the src directory and not in the build directory. | ||
| 17 | |||
| 18 | Upstream-Status: Not applicable. This script has already | ||
| 19 | been rearchitected out of existence by | ||
| 20 | cba98d127bf490b018a016b792ae05fd2d29c5ee: | ||
| 21 | "c/r: use criu option instead of lxc-restore-net | ||
| 22 | |||
| 23 | As of criu 1.5, the --veth-pair argument supports an additional parameter that | ||
| 24 | is the bridge name to attach to. This enables us to get rid of the goofy | ||
| 25 | action-script hack that passed bridge names as environment variables. | ||
| 26 | |||
| 27 | This patch is on top of the systemd/lxcfs mount rework patch, as we probably | ||
| 28 | want to wait to use 1.5 options until it has been out for a while and is in | ||
| 29 | distros. | ||
| 30 | |||
| 31 | Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com> | ||
| 32 | Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>" | ||
| 33 | |||
| 34 | Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com> | ||
| 35 | --- | ||
| 36 | configure.ac | 1 + | ||
| 37 | src/lxc/lxc-restore-net | 26 -------------------------- | ||
| 38 | src/lxc/lxc-restore-net.in | 26 ++++++++++++++++++++++++++ | ||
| 39 | 3 files changed, 27 insertions(+), 26 deletions(-) | ||
| 40 | delete mode 100755 src/lxc/lxc-restore-net | ||
| 41 | create mode 100755 src/lxc/lxc-restore-net.in | ||
| 42 | |||
| 43 | diff --git a/configure.ac b/configure.ac | ||
| 44 | index 574b2cd..4972803 100644 | ||
| 45 | --- a/configure.ac | ||
| 46 | +++ b/configure.ac | ||
| 47 | @@ -768,6 +768,7 @@ AC_CONFIG_FILES([ | ||
| 48 | src/lxc/legacy/lxc-ls | ||
| 49 | src/lxc/lxc.functions | ||
| 50 | src/lxc/version.h | ||
| 51 | + src/lxc/lxc-restore-net | ||
| 52 | src/python-lxc/Makefile | ||
| 53 | src/python-lxc/setup.py | ||
| 54 | |||
| 55 | diff --git a/src/lxc/lxc-restore-net b/src/lxc/lxc-restore-net | ||
| 56 | deleted file mode 100755 | ||
| 57 | index 6ae3c19..0000000 | ||
| 58 | --- a/src/lxc/lxc-restore-net | ||
| 59 | +++ /dev/null | ||
| 60 | @@ -1,26 +0,0 @@ | ||
| 61 | -#!/bin/sh | ||
| 62 | - | ||
| 63 | -set -e | ||
| 64 | - | ||
| 65 | -i=0 | ||
| 66 | -while true; do | ||
| 67 | - eval "bridge=\$LXC_CRIU_BRIDGE$i" | ||
| 68 | - eval "veth=\$LXC_CRIU_VETH$i" | ||
| 69 | - | ||
| 70 | - if [ -z "$bridge" ] || [ -z "$veth" ]; then | ||
| 71 | - exit 0 | ||
| 72 | - fi | ||
| 73 | - | ||
| 74 | - if [ "$CRTOOLS_SCRIPT_ACTION" = "network-lock" ]; then | ||
| 75 | - brctl delif $bridge $veth | ||
| 76 | - fi | ||
| 77 | - | ||
| 78 | - if [ "$CRTOOLS_SCRIPT_ACTION" = "network-unlock" ]; then | ||
| 79 | - brctl addif $bridge $veth | ||
| 80 | - ip link set dev $veth up | ||
| 81 | - fi | ||
| 82 | - | ||
| 83 | - i=$((i+1)) | ||
| 84 | -done | ||
| 85 | - | ||
| 86 | -exit 1 | ||
| 87 | diff --git a/src/lxc/lxc-restore-net.in b/src/lxc/lxc-restore-net.in | ||
| 88 | new file mode 100755 | ||
| 89 | index 0000000..6ae3c19 | ||
| 90 | --- /dev/null | ||
| 91 | +++ b/src/lxc/lxc-restore-net.in | ||
| 92 | @@ -0,0 +1,26 @@ | ||
| 93 | +#!/bin/sh | ||
| 94 | + | ||
| 95 | +set -e | ||
| 96 | + | ||
| 97 | +i=0 | ||
| 98 | +while true; do | ||
| 99 | + eval "bridge=\$LXC_CRIU_BRIDGE$i" | ||
| 100 | + eval "veth=\$LXC_CRIU_VETH$i" | ||
| 101 | + | ||
| 102 | + if [ -z "$bridge" ] || [ -z "$veth" ]; then | ||
| 103 | + exit 0 | ||
| 104 | + fi | ||
| 105 | + | ||
| 106 | + if [ "$CRTOOLS_SCRIPT_ACTION" = "network-lock" ]; then | ||
| 107 | + brctl delif $bridge $veth | ||
| 108 | + fi | ||
| 109 | + | ||
| 110 | + if [ "$CRTOOLS_SCRIPT_ACTION" = "network-unlock" ]; then | ||
| 111 | + brctl addif $bridge $veth | ||
| 112 | + ip link set dev $veth up | ||
| 113 | + fi | ||
| 114 | + | ||
| 115 | + i=$((i+1)) | ||
| 116 | +done | ||
| 117 | + | ||
| 118 | +exit 1 | ||
| 119 | -- | ||
| 120 | 1.8.3.2 | ||
| 121 | |||
diff --git a/recipes-containers/lxc/files/lxc-helper-create-local-action-function.patch b/recipes-containers/lxc/files/lxc-helper-create-local-action-function.patch deleted file mode 100644 index d1d31eea..00000000 --- a/recipes-containers/lxc/files/lxc-helper-create-local-action-function.patch +++ /dev/null | |||
| @@ -1,38 +0,0 @@ | |||
| 1 | From aada9da49caca9e4a25764df2d2a2c11d9d95dbb Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 3 | Date: Fri, 10 Apr 2015 10:55:49 -0400 | ||
| 4 | Subject: [PATCH] lxc-helper: create local action() function | ||
| 5 | |||
| 6 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 7 | --- | ||
| 8 | config/init/sysvinit/lxc.in | 14 ++++++++++++++ | ||
| 9 | 1 file changed, 14 insertions(+) | ||
| 10 | |||
| 11 | diff --git a/config/init/sysvinit/lxc.in b/config/init/sysvinit/lxc.in | ||
| 12 | index 19c102e74c86..9f96a4f7496f 100644 | ||
| 13 | --- a/config/init/sysvinit/lxc.in | ||
| 14 | +++ b/config/init/sysvinit/lxc.in | ||
| 15 | @@ -52,6 +52,20 @@ test ! -r "$sysconfdir"/sysconfig/lxc || | ||
| 16 | # Check for needed utility program | ||
| 17 | [ -x "$bindir"/lxc-autostart ] || exit 1 | ||
| 18 | |||
| 19 | +action() | ||
| 20 | +{ | ||
| 21 | + local STRING rc | ||
| 22 | + | ||
| 23 | + STRING=$1 | ||
| 24 | + echo -n "$STRING " | ||
| 25 | + | ||
| 26 | + shift | ||
| 27 | + "$@" && success $"$STRING" || failure $"$STRING" | ||
| 28 | + rc=$? | ||
| 29 | + | ||
| 30 | + return $rc | ||
| 31 | +} | ||
| 32 | + | ||
| 33 | # If libvirtd is providing the bridge, it might not be | ||
| 34 | # immediately available, so wait a bit for it before starting | ||
| 35 | # up the containers or else any that use the bridge will fail | ||
| 36 | -- | ||
| 37 | 2.1.0 | ||
| 38 | |||
diff --git a/recipes-containers/lxc/files/ppc-add-seccomp-support-for-lxc.patch b/recipes-containers/lxc/files/ppc-add-seccomp-support-for-lxc.patch deleted file mode 100644 index 10555398..00000000 --- a/recipes-containers/lxc/files/ppc-add-seccomp-support-for-lxc.patch +++ /dev/null | |||
| @@ -1,111 +0,0 @@ | |||
| 1 | From b4067426d58aec9b6cad7a4739793f3d90c5f189 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Bogdan Purcareata <bogdan.purcareata@freescale.com> | ||
| 3 | Date: Thu, 12 Mar 2015 08:57:47 +0000 | ||
| 4 | Subject: [PATCH] seccomp: add ppc support | ||
| 5 | |||
| 6 | This patch enables seccomp support for LXC containers running on PowerPC | ||
| 7 | architectures. It is based on the latest PowerPC support added to libseccomp, on | ||
| 8 | the working-ppc64 branch [1]. | ||
| 9 | |||
| 10 | Libseccomp has been tested on ppc, ppc64 and ppc64le architectures. LXC with | ||
| 11 | seccomp support has been tested on ppc and ppc64 architectures, using the | ||
| 12 | default seccomp policy example files delivered with the LXC package. | ||
| 13 | |||
| 14 | [1] https://github.com/seccomp/libseccomp/commits/working-ppc64 | ||
| 15 | |||
| 16 | v2: | ||
| 17 | - add #ifdefs in get_new_ctx to fix builds on systems not having SCMP_ARCH_PPC* | ||
| 18 | defined | ||
| 19 | |||
| 20 | Upstream-Status: Applied | ||
| 21 | [https://github.com/lxc/lxc/commit/b4067426d58aec9b6cad7a4739793f3d90c5f189] | ||
| 22 | |||
| 23 | Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com> | ||
| 24 | Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com> | ||
| 25 | --- | ||
| 26 | src/lxc/seccomp.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ | ||
| 27 | 1 file changed, 48 insertions(+) | ||
| 28 | |||
| 29 | diff --git a/src/lxc/seccomp.c b/src/lxc/seccomp.c | ||
| 30 | index 3ba6c9a..108faa0 100644 | ||
| 31 | --- a/src/lxc/seccomp.c | ||
| 32 | +++ b/src/lxc/seccomp.c | ||
| 33 | @@ -121,6 +121,9 @@ enum lxc_hostarch_t { | ||
| 34 | lxc_seccomp_arch_i386, | ||
| 35 | lxc_seccomp_arch_amd64, | ||
| 36 | lxc_seccomp_arch_arm, | ||
| 37 | + lxc_seccomp_arch_ppc64, | ||
| 38 | + lxc_seccomp_arch_ppc64le, | ||
| 39 | + lxc_seccomp_arch_ppc, | ||
| 40 | lxc_seccomp_arch_unknown = 999, | ||
| 41 | }; | ||
| 42 | |||
| 43 | @@ -137,6 +140,12 @@ int get_hostarch(void) | ||
| 44 | return lxc_seccomp_arch_amd64; | ||
| 45 | else if (strncmp(uts.machine, "armv7", 5) == 0) | ||
| 46 | return lxc_seccomp_arch_arm; | ||
| 47 | + else if (strncmp(uts.machine, "ppc64le", 7) == 0) | ||
| 48 | + return lxc_seccomp_arch_ppc64le; | ||
| 49 | + else if (strncmp(uts.machine, "ppc64", 5) == 0) | ||
| 50 | + return lxc_seccomp_arch_ppc64; | ||
| 51 | + else if (strncmp(uts.machine, "ppc", 3) == 0) | ||
| 52 | + return lxc_seccomp_arch_ppc; | ||
| 53 | return lxc_seccomp_arch_unknown; | ||
| 54 | } | ||
| 55 | |||
| 56 | @@ -150,6 +159,15 @@ scmp_filter_ctx get_new_ctx(enum lxc_hostarch_t n_arch, uint32_t default_policy_ | ||
| 57 | case lxc_seccomp_arch_i386: arch = SCMP_ARCH_X86; break; | ||
| 58 | case lxc_seccomp_arch_amd64: arch = SCMP_ARCH_X86_64; break; | ||
| 59 | case lxc_seccomp_arch_arm: arch = SCMP_ARCH_ARM; break; | ||
| 60 | +#ifdef SCMP_ARCH_PPC64LE | ||
| 61 | + case lxc_seccomp_arch_ppc64le: arch = SCMP_ARCH_PPC64LE; break; | ||
| 62 | +#endif | ||
| 63 | +#ifdef SCMP_ARCH_PPC64 | ||
| 64 | + case lxc_seccomp_arch_ppc64: arch = SCMP_ARCH_PPC64; break; | ||
| 65 | +#endif | ||
| 66 | +#ifdef SCMP_ARCH_PPC | ||
| 67 | + case lxc_seccomp_arch_ppc: arch = SCMP_ARCH_PPC; break; | ||
| 68 | +#endif | ||
| 69 | default: return NULL; | ||
| 70 | } | ||
| 71 | |||
| 72 | @@ -343,6 +361,36 @@ static int parse_config_v2(FILE *f, char *line, struct lxc_conf *conf) | ||
| 73 | cur_rule_arch = lxc_seccomp_arch_arm; | ||
| 74 | } | ||
| 75 | #endif | ||
| 76 | +#ifdef SCMP_ARCH_PPC64LE | ||
| 77 | + else if (strcmp(line, "[ppc64le]") == 0 || | ||
| 78 | + strcmp(line, "[PPC64LE]") == 0) { | ||
| 79 | + if (native_arch != lxc_seccomp_arch_ppc64le) { | ||
| 80 | + cur_rule_arch = lxc_seccomp_arch_unknown; | ||
| 81 | + continue; | ||
| 82 | + } | ||
| 83 | + cur_rule_arch = lxc_seccomp_arch_ppc64le; | ||
| 84 | + } | ||
| 85 | +#endif | ||
| 86 | +#ifdef SCMP_ARCH_PPC64 | ||
| 87 | + else if (strcmp(line, "[ppc64]") == 0 || | ||
| 88 | + strcmp(line, "[PPC64]") == 0) { | ||
| 89 | + if (native_arch != lxc_seccomp_arch_ppc64) { | ||
| 90 | + cur_rule_arch = lxc_seccomp_arch_unknown; | ||
| 91 | + continue; | ||
| 92 | + } | ||
| 93 | + cur_rule_arch = lxc_seccomp_arch_ppc64; | ||
| 94 | + } | ||
| 95 | +#endif | ||
| 96 | +#ifdef SCMP_ARCH_PPC | ||
| 97 | + else if (strcmp(line, "[ppc]") == 0 || | ||
| 98 | + strcmp(line, "[PPC]") == 0) { | ||
| 99 | + if (native_arch != lxc_seccomp_arch_ppc) { | ||
| 100 | + cur_rule_arch = lxc_seccomp_arch_unknown; | ||
| 101 | + continue; | ||
| 102 | + } | ||
| 103 | + cur_rule_arch = lxc_seccomp_arch_ppc; | ||
| 104 | + } | ||
| 105 | +#endif | ||
| 106 | else | ||
| 107 | goto bad_arch; | ||
| 108 | |||
| 109 | -- | ||
| 110 | 2.1.4 | ||
| 111 | |||
diff --git a/recipes-containers/lxc/lxc_1.0.7.bb b/recipes-containers/lxc/lxc_1.1.2.bb index faa31b7d..77d226b3 100644 --- a/recipes-containers/lxc/lxc_1.0.7.bb +++ b/recipes-containers/lxc/lxc_1.1.2.bb | |||
| @@ -27,17 +27,16 @@ SRC_URI = "http://linuxcontainers.org/downloads/${BPN}-${PV}.tar.gz \ | |||
| 27 | file://run-ptest \ | 27 | file://run-ptest \ |
| 28 | file://automake-ensure-VPATH-builds-correctly.patch \ | 28 | file://automake-ensure-VPATH-builds-correctly.patch \ |
| 29 | file://add-lxc.rebootsignal.patch \ | 29 | file://add-lxc.rebootsignal.patch \ |
| 30 | file://lxc-helper-create-local-action-function.patch \ | ||
| 31 | file://document-lxc.rebootsignal.patch \ | 30 | file://document-lxc.rebootsignal.patch \ |
| 32 | file://lxc-busybox-use-lxc.rebootsignal-SIGTERM.patch \ | 31 | file://lxc-busybox-use-lxc.rebootsignal-SIGTERM.patch \ |
| 33 | file://ppc-add-seccomp-support-for-lxc.patch \ | ||
| 34 | file://lxc-fix-B-S.patch \ | 32 | file://lxc-fix-B-S.patch \ |
| 35 | file://lxc-busybox-add-OpenSSH-support.patch \ | 33 | file://lxc-busybox-add-OpenSSH-support.patch \ |
| 36 | file://make-some-OpenSSH-tools-optional.patch \ | 34 | file://make-some-OpenSSH-tools-optional.patch \ |
| 35 | file://Generate-lxc-restore-net-properly.patch \ | ||
| 37 | " | 36 | " |
| 38 | 37 | ||
| 39 | SRC_URI[md5sum] = "b48f468a9bef0e4e140dd723f0a65ad0" | 38 | SRC_URI[md5sum] = "3ebadacf5fe8bfe689fd7a09812b682c" |
| 40 | SRC_URI[sha256sum] = "3c0cb2d95d9d8a8d59c7189d237a45cde77f38ea180fbff2c148d59e176e9dab" | 39 | SRC_URI[sha256sum] = "34ba517ffd7b38a14e5d12d56a4928b78602d56311d5f47c3ef90f4e714b9604" |
| 41 | 40 | ||
| 42 | S = "${WORKDIR}/${BPN}-${PV}" | 41 | S = "${WORKDIR}/${BPN}-${PV}" |
| 43 | 42 | ||
| @@ -98,7 +97,7 @@ do_install_append() { | |||
| 98 | 97 | ||
| 99 | if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then | 98 | if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then |
| 100 | install -d ${D}${sysconfdir}/init.d | 99 | install -d ${D}${sysconfdir}/init.d |
| 101 | cp ${S}/config/init/sysvinit/lxc ${D}${sysconfdir}/init.d | 100 | install -m 755 config/init/sysvinit/lxc* ${D}${sysconfdir}/init.d |
| 102 | fi | 101 | fi |
| 103 | } | 102 | } |
| 104 | 103 | ||
