1 This patch was taken from Nixpkgs.
3 From 616381bc25b0e90198683fb049f994e82d467d96 Mon Sep 17 00:00:00 2001
4 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
5 Date: Sat, 13 May 2017 02:45:49 +0200
6 Subject: [PATCH] Don't use hardcoded /sbin, /usr/bin etc. paths. Fixes
9 Instead, rely on programs to be in PATH, as gluster already
10 does in many places across its code base.
12 Change-Id: Id21152fe42f5b67205d8f1571b0656c4d5f74246
14 contrib/fuse-lib/mount-common.c | 8 ++++----
15 xlators/mgmt/glusterd/src/glusterd-ganesha.c | 6 +++---
16 xlators/mgmt/glusterd/src/glusterd-quota.c | 6 +++---
17 xlators/mgmt/glusterd/src/glusterd-snapshot.c | 4 ++--
18 xlators/mgmt/glusterd/src/glusterd-utils.c | 14 +-------------
19 5 files changed, 13 insertions(+), 25 deletions(-)
21 diff --git a/contrib/fuse-lib/mount-common.c b/contrib/fuse-lib/mount-common.c
22 index e9f80fe81..6380dd867 100644
23 --- a/contrib/fuse-lib/mount-common.c
24 +++ b/contrib/fuse-lib/mount-common.c
25 @@ -255,16 +255,16 @@ fuse_mnt_umount (const char *progname, const char *abs_mnt,
28 #ifdef GF_LINUX_HOST_OS
29 - execl ("/bin/umount", "/bin/umount", "-i", rel_mnt,
30 + execl ("umount", "umount", "-i", rel_mnt,
31 lazy ? "-l" : NULL, NULL);
32 - GFFUSE_LOGERR ("%s: failed to execute /bin/umount: %s",
33 + GFFUSE_LOGERR ("%s: failed to execute umount: %s",
34 progname, strerror (errno));
36 /* exitting the filesystem causes the umount */
39 - execl ("/sbin/umount", "/sbin/umount", "-f", rel_mnt, NULL);
40 - GFFUSE_LOGERR ("%s: failed to execute /sbin/umount: %s",
41 + execl ("umount", "umount", "-f", rel_mnt, NULL);
42 + GFFUSE_LOGERR ("%s: failed to execute umount: %s",
43 progname, strerror (errno));
44 #endif /* GF_LINUX_HOST_OS */
46 diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c
47 index 0e6629cf0..fcb4738b7 100644
48 --- a/xlators/mgmt/glusterd/src/glusterd-quota.c
49 +++ b/xlators/mgmt/glusterd/src/glusterd-quota.c
52 #ifndef _PATH_SETFATTR
53 # ifdef GF_LINUX_HOST_OS
54 -# define _PATH_SETFATTR "/usr/bin/setfattr"
55 +# define _PATH_SETFATTR "setfattr"
58 # define _PATH_SETFATTR "/usr/pkg/bin/setfattr"
59 @@ -335,7 +335,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv,
61 if (type == GF_QUOTA_OPTION_TYPE_ENABLE ||
62 type == GF_QUOTA_OPTION_TYPE_ENABLE_OBJECTS)
63 - runner_add_args (&runner, "/usr/bin/find", ".", NULL);
64 + runner_add_args (&runner, "find", ".", NULL);
66 else if (type == GF_QUOTA_OPTION_TYPE_DISABLE) {
68 @@ -351,7 +351,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv,
69 VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "1",
70 "{}", "\\", ";", NULL);
72 - runner_add_args (&runner, "/usr/bin/find", ".",
73 + runner_add_args (&runner, "find", ".",
74 "-exec", _PATH_SETFATTR, "-n",
75 VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "-v",
76 "1", "{}", "\\", ";", NULL);
77 diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot.c b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
78 index da0152366..f0d135350 100644
79 --- a/xlators/mgmt/glusterd/src/glusterd-snapshot.c
80 +++ b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
81 @@ -121,7 +121,7 @@ glusterd_build_snap_device_path (char *device, char *snapname,
85 - runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "vg_name",
86 + runner_add_args (&runner, "lvs", "--noheadings", "-o", "vg_name",
88 runner_redir (&runner, STDOUT_FILENO, RUN_PIPE);
89 snprintf (msg, sizeof (msg), "Get volume group for device %s", device);
90 @@ -1982,7 +1982,7 @@ glusterd_is_thinp_brick (char *device, uint32_t *op_errno)
94 - runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "pool_lv",
95 + runner_add_args (&runner, "lvs", "--noheadings", "-o", "pool_lv",
97 runner_redir (&runner, STDOUT_FILENO, RUN_PIPE);
98 runner_log (&runner, this->name, GF_LOG_DEBUG, msg);
99 diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
100 index 51db13df0..6fa7b92f9 100644
101 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c
102 +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
103 @@ -6027,7 +6027,6 @@ static struct fs_info {
104 char *fs_tool_pattern;
107 - /* some linux have these in /usr/sbin/and others in /sbin/? */
108 { "xfs", "xfs_info", NULL, "isize=", "xfsprogs" },
109 { "ext3", "tune2fs", "-l", "Inode size:", "e2fsprogs" },
110 { "ext4", "tune2fs", "-l", "Inode size:", "e2fsprogs" },
111 @@ -6048,7 +6047,6 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count)
113 runner_t runner = {0, };
114 struct fs_info *fs = NULL;
115 - char fs_tool_name[256] = {0, };
116 static dict_t *cached_fs = NULL;
118 memset (key, 0, sizeof (key));
119 @@ -6085,17 +6083,7 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count)
124 - snprintf (fs_tool_name, sizeof (fs_tool_name),
125 - "/usr/sbin/%s", fs->fs_tool_name);
126 - if (sys_access (fs_tool_name, R_OK|X_OK) == 0)
127 - runner_add_arg (&runner, fs_tool_name);
129 - snprintf (fs_tool_name, sizeof (fs_tool_name),
130 - "/sbin/%s", fs->fs_tool_name);
131 - if (sys_access (fs_tool_name, R_OK|X_OK) == 0)
132 - runner_add_arg (&runner, fs_tool_name);
134 + runner_add_arg (&runner, fs->fs_tool_name);