From d709f319232ae40302b7cd73ab945c3d76be01f3 Mon Sep 17 00:00:00 2001 From: Nikolaus Rath Date: Fri, 31 Aug 2018 13:38:26 +0200 Subject: [PATCH] Do not hardcode /etc/fuse.conf path. --- ChangeLog.rst | 3 +++ meson_options.txt | 2 +- util/fusermount.c | 1 - util/install_helper.sh | 29 +++++++++++++++++++++-------- util/meson.build | 11 ++++++++--- 5 files changed, 33 insertions(+), 13 deletions(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index 97f5164..75fcc48 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -6,6 +6,9 @@ Unreleased Changes bcachefs, aufs and FAT filesystems. * libfuse may now be used as a Meson subproject. * Fix a few low-impact memory leaks. +* The `fuse.conf` file is no longer looked for in `/etc`, but in the + *sysconfdir* directory (which can be set with `meson configure`). By + default, the location is thus `/usr/local/etc/fuse.conf`. libfuse 3.2.5 (2018-07-24) ========================== diff --git a/meson_options.txt b/meson_options.txt index b4608a7..983fcac 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,4 +2,4 @@ option('disable-mtab', type : 'boolean', value : false, description: 'Disable and ignore usage of /etc/mtab') option('udevrulesdir', type : 'string', value : '', - description: 'Path where udev rules are installed to (Defaults to udevdir specified in udev.pc)') + description: 'Where to install udev rules (if empty, query pkg-config(1))') diff --git a/util/fusermount.c b/util/fusermount.c index ed9d0aa..250bf76 100644 --- a/util/fusermount.c +++ b/util/fusermount.c @@ -35,7 +35,6 @@ #define FUSE_COMMFD_ENV "_FUSE_COMMFD" #define FUSE_DEV "/dev/fuse" -#define FUSE_CONF "/etc/fuse.conf" #ifndef MS_DIRSYNC #define MS_DIRSYNC 128 diff --git a/util/install_helper.sh b/util/install_helper.sh index 48a8927..688b245 100755 --- a/util/install_helper.sh +++ b/util/install_helper.sh @@ -9,10 +9,25 @@ set -e sysconfdir="$1" bindir="$2" udevrulesdir="$3" -prefix="${MESON_INSTALL_DESTDIR_PREFIX}" -chown root:root "${prefix}/${bindir}/fusermount3" -chmod u+s "${prefix}/${bindir}/fusermount3" +# Both sysconfdir and bindir are absolute paths (since they are joined +# with --prefix in meson.build), but need to be interpreted relative +# to DESTDIR (if specified). + +if [ -z "${DESTDIR}" ]; then + # Prevent warnings about uninitialized variable + DESTDIR="" +else + # Get rid of duplicate slash + 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 test ! -e "${DESTDIR}/dev/fuse"; then mkdir -p "${DESTDIR}/dev" @@ -20,19 +35,17 @@ if test ! -e "${DESTDIR}/dev/fuse"; then fi install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \ - "${DESTDIR}/${udevrulesdir}/99-fuse3.rules" + "${DESTDIR}${udevrulesdir}/99-fuse3.rules" install -D -m 755 "${MESON_SOURCE_ROOT}/util/init_script" \ - "${DESTDIR}/etc/init.d/fuse3" + "${DESTDIR}${sysconfdir}/init.d/fuse3" -install -D -m 644 "${MESON_SOURCE_ROOT}/util/fuse.conf" \ - "${DESTDIR}/etc/fuse.conf" if test -x /usr/sbin/update-rc.d && test -z "${DESTDIR}"; then /usr/sbin/update-rc.d fuse3 start 34 S . start 41 0 6 . || /bin/true else echo "== FURTHER ACTION REQUIRED ==" - echo "Make sure that your init system will start the ${DESTDIR}/etc/init.d/fuse3 init script" + echo "Make sure that your init system will start the ${sysconfdir}/init.d/fuse3 init script" fi diff --git a/util/meson.build b/util/meson.build index ec08c17..01f7678 100644 --- a/util/meson.build +++ b/util/meson.build @@ -8,10 +8,13 @@ mount_util_c = custom_target('mount_util', command : ['cp', '-a', '@INPUT@', '@OUTPUT@'], ) +fuseconf_path = join_paths(get_option('prefix'), get_option('sysconfdir'), 'fuse.conf') + executable('fusermount3', ['fusermount.c', mount_util_c], include_directories: include_dirs, install: true, - install_dir: get_option('bindir')) + install_dir: get_option('bindir'), + c_args: '-DFUSE_CONF="@0@"'.format(fuseconf_path)) executable('mount.fuse3', ['mount.fuse.c'], include_directories: include_dirs, @@ -25,7 +28,9 @@ if udevrulesdir == '' udevrulesdir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d') endif -meson.add_install_script('install_helper.sh', get_option('sysconfdir'), - get_option('bindir'), udevrulesdir) +meson.add_install_script('install_helper.sh', + join_paths(get_option('prefix'), get_option('sysconfdir')), + join_paths(get_option('prefix'), get_option('bindir')), + udevrulesdir) -- 2.30.2