From 1c8caf9fd542da587aa91a0dd7cc79f20925ab12 Mon Sep 17 00:00:00 2001
From: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>
Date: Fri, 24 May 2019 10:38:24 -0500
Subject: [PATCH 1/3] skip install parts that require root when non-root
---
util/install_helper.sh | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/util/install_helper.sh b/util/install_helper.sh
index 688b2450..061b16b0 100755
--- a/util/install_helper.sh
+++ b/util/install_helper.sh
@@ -22,16 +22,17 @@ else
DESTDIR="${DESTDIR%/}"
fi
-chown root:root "${DESTDIR}${bindir}/fusermount3"
-chmod u+s "${DESTDIR}${bindir}/fusermount3"
-
install -D -m 644 "${MESON_SOURCE_ROOT}/util/fuse.conf" \
"${DESTDIR}${sysconfdir}/fuse.conf"
+if [ `id -u` = 0 ]; then
+ chown root:root "${DESTDIR}${bindir}/fusermount3"
+ chmod u+s "${DESTDIR}${bindir}/fusermount3"
-if test ! -e "${DESTDIR}/dev/fuse"; then
- mkdir -p "${DESTDIR}/dev"
- mknod "${DESTDIR}/dev/fuse" -m 0666 c 10 229
+ if test ! -e "${DESTDIR}/dev/fuse"; then
+ mkdir -p "${DESTDIR}/dev"
+ mknod "${DESTDIR}/dev/fuse" -m 0666 c 10 229
+ fi
fi
install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \
From 67ec3873e0eaddb5ebafed0f9f81f29e944e91ee Mon Sep 17 00:00:00 2001
From: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>
Date: Wed, 3 Jul 2019 13:32:12 -0500
Subject: [PATCH 2/3] add no-root configure option
---
meson_options.txt | 8 ++++++--
util/install_helper.sh | 3 ++-
util/meson.build | 10 +++++++++-
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/meson_options.txt b/meson_options.txt
index c08e38e4..c88b32d8 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -5,7 +5,11 @@ option('udevrulesdir', type : 'string', value : '',
description: 'Where to install udev rules (if empty, query pkg-config(1))')
option('utils', type : 'boolean', value : true,
- description: 'Wheter or not to build and install helper programs')
+ description: 'Whether or not to build and install helper programs')
option('examples', type : 'boolean', value : true,
- description: 'Wheter or not to build example programs')
\ No newline at end of file
+ description: 'Whether or not to build example programs')
+
+option('no-root', type : 'boolean', value : false,
+ description: 'Install files without root permissions')
+
diff --git a/util/install_helper.sh b/util/install_helper.sh
index 061b16b0..30f6227b 100755
--- a/util/install_helper.sh
+++ b/util/install_helper.sh
@@ -9,6 +9,7 @@ set -e
sysconfdir="$1"
bindir="$2"
udevrulesdir="$3"
+useroot="$4"
# Both sysconfdir and bindir are absolute paths (since they are joined
# with --prefix in meson.build), but need to be interpreted relative
@@ -25,7 +26,7 @@ fi
install -D -m 644 "${MESON_SOURCE_ROOT}/util/fuse.conf" \
"${DESTDIR}${sysconfdir}/fuse.conf"
-if [ `id -u` = 0 ]; then
+if $useroot; then
chown root:root "${DESTDIR}${bindir}/fusermount3"
chmod u+s "${DESTDIR}${bindir}/fusermount3"
diff --git a/util/meson.build b/util/meson.build
index aa0e734a..d273ca8e 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -20,9 +20,17 @@ if udevrulesdir == ''
udevrulesdir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d')
endif
+noroot = get_option('no-root')
+if noroot
+ useroot = 'false'
+else
+ useroot = 'true'
+endif
+
meson.add_install_script('install_helper.sh',
join_paths(get_option('prefix'), get_option('sysconfdir')),
join_paths(get_option('prefix'), get_option('bindir')),
- udevrulesdir)
+ udevrulesdir,
+ useroot)
From 12cf86c8a512a50766e088c3fcca532883ad1e5f Mon Sep 17 00:00:00 2001
From: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com>
Date: Wed, 3 Jul 2019 17:25:50 -0500
Subject: [PATCH 3/3] make the option useroot instead of no-root
---
meson_options.txt | 4 ++--
util/meson.build | 9 +--------
2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/meson_options.txt b/meson_options.txt
index c88b32d8..e778254c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -10,6 +10,6 @@ option('utils', type : 'boolean', value : true,
option('examples', type : 'boolean', value : true,
description: 'Whether or not to build example programs')
-option('no-root', type : 'boolean', value : false,
- description: 'Install files without root permissions')
+option('useroot', type : 'boolean', value : true,
+ description: 'Set owner and setuid bits on installed file')
diff --git a/util/meson.build b/util/meson.build
index d273ca8e..5c8f1b58 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -20,17 +20,10 @@ if udevrulesdir == ''
udevrulesdir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d')
endif
-noroot = get_option('no-root')
-if noroot
- useroot = 'false'
-else
- useroot = 'true'
-endif
-
meson.add_install_script('install_helper.sh',
join_paths(get_option('prefix'), get_option('sysconfdir')),
join_paths(get_option('prefix'), get_option('bindir')),
udevrulesdir,
- useroot)
+ '@0@'.format(get_option('useroot')))