[meta-virtualization] [meta-cloud-services][PATCH] glusterfs: uprev from v3.11.1 to v5.4

Bruce Ashfield bruce.ashfield at gmail.com
Sat Mar 16 17:22:41 PDT 2019


merged

Bruce

On Thu, Mar 14, 2019 at 6:16 AM Hongzhi.Song <hongzhi.song at windriver.com> wrote:
>
> The latest stable release  covers some CVEs and new features.
>
> Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
> ---
>  ...-negative-key-value-length-while-unserial.patch |  39 --
>  ...age-Prevent-mounting-shared-storage-from-.patch |  70 ----
>  ...-disable-open-read-write-on-special-files.patch |  93 -----
>  ...auth-add-option-for-strict-authentication.patch | 280 ---------------
>  ...ccess-trusted-peer-group-via-remote-host-.patch |  43 ---
>  ...erver-protocol-don-t-allow-.-path-in-name.patch |  73 ----
>  ...ats-dump-io-stats-info-in-var-run-gluster.patch | 153 --------
>  ...osix-remove-not-supported-get-set-content.patch | 297 ---------------
>  .../files/0007-protocol-don-t-use-alloca.patch     | 400 ---------------------
>  ...c-allow-PYTHON-values-to-be-passed-via-en.patch |  81 ++---
>  .../dependence-on-correct-header-file-path.patch   |  18 +-
>  .../files/glusterd-change-port-range.patch         |  19 +-
>  ...fs-api-remove-unnecessary-library-options.patch |  17 +-
>  .../glusterfs-change-default-nfs-port-number.patch |  18 +-
>  .../libglusterfs-Don-t-link-against-libfl.patch    |  29 +-
>  ...python-work-around-host-and-target-python.patch |  56 +--
>  .../files/xlator-host-contamination-3.4.patch      |  61 ----
>  .../files/xlator-host-contamination-5.4.patch      |  65 ++++
>  recipes-extended/glusterfs/glusterfs.inc           |  24 +-
>  recipes-extended/glusterfs/glusterfs_3.11.1.bb     |   6 -
>  recipes-extended/glusterfs/glusterfs_5.4.bb        |   6 +
>  21 files changed, 195 insertions(+), 1653 deletions(-)
>  delete mode 100644 recipes-extended/glusterfs/files/0001-dict-handle-negative-key-value-length-while-unserial.patch
>  delete mode 100644 recipes-extended/glusterfs/files/0001-shared-storage-Prevent-mounting-shared-storage-from-.patch
>  delete mode 100644 recipes-extended/glusterfs/files/0002-posix-disable-open-read-write-on-special-files.patch
>  delete mode 100644 recipes-extended/glusterfs/files/0002-server-auth-add-option-for-strict-authentication.patch
>  delete mode 100644 recipes-extended/glusterfs/files/0003-glusterfs-access-trusted-peer-group-via-remote-host-.patch
>  delete mode 100644 recipes-extended/glusterfs/files/0003-server-protocol-don-t-allow-.-path-in-name.patch
>  delete mode 100644 recipes-extended/glusterfs/files/0004-io-stats-dump-io-stats-info-in-var-run-gluster.patch
>  delete mode 100644 recipes-extended/glusterfs/files/0006-posix-remove-not-supported-get-set-content.patch
>  delete mode 100644 recipes-extended/glusterfs/files/0007-protocol-don-t-use-alloca.patch
>  delete mode 100644 recipes-extended/glusterfs/files/xlator-host-contamination-3.4.patch
>  create mode 100644 recipes-extended/glusterfs/files/xlator-host-contamination-5.4.patch
>  delete mode 100644 recipes-extended/glusterfs/glusterfs_3.11.1.bb
>  create mode 100644 recipes-extended/glusterfs/glusterfs_5.4.bb
>
> diff --git a/recipes-extended/glusterfs/files/0001-dict-handle-negative-key-value-length-while-unserial.patch b/recipes-extended/glusterfs/files/0001-dict-handle-negative-key-value-length-while-unserial.patch
> deleted file mode 100644
> index cb3400b..0000000
> --- a/recipes-extended/glusterfs/files/0001-dict-handle-negative-key-value-length-while-unserial.patch
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -From 428ee988df7d6cbe6e18becffcee5cdfb0fa9d17 Mon Sep 17 00:00:00 2001
> -From: Amar Tumballi <amarts at redhat.com>
> -Date: Tue, 24 Jul 2018 13:25:12 +0530
> -Subject: [PATCH 1/7] dict: handle negative key/value length while unserialize
> -
> -Fixes: bz#1625089
> -Change-Id: Ie56df0da46c242846a1ba51ccb9e011af118b119
> -Signed-off-by: Amar Tumballi <amarts at redhat.com>
> -
> -Upstream-Status: Backport
> -
> -Fix CVE-2018-10911
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ----
> - libglusterfs/src/dict.c | 7 +++++++
> - 1 file changed, 7 insertions(+)
> -
> -diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c
> -index 839b426..ac0a677 100644
> ---- a/libglusterfs/src/dict.c
> -+++ b/libglusterfs/src/dict.c
> -@@ -2751,6 +2751,13 @@ dict_unserialize (char *orig_buf, int32_t size, dict_t **fill)
> -                 vallen = ntoh32 (hostord);
> -                 buf += DICT_DATA_HDR_VAL_LEN;
> -
> -+                if ((keylen < 0) || (vallen < 0)) {
> -+                        gf_msg_callingfn ("dict", GF_LOG_ERROR, 0,
> -+                                          LG_MSG_UNDERSIZED_BUF,
> -+                                          "undersized length passed "
> -+                                          "key:%d val:%d", keylen, vallen);
> -+                        goto out;
> -+                }
> -                 if ((buf + keylen) > (orig_buf + size)) {
> -                         gf_msg_callingfn ("dict", GF_LOG_ERROR, 0,
> -                                           LG_MSG_UNDERSIZED_BUF,
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/0001-shared-storage-Prevent-mounting-shared-storage-from-.patch b/recipes-extended/glusterfs/files/0001-shared-storage-Prevent-mounting-shared-storage-from-.patch
> deleted file mode 100644
> index 0e24c56..0000000
> --- a/recipes-extended/glusterfs/files/0001-shared-storage-Prevent-mounting-shared-storage-from-.patch
> +++ /dev/null
> @@ -1,70 +0,0 @@
> -From d1936056d77abcfda14386235a88ed553341a429 Mon Sep 17 00:00:00 2001
> -From: Mohammed Rafi KC <rkavunga at redhat.com>
> -Date: Mon, 26 Mar 2018 20:27:34 +0530
> -Subject: [PATCH 1/3] shared storage: Prevent mounting shared storage from
> - non-trusted client
> -
> -gluster shared storage is a volume used for internal storage for
> -various features including ganesha, geo-rep, snapshot.
> -
> -So this volume should not be exposed to the client, as it is
> -a special volume for internal use.
> -
> -This fix wont't generate non trusted volfile for shared storage volume.
> -
> -Change-Id: I8ffe30ae99ec05196d75466210b84db311611a4c
> -fixes: bz#1568844
> -BUG: 1568844
> -Signed-off-by: Mohammed Rafi KC <rkavunga at redhat.com>
> -
> -Upstream-Status: Backport
> -Fix CVE-2018-1088
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> -
> ----
> - xlators/mgmt/glusterd/src/glusterd-volgen.c | 21 +++++++++++++++++++++
> - 1 file changed, 21 insertions(+)
> -
> -diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
> -index 0a0668e..308c41f 100644
> ---- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
> -+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
> -@@ -5721,6 +5721,7 @@ generate_client_volfiles (glusterd_volinfo_t *volinfo,
> -         int                i                  = 0;
> -         int                ret                = -1;
> -         char               filepath[PATH_MAX] = {0,};
> -+        char               *volname           = NULL;
> -         char               *types[]           = {NULL, NULL, NULL};
> -         dict_t             *dict              = NULL;
> -         xlator_t           *this              = NULL;
> -@@ -5728,6 +5729,26 @@ generate_client_volfiles (glusterd_volinfo_t *volinfo,
> -
> -         this = THIS;
> -
> -+        volname = volinfo->is_snap_volume ?
> -+                  volinfo->parent_volname : volinfo->volname;
> -+
> -+
> -+        if (volname && !strcmp (volname, GLUSTER_SHARED_STORAGE) &&
> -+             client_type != GF_CLIENT_TRUSTED) {
> -+                /*
> -+                 * shared storage volume cannot be mounted from non trusted
> -+                 * nodes. So we are not creating volfiles for non-trusted
> -+                 * clients for shared volumes as well as snapshot of shared
> -+                 * volumes.
> -+                 */
> -+
> -+                ret = 0;
> -+                gf_msg_debug ("glusterd", 0, "Skipping the non-trusted volfile"
> -+                               "creation for shared storage volume. Volume %s",
> -+                               volname);
> -+                goto out;
> -+        }
> -+
> -         enumerate_transport_reqs (volinfo->transport_type, types);
> -         dict = dict_new ();
> -         if (!dict)
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/0002-posix-disable-open-read-write-on-special-files.patch b/recipes-extended/glusterfs/files/0002-posix-disable-open-read-write-on-special-files.patch
> deleted file mode 100644
> index 06cd06c..0000000
> --- a/recipes-extended/glusterfs/files/0002-posix-disable-open-read-write-on-special-files.patch
> +++ /dev/null
> @@ -1,93 +0,0 @@
> -From 08dc006aac79ee1d1f6a5b7044fc973df7f00ed6 Mon Sep 17 00:00:00 2001
> -From: Chen Qi <Qi.Chen at windriver.com>
> -Date: Tue, 25 Sep 2018 14:02:01 +0800
> -Subject: [PATCH 2/7] posix: disable open/read/write on special files
> -
> -In the file system, the responsibility w.r.to the block and char device
> -files is related to only support for 'creating' them (using mknod(2)).
> -
> -Once the device files are created, the read/write syscalls for the specific
> -devices are handled by the device driver registered for the specific major
> -number, and depending on the minor number, it knows where to read from.
> -Hence, we are at risk of reading contents from devices which are handled
> -by the host kernel on server nodes.
> -
> -By disabling open/read/write on the device file, we would be safe with
> -the bypass one can achieve from client side (using gfapi)
> -
> -Fixes: bz#1625096
> -
> -Change-Id: I48c776b0af1cbd2a5240862826d3d8918601e47f
> -Signed-off-by: Amar Tumballi <amarts at redhat.com>
> -
> -Upstream-Status: Backport
> -
> -Fix CVE-2018-10923
> -Modified to suite the old version of glusterfs.
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ----
> - xlators/storage/posix/src/posix.c | 33 +++++++++++++++++++++++++++++++++
> - 1 file changed, 33 insertions(+)
> -
> -diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c
> -index b1a529b..506ae91 100644
> ---- a/xlators/storage/posix/src/posix.c
> -+++ b/xlators/storage/posix/src/posix.c
> -@@ -3091,6 +3091,17 @@ posix_open (call_frame_t *frame, xlator_t *this,
> -         priv = this->private;
> -         VALIDATE_OR_GOTO (priv, out);
> -
> -+        if (loc->inode &&
> -+            ((loc->inode->ia_type == IA_IFBLK) ||
> -+             (loc->inode->ia_type == IA_IFCHR))) {
> -+                gf_msg (this->name, GF_LOG_ERROR, EINVAL,
> -+                        P_MSG_INVALID_ARGUMENT,
> -+                        "open received on a block/char file (%s)",
> -+                        uuid_utoa (loc->inode->gfid));
> -+                op_errno = EINVAL;
> -+                goto out;
> -+        }
> -+
> -         MAKE_INODE_HANDLE (real_path, this, loc, &stbuf);
> -         if (!real_path) {
> -                 op_ret = -1;
> -@@ -3180,6 +3191,17 @@ posix_readv (call_frame_t *frame, xlator_t *this,
> -         priv = this->private;
> -         VALIDATE_OR_GOTO (priv, out);
> -
> -+        if (fd->inode &&
> -+            ((fd->inode->ia_type == IA_IFBLK) ||
> -+             (fd->inode->ia_type == IA_IFCHR))) {
> -+                gf_msg (this->name, GF_LOG_ERROR, EINVAL,
> -+                        P_MSG_INVALID_ARGUMENT,
> -+                        "readv received on a block/char file (%s)",
> -+                        uuid_utoa (fd->inode->gfid));
> -+                op_errno = EINVAL;
> -+                goto out;
> -+        }
> -+
> -         ret = posix_fd_ctx_get (fd, this, &pfd, &op_errno);
> -         if (ret < 0) {
> -                 gf_msg (this->name, GF_LOG_WARNING, op_errno, P_MSG_PFD_NULL,
> -@@ -3415,6 +3437,17 @@ posix_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,
> -
> -         VALIDATE_OR_GOTO (priv, out);
> -
> -+        if (fd->inode &&
> -+            ((fd->inode->ia_type == IA_IFBLK) ||
> -+             (fd->inode->ia_type == IA_IFCHR))) {
> -+                gf_msg (this->name, GF_LOG_ERROR, EINVAL,
> -+                        P_MSG_INVALID_ARGUMENT,
> -+                        "writev received on a block/char file (%s)",
> -+                        uuid_utoa (fd->inode->gfid));
> -+                op_errno = EINVAL;
> -+                goto out;
> -+        }
> -+
> -         ret = posix_fd_ctx_get (fd, this, &pfd, &op_errno);
> -         if (ret < 0) {
> -                 gf_msg (this->name, GF_LOG_WARNING, ret, P_MSG_PFD_NULL,
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/0002-server-auth-add-option-for-strict-authentication.patch b/recipes-extended/glusterfs/files/0002-server-auth-add-option-for-strict-authentication.patch
> deleted file mode 100644
> index 8947f27..0000000
> --- a/recipes-extended/glusterfs/files/0002-server-auth-add-option-for-strict-authentication.patch
> +++ /dev/null
> @@ -1,280 +0,0 @@
> -From a74ab3ab169add1e86aae0a99855211b948be021 Mon Sep 17 00:00:00 2001
> -From: Mohammed Rafi KC <rkavunga at redhat.com>
> -Date: Mon, 2 Apr 2018 12:20:47 +0530
> -Subject: [PATCH 2/3] server/auth: add option for strict authentication
> -
> -When this option is enabled, we will check for a matching
> -username and password, if not found then the connection will
> -be rejected. This also does a checksum validation of volfile
> -
> -The option is invalid when SSL/TLS is in use, at which point
> -the SSL/TLS certificate user name is used to validate and
> -hence authorize the right user. This expects TLS allow rules
> -to be setup correctly rather than the default *.
> -
> -This option is not settable, as a result this cannot be enabled
> -for volumes using the CLI. This is used with the shared storage
> -volume, to restrict access to the same in non-SSL/TLS environments
> -to the gluster peers only.
> -
> -Tested:
> -  ./tests/bugs/protocol/bug-1321578.t
> -  ./tests/features/ssl-authz.t
> -  - Ran tests on volumes with and without strict auth
> -    checking (as brick vol file needed to be edited to test,
> -    or rather to enable the option)
> -  - Ran tests on volumes to ensure existing mounts are
> -    disconnected when we enable strict checking
> -
> -Change-Id: I2ac4f0cfa5b59cc789cc5a265358389b04556b59
> -fixes: bz#1568844
> -Signed-off-by: Mohammed Rafi KC <rkavunga at redhat.com>
> -Signed-off-by: ShyamsundarR <srangana at redhat.com>
> -
> -Upstream-Status: Backport
> -Fix CVE-2018-1088
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> -
> ----
> - xlators/mgmt/glusterd/src/glusterd-volgen.c    | 16 +++++++-
> - xlators/protocol/auth/login/src/login.c        | 51 ++++++++++++++++++++++----
> - xlators/protocol/server/src/authenticate.h     |  4 +-
> - xlators/protocol/server/src/server-handshake.c |  2 +-
> - xlators/protocol/server/src/server.c           | 18 +++++++++
> - xlators/protocol/server/src/server.h           |  2 +
> - 6 files changed, 81 insertions(+), 12 deletions(-)
> -
> -diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
> -index 308c41f..8dd4907 100644
> ---- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
> -+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
> -@@ -2250,6 +2250,7 @@ brick_graph_add_server (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
> -         char            *password = NULL;
> -         char            key[1024] = {0};
> -         char            *ssl_user = NULL;
> -+        char            *volname = NULL;
> -         char            *address_family_data = NULL;
> -
> -         if (!graph || !volinfo || !set_dict || !brickinfo)
> -@@ -2325,6 +2326,19 @@ brick_graph_add_server (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
> -         if (ret)
> -                 return -1;
> -
> -+        volname = volinfo->is_snap_volume ?
> -+                  volinfo->parent_volname : volinfo->volname;
> -+
> -+
> -+        if (volname && !strcmp (volname, GLUSTER_SHARED_STORAGE)) {
> -+                memset (key, 0, sizeof (key));
> -+                snprintf (key, sizeof (key), "strict-auth-accept");
> -+
> -+                ret = xlator_set_option (xl, key, "true");
> -+                if (ret)
> -+                        return -1;
> -+        }
> -+
> -         if (dict_get_str (volinfo->dict, "auth.ssl-allow", &ssl_user) == 0) {
> -                 memset (key, 0, sizeof (key));
> -                 snprintf (key, sizeof (key), "auth.login.%s.ssl-allow",
> -@@ -5734,7 +5748,7 @@ generate_client_volfiles (glusterd_volinfo_t *volinfo,
> -
> -
> -         if (volname && !strcmp (volname, GLUSTER_SHARED_STORAGE) &&
> --             client_type != GF_CLIENT_TRUSTED) {
> -+            client_type != GF_CLIENT_TRUSTED) {
> -                 /*
> -                  * shared storage volume cannot be mounted from non trusted
> -                  * nodes. So we are not creating volfiles for non-trusted
> -diff --git a/xlators/protocol/auth/login/src/login.c b/xlators/protocol/auth/login/src/login.c
> -index e799dd2..da10d0b 100644
> ---- a/xlators/protocol/auth/login/src/login.c
> -+++ b/xlators/protocol/auth/login/src/login.c
> -@@ -11,6 +11,16 @@
> - #include <fnmatch.h>
> - #include "authenticate.h"
> -
> -+/* Note on strict_auth
> -+ * - Strict auth kicks in when authentication is using the username, password
> -+ *   in the volfile to login
> -+ * - If enabled, auth is rejected if the username and password is not matched
> -+ *   or is not present
> -+ * - When using SSL names, this is automatically strict, and allows only those
> -+ *   names that are present in the allow list, IOW strict auth checking has no
> -+ *   implication when using SSL names
> -+*/
> -+
> - auth_result_t gf_auth (dict_t *input_params, dict_t *config_params)
> - {
> -         auth_result_t  result  = AUTH_DONT_CARE;
> -@@ -27,6 +37,7 @@ auth_result_t gf_auth (dict_t *input_params, dict_t *config_params)
> -         char            *tmp            = NULL;
> -         char            *username_cpy   = NULL;
> -         gf_boolean_t    using_ssl       = _gf_false;
> -+        gf_boolean_t    strict_auth     = _gf_false;
> -
> -         username_data = dict_get (input_params, "ssl-name");
> -         if (username_data) {
> -@@ -35,16 +46,39 @@ auth_result_t gf_auth (dict_t *input_params, dict_t *config_params)
> -                 using_ssl = _gf_true;
> -         }
> -         else {
> -+                ret = dict_get_str_boolean (config_params, "strict-auth-accept",
> -+                                            _gf_false);
> -+                if (ret == -1)
> -+                        strict_auth = _gf_false;
> -+                else
> -+                        strict_auth = ret;
> -+
> -                 username_data = dict_get (input_params, "username");
> -                 if (!username_data) {
> --                        gf_log ("auth/login", GF_LOG_DEBUG,
> --                                "username not found, returning DONT-CARE");
> -+                        if (strict_auth) {
> -+                                gf_log ("auth/login", GF_LOG_DEBUG,
> -+                                        "username not found, strict auth"
> -+                                        " configured returning REJECT");
> -+                                result = AUTH_REJECT;
> -+                        } else {
> -+                                gf_log ("auth/login", GF_LOG_DEBUG,
> -+                                        "username not found, returning"
> -+                                        " DONT-CARE");
> -+                        }
> -                         goto out;
> -                 }
> -                 password_data = dict_get (input_params, "password");
> -                 if (!password_data) {
> --                        gf_log ("auth/login", GF_LOG_WARNING,
> --                                "password not found, returning DONT-CARE");
> -+                        if (strict_auth) {
> -+                                gf_log ("auth/login", GF_LOG_DEBUG,
> -+                                        "password not found, strict auth"
> -+                                        " configured returning REJECT");
> -+                                result = AUTH_REJECT;
> -+                        } else {
> -+                                gf_log ("auth/login", GF_LOG_WARNING,
> -+                                        "password not found, returning"
> -+                                        " DONT-CARE");
> -+                        }
> -                         goto out;
> -                 }
> -                 password = data_to_str (password_data);
> -@@ -62,9 +96,10 @@ auth_result_t gf_auth (dict_t *input_params, dict_t *config_params)
> -         ret = gf_asprintf (&searchstr, "auth.login.%s.%s", brick_name,
> -                            using_ssl ? "ssl-allow" : "allow");
> -         if (-1 == ret) {
> --                gf_log ("auth/login", GF_LOG_WARNING,
> -+                gf_log ("auth/login", GF_LOG_ERROR,
> -                         "asprintf failed while setting search string, "
> --                        "returning DONT-CARE");
> -+                        "returning REJECT");
> -+                result = AUTH_REJECT;
> -                 goto out;
> -         }
> -
> -@@ -92,8 +127,10 @@ auth_result_t gf_auth (dict_t *input_params, dict_t *config_params)
> -                  * ssl-allow=* case as well) authorization is effectively
> -                  * disabled, though authentication and encryption are still
> -                  * active.
> -+                 *
> -+                 * Read NOTE on strict_auth above.
> -                  */
> --                if (using_ssl) {
> -+                if (using_ssl || strict_auth) {
> -                         result = AUTH_REJECT;
> -                 }
> -                 username_cpy = gf_strdup (allow_user->data);
> -diff --git a/xlators/protocol/server/src/authenticate.h b/xlators/protocol/server/src/authenticate.h
> -index 3f80231..5f92183 100644
> ---- a/xlators/protocol/server/src/authenticate.h
> -+++ b/xlators/protocol/server/src/authenticate.h
> -@@ -37,10 +37,8 @@ typedef struct {
> -         volume_opt_list_t *vol_opt;
> - } auth_handle_t;
> -
> --auth_result_t gf_authenticate (dict_t *input_params,
> --                               dict_t *config_params,
> --                               dict_t *auth_modules);
> - int32_t gf_auth_init (xlator_t *xl, dict_t *auth_modules);
> - void gf_auth_fini (dict_t *auth_modules);
> -+auth_result_t gf_authenticate (dict_t *, dict_t *, dict_t *);
> -
> - #endif /* _AUTHENTICATE_H */
> -diff --git a/xlators/protocol/server/src/server-handshake.c b/xlators/protocol/server/src/server-handshake.c
> -index f00804a..392a101 100644
> ---- a/xlators/protocol/server/src/server-handshake.c
> -+++ b/xlators/protocol/server/src/server-handshake.c
> -@@ -631,7 +631,7 @@ server_setvolume (rpcsvc_request_t *req)
> -                         ret = dict_get_str (params, "volfile-key",
> -                                             &volfile_key);
> -                         if (ret)
> --                                gf_msg_debug (this->name, 0, "failed to set "
> -+                                gf_msg_debug (this->name, 0, "failed to get "
> -                                               "'volfile-key'");
> -
> -                         ret = _validate_volfile_checksum (this, volfile_key,
> -diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
> -index 202fe71..61c6194 100644
> ---- a/xlators/protocol/server/src/server.c
> -+++ b/xlators/protocol/server/src/server.c
> -@@ -883,6 +883,10 @@ do_rpc:
> -                 goto out;
> -         }
> -
> -+        GF_OPTION_RECONF ("strict-auth-accept", conf->strict_auth_enabled,
> -+                          options, bool, out);
> -+
> -+
> -         GF_OPTION_RECONF ("dynamic-auth", conf->dync_auth, options,
> -                         bool, out);
> -
> -@@ -1113,6 +1117,14 @@ init (xlator_t *this)
> -                         "Failed to initialize group cache.");
> -                 goto out;
> -         }
> -+
> -+        ret = dict_get_str_boolean (this->options, "strict-auth-accept",
> -+                                    _gf_false);
> -+        if (ret == -1)
> -+                conf->strict_auth_enabled = _gf_false;
> -+        else
> -+                conf->strict_auth_enabled = ret;
> -+
> -         ret = dict_get_str_boolean (this->options, "dynamic-auth",
> -                         _gf_true);
> -         if (ret == -1)
> -@@ -1667,5 +1679,11 @@ struct volume_options options[] = {
> -                            "transport connection immediately in response to "
> -                            "*.allow | *.reject volume set options."
> -         },
> -+        { .key   = {"strict-auth-accept"},
> -+          .type  = GF_OPTION_TYPE_BOOL,
> -+          .default_value = "off",
> -+          .description   = "strict-auth-accept reject connection with out"
> -+                           "a valid username and password."
> -+        },
> -         { .key   = {NULL} },
> - };
> -diff --git a/xlators/protocol/server/src/server.h b/xlators/protocol/server/src/server.h
> -index 0b37eb1..7eea291 100644
> ---- a/xlators/protocol/server/src/server.h
> -+++ b/xlators/protocol/server/src/server.h
> -@@ -24,6 +24,7 @@
> - #include "client_t.h"
> - #include "gidcache.h"
> - #include "defaults.h"
> -+#include "authenticate.h"
> -
> - #define DEFAULT_BLOCK_SIZE         4194304   /* 4MB */
> - #define DEFAULT_VOLUME_FILE_PATH   CONFDIR "/glusterfs.vol"
> -@@ -105,6 +106,7 @@ struct server_conf {
> -                                            * false, when child is down */
> -
> -         gf_lock_t               itable_lock;
> -+        gf_boolean_t            strict_auth_enabled;
> - };
> - typedef struct server_conf server_conf_t;
> -
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/0003-glusterfs-access-trusted-peer-group-via-remote-host-.patch b/recipes-extended/glusterfs/files/0003-glusterfs-access-trusted-peer-group-via-remote-host-.patch
> deleted file mode 100644
> index dcbb435..0000000
> --- a/recipes-extended/glusterfs/files/0003-glusterfs-access-trusted-peer-group-via-remote-host-.patch
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -From e79741414777c25e5c2a08e6c31619a0fbaad058 Mon Sep 17 00:00:00 2001
> -From: Mohit Agrawal <moagrawa at redhat.com>
> -Date: Wed, 20 Jun 2018 16:13:00 +0530
> -Subject: [PATCH 3/3] glusterfs: access trusted peer group via remote-host
> - command
> -
> -Problem: In SSL environment the user is able to access volume
> -         via remote-host command without adding node in a trusted pool
> -
> -Solution: Change the list of rpc program in glusterd.c at the
> -          time of initialization while SSL is enabled
> -
> -BUG: 1593232
> -Change-Id: I987e433b639e68ad17b77b6452df1e22dbe0f199
> -fixes: bz#1593232
> -Signed-off-by: Mohit Agrawal <moagrawa at redhat.com>
> -
> -Upstream-Status: Backport
> -Fix CVE-2018-10841
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ----
> - xlators/mgmt/glusterd/src/glusterd.c | 5 -----
> - 1 file changed, 5 deletions(-)
> -
> -diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c
> -index ef20689..5e0ed8d 100644
> ---- a/xlators/mgmt/glusterd/src/glusterd.c
> -+++ b/xlators/mgmt/glusterd/src/glusterd.c
> -@@ -1646,11 +1646,6 @@ init (xlator_t *this)
> -                         goto out;
> -                 }
> -                 /*
> --                 * With strong authentication, we can afford to allow
> --                 * privileged operations over TCP.
> --                 */
> --                gd_inet_programs[1] = &gd_svc_cli_prog;
> --                /*
> -                  * This is the only place where we want secure_srvr to reflect
> -                  * the management-plane setting.
> -                  */
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/0003-server-protocol-don-t-allow-.-path-in-name.patch b/recipes-extended/glusterfs/files/0003-server-protocol-don-t-allow-.-path-in-name.patch
> deleted file mode 100644
> index e6ef9e3..0000000
> --- a/recipes-extended/glusterfs/files/0003-server-protocol-don-t-allow-.-path-in-name.patch
> +++ /dev/null
> @@ -1,73 +0,0 @@
> -From b89658672d137ef56bd0694457b9125bf7d45ba4 Mon Sep 17 00:00:00 2001
> -From: Amar Tumballi <amarts at redhat.com>
> -Date: Thu, 9 Aug 2018 13:00:01 +0530
> -Subject: [PATCH 3/7] server-protocol: don't allow '../' path in 'name'
> -
> -This will prevent any arbitrary file creation through glusterfs
> -by modifying the client bits.
> -
> -Also check for the similar flaw inside posix too, so we prevent any
> -changes in layers in-between.
> -
> -Fixes: bz#1625095
> -
> -Signed-off-by: Amar Tumballi <amarts at redhat.com>
> -Change-Id: Id9fe0ef6e86459e8ed85ab947d977f058c5ae06e
> -
> -Upstream-Status: Backport
> -
> -Fix CVE-2018-10926
> -Fix CVE-2018-10927
> -Fix CVE-2018-10928
> -Fix CVE-2018-10929
> -Fix CVE-2018-10930
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ----
> - xlators/protocol/server/src/server-resolve.c | 12 ++++++++++++
> - xlators/storage/posix/src/posix-handle.h     |  6 ++++++
> - 2 files changed, 18 insertions(+)
> -
> -diff --git a/xlators/protocol/server/src/server-resolve.c b/xlators/protocol/server/src/server-resolve.c
> -index d0126aa..aa35685 100644
> ---- a/xlators/protocol/server/src/server-resolve.c
> -+++ b/xlators/protocol/server/src/server-resolve.c
> -@@ -294,6 +294,18 @@ resolve_entry_simple (call_frame_t *frame)
> -         /* expected @parent was found from the inode cache */
> -         gf_uuid_copy (state->loc_now->pargfid, resolve->pargfid);
> -         state->loc_now->parent = inode_ref (parent);
> -+
> -+        if (strstr (resolve->bname, "../")) {
> -+                /* Resolving outside the parent's tree is not allowed */
> -+                gf_msg (this->name, GF_LOG_ERROR, EPERM,
> -+                        PS_MSG_GFID_RESOLVE_FAILED,
> -+                        "%s: path sent by client not allowed",
> -+                        resolve->bname);
> -+                resolve->op_ret   = -1;
> -+                resolve->op_errno = EPERM;
> -+                ret = 1;
> -+                goto out;
> -+        }
> -         state->loc_now->name = resolve->bname;
> -
> -         inode = inode_grep (state->itable, parent, resolve->bname);
> -diff --git a/xlators/storage/posix/src/posix-handle.h b/xlators/storage/posix/src/posix-handle.h
> -index 9af6a7a..6e7a8d2 100644
> ---- a/xlators/storage/posix/src/posix-handle.h
> -+++ b/xlators/storage/posix/src/posix-handle.h
> -@@ -217,6 +217,12 @@
> -                 break;                                                  \
> -         }                                                               \
> -                                                                         \
> -+        if (strstr (loc->name, "../")) {                                \
> -+                gf_msg (this->name, GF_LOG_ERROR, 0, P_MSG_ENTRY_HANDLE_CREATE, \
> -+                        "'../' in name not allowed: (%s)", loc->name); \
> -+                op_ret = -1;                                            \
> -+                break;                                                  \
> -+        }                                                               \
> -         if (LOC_HAS_ABSPATH (loc)) {                                    \
> -                 MAKE_REAL_PATH (entp, this, loc->path);                 \
> -                 __parp = strdupa (entp);                                \
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/0004-io-stats-dump-io-stats-info-in-var-run-gluster.patch b/recipes-extended/glusterfs/files/0004-io-stats-dump-io-stats-info-in-var-run-gluster.patch
> deleted file mode 100644
> index 6fb261d..0000000
> --- a/recipes-extended/glusterfs/files/0004-io-stats-dump-io-stats-info-in-var-run-gluster.patch
> +++ /dev/null
> @@ -1,153 +0,0 @@
> -From 0f9c26d5e3a0d0480ff31a800ca8f31966da10ff Mon Sep 17 00:00:00 2001
> -From: Amar Tumballi <amarts at redhat.com>
> -Date: Tue, 24 Jul 2018 15:42:28 +0530
> -Subject: [PATCH 4/7] io-stats: dump io-stats info in /var/run/gluster
> -
> -It wouldn't make sense to allow iostats file to be written in
> -*any* directory. While the formating makes sure we try to append
> -io-stats-name for the file, so overwriting existing file is slim,
> -but in any case it makes sense to restrict dumping to one directory.
> -
> -Below are the sample commands, and files created for the corresponding
> -values:
> -
> - $ setfattr -n trusted.io-stats-dump -v file-for-dump $M0
> -
> -In this case, the file would be in /var/run/gluster/file-for-dump
> -
> - $ setfattr -n trusted.io-stats-dump -v /dir1/dir2/file-for-dump $M0
> -
> -In this case, then the dump file is in /var/run/gluster/dir1-dir2-file-for-dump
> -
> -Note that the value passed for this virtual xattr would be treated as a
> -file, and even if the value has '/' in it, it would be changed to '-'
> -for sanity.
> -
> -Fixes: bz#1625106
> -
> -Change-Id: Id9ae6a40a190b8937c51662e6e1c2a0f6c86a0e0
> -Signed-off-by: Amar Tumballi <amarts at redhat.com>
> -
> -Upstream-Status: Backport
> -
> -Fix CVE-2018-10904
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ----
> - tests/bugs/core/io-stats-1322825.t    | 12 ++++++------
> - xlators/debug/io-stats/src/io-stats.c | 34 +++++++++++++++++++++++++---------
> - 2 files changed, 31 insertions(+), 15 deletions(-)
> -
> -diff --git a/tests/bugs/core/io-stats-1322825.t b/tests/bugs/core/io-stats-1322825.t
> -index d232ecb..53f2d04 100755
> ---- a/tests/bugs/core/io-stats-1322825.t
> -+++ b/tests/bugs/core/io-stats-1322825.t
> -@@ -23,7 +23,7 @@ TEST $CLI volume profile $V0 start
> - TEST mkdir $M0/dir1
> -
> - # Generate the stat dump across the io-stat instances
> --TEST setfattr -n trusted.io-stats-dump -v /tmp/io-stats-1322825 $M0
> -+TEST setfattr -n trusted.io-stats-dump -v io-stats-1322825 $M0
> -
> - # Check if $M0 is clean w.r.t xattr information
> - # TODO: if there are better ways to check we really get no attr error, please
> -@@ -42,12 +42,12 @@ ret=$(echo $?)
> - EXPECT 0 echo $ret
> -
> - # Check if we have 5 io-stat files in /tmp
> --EXPECT 5 ls -1 /tmp/io-stats-1322825*
> -+EXPECT 5 ls -1 /var/run/gluster/io-stats-1322825*
> - # Cleanup the 5 generated files
> --rm -f /tmp/io-stats-1322825*
> -+rm -f /var/run/gluster/io-stats-1322825*
> -
> - # Rinse and repeat above for a directory
> --TEST setfattr -n trusted.io-stats-dump -v /tmp/io-stats-1322825 $M0/dir1
> -+TEST setfattr -n trusted.io-stats-dump -v io-stats-1322825 $M0/dir1
> - getfattr -n trusted.io-stats-dump $B0/${V0}1/dir1 2>&1 | grep -qi "no such attribute"
> - ret=$(echo $?)
> - EXPECT 0 echo $ret
> -@@ -61,7 +61,7 @@ getfattr -n trusted.io-stats-dump $B0/${V0}4/dir1 2>&1 | grep -qi "no such attri
> - ret=$(echo $?)
> - EXPECT 0 echo $ret
> -
> --EXPECT 5 ls -1 /tmp/io-stats-1322825*
> --rm -f /tmp/io-stats-1322825*
> -+EXPECT 5 ls -1 /var/run/gluster/io-stats-1322825*
> -+rm -f /var/run/gluster/io-stats-1322825*
> -
> - cleanup;
> -diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c
> -index d9d1e1d..72fa39c 100644
> ---- a/xlators/debug/io-stats/src/io-stats.c
> -+++ b/xlators/debug/io-stats/src/io-stats.c
> -@@ -45,6 +45,8 @@
> - #define DEFAULT_GRP_BUF_SZ 16384
> - #define IOS_BLOCK_COUNT_SIZE 32
> -
> -+#define IOS_STATS_DUMP_DIR DEFAULT_VAR_RUN_DIRECTORY
> -+
> - typedef enum {
> -         IOS_STATS_TYPE_NONE,
> -         IOS_STATS_TYPE_OPEN,
> -@@ -2999,7 +3001,6 @@ io_stats_fsync (call_frame_t *frame, xlator_t *this,
> -         return 0;
> - }
> -
> --
> - int
> - conditional_dump (dict_t *dict, char *key, data_t *value, void *data)
> - {
> -@@ -3012,9 +3013,10 @@ conditional_dump (dict_t *dict, char *key, data_t *value, void *data)
> -         char                 *filename = NULL;
> -         FILE                 *logfp = NULL;
> -         struct ios_dump_args args = {0};
> --        int                   pid, namelen;
> -+        int                   pid, namelen, dirlen;
> -         char                  dump_key[100];
> -         char                 *slash_ptr = NULL;
> -+        char                 *path_in_value = NULL;
> -
> -         stub  = data;
> -         this  = stub->this;
> -@@ -3023,16 +3025,30 @@ conditional_dump (dict_t *dict, char *key, data_t *value, void *data)
> -         name as well. This helps when there is more than a single io-stats
> -         instance in the graph, or the client and server processes are running
> -         on the same node */
> --        /* hmmm... no check for this */
> --        /* name format: <passed in path/filename>.<xlator name slashes to -> */
> --        namelen = value->len + strlen (this->name) + 2; /* '.' and '\0' */
> -+        /* For the sanity of where the file should be located, we should make
> -+           sure file is written only inside RUNDIR (ie, /var/run/gluster) */
> -+        /* TODO: provide an option to dump it to different directory of
> -+           choice, based on options */
> -+        /* name format: /var/run/gluster/<passed in path/filename>.<xlator name slashes to -> */
> -+
> -+        path_in_value = data_to_str (value);
> -+
> -+        if (strstr (path_in_value, "../")) {
> -+                gf_log (this->name, GF_LOG_ERROR,
> -+                        "%s: no \"../\" allowed in path", path_in_value);
> -+                return -1;
> -+        }
> -+        dirlen = strlen (IOS_STATS_DUMP_DIR);
> -+        namelen = (dirlen + value->len + strlen (this->name) + 3);
> -+        /* +3 for '/', '.' and '\0' added in snprintf below*/
> -+
> -         filename = alloca0 (namelen);
> --        memcpy (filename, data_to_str (value), value->len);
> --        memcpy (filename + value->len, ".", 1);
> --        memcpy (filename + value->len + 1, this->name, strlen(this->name));
> -+
> -+        snprintf (filename, namelen, "%s/%s.%s", IOS_STATS_DUMP_DIR,
> -+                  path_in_value, this->name);
> -
> -         /* convert any slashes to '-' so that fopen works correctly */
> --        slash_ptr = strchr (filename + value->len + 1, '/');
> -+        slash_ptr = strchr (filename + dirlen + 1, '/');
> -         while (slash_ptr) {
> -                 *slash_ptr = '-';
> -                 slash_ptr = strchr (slash_ptr, '/');
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/0006-posix-remove-not-supported-get-set-content.patch b/recipes-extended/glusterfs/files/0006-posix-remove-not-supported-get-set-content.patch
> deleted file mode 100644
> index d35ec48..0000000
> --- a/recipes-extended/glusterfs/files/0006-posix-remove-not-supported-get-set-content.patch
> +++ /dev/null
> @@ -1,297 +0,0 @@
> -From 76ee41dcb37d3c864d9cb70f957034c246de43ab Mon Sep 17 00:00:00 2001
> -From: Chen Qi <Qi.Chen at windriver.com>
> -Date: Tue, 25 Sep 2018 16:31:14 +0800
> -Subject: [PATCH 6/7] posix: remove not supported get/set content
> -
> -getting and setting a file's content using extended
> -attribute worked great as a GET/PUT alternative when
> -an object storage is supported on top of Gluster. But
> -it needs application changes, and also, it skips some
> -caching layers. It is not used over years, and not
> -supported any more. Remove the dead code.
> -
> -Fixes: bz#1625102
> -
> -Change-Id: Ide3b3f1f644f6ca58558bbe45561f346f96b95b7
> -Signed-off-by: Amar Tumballi <amarts at redhat.com>
> -
> -Upstream-Status: Backport
> -
> -Fix CVE-2018-10913
> -Fix CVE-2018-10914
> -
> -Modified to suite this old version.
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ----
> - libglusterfs/src/glusterfs.h              |   6 --
> - xlators/storage/posix/src/posix-helpers.c | 166 +-----------------------------
> - xlators/storage/posix/src/posix.c         |  14 ---
> - xlators/storage/posix/src/posix.h         |   4 -
> - 4 files changed, 1 insertion(+), 189 deletions(-)
> -
> -diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h
> -index 9047373..77cafcb 100644
> ---- a/libglusterfs/src/glusterfs.h
> -+++ b/libglusterfs/src/glusterfs.h
> -@@ -152,9 +152,6 @@
> - #define GLUSTERFS_INTERNAL_FOP_KEY  "glusterfs-internal-fop"
> - #define DHT_CHANGELOG_RENAME_OP_KEY   "changelog.rename-op"
> -
> --#define ZR_FILE_CONTENT_STR     "glusterfs.file."
> --#define ZR_FILE_CONTENT_STRLEN 15
> --
> - #define GLUSTERFS_WRITE_IS_APPEND "glusterfs.write-is-append"
> - #define GLUSTERFS_WRITE_UPDATE_ATOMIC "glusterfs.write-update-atomic"
> - #define GLUSTERFS_OPEN_FD_COUNT "glusterfs.open-fd-count"
> -@@ -220,9 +217,6 @@
> -
> - #define STARTING_EVENT_THREADS                 1
> -
> --#define ZR_FILE_CONTENT_REQUEST(key) (!strncmp(key, ZR_FILE_CONTENT_STR, \
> --                                               ZR_FILE_CONTENT_STRLEN))
> --
> - #define DEFAULT_VAR_RUN_DIRECTORY        DATADIR "/run/gluster"
> - #define DEFAULT_GLUSTERFSD_MISC_DIRETORY DATADIR "/lib/misc/glusterfsd"
> - #ifdef GF_LINUX_HOST_OS
> -diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c
> -index 69f61bf..f849845 100644
> ---- a/xlators/storage/posix/src/posix-helpers.c
> -+++ b/xlators/storage/posix/src/posix-helpers.c
> -@@ -890,166 +890,6 @@ out:
> -         return ret;
> - }
> -
> --
> --int
> --posix_set_file_contents (xlator_t *this, const char *path, char *keyp,
> --                         data_t *value, int flags)
> --{
> --        char *      key                        = NULL;
> --        char        real_path[PATH_MAX];
> --        int32_t     file_fd                    = -1;
> --        int         op_ret                     = 0;
> --        int         ret                        = -1;
> --
> --
> --        /* XXX: does not handle assigning GFID to created files */
> --        return -1;
> --
> --        key = &(keyp[15]);
> --        sprintf (real_path, "%s/%s", path, key);
> --
> --        if (flags & XATTR_REPLACE) {
> --                /* if file exists, replace it
> --                 * else, error out */
> --                file_fd = open (real_path, O_TRUNC|O_WRONLY);
> --
> --                if (file_fd == -1) {
> --                        goto create;
> --                }
> --
> --                if (value->len) {
> --                        ret = sys_write (file_fd, value->data, value->len);
> --                        if (ret == -1) {
> --                                op_ret = -errno;
> --                                gf_msg (this->name, GF_LOG_ERROR, errno,
> --                                        P_MSG_SET_FILE_CONTENTS, "write failed"
> --                                        "while doing setxattr for key %s on"
> --                                        "path%s", key, real_path);
> --                                goto out;
> --                        }
> --
> --                        ret = sys_close (file_fd);
> --                        if (ret == -1) {
> --                                op_ret = -errno;
> --                                gf_msg (this->name, GF_LOG_ERROR, errno,
> --                                        P_MSG_SET_FILE_CONTENTS,
> --                                        "close failed on %s",
> --                                        real_path);
> --                                goto out;
> --                        }
> --                }
> --
> --        create: /* we know file doesn't exist, create it */
> --
> --                file_fd = open (real_path, O_CREAT|O_WRONLY, 0644);
> --
> --                if (file_fd == -1) {
> --                        op_ret = -errno;
> --                        gf_msg (this->name, GF_LOG_ERROR, errno,
> --                                P_MSG_SET_FILE_CONTENTS, "failed to open file"
> --                                "%s with O_CREAT", key);
> --                        goto out;
> --                }
> --
> --                ret = sys_write (file_fd, value->data, value->len);
> --                if (ret == -1) {
> --                        op_ret = -errno;
> --                        gf_msg (this->name, GF_LOG_ERROR, errno,
> --                                P_MSG_SET_FILE_CONTENTS, "write failed on %s"
> --                                "while setxattr with key %s", real_path, key);
> --                        goto out;
> --                }
> --
> --                ret = sys_close (file_fd);
> --                if (ret == -1) {
> --                        op_ret = -errno;
> --                        gf_msg (this->name, GF_LOG_ERROR, errno,
> --                                P_MSG_SET_FILE_CONTENTS, "close failed on"
> --                                " %s while setxattr with key %s",
> --                                real_path, key);
> --                        goto out;
> --                }
> --        }
> --
> --out:
> --        return op_ret;
> --}
> --
> --
> --int
> --posix_get_file_contents (xlator_t *this, uuid_t pargfid,
> --                         const char *name, char **contents)
> --{
> --        char        *real_path                 = NULL;
> --        int32_t     file_fd                    = -1;
> --        struct iatt stbuf                      = {0,};
> --        int         op_ret                     = 0;
> --        int         ret                        = -1;
> --
> --
> --        MAKE_HANDLE_PATH (real_path, this, pargfid, name);
> --        if (!real_path) {
> --                op_ret = -ESTALE;
> --                gf_msg (this->name, GF_LOG_ERROR, ESTALE,
> --                        P_MSG_XDATA_GETXATTR,
> --                        "Failed to create handle path for %s/%s",
> --                        uuid_utoa (pargfid), name);
> --                goto out;
> --        }
> --
> --        op_ret = posix_istat (this, pargfid, name, &stbuf);
> --        if (op_ret == -1) {
> --                op_ret = -errno;
> --                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR,
> --                        "lstat failed on %s", real_path);
> --                goto out;
> --        }
> --
> --        file_fd = open (real_path, O_RDONLY);
> --
> --        if (file_fd == -1) {
> --                op_ret = -errno;
> --                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR,
> --                        "open failed on %s", real_path);
> --                goto out;
> --        }
> --
> --        *contents = GF_CALLOC (stbuf.ia_size + 1, sizeof(char),
> --                               gf_posix_mt_char);
> --        if (! *contents) {
> --                op_ret = -errno;
> --                goto out;
> --        }
> --
> --        ret = sys_read (file_fd, *contents, stbuf.ia_size);
> --        if (ret <= 0) {
> --                op_ret = -1;
> --                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR,
> --                        "read on %s failed", real_path);
> --                goto out;
> --        }
> --
> --        *contents[stbuf.ia_size] = '\0';
> --
> --        op_ret = sys_close (file_fd);
> --        file_fd = -1;
> --        if (op_ret == -1) {
> --                op_ret = -errno;
> --                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR,
> --                        "close on %s failed", real_path);
> --                goto out;
> --        }
> --
> --out:
> --        if (op_ret < 0) {
> --                GF_FREE (*contents);
> --                if (file_fd != -1)
> --                        sys_close (file_fd);
> --        }
> --
> --        return op_ret;
> --}
> --
> - #ifdef HAVE_SYS_ACL_H
> - int
> - posix_pacl_set (const char *path, const char *key, const char *acl_s)
> -@@ -1154,9 +994,6 @@ posix_handle_pair (xlator_t *this, const char *real_path,
> -         if (XATTR_IS_PATHINFO (key)) {
> -                 ret = -EACCES;
> -                 goto out;
> --        } else if (ZR_FILE_CONTENT_REQUEST(key)) {
> --                ret = posix_set_file_contents (this, real_path, key, value,
> --                                               flags);
> -         } else if (GF_POSIX_ACL_REQUEST (key)) {
> -                 if (stbuf && IS_DHT_LINKFILE_MODE (stbuf))
> -                         goto out;
> -@@ -1609,8 +1446,7 @@ _handle_entry_create_keyvalue_pair (dict_t *d, char *k, data_t *v,
> -             !strcmp ("gfid-req", k) ||
> -             !strcmp (POSIX_ACL_DEFAULT_XATTR, k) ||
> -             !strcmp (POSIX_ACL_ACCESS_XATTR, k) ||
> --            posix_xattr_ignorable (k) ||
> --            ZR_FILE_CONTENT_REQUEST(k)) {
> -+            posix_xattr_ignorable (k)) {
> -                 return 0;
> -         }
> -
> -diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c
> -index 506ae91..a69e8f6 100644
> ---- a/xlators/storage/posix/src/posix.c
> -+++ b/xlators/storage/posix/src/posix.c
> -@@ -4427,7 +4427,6 @@ posix_getxattr (call_frame_t *frame, xlator_t *this,
> -         char                 *value                 = NULL;
> -         char                 *real_path             = NULL;
> -         dict_t               *dict                  = NULL;
> --        char                 *file_contents         = NULL;
> -         int                   ret                   = -1;
> -         char                 *path                  = NULL;
> -         char                 *rpath                 = NULL;
> -@@ -4458,19 +4457,6 @@ posix_getxattr (call_frame_t *frame, xlator_t *this,
> -                 goto out;
> -         }
> -
> --        if (loc->inode && IA_ISDIR(loc->inode->ia_type) && name &&
> --            ZR_FILE_CONTENT_REQUEST(name)) {
> --                ret = posix_get_file_contents (this, loc->gfid, &name[15],
> --                                               &file_contents);
> --                if (ret < 0) {
> --                        op_errno = -ret;
> --                        gf_msg (this->name, GF_LOG_ERROR, op_errno,
> --                                P_MSG_FILE_FAILED, "getting file contents"
> --                                "failed");
> --                        goto out;
> --                }
> --        }
> --
> -         dict = dict_new ();
> -         if (!dict) {
> -                 op_errno = ENOMEM;
> -diff --git a/xlators/storage/posix/src/posix.h b/xlators/storage/posix/src/posix.h
> -index febd432..3d2566b 100644
> ---- a/xlators/storage/posix/src/posix.h
> -+++ b/xlators/storage/posix/src/posix.h
> -@@ -250,10 +250,6 @@ int posix_handle_pair (xlator_t *this, const char *real_path, char *key,
> - int posix_fhandle_pair (xlator_t *this, int fd, char *key, data_t *value,
> -                         int flags, struct iatt *stbuf);
> - void posix_spawn_janitor_thread (xlator_t *this);
> --int posix_get_file_contents (xlator_t *this, uuid_t pargfid,
> --                             const char *name, char **contents);
> --int posix_set_file_contents (xlator_t *this, const char *path, char *key,
> --                             data_t *value, int flags);
> - int posix_acl_xattr_set (xlator_t *this, const char *path, dict_t *xattr_req);
> - int posix_gfid_heal (xlator_t *this, const char *path, loc_t *loc, dict_t *xattr_req);
> - int posix_entry_create_xattr_set (xlator_t *this, const char *path,
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/0007-protocol-don-t-use-alloca.patch b/recipes-extended/glusterfs/files/0007-protocol-don-t-use-alloca.patch
> deleted file mode 100644
> index bd45437..0000000
> --- a/recipes-extended/glusterfs/files/0007-protocol-don-t-use-alloca.patch
> +++ /dev/null
> @@ -1,400 +0,0 @@
> -From 7d8d9bd27f245739a6f297e4ecfc87b90c783987 Mon Sep 17 00:00:00 2001
> -From: Chen Qi <Qi.Chen at windriver.com>
> -Date: Wed, 26 Sep 2018 09:47:28 +0800
> -Subject: [PATCH 7/7] protocol: don't use alloca
> -
> -current implementation of alloca can cause issues when strings larger
> -than the allocated buffer is passed to the xdr. Hence it makes sense
> -to allow XDR decode functions to deal with memory allocations, which
> -we can free later.
> -
> -Fixes: bz#1625097
> -
> -Change-Id: I3a05553f5702de9575c244649ca0e5ac9abaac94
> -Signed-off-by: Amar Tumballi <amarts at redhat.com>
> -
> -Upstream-Status: Backport
> -
> -Fix CVE-2018-10907
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ----
> - xlators/protocol/server/src/server-rpc-fops.c | 73 +++++++++++----------------
> - 1 file changed, 30 insertions(+), 43 deletions(-)
> -
> -diff --git a/xlators/protocol/server/src/server-rpc-fops.c b/xlators/protocol/server/src/server-rpc-fops.c
> -index 0ba4ffa..d3a44fc 100644
> ---- a/xlators/protocol/server/src/server-rpc-fops.c
> -+++ b/xlators/protocol/server/src/server-rpc-fops.c
> -@@ -3983,8 +3983,6 @@ server3_3_create (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.bname = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_create_req);
> -         if (ret < 0) {
> -@@ -4034,6 +4032,7 @@ server3_3_create (rpcsvc_request_t *req)
> - out:
> -         /* memory allocated by libc, don't use GF_FREE */
> -         free (args.xdata.xdata_val);
> -+        free (args.bname);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -4693,8 +4692,6 @@ server3_3_unlink (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.bname = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_unlink_req);
> -         if (ret < 0) {
> -@@ -4734,6 +4731,7 @@ server3_3_unlink (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_unlink_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.bname);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -4755,8 +4753,6 @@ server3_3_setxattr (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.dict.dict_val = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_setxattr_req);
> -         if (ret < 0) {
> -@@ -4809,6 +4805,7 @@ server3_3_setxattr (rpcsvc_request_t *req)
> -
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.dict.dict_val);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -4834,7 +4831,6 @@ server3_3_fsetxattr (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.dict.dict_val = alloca (req->msg[0].iov_len);
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_fsetxattr_req);
> -         if (ret < 0) {
> -@@ -4885,6 +4881,7 @@ server3_3_fsetxattr (rpcsvc_request_t *req)
> -
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.dict.dict_val);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -4910,7 +4907,6 @@ server3_3_fxattrop (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.dict.dict_val = alloca (req->msg[0].iov_len);
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_fxattrop_req);
> -         if (ret < 0) {
> -@@ -4961,6 +4957,7 @@ server3_3_fxattrop (rpcsvc_request_t *req)
> -
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.dict.dict_val);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -4986,8 +4983,6 @@ server3_3_xattrop (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.dict.dict_val = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_xattrop_req);
> -         if (ret < 0) {
> -@@ -5037,6 +5032,7 @@ server3_3_xattrop (rpcsvc_request_t *req)
> -
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.dict.dict_val);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -5060,8 +5056,6 @@ server3_3_getxattr (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.name = alloca (256);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_getxattr_req);
> -         if (ret < 0) {
> -@@ -5104,6 +5098,7 @@ server3_3_getxattr (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_getxattr_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.name);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -5124,7 +5119,6 @@ server3_3_fgetxattr (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.name = alloca (256);
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_fgetxattr_req);
> -         if (ret < 0) {
> -@@ -5165,6 +5159,7 @@ server3_3_fgetxattr (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_fgetxattr_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.name);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -5186,8 +5181,6 @@ server3_3_removexattr (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.name = alloca (256);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_removexattr_req);
> -         if (ret < 0) {
> -@@ -5225,6 +5218,7 @@ server3_3_removexattr (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_removexattr_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.name);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -5244,8 +5238,6 @@ server3_3_fremovexattr (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.name = alloca (4096);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_fremovexattr_req);
> -         if (ret < 0) {
> -@@ -5284,6 +5276,7 @@ server3_3_fremovexattr (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_fremovexattr_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.name);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -5561,8 +5554,6 @@ server3_3_mknod (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.bname = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_mknod_req);
> -         if (ret < 0) {
> -@@ -5609,6 +5600,7 @@ out:
> -
> -         /* memory allocated by libc, don't use GF_FREE */
> -         free (args.xdata.xdata_val);
> -+        free (args.bname);
> -
> -         return ret;
> -
> -@@ -5627,8 +5619,6 @@ server3_3_mkdir (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.bname = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_mkdir_req);
> -         if (ret < 0) {
> -@@ -5674,6 +5664,7 @@ out:
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -
> -         free (args.xdata.xdata_val);
> -+        free (args.bname);
> -
> -         return ret;
> - }
> -@@ -5691,8 +5682,6 @@ server3_3_rmdir (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.bname = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_rmdir_req);
> -         if (ret < 0) {
> -@@ -5732,6 +5721,7 @@ server3_3_rmdir (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_rmdir_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.bname);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -5754,8 +5744,6 @@ server3_3_inodelk (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.volume = alloca (256);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_inodelk_req);
> -         if (ret < 0) {
> -@@ -5822,6 +5810,7 @@ server3_3_inodelk (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_inodelk_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.volume);
> -
> -         free (args.flock.lk_owner.lk_owner_val);
> -
> -@@ -5843,7 +5832,6 @@ server3_3_finodelk (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.volume = alloca (256);
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_finodelk_req);
> -         if (ret < 0) {
> -@@ -5911,6 +5899,7 @@ server3_3_finodelk (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_finodelk_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.volume);
> -
> -         free (args.flock.lk_owner.lk_owner_val);
> -
> -@@ -5933,9 +5922,6 @@ server3_3_entrylk (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.volume = alloca (256);
> --        args.name   = alloca (256);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_entrylk_req);
> -         if (ret < 0) {
> -@@ -5979,6 +5965,8 @@ server3_3_entrylk (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_entrylk_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.volume);
> -+        free (args.name);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -5998,9 +5986,6 @@ server3_3_fentrylk (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.name   = alloca (256);
> --        args.volume = alloca (256);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_fentrylk_req);
> -         if (ret < 0) {
> -@@ -6044,6 +6029,8 @@ server3_3_fentrylk (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_fentrylk_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.volume);
> -+        free (args.name);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -6121,9 +6108,6 @@ server3_3_symlink (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.bname    = alloca (req->msg[0].iov_len);
> --        args.linkname = alloca (4096);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_symlink_req);
> -         if (ret < 0) {
> -@@ -6168,6 +6152,8 @@ out:
> -
> -         /* memory allocated by libc, don't use GF_FREE */
> -         free (args.xdata.xdata_val);
> -+        free (args.linkname);
> -+        free (args.bname);
> -
> -         return ret;
> - }
> -@@ -6186,8 +6172,6 @@ server3_3_link (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.newbname = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args, (xdrproc_t)xdr_gfs3_link_req);
> -         if (ret < 0) {
> -                 //failed to decode msg;
> -@@ -6227,6 +6211,7 @@ server3_3_link (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_link_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.newbname);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -6247,9 +6232,6 @@ server3_3_rename (rpcsvc_request_t *req)
> -         if (!req)
> -                 return ret;
> -
> --        args.oldbname = alloca (req->msg[0].iov_len);
> --        args.newbname = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_rename_req);
> -         if (ret < 0) {
> -@@ -6291,6 +6273,8 @@ server3_3_rename (rpcsvc_request_t *req)
> -         resolve_and_resume (frame, server_rename_resume);
> - out:
> -         free (args.xdata.xdata_val);
> -+        free (args.newbname);
> -+        free (args.oldbname);
> -
> -         if (op_errno)
> -                 SERVER_REQ_SET_ERROR (req, ret);
> -@@ -6537,9 +6521,6 @@ server3_3_lookup (rpcsvc_request_t *req)
> -
> -         GF_VALIDATE_OR_GOTO ("server", req, err);
> -
> --        args.bname           = alloca (req->msg[0].iov_len);
> --        args.xdata.xdata_val = alloca (req->msg[0].iov_len);
> --
> -         ret = xdr_to_generic (req->msg[0], &args,
> -                               (xdrproc_t)xdr_gfs3_lookup_req);
> -         if (ret < 0) {
> -@@ -6585,8 +6566,14 @@ server3_3_lookup (rpcsvc_request_t *req)
> -         ret = 0;
> -         resolve_and_resume (frame, server_lookup_resume);
> -
> -+        free (args.bname);
> -+        free (args.xdata.xdata_val);
> -+
> -         return ret;
> - out:
> -+        free (args.bname);
> -+        free (args.xdata.xdata_val);
> -+
> -         server_lookup_cbk (frame, NULL, frame->this, -1, EINVAL, NULL, NULL,
> -                            NULL, NULL);
> -       ret = 0;
> ---
> -2.7.4
> -
> diff --git a/recipes-extended/glusterfs/files/configure.ac-allow-PYTHON-values-to-be-passed-via-en.patch b/recipes-extended/glusterfs/files/configure.ac-allow-PYTHON-values-to-be-passed-via-en.patch
> index e146f7d..4bbcbe9 100644
> --- a/recipes-extended/glusterfs/files/configure.ac-allow-PYTHON-values-to-be-passed-via-en.patch
> +++ b/recipes-extended/glusterfs/files/configure.ac-allow-PYTHON-values-to-be-passed-via-en.patch
> @@ -1,6 +1,6 @@
> -From ff524f14ba93eb422963c8009a108516639d9b3a Mon Sep 17 00:00:00 2001
> -From: Yi Zhao <yi.zhao at windriver.com>
> -Date: Wed, 19 Jul 2017 09:40:57 +0800
> +From f2a1c67e2b3b60ba54f506cf806437924b5242ca Mon Sep 17 00:00:00 2001
> +From: "Hongzhi.Song" <hongzhi.song at windriver.com>
> +Date: Tue, 12 Mar 2019 20:21:48 -0700
>  Subject: [PATCH] configure.ac: allow PYTHON values to be passed via env
>
>  Allow the recipe can specify specific values for PYTHON.
> @@ -8,58 +8,39 @@ Allow the recipe can specify specific values for PYTHON.
>  Upstream-Status: Inappropriate [embedded specific]
>
>  Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
> -
> +[Hongzhi: minor adjust the patch on v5.4]
> +Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
>  ---
> - configure.ac | 26 ++++++++++----------------
> - 1 file changed, 10 insertions(+), 16 deletions(-)
> + configure.ac | 12 ++++++++++--
> + 1 file changed, 10 insertions(+), 2 deletions(-)
>
>  diff --git a/configure.ac b/configure.ac
> -index 8e0652a..f49b9b3 100644
> +index d55a7b2..36b0980 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -546,9 +546,6 @@ fi
> - dnl Check if version matches that we require
> - PYTHONDEV_CPPFLAGS=
> - PYTHONDEV_LDFLAGS=
> --BUILD_PYTHON_SITE_PACKAGES=
> --BUILD_PYTHON_INC=
> --BUILD_PYTHON_LIB=
> - have_python2=no
> - have_Python_h=no
> -
> -@@ -557,25 +554,22 @@ if echo $PYTHON_VERSION | grep -q ^2; then
> -
> -    dnl Use pkg-config to get runtime search patch missing from ${PYTHON}-config
> -    dnl Just do "true" on failure so that configure does not bail out
> --   PKG_CHECK_MODULES([PYTHON], "python-$PYTHON_VERSION",,true)
> -+   PKG_CHECK_MODULES([PYTHONDEV], "python-$PYTHON_VERSION", [AC_SUBST(PYTHONDEV_CPPFLAGS) AC_SUBST(PYTHONDEV_LDFLAGS)], AC_MSG_ERROR([Can not find python]))
> -
> --   PYTHONDEV_CPPFLAGS="`${PYTHON}-config --cflags`"
> --   dnl Edit out the flags that are not required or are conflicting
> --   PYTHONDEV_CPPFLAGS=`echo ${PYTHONDEV_CPPFLAGS} | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[[0-9]]//g'`
> --
> --   dnl Find python libs at user configured libdir and also "lib" under prefix
> --   PYTHONDEV_LDFLAGS="${PYTHON_LIBS} -L`${PYTHON}-config --prefix`/lib -L`${PYTHON}-config --prefix`/$libdir `${PYTHON}-config --ldflags`"
> --
> --   BUILD_PYTHON_SITE_PACKAGES=${pythondir}
> --   BUILD_PYTHON_INC=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_inc())" 2>/dev/null`
> --   BUILD_PYTHON_LIB=python$PYTHON_VERSION
> -+   if test -z "${BUILD_PYTHON_SITE_PACKAGES}"; then
> -+      BUILD_PYTHON_SITE_PACKAGES=${pythondir}
> -+   fi
> -+   if test -z "${BUILD_PYTHON_INC}"; then
> -+      BUILD_PYTHON_INC=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_inc())" 2>/dev/null`
> -+   fi
> -+   if test -z "${BUILD_PYTHON_LIB}"; then
> -+      BUILD_PYTHON_LIB=python$PYTHON_VERSION
> -+   fi
> -
> -    dnl Now check for python header using the include path obtained above
> -    AC_CHECK_HEADERS([${BUILD_PYTHON_INC}/Python.h],[have_Python_h=yes],[])
> +@@ -650,12 +650,20 @@ if test "x${PYTHON_VERSION}" = "x2.6"; then
> +   PYTHON_CFLAGS=$(python-config --includes)
> +   PYTHON_LIBS=$(python-config --libs)
> + else
> +-  PKG_CHECK_MODULES([PYTHON], "python-${PYTHON_VERSION}",,true)
> ++  PKG_CHECK_MODULES([PYTHONDEV], "python-$PYTHON_VERSION", [AC_SUBST(PYTHONDEV_CPPFLAGS) AC_SUBST(PYTHONDEV_LDFLAGS)], AC_MSG_ERROR([Can not find python]))
>   fi
>
> --AC_SUBST(PYTHONDEV_CPPFLAGS)
> --AC_SUBST(PYTHONDEV_LDFLAGS)
> + PYTHON_CFLAGS=$(echo ${PYTHON_CFLAGS} | sed -e 's|-I|-isystem |')
> +
> +-BUILD_PYTHON_SITE_PACKAGES=${pythondir}
> ++if test -z "${BUILD_PYTHON_SITE_PACKAGES}"; then
> ++      BUILD_PYTHON_SITE_PACKAGES=${pythondir}
> ++fi
> ++if test -z "${BUILD_PYTHON_INC}"; then
> ++      BUILD_PYTHON_INC=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_inc())" 2>/dev/null`
> ++fi
> ++if test -z "${BUILD_PYTHON_LIB}"; then
> ++      BUILD_PYTHON_LIB=python$PYTHON_VERSION
> ++fi
>   AC_SUBST(BUILD_PYTHON_SITE_PACKAGES)
> - AC_SUBST(BUILD_PYTHON_INC)
> - AC_SUBST(BUILD_PYTHON_LIB)
> +
> + # Eval two times to expand fully. First eval replaces $exec_prefix into $prefix
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/glusterfs/files/dependence-on-correct-header-file-path.patch b/recipes-extended/glusterfs/files/dependence-on-correct-header-file-path.patch
> index 4096cd5..a4b01c1 100644
> --- a/recipes-extended/glusterfs/files/dependence-on-correct-header-file-path.patch
> +++ b/recipes-extended/glusterfs/files/dependence-on-correct-header-file-path.patch
> @@ -1,6 +1,6 @@
> -From e585cea1d27be3769c33cf1c0a38bf0de41e2bf9 Mon Sep 17 00:00:00 2001
> -From: Xulin Sun <xulin.sun at windriver.com>
> -Date: Tue, 22 Mar 2016 16:05:32 +0800
> +From 204149d9b46ccec3a354ad4cfcc230c1fab93982 Mon Sep 17 00:00:00 2001
> +From: "Hongzhi.Song" <hongzhi.song at windriver.com>
> +Date: Tue, 12 Mar 2019 22:04:12 -0700
>  Subject: [PATCH] dependence on correct header file path
>
>  To avoid the below building error, use the correct header file path.
> @@ -10,21 +10,25 @@ No such file or directory
>  Upstream-Status: Inappropriate [embedded specific]
>
>  Signed-off-by: Xulin Sun <xulin.sun at windriver.com>
> -
> +[Hongzhi:adjust the patch for v5.4]
> +Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
>  ---
>   xlators/features/glupy/src/glupy.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/xlators/features/glupy/src/glupy.c b/xlators/features/glupy/src/glupy.c
> -index bca4764..7c2b271 100644
> +index d1a111e..58cdaf9 100644
>  --- a/xlators/features/glupy/src/glupy.c
>  +++ b/xlators/features/glupy/src/glupy.c
> -@@ -10,7 +10,7 @@
> -
> +@@ -11,7 +11,7 @@
>   #include <ctype.h>
> + #include <dlfcn.h>
>   #include <sys/uio.h>
>  -#include <Python.h>
>  +#include <python2.7/Python.h>
>
>   #include "glusterfs.h"
>   #include "xlator.h"
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/glusterfs/files/glusterd-change-port-range.patch b/recipes-extended/glusterfs/files/glusterd-change-port-range.patch
> index 884a5f0..52b6ffa 100644
> --- a/recipes-extended/glusterfs/files/glusterd-change-port-range.patch
> +++ b/recipes-extended/glusterfs/files/glusterd-change-port-range.patch
> @@ -1,6 +1,6 @@
> -From 0102ca092047f51b936d39af966f19b23548c606 Mon Sep 17 00:00:00 2001
> -From: Vu Tran <vu.tran at windriver.com>
> -Date: Wed, 26 Jul 2017 08:42:09 +0800
> +From a0ed85e0b268dba76d9c820571e1b9217b51e985 Mon Sep 17 00:00:00 2001
> +From: "Hongzhi.Song" <hongzhi.song at windriver.com>
> +Date: Tue, 12 Mar 2019 20:03:21 -0700
>  Subject: [PATCH] glusterd: change port range
>
>  glusterfsd chooses tcp ports within the dynamic
> @@ -22,19 +22,24 @@ Signed-off-by: Vu Tran <vu.tran at windriver.com>
>  Signed-off-by: Xulin Sun <xulin.sun at windriver.com>
>  [Yi: minor adjust to apply the patch on 3.11.1]
>  Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
> -
> +[Hogzhi: minor adjust to apply the patch on v5.4]
> +Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
>  ---
>   extras/glusterd.vol | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/extras/glusterd.vol b/extras/glusterd.vol
> -index d882007..c8dfe91 100644
> +index 88d412c..b89aa56 100644
>  --- a/extras/glusterd.vol
>  +++ b/extras/glusterd.vol
> -@@ -8,5 +8,5 @@ volume management
> -     option ping-timeout 0
> +@@ -9,6 +9,6 @@ volume management
>       option event-threads 1
> + #   option lock-timer 180
>   #   option transport.address-family inet6
>  -#   option base-port 49152
>  +#   option base-port 59152
> + #   option max-port  65535
>   end-volume
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/glusterfs/files/glusterfs-api-remove-unnecessary-library-options.patch b/recipes-extended/glusterfs/files/glusterfs-api-remove-unnecessary-library-options.patch
> index 5b54974..2f140ea 100644
> --- a/recipes-extended/glusterfs/files/glusterfs-api-remove-unnecessary-library-options.patch
> +++ b/recipes-extended/glusterfs/files/glusterfs-api-remove-unnecessary-library-options.patch
> @@ -1,7 +1,7 @@
> -From 61075d7e4459e4cb9168d1c423ac56db240bb463 Mon Sep 17 00:00:00 2001
> -From: Jim Somerville <Jim.Somerville at windriver.com>
> -Date: Wed, 12 Feb 2014 15:41:50 +0000
> -Subject: [PATCH] glusterfs-api remove unnecessary library options
> +From 2ef09531d1d14cd64d5ba4ffbd9a99af10ae1ec4 Mon Sep 17 00:00:00 2001
> +From: "Hongzhi.Song" <hongzhi.song at windriver.com>
> +Date: Tue, 12 Mar 2019 19:37:51 -0700
> +Subject: [PATCH] glusterfs-api: remove unnecessary library options
>
>  These cause QA errors when users of the api such
>  as qemu generate their packages.  The reported
> @@ -11,13 +11,13 @@ Upstream-Status: Inappropriate [embedded specific]
>
>  Signed-off-by: Jim Somerville <Jim.Somerville at windriver.com>
>  Signed-off-by: Xulin Sun <xulin.sun at windriver.com>
> -
> +Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
>  ---
>   glusterfs-api.pc.in | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/glusterfs-api.pc.in b/glusterfs-api.pc.in
> -index 5d23454..8a602f6 100644
> +index 6af4e10..01b9d0f 100644
>  --- a/glusterfs-api.pc.in
>  +++ b/glusterfs-api.pc.in
>  @@ -8,5 +8,5 @@ Description: GlusterFS API
> @@ -26,4 +26,7 @@ index 5d23454..8a602f6 100644
>   Requires: @PKGCONFIG_UUID@
>  -Libs: -L${libdir} @GFAPI_LIBS@ -lgfapi -lglusterfs -lgfrpc -lgfxdr
>  +Libs: -lgfapi -lglusterfs -lgfrpc -lgfxdr
> - Cflags: -I${includedir}/glusterfs -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64 -DUSE_POSIX_ACLS=@USE_POSIX_ACLS@
> + Cflags: -I${includedir} -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64 -DUSE_POSIX_ACLS=@USE_POSIX_ACLS@
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/glusterfs/files/glusterfs-change-default-nfs-port-number.patch b/recipes-extended/glusterfs/files/glusterfs-change-default-nfs-port-number.patch
> index 874f7de..e3453a2 100644
> --- a/recipes-extended/glusterfs/files/glusterfs-change-default-nfs-port-number.patch
> +++ b/recipes-extended/glusterfs/files/glusterfs-change-default-nfs-port-number.patch
> @@ -1,6 +1,6 @@
> -From 9fdaa80b4c933e8f0e97dfde2ba25ed4cea834d5 Mon Sep 17 00:00:00 2001
> -From: Vu Tran <vu.tran at windriver.com>
> -Date: Wed, 26 Jul 2017 08:42:09 +0800
> +From b0c106e74beee36c20f73b956841007209a7f23c Mon Sep 17 00:00:00 2001
> +From: "Hongzhi.Song" <hongzhi.song at windriver.com>
> +Date: Tue, 12 Mar 2019 19:52:03 -0700
>  Subject: [PATCH] glusterfs: change default nfs port number
>
>  Currently both native nfs and glusterfs-nfs use NFS well
> @@ -30,21 +30,25 @@ Signed-off-by: Vu Tran <vu.tran at windriver.com>
>  Signed-off-by: Xulin Sun <xulin.sun at windriver.com>
>  [Yi: minor adjust to apply the patch on 3.11.1]
>  Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
> -
> +[Hongzhi: minor adjust to apply the patch on v5.4]
> +Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
>  ---
>   libglusterfs/src/common-utils.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h
> -index 6bd2417..25a92b0 100644
> +index 6a6fd8c..218e379 100644
>  --- a/libglusterfs/src/common-utils.h
>  +++ b/libglusterfs/src/common-utils.h
> -@@ -94,7 +94,7 @@ void trap (void);
> +@@ -108,7 +108,7 @@ trap(void);
>   /* Defining this here as it is needed by glusterd for setting
>    * nfs port in volume status.
>    */
> --#define GF_NFS3_PORT    2049
> +-#define GF_NFS3_PORT 2049
>  +#define GF_NFS3_PORT    38467
>
>   #define GF_CLIENT_PORT_CEILING 1024
>   #define GF_IANA_PRIV_PORTS_START 49152 /* RFC 6335 */
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/glusterfs/files/libglusterfs-Don-t-link-against-libfl.patch b/recipes-extended/glusterfs/files/libglusterfs-Don-t-link-against-libfl.patch
> index 27b08a8..660446b 100644
> --- a/recipes-extended/glusterfs/files/libglusterfs-Don-t-link-against-libfl.patch
> +++ b/recipes-extended/glusterfs/files/libglusterfs-Don-t-link-against-libfl.patch
> @@ -1,6 +1,6 @@
> -From d4109317c70c86a67464b7deebbe0c3de88773e1 Mon Sep 17 00:00:00 2001
> -From: Xulin Sun <xulin.sun at windriver.com>
> -Date: Fri, 25 Mar 2016 12:33:04 +0800
> +From 732bcca9f5fbb6defca8c327744d015d6747864b Mon Sep 17 00:00:00 2001
> +From: "Hongzhi.Song" <hongzhi.song at windriver.com>
> +Date: Tue, 12 Mar 2019 19:56:59 -0700
>  Subject: [PATCH] libglusterfs: Don't link against libfl
>
>  Remove reference to yywrap by adding "%option noyywrap" statements to
> @@ -11,25 +11,11 @@ undefined references to yylex.
>  Upstream-Status: Inappropriate [embedded specific]
>
>  Signed-off-by: Xulin Sun <xulin.sun at windriver.com>
> -
> +Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
>  ---
> - libglusterfs/src/Makefile.am | 2 +-
> - libglusterfs/src/graph.l     | 1 +
> - 2 files changed, 2 insertions(+), 1 deletion(-)
> + libglusterfs/src/graph.l | 1 +
> + 1 file changed, 1 insertion(+)
>
> -diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am
> -index 52b7316..ab5567a 100644
> ---- a/libglusterfs/src/Makefile.am
> -+++ b/libglusterfs/src/Makefile.am
> -@@ -11,7 +11,7 @@ libglusterfs_la_CPPFLAGS = $(GF_CPPFLAGS) -D__USE_FILE_OFFSET64 \
> -       -I$(CONTRIBDIR)/libexecinfo ${ARGP_STANDALONE_CPPFLAGS} \
> -       -DSBIN_DIR=\"$(sbindir)\" -I$(CONTRIBDIR)/timer-wheel
> -
> --libglusterfs_la_LIBADD = @LEXLIB@ $(ZLIB_LIBS) $(MATH_LIB) $(UUID_LIBS)
> -+libglusterfs_la_LIBADD = $(ZLIB_LIBS) $(MATH_LIB) $(UUID_LIBS)
> - libglusterfs_la_LDFLAGS = -version-info $(LIBGLUSTERFS_LT_VERSION)
> -
> - lib_LTLIBRARIES = libglusterfs.la
>  diff --git a/libglusterfs/src/graph.l b/libglusterfs/src/graph.l
>  index 8af28a4..742d934 100644
>  --- a/libglusterfs/src/graph.l
> @@ -42,3 +28,6 @@ index 8af28a4..742d934 100644
>   %{
>
>   #define YYSTYPE char *
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/glusterfs/files/python-work-around-host-and-target-python.patch b/recipes-extended/glusterfs/files/python-work-around-host-and-target-python.patch
> index d70a103..700b0ba 100644
> --- a/recipes-extended/glusterfs/files/python-work-around-host-and-target-python.patch
> +++ b/recipes-extended/glusterfs/files/python-work-around-host-and-target-python.patch
> @@ -1,6 +1,6 @@
> -From fbe4fdfddb096e4e6650908929c366dcc9556ade Mon Sep 17 00:00:00 2001
> -From: Mark Asselstine <mark.asselstine at windriver.com>
> -Date: Thu, 27 Feb 2014 21:50:40 -0500
> +From 80c38519224635e9fe2a21542b7dbb14e4c16dcc Mon Sep 17 00:00:00 2001
> +From: "Hongzhi.Song" <hongzhi.song at windriver.com>
> +Date: Tue, 12 Mar 2019 19:46:27 -0700
>  Subject: [PATCH] python: work around host and target python
>
>  In order to allow for the build system to make use of python but not
> @@ -18,7 +18,8 @@ Signed-off-by: Mark Asselstine <mark.asselstine at windriver.com>
>  Signed-off-by: Xulin Sun <xulin.sun at windriver.com>
>  [Yi: minor adjust the code to apply the patch on 3.11.1]
>  Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
> -
> +[Hongzhi: minor adjust the code to apply on v5.4]
> +Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
>  ---
>   configure.ac                    | 2 ++
>   geo-replication/src/Makefile.am | 3 ++-
> @@ -26,10 +27,10 @@ Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
>   3 files changed, 7 insertions(+), 4 deletions(-)
>
>  diff --git a/configure.ac b/configure.ac
> -index 8ce28f6..8e0652a 100644
> +index bc4cf93..d55a7b2 100644
>  --- a/configure.ac
>  +++ b/configure.ac
> -@@ -270,6 +270,8 @@ AC_CANONICAL_HOST
> +@@ -279,6 +279,8 @@ AC_CANONICAL_HOST
>   AC_PROG_CC
>   AC_DISABLE_STATIC
>   AC_PROG_LIBTOOL
> @@ -53,27 +54,30 @@ index 9937a0b..07456fb 100644
>   AM_CFLAGS = -Wall $(GF_CFLAGS)
>
>  diff --git a/geo-replication/src/gsyncd.c b/geo-replication/src/gsyncd.c
> -index 2c48ca5..b1d1126 100644
> +index 77af662..8cd0551 100644
>  --- a/geo-replication/src/gsyncd.c
>  +++ b/geo-replication/src/gsyncd.c
> -@@ -153,9 +153,9 @@ invoke_gsyncd (int argc, char **argv)
> -                 goto error;
> +@@ -118,9 +118,9 @@ invoke_gsyncd(int argc, char **argv)
> +         goto error;
>
> -         j = 0;
> --        python = getenv("PYTHON");
> -+        python = getenv("TARGET_PYTHON");
> -         if(!python)
> --                python = PYTHON;
> -+                python = TARGET_PYTHON;
> -         nargv[j++] = python;
> -         nargv[j++] = GSYNCD_PREFIX"/python/syncdaemon/"GSYNCD_PY;
> -         for (i = 1; i < argc; i++)
> -@@ -205,7 +205,7 @@ find_gsyncd (pid_t pid, pid_t ppid, char *name, void *data)
> -         ret = 0;
> -         switch (zeros) {
> +     j = 0;
> +-    python = getenv("PYTHON");
> ++      python = getenv("TARGET_PYTHON");
> +     if (!python)
> +-        python = PYTHON;
> ++              python = TARGET_PYTHON;
> +     nargv[j++] = python;
> +     nargv[j++] = GSYNCD_PREFIX "/python/syncdaemon/" GSYNCD_PY;
> +     for (i = 1; i < argc; i++)
> +@@ -170,7 +170,7 @@ find_gsyncd(pid_t pid, pid_t ppid, char *name, void *data)
> +     ret = 0;
> +     switch (zeros) {
>           case 2:
> --                if ((strcmp (basename (buf), basename (PYTHON)) ||
> -+                if ((strcmp (basename (buf), basename (TARGET_PYTHON)) ||
> -                      strcmp (basename (buf + strlen (buf) + 1), GSYNCD_PY)) == 0) {
> -                         ret = 1;
> -                         break;
> +-            if ((strcmp(basename(buf), basename(PYTHON)) ||
> ++                      if ((strcmp (basename (buf), basename (TARGET_PYTHON)) ||
> +                  strcmp(basename(buf + strlen(buf) + 1), GSYNCD_PY)) == 0) {
> +                 ret = 1;
> +                 break;
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/glusterfs/files/xlator-host-contamination-3.4.patch b/recipes-extended/glusterfs/files/xlator-host-contamination-3.4.patch
> deleted file mode 100644
> index 805c00a..0000000
> --- a/recipes-extended/glusterfs/files/xlator-host-contamination-3.4.patch
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -From 79c943bba37cb10a462038ec56cd2b8045344951 Mon Sep 17 00:00:00 2001
> -From: Donn Seeley <donn.seeley at windriver.com>
> -Date: Fri, 28 Feb 2014 09:11:02 -0500
> -Subject: [PATCH] Add the glusterfs package
> -
> -Three of the translator makefiles in glusterfs add unnecessary
> --L$(xlatordir) link options.  This option causes the linker to check
> -the host's $(xlatordir) directory, resulting in contamination that gets
> -flagged by Yocto's QA rules.
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Donn Seeley <donn.seeley at windriver.com>
> -[Xulin: minor adjust to apply the patch]
> -Signed-off-by: Xuin Sun <xulin.sun at windriver.com>
> -
> ----
> - xlators/mgmt/glusterd/src/Makefile.am    | 2 +-
> - xlators/nfs/server/src/Makefile.am       | 2 --
> - xlators/system/posix-acl/src/Makefile.am | 2 --
> - 3 files changed, 1 insertion(+), 5 deletions(-)
> -
> -diff --git a/xlators/mgmt/glusterd/src/Makefile.am b/xlators/mgmt/glusterd/src/Makefile.am
> -index b0f5a9b..0caad43 100644
> ---- a/xlators/mgmt/glusterd/src/Makefile.am
> -+++ b/xlators/mgmt/glusterd/src/Makefile.am
> -@@ -55,7 +55,7 @@ AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \
> -
> - AM_CFLAGS = -Wall $(GF_CFLAGS) $(URCU_CFLAGS) $(URCU_CDS_CFLAGS)
> -
> --AM_LDFLAGS = -L$(xlatordir) $(URCU_LIBS) $(URCU_CDS_LIBS)
> -+AM_LDFLAGS = -L$(URCU_LIBS) $(URCU_CDS_LIBS)
> -
> - CLEANFILES =
> -
> -diff --git a/xlators/nfs/server/src/Makefile.am b/xlators/nfs/server/src/Makefile.am
> -index bc6f8e9..56086a1 100644
> ---- a/xlators/nfs/server/src/Makefile.am
> -+++ b/xlators/nfs/server/src/Makefile.am
> -@@ -25,8 +25,6 @@ AM_CPPFLAGS = $(GF_CPPFLAGS) \
> -
> - AM_CFLAGS = -Wall $(GF_CFLAGS)
> -
> --AM_LDFLAGS = -L$(xlatordir)
> --
> - CLEANFILES =
> -
> - EXTRA_DIST = nfsserver.sym
> -diff --git a/xlators/system/posix-acl/src/Makefile.am b/xlators/system/posix-acl/src/Makefile.am
> -index f57070c..70080a6 100644
> ---- a/xlators/system/posix-acl/src/Makefile.am
> -+++ b/xlators/system/posix-acl/src/Makefile.am
> -@@ -12,8 +12,6 @@ AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \
> -
> - AM_CFLAGS = -Wall $(GF_CFLAGS)
> -
> --AM_LDFLAGS = -L$(xlatordir)
> --
> - CLEANFILES =
> -
> - access-control-compat:
> diff --git a/recipes-extended/glusterfs/files/xlator-host-contamination-5.4.patch b/recipes-extended/glusterfs/files/xlator-host-contamination-5.4.patch
> new file mode 100644
> index 0000000..ed11ce5
> --- /dev/null
> +++ b/recipes-extended/glusterfs/files/xlator-host-contamination-5.4.patch
> @@ -0,0 +1,65 @@
> +From a18891a9807b209c7c0811e0e6ca08c4570809d0 Mon Sep 17 00:00:00 2001
> +From: "Hongzhi.Song" <hongzhi.song at windriver.com>
> +Date: Tue, 12 Mar 2019 22:00:46 -0700
> +Subject: [PATCH] Add the glusterfs package
> +
> +Three of the translator makefiles in glusterfs add unnecessary
> +-L$(xlatordir) link options.  This option causes the linker to check
> +the host's $(xlatordir) directory, resulting in contamination that gets
> +flagged by Yocto's QA rules.
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Donn Seeley <donn.seeley at windriver.com>
> +[Xulin: minor adjust to apply the patch]
> +Signed-off-by: Xuin Sun <xulin.sun at windriver.com>
> +[Hongzhi: minor adjust to apply the patch]
> +Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
> +---
> + xlators/mgmt/glusterd/src/Makefile.am    | 2 +-
> + xlators/nfs/server/src/Makefile.am       | 2 --
> + xlators/system/posix-acl/src/Makefile.am | 2 --
> + 3 files changed, 1 insertion(+), 5 deletions(-)
> +
> +diff --git a/xlators/mgmt/glusterd/src/Makefile.am b/xlators/mgmt/glusterd/src/Makefile.am
> +index aa75344..834c4b5 100644
> +--- a/xlators/mgmt/glusterd/src/Makefile.am
> ++++ b/xlators/mgmt/glusterd/src/Makefile.am
> +@@ -60,7 +60,7 @@ AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \
> +
> + AM_CFLAGS = -Wall $(GF_CFLAGS) $(URCU_CFLAGS) $(URCU_CDS_CFLAGS) $(XML_CFLAGS)
> +
> +-AM_LDFLAGS = -L$(xlatordir) $(URCU_LIBS) $(URCU_CDS_LIBS)
> ++AM_LDFLAGS = -L$(URCU_LIBS) $(URCU_CDS_LIBS)
> +
> + CLEANFILES =
> +
> +diff --git a/xlators/nfs/server/src/Makefile.am b/xlators/nfs/server/src/Makefile.am
> +index 01071a7..297d3cb 100644
> +--- a/xlators/nfs/server/src/Makefile.am
> ++++ b/xlators/nfs/server/src/Makefile.am
> +@@ -31,8 +31,6 @@ AM_CPPFLAGS = $(GF_CPPFLAGS) \
> +
> + AM_CFLAGS = -Wall $(GF_CFLAGS)
> +
> +-AM_LDFLAGS = -L$(xlatordir)
> +-
> + CLEANFILES =
> +
> + EXTRA_DIST = nfsserver.sym
> +diff --git a/xlators/system/posix-acl/src/Makefile.am b/xlators/system/posix-acl/src/Makefile.am
> +index f57070c..70080a6 100644
> +--- a/xlators/system/posix-acl/src/Makefile.am
> ++++ b/xlators/system/posix-acl/src/Makefile.am
> +@@ -12,8 +12,6 @@ AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \
> +
> + AM_CFLAGS = -Wall $(GF_CFLAGS)
> +
> +-AM_LDFLAGS = -L$(xlatordir)
> +-
> + CLEANFILES =
> +
> + access-control-compat:
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/glusterfs/glusterfs.inc b/recipes-extended/glusterfs/glusterfs.inc
> index f7d3cc3..17aaf75 100644
> --- a/recipes-extended/glusterfs/glusterfs.inc
> +++ b/recipes-extended/glusterfs/glusterfs.inc
> @@ -11,7 +11,7 @@ SECTION = "console/network"
>  SRC_URI += "file://glusterd.init \
>              file://glusterd.service \
>              file://glusterfs-configure-automake-with-subdir-objects-for.patch \
> -            file://xlator-host-contamination-3.4.patch \
> +            file://xlator-host-contamination-5.4.patch \
>              file://glusterfs-disable-default-startup-scripts.patch \
>              file://glusterfs-api-remove-unnecessary-library-options.patch \
>              file://python-work-around-host-and-target-python.patch \
> @@ -20,15 +20,6 @@ SRC_URI += "file://glusterd.init \
>              file://libglusterfs-Don-t-link-against-libfl.patch \
>              file://glusterd-change-port-range.patch \
>              file://configure.ac-allow-PYTHON-values-to-be-passed-via-en.patch \
> -            file://0001-shared-storage-Prevent-mounting-shared-storage-from-.patch \
> -            file://0002-server-auth-add-option-for-strict-authentication.patch \
> -            file://0003-glusterfs-access-trusted-peer-group-via-remote-host-.patch \
> -            file://0001-dict-handle-negative-key-value-length-while-unserial.patch \
> -            file://0002-posix-disable-open-read-write-on-special-files.patch \
> -            file://0003-server-protocol-don-t-allow-.-path-in-name.patch \
> -            file://0004-io-stats-dump-io-stats-info-in-var-run-gluster.patch \
> -            file://0006-posix-remove-not-supported-get-set-content.patch \
> -            file://0007-protocol-don-t-use-alloca.patch \
>             "
>
>  LICENSE = "(LGPLv3+ | GPLv2) & GPLv3+ & LGPLv3+ & GPLv2+ & LGPLv2+ & LGPLv2.1+ & Apache-2.0"
> @@ -38,8 +29,8 @@ LIC_FILES_CHKSUM = "file://COPYING-GPLV2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
>
>  inherit autotools pkgconfig distutils-base update-rc.d systemd
>
> -DEPENDS += "bison-native flex-native python-native fuse libaio libtirpc libxml2 ncurses \
> -            openssl python readline zlib liburcu util-linux glib-2.0 acl"
> +DEPENDS += "bison-native flex-native python3-native fuse libaio libtirpc libxml2 ncurses \
> +            openssl python3 readline zlib liburcu util-linux glib-2.0 acl"
>
>  # rpc now comes from libtirpc instead of glibc
>  #
> @@ -49,6 +40,7 @@ LDFLAGS += " -ltirpc"
>  EXTRA_OECONF = "ac_cv_file__etc_debian_version=no \
>                  ac_cv_file__etc_SuSE_release=no \
>                  ac_cv_file__etc_redhat_release=no \
> +                               ac_cv_file__etc_centos_release=no \
>                  --with-mountutildir=${sbindir} \
>                  --disable-fusermount \
>                  TARGET_PYTHON=${bindir}/python \
> @@ -64,7 +56,7 @@ PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
>  PACKAGECONFIG[georeplication] = "--enable-georeplication,--disable-georeplication,,rsync"
>  PACKAGECONFIG[libibverbs] = "--enable-ibverbs,--disable-ibverbs,virtual/libibverbs librdmacm,"
>  PACKAGECONFIG[ocf] = "--with-ocf,--without-ocf,,"
> -PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind,"
> +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
>
>  do_install_append() {
>      install -d ${D}${sysconfdir}/init.d
> @@ -123,9 +115,10 @@ INSANE_SKIP_${PN}-server += "dev-so"
>  PACKAGES += "${PN}-rdma ${PN}-geo-replication ${PN}-fuse ${PN}-server \
>               ${PN}-api ${PN}-ocf"
>
> -RDEPENDS_${PN} += "python python-json python-ctypes bash"
> +RDEPENDS_${PN} += "python3-core python-json python-ctypes bash"
>  RDEPENDS_${PN}-ocf += "bash"
>  RDEPENDS_${PN}-server += "bash"
> +RDEPENDS_${PN}-geo-replication += "python3"
>
>  FILES_${PN}-dbg += "${libdir}/glusterfs/${PV}/*/.debug \
>                      ${libdir}/glusterfs/${PV}/*/*/.debug \
> @@ -142,6 +135,7 @@ FILES_${PN} = "${libdir}/glusterfs/${PV}/auth \
>                 ${libdir}/glusterfs/${PV}/xlator/protocol/client* \
>                 ${libdir}/glusterfs/${PV}/xlator/system \
>                 ${libdir}/glusterfs/${PV}/xlator/testing \
> +                          ${libdir}/glusterfs/${PV}/xlator/playground \
>                 ${libdir}/glusterfs/${PV}/xlator/meta.so \
>                 ${libdir}/glusterfs/ganesha \
>                 ${libdir}/glusterfs/glusterfs/glusterfind \
> @@ -154,6 +148,7 @@ FILES_${PN} = "${libdir}/glusterfs/${PV}/auth \
>                 ${libdir}/libgfdb.so.* \
>                 ${libdir}/libgfxdr.so.* \
>                 ${libdir}/python*/site-packages \
> +                          ${libexecdir}/glusterfs/gfevents \
>                 ${libexecdir}/glusterfs/events \
>                 ${libexecdir}/glusterfs/glusterfind \
>                 ${libexecdir}/glusterfs/gfind_missing_files \
> @@ -174,6 +169,7 @@ FILES_${PN} = "${libdir}/glusterfs/${PV}/auth \
>                 ${sbindir}/glustereventsd \
>                 ${sbindir}/gf_attach \
>                 ${sbindir}/*.py \
> +                          ${sbindir}/gluster-setgfid2path \
>                 ${bindir}/ \
>                 ${sysconfdir}/glusterfs \
>                 ${sysconfdir}/ganesha \
> diff --git a/recipes-extended/glusterfs/glusterfs_3.11.1.bb b/recipes-extended/glusterfs/glusterfs_3.11.1.bb
> deleted file mode 100644
> index 6ca157c..0000000
> --- a/recipes-extended/glusterfs/glusterfs_3.11.1.bb
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -SRC_URI = "https://bits.gluster.org/pub/gluster/glusterfs/src/${BPN}-${PV}.tar.gz"
> -
> -SRC_URI[md5sum] = "46d56837b8b5c785f2f1e5317d5f6da8"
> -SRC_URI[sha256sum] = "c7e0502631c9bc9da05795b666b74ef40a30a0344f5a2e205e65bd2faefe1442"
> -
> -require glusterfs.inc
> diff --git a/recipes-extended/glusterfs/glusterfs_5.4.bb b/recipes-extended/glusterfs/glusterfs_5.4.bb
> new file mode 100644
> index 0000000..90ffd14
> --- /dev/null
> +++ b/recipes-extended/glusterfs/glusterfs_5.4.bb
> @@ -0,0 +1,6 @@
> +SRC_URI = "https://bits.gluster.org/pub/gluster/glusterfs/src/${BPN}-${PV}.tar.gz"
> +
> +SRC_URI[md5sum] = "b52ec9101de3c01c7db17c00b3234d94"
> +SRC_URI[sha256sum] = "d4f8cf7551c4ac97480fa4f2da6077171b12d5501ee1ddc4cd8535e2336bde7e"
> +
> +require glusterfs.inc
> --
> 2.8.1
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


More information about the meta-virtualization mailing list