diff --git a/root-packages/lxc/build.sh b/root-packages/lxc/build.sh index d6f0f87cf..143337e00 100644 --- a/root-packages/lxc/build.sh +++ b/root-packages/lxc/build.sh @@ -2,17 +2,16 @@ TERMUX_PKG_HOMEPAGE=http://linuxcontainers.org/ TERMUX_PKG_DESCRIPTION="Linux Containers" TERMUX_PKG_LICENSE="LGPL-2.1" TERMUX_PKG_MAINTAINER="Leonid Plyushch " -TERMUX_PKG_VERSION=3.2.1 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_VERSION=4.0.1 TERMUX_PKG_SRCURL=https://linuxcontainers.org/downloads/lxc-$TERMUX_PKG_VERSION.tar.gz -TERMUX_PKG_SHA256=5f903986a4b17d607eea28c0aa56bf1e76e8707747b1aa07d31680338b1cc3d4 +TERMUX_PKG_SHA256=70bbaac1df097f32ee5493a5e67a52365f7cdda28529f40197d6160bbec4139d TERMUX_PKG_DEPENDS="gnupg, libcap, libseccomp, rsync, wget" TERMUX_PKG_BREAKS="lxc-dev" TERMUX_PKG_REPLACES="lxc-dev" # Do not build for ARM due to # error: /home/builder/.termux-build/_cache/android-r20-api-24-v1/bin/../lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb/libgcc_real.a(pr-support.o): multiple definition of '__gnu_unwind_frame' -TERMUX_PKG_BLACKLISTED_ARCHES="arm" +#TERMUX_PKG_BLACKLISTED_ARCHES="arm" TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" --with-distro=termux diff --git a/root-packages/lxc/src-lxc-cgroups-cgfsng.c.patch b/root-packages/lxc/src-lxc-cgroups-cgfsng.c.patch index 3d66cd723..0b46e27ac 100644 --- a/root-packages/lxc/src-lxc-cgroups-cgfsng.c.patch +++ b/root-packages/lxc/src-lxc-cgroups-cgfsng.c.patch @@ -1,50 +1,53 @@ -diff -uNr lxc-3.2.1/src/lxc/cgroups/cgfsng.c lxc-3.2.1.mod/src/lxc/cgroups/cgfsng.c ---- lxc-3.2.1/src/lxc/cgroups/cgfsng.c 2019-07-23 01:34:33.000000000 +0300 -+++ lxc-3.2.1.mod/src/lxc/cgroups/cgfsng.c 2019-09-19 16:28:18.220151406 +0300 -@@ -403,7 +403,7 @@ - } - oldv = *lastslash; - *lastslash = '\0'; -- fpath = must_make_path(path, "cpuset.cpus", NULL); -+ fpath = must_make_path(path, "cpus", NULL); - *lastslash = oldv; +--- ./src/lxc/cgroups/cgfsng.c.orig 2020-04-07 13:18:11.768499944 +0200 ++++ ./src/lxc/cgroups/cgfsng.c 2020-04-07 13:22:05.304800371 +0200 +@@ -348,7 +348,7 @@ + ssize_t maxisol = 0, maxoffline = 0, maxposs = 0; + bool flipped_bit = false; + +- fpath = must_make_path(parent_cgroup, "cpuset.cpus", NULL); ++ fpath = must_make_path(parent_cgroup, "cpus", NULL); posscpus = read_file(fpath); - if (!posscpus) { -@@ -509,7 +509,7 @@ + if (!posscpus) + return log_error_errno(false, errno, "Failed to read file \"%s\"", fpath); +@@ -439,10 +439,10 @@ copy_parent: if (!am_initialized) { -- fpath = must_make_path(path, "cpuset.cpus", NULL); -+ fpath = must_make_path(path, "cpus", NULL); - ret = lxc_write_to_file(fpath, cpulist, strlen(cpulist), false, - 0666); - if (ret < 0) { -@@ -605,7 +605,7 @@ - return false; - } +- ret = lxc_write_openat(child_cgroup, "cpuset.cpus", cpulist, strlen(cpulist)); ++ ret = lxc_write_openat(child_cgroup, "cpus", cpulist, strlen(cpulist)); + if (ret < 0) + return log_error_errno(false, +- errno, "Failed to write cpu list to \"%s/cpuset.cpus\"", ++ errno, "Failed to write cpu list to \"%s/cpus\"", + child_cgroup); + + TRACE("Copied cpu settings of parent cgroup"); +@@ -542,7 +542,7 @@ + if (ret < 0) + return log_error_errno(-1, errno, "Failed to read file \"%s/cgroup.clone_children\"", child_cgroup); - /* Make sure any isolated cpus are removed from cpuset.cpus. */ + /* Make sure any isolated cpus are removed from cpus. */ - if (!cg_legacy_filter_and_set_cpus(cgpath, v == '1')) { - SYSERROR("Failed to remove isolated cpus"); - return false; -@@ -616,8 +616,8 @@ + if (!cg_legacy_filter_and_set_cpus(parent_cgroup, child_cgroup, v == '1')) + return log_error_errno(-1, errno, "Failed to remove isolated cpus"); + +@@ -551,8 +551,8 @@ TRACE("\"cgroup.clone_children\" was already set to \"1\""); /* copy parent's settings */ -- if (!copy_parent_file(cgpath, "cpuset.mems")) { -- SYSERROR("Failed to copy \"cpuset.mems\" settings"); -+ if (!copy_parent_file(cgpath, "mems")) { -+ SYSERROR("Failed to copy \"mems\" settings"); - return false; - } +- if (!copy_parent_file(parent_cgroup, child_cgroup, "cpuset.mems")) +- return log_error_errno(-1, errno, "Failed to copy \"cpuset.mems\" settings"); ++ if (!copy_parent_file(parent_cgroup, child_cgroup, "mems")) ++ return log_error_errno(-1, errno, "Failed to copy \"mems\" settings"); -@@ -731,7 +731,7 @@ + /* Set clone_children so children inherit our settings */ + ret = lxc_writeat(cgroup_fd, "cgroup.clone_children", "1", 1); +@@ -653,7 +653,7 @@ * verify /sys/fs/cgroup/ in this field. */ - if (strncmp(p, "/sys/fs/cgroup/", 15) != 0) { -- ERROR("Found hierarchy not under /sys/fs/cgroup: \"%s\"", p); -+ WARN("Found hierarchy not under /sys/fs/cgroup: \"%s\"", p); - return NULL; - } + if (strncmp(p, DEFAULT_CGROUP_MOUNTPOINT "/", 15) != 0) +- return log_error(NULL, "Found hierarchy not under " DEFAULT_CGROUP_MOUNTPOINT ": \"%s\"", p); ++ return log_warn(NULL, "Found hierarchy not under " DEFAULT_CGROUP_MOUNTPOINT ": \"%s\"", p); + p += 15; + p2 = strchr(p, ' ');