sm-commit AT lists.ibiblio.org
Subject: Source Mage code commit list
List archive
[SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (4b1c6b8d3ad90c402e6a00ea649fead09eb4be58)
- From: Pavel Vinogradov <scm AT sourcemage.org>
- To: sm-commit AT lists.ibiblio.org
- Subject: [SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (4b1c6b8d3ad90c402e6a00ea649fead09eb4be58)
- Date: Fri, 12 Aug 2016 23:00:31 +0000
GIT changes to master grimoire by Pavel Vinogradov <public AT sourcemage.org>:
utils/lxc/DETAILS | 4
utils/lxc/HISTORY | 6
utils/lxc/PRE_BUILD | 4
utils/lxc/readdir_r.patch | 334
++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 346 insertions(+), 2 deletions(-)
New commits:
commit 4b1c6b8d3ad90c402e6a00ea649fead09eb4be58
Author: Pavel Vinogradov <public AT sourcemage.org>
Commit: Pavel Vinogradov <public AT sourcemage.org>
utils/lxc: version 2.0.3
diff --git a/utils/lxc/DETAILS b/utils/lxc/DETAILS
index e6d73b5..542fa93 100755
--- a/utils/lxc/DETAILS
+++ b/utils/lxc/DETAILS
@@ -1,8 +1,8 @@
SPELL=lxc
- VERSION=1.1.5
+ VERSION=2.0.3
SOURCE="${SPELL}-${VERSION}.tar.gz"
SOURCE_URL[0]=https://linuxcontainers.org/downloads/${SOURCE}
-
SOURCE_HASH=sha512:406045eb494ee6c578d76a956ef6ea2e7806383efc98e7d0f915e8ad9b245a2b3445c9da14a4bedd6322a76b64add202894c21758f429e4be952919b83894166
+
SOURCE_HASH=sha512:bdc1231805d8370525640ab3ca46ba3ba597d6d437aa092c1202c798956408d80c99d47704bedd29038da98fa4a7449ea93cd93893a06a10e9ce86a2070c0670
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
WEB_SITE="https://linuxcontainers.org/"
LICENSE[0]="LGPLv2.1+"
diff --git a/utils/lxc/HISTORY b/utils/lxc/HISTORY
index 675dd26..be3564f 100644
--- a/utils/lxc/HISTORY
+++ b/utils/lxc/HISTORY
@@ -1,3 +1,9 @@
+2016-08-12 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: updated spell to 2.0.3
+ * PRE_BUILD, readdir_r.patch: added to apply slightly modified
+ patch from Christian Brauner <cbrauner AT suse.de> reflecting recent
+ changes in glibc
+
2015-11-11 Ismael Luceno <ismael AT sourcemage.org>
* DETAILS: updated spell to 1.1.5
diff --git a/utils/lxc/PRE_BUILD b/utils/lxc/PRE_BUILD
new file mode 100755
index 0000000..fca5112
--- /dev/null
+++ b/utils/lxc/PRE_BUILD
@@ -0,0 +1,4 @@
+default_pre_build &&
+cd "${SOURCE_DIRECTORY}" &&
+
+patch -p1 < ${SPELL_DIRECTORY}/readdir_r.patch
diff --git a/utils/lxc/readdir_r.patch b/utils/lxc/readdir_r.patch
new file mode 100644
index 0000000..6f3ad48
--- /dev/null
+++ b/utils/lxc/readdir_r.patch
@@ -0,0 +1,334 @@
+From 74f96976634e30df1c156803047d89a70eba74f8 Mon Sep 17 00:00:00 2001
+From: Christian Brauner <cbrauner AT suse.de>
+Date: Tue, 9 Aug 2016 21:05:19 +0200
+Subject: [PATCH] tree-wide: replace readdir_r() with readdir()
+
+Signed-off-by: Christian Brauner <cbrauner AT suse.de>
+---
+ src/lxc/bdev/lxcloop.c | 4 ++--
+ src/lxc/cgfs.c | 23 ++++-------------------
+ src/lxc/cgfsng.c | 8 ++++----
+ src/lxc/conf.c | 4 ++--
+ src/lxc/confile.c | 4 ++--
+ src/lxc/lxccontainer.c | 20 ++++++++++----------
+ src/lxc/start.c | 4 ++--
+ src/lxc/utils.c | 4 ++--
+ 8 files changed, 28 insertions(+), 43 deletions(-)
+
+diff --git a/src/lxc/bdev/lxcloop.c b/src/lxc/bdev/lxcloop.c
+index c17483f..b322002 100644
+--- a/src/lxc/bdev/lxcloop.c
++++ b/src/lxc/bdev/lxcloop.c
+@@ -269,7 +269,7 @@ static int do_loop_create(const char *path, uint64_t
size, const char *fstype)
+
+ static int find_free_loopdev_no_control(int *retfd, char *namep)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ struct loop_info64 lo;
+ DIR *dir;
+ int fd = -1;
+@@ -279,7 +279,7 @@ static int find_free_loopdev_no_control(int *retfd, char
*namep)
+ SYSERROR("Error opening /dev");
+ return -1;
+ }
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+
+ if (!direntp)
+ break;
+diff --git a/src/lxc/cgfs.c b/src/lxc/cgfs.c
+index 6b2ac7e..2d0de0c 100644
+--- a/src/lxc/cgfs.c
++++ b/src/lxc/cgfs.c
+@@ -157,7 +157,7 @@ static struct cgroup_ops cgfs_ops;
+
+ static int cgroup_rmdir(char *dirname)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ int saved_errno = 0;
+ DIR *dir;
+ int ret, failed=0;
+@@ -169,7 +169,7 @@ static int cgroup_rmdir(char *dirname)
+ return -1;
+ }
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ struct stat mystat;
+ int rc;
+
+@@ -2067,26 +2067,14 @@ static bool cgroup_devices_has_allow_or_deny(struct
cgfs_data *d,
+ static int cgroup_recursive_task_count(const char *cgroup_path)
+ {
+ DIR *d;
+- struct dirent *dent_buf;
+ struct dirent *dent;
+- ssize_t name_max;
+ int n = 0, r;
+
+- /* see man readdir_r(3) */
+- name_max = pathconf(cgroup_path, _PC_NAME_MAX);
+- if (name_max <= 0)
+- name_max = 255;
+- dent_buf = malloc(offsetof(struct dirent, d_name) + name_max + 1);
+- if (!dent_buf)
+- return -1;
+-
+ d = opendir(cgroup_path);
+- if (!d) {
+- free(dent_buf);
++ if (!d)
+ return 0;
+- }
+
+- while (readdir_r(d, dent_buf, &dent) == 0 && dent) {
++ while ((dent = readdir(d))) {
+ const char *parts[3] = {
+ cgroup_path,
+ dent->d_name,
+@@ -2100,13 +2088,11 @@ static int cgroup_recursive_task_count(const char
*cgroup_path)
+ sub_path = lxc_string_join("/", parts, false);
+ if (!sub_path) {
+ closedir(d);
+- free(dent_buf);
+ return -1;
+ }
+ r = stat(sub_path, &st);
+ if (r < 0) {
+ closedir(d);
+- free(dent_buf);
+ free(sub_path);
+ return -1;
+ }
+@@ -2122,7 +2108,6 @@ static int cgroup_recursive_task_count(const char
*cgroup_path)
+ free(sub_path);
+ }
+ closedir(d);
+- free(dent_buf);
+
+ return n;
+ }
+diff --git a/src/lxc/cgfsng.c b/src/lxc/cgfsng.c
+index 27c2721..95f29ca 100644
+--- a/src/lxc/cgfsng.c
++++ b/src/lxc/cgfsng.c
+@@ -907,7 +907,7 @@ static char *must_make_path(const char *first, ...)
+
+ static int cgroup_rmdir(char *dirname)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ DIR *dir;
+ int r = 0;
+
+@@ -915,7 +915,7 @@ static int cgroup_rmdir(char *dirname)
+ if (!dir)
+ return -1;
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ struct stat mystat;
+ char *pathname;
+
+@@ -1367,7 +1367,7 @@ static bool cgfsng_mount(void *hdata, const char
*root, int type)
+
+ static int recursive_count_nrtasks(char *dirname)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ DIR *dir;
+ int count = 0, ret;
+ char *path;
+@@ -1376,7 +1376,7 @@ static int recursive_count_nrtasks(char *dirname)
+ if (!dir)
+ return 0;
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ struct stat mystat;
+
+ if (!direntp)
+diff --git a/src/lxc/conf.c b/src/lxc/conf.c
+index 9fea993..4ece410 100644
+--- a/src/lxc/conf.c
++++ b/src/lxc/conf.c
+@@ -510,7 +510,7 @@ static int setup_lodev(const char *rootfs, int fd,
struct loop_info64 *loinfo)
+ static int mount_rootfs_file(const char *rootfs, const char *target,
+ const char *options)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ struct loop_info64 loinfo;
+ int ret = -1, fd = -1, rc;
+ DIR *dir;
+@@ -522,7 +522,7 @@ static int mount_rootfs_file(const char *rootfs, const
char *target,
+ return -1;
+ }
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+
+ if (!direntp)
+ break;
+diff --git a/src/lxc/confile.c b/src/lxc/confile.c
+index db89caa..5ce2dc4 100644
+--- a/src/lxc/confile.c
++++ b/src/lxc/confile.c
+@@ -1805,7 +1805,7 @@ int append_unexp_config_line(const char *line, struct
lxc_conf *conf)
+
+ static int do_includedir(const char *dirp, struct lxc_conf *lxc_conf)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ DIR *dir;
+ char path[MAXPATHLEN];
+ int ret = -1, len;
+@@ -1816,7 +1816,7 @@ static int do_includedir(const char *dirp, struct
lxc_conf *lxc_conf)
+ return -1;
+ }
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ const char *fnam;
+ if (!direntp)
+ break;
+diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c
+index 24ded6f..ae0286f 100644
+--- a/src/lxc/lxccontainer.c
++++ b/src/lxc/lxccontainer.c
+@@ -623,7 +623,7 @@ WRAP_API_1(bool, wait_on_daemonized_start, int)
+
+ static bool am_single_threaded(void)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ DIR *dir;
+ int count=0;
+
+@@ -633,7 +633,7 @@ static bool am_single_threaded(void)
+ return false;
+ }
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ if (!direntp)
+ break;
+
+@@ -2284,7 +2284,7 @@ static bool has_fs_snapshots(struct lxc_container *c)
+ static bool has_snapshots(struct lxc_container *c)
+ {
+ char path[MAXPATHLEN];
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ int count=0;
+ DIR *dir;
+
+@@ -2293,7 +2293,7 @@ static bool has_snapshots(struct lxc_container *c)
+ dir = opendir(path);
+ if (!dir)
+ return false;
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ if (!direntp)
+ break;
+
+@@ -3503,7 +3503,7 @@ static int do_lxcapi_snapshot_list(struct
lxc_container *c, struct lxc_snapshot
+ {
+ char snappath[MAXPATHLEN], path2[MAXPATHLEN];
+ int count = 0, ret;
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ struct lxc_snapshot *snaps =NULL, *nsnaps;
+ DIR *dir;
+
+@@ -3520,7 +3520,7 @@ static int do_lxcapi_snapshot_list(struct
lxc_container *c, struct lxc_snapshot
+ return 0;
+ }
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ if (!direntp)
+ break;
+
+@@ -3666,7 +3666,7 @@ static bool do_snapshot_destroy(const char *snapname,
const char *clonelxcpath)
+ static bool remove_all_snapshots(const char *path)
+ {
+ DIR *dir;
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ bool bret = true;
+
+ dir = opendir(path);
+@@ -3674,7 +3674,7 @@ static bool remove_all_snapshots(const char *path)
+ SYSERROR("opendir on snapshot path %s", path);
+ return false;
+ }
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ if (!direntp)
+ break;
+ if (!strcmp(direntp->d_name, "."))
+@@ -4191,7 +4191,7 @@ int list_defined_containers(const char *lxcpath, char
***names, struct lxc_conta
+ {
+ DIR *dir;
+ int i, cfound = 0, nfound = 0;
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ struct lxc_container *c;
+
+ if (!lxcpath)
+@@ -4208,7 +4208,7 @@ int list_defined_containers(const char *lxcpath, char
***names, struct lxc_conta
+ if (names)
+ *names = NULL;
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ if (!direntp)
+ break;
+
+diff --git a/src/lxc/start.c b/src/lxc/start.c
+index 1ce9903..2411626 100644
+--- a/src/lxc/start.c
++++ b/src/lxc/start.c
+@@ -209,7 +209,7 @@ static int match_fd(int fd)
+ */
+ int lxc_check_inherited(struct lxc_conf *conf, bool closeall, int
fd_to_ignore)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ int fd, fddir;
+ DIR *dir;
+
+@@ -225,7 +225,7 @@ int lxc_check_inherited(struct lxc_conf *conf, bool
closeall, int fd_to_ignore)
+
+ fddir = dirfd(dir);
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ if (!direntp)
+ break;
+
+diff --git a/src/lxc/utils.c b/src/lxc/utils.c
+index 614add5..27362da 100644
+--- a/src/lxc/utils.c
++++ b/src/lxc/utils.c
+@@ -90,7 +90,7 @@ extern bool btrfs_try_remove_subvol(const char *path);
+ static int _recursive_rmdir(char *dirname, dev_t pdev,
+ const char *exclude, int level, bool onedev)
+ {
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ DIR *dir;
+ int ret, failed=0;
+ char pathname[MAXPATHLEN];
+@@ -102,7 +102,7 @@ static int _recursive_rmdir(char *dirname, dev_t pdev,
+ return -1;
+ }
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
++ while ((direntp = readdir(dir))) {
+ struct stat mystat;
+ int rc;
+
- [SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (4b1c6b8d3ad90c402e6a00ea649fead09eb4be58), Pavel Vinogradov, 08/12/2016
Archive powered by MHonArc 2.6.24.