[systemd-devel] [PATCH] Default to /usr/bin/u?mount, configurable, rather than hard-coded /bin/u?mount.
Dimitri John Ledkov
dimitri.j.ledkov at intel.com
Wed May 13 06:24:43 PDT 2015
On 13 May 2015 at 14:00, Lennart Poettering <lennart at poettering.net> wrote:
> On Mon, 11.05.15 16:58, Dimitri John Ledkov (dimitri.j.ledkov at intel.com) wrote:
>
> Hmm, all the other AM_PATH_PROG variables do not carry a _BIN suffix,
> should these two? I don't think so.
>
> (In general, I am not too big a fan of abbreviating things
> unnecessarily, unless this is commonly done elsewhere...)
>
There is already MOUNT define used elsewhere in the code...
DEFINE_CAST(MOUNT, Mount);
Hence the _BIN suffix.
> Otherwise looks fine,
>
> Lennart
>
>> ---
>> Makefile.am | 2 ++
>> configure.ac | 3 +++
>> src/core/mount.c | 6 +++---
>> src/remount-fs/remount-fs.c | 10 +++++-----
>> 4 files changed, 13 insertions(+), 8 deletions(-)
>>
>> diff --git a/Makefile.am b/Makefile.am
>> index e4d00a8..0ff11cc 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -208,6 +208,8 @@ AM_CPPFLAGS = \
>> -DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" \
>> -DQUOTACHECK=\"$(QUOTACHECK)\" \
>> -DKEXEC=\"$(KEXEC)\" \
>> + -DMOUNT_BIN=\"$(MOUNT_BIN)\" \
>> + -DUMOUNT_BIN=\"$(UMOUNT_BIN)\" \
>> -DLIBDIR=\"$(libdir)\" \
>> -DROOTLIBDIR=\"$(rootlibdir)\" \
>> -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \
>> diff --git a/configure.ac b/configure.ac
>> index 600e203..61dffc6 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -100,6 +100,9 @@ AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec], [$PATH:/usr/sbin:/sbin])
>>
>> AC_PATH_PROG([SULOGIN], [sulogin], [/usr/sbin/sulogin], [$PATH:/usr/sbin:/sbin])
>>
>> +AC_PATH_PROG([MOUNT_BIN], [mount], [/usr/bin/mount], [$PATH:/usr/sbin:/sbin])
>> +AC_PATH_PROG([UMOUNT_BIN], [umount], [/usr/bin/umount], [$PATH:/usr/sbin:/sbin])
>> +
>> AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])])
>>
>> M4_DEFINES=
>> diff --git a/src/core/mount.c b/src/core/mount.c
>> index 65a66b4..a370c74 100644
>> --- a/src/core/mount.c
>> +++ b/src/core/mount.c
>> @@ -871,7 +871,7 @@ static void mount_enter_unmounting(Mount *m) {
>> m->control_command_id = MOUNT_EXEC_UNMOUNT;
>> m->control_command = m->exec_command + MOUNT_EXEC_UNMOUNT;
>>
>> - r = exec_command_set(m->control_command, "/bin/umount", m->where, NULL);
>> + r = exec_command_set(m->control_command, UMOUNT_BIN, m->where, NULL);
>> if (r >= 0 && UNIT(m)->manager->running_as == SYSTEMD_SYSTEM)
>> r = exec_command_append(m->control_command, "-n", NULL);
>> if (r < 0)
>> @@ -924,7 +924,7 @@ static void mount_enter_mounting(Mount *m) {
>> if (r < 0)
>> goto fail;
>>
>> - r = exec_command_set(m->control_command, "/bin/mount",
>> + r = exec_command_set(m->control_command, MOUNT_BIN,
>> m->parameters_fragment.what, m->where, NULL);
>> if (r >= 0 && UNIT(m)->manager->running_as == SYSTEMD_SYSTEM)
>> r = exec_command_append(m->control_command, "-n", NULL);
>> @@ -973,7 +973,7 @@ static void mount_enter_remounting(Mount *m) {
>> else
>> o = "remount";
>>
>> - r = exec_command_set(m->control_command, "/bin/mount",
>> + r = exec_command_set(m->control_command, MOUNT_BIN,
>> m->parameters_fragment.what, m->where,
>> "-o", o, NULL);
>> if (r >= 0 && UNIT(m)->manager->running_as == SYSTEMD_SYSTEM)
>> diff --git a/src/remount-fs/remount-fs.c b/src/remount-fs/remount-fs.c
>> index 70dacfa..ff7de2c 100644
>> --- a/src/remount-fs/remount-fs.c
>> +++ b/src/remount-fs/remount-fs.c
>> @@ -94,15 +94,15 @@ int main(int argc, char *argv[]) {
>> const char *arguments[5];
>> /* Child */
>>
>> - arguments[0] = "/bin/mount";
>> + arguments[0] = MOUNT_BIN;
>> arguments[1] = me->mnt_dir;
>> arguments[2] = "-o";
>> arguments[3] = "remount";
>> arguments[4] = NULL;
>>
>> - execv("/bin/mount", (char **) arguments);
>> + execv(MOUNT_BIN, (char **) arguments);
>>
>> - log_error_errno(errno, "Failed to execute /bin/mount: %m");
>> + log_error_errno(errno, "Failed to execute " MOUNT_BIN ": %m");
>> _exit(EXIT_FAILURE);
>> }
>>
>> @@ -142,9 +142,9 @@ int main(int argc, char *argv[]) {
>> if (s) {
>> if (!is_clean_exit(si.si_code, si.si_status, NULL)) {
>> if (si.si_code == CLD_EXITED)
>> - log_error("/bin/mount for %s exited with exit status %i.", s, si.si_status);
>> + log_error(MOUNT_BIN " for %s exited with exit status %i.", s, si.si_status);
>> else
>> - log_error("/bin/mount for %s terminated by signal %s.", s, signal_to_string(si.si_status));
>> + log_error(MOUNT_BIN " for %s terminated by signal %s.", s, signal_to_string(si.si_status));
>>
>> ret = EXIT_FAILURE;
>> }
>> --
>> 2.1.4
>>
>> _______________________________________________
>> systemd-devel mailing list
>> systemd-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>
>
> Lennart
>
> --
> Lennart Poettering, Red Hat
--
Regards,
Dimitri.
Pura Vida!
https://clearlinux.org
Open Source Technology Center
Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ.
More information about the systemd-devel
mailing list