Re: regression in meson build, AC_PATH_PROG lost

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 19, 2020 at 10:31:00PM +0100, Olaf Hering wrote:
Am Thu, 19 Nov 2020 22:15:27 +0100
schrieb Martin Kletzander <mkletzan@xxxxxxxxxx>:

Libvirt needs to be able to handle that missing binary at runtime anyway

It also needs to handle an existing binary. Just how is it supposed to handle it?


Um... run it?

Right now with meson it is either a full path, or just the name in case it was missing at build time (I have not checked if the launcher actually consults $PATH).


Right now, IMHO, all meson checks for binaries that are not needed at build time
should be removed.  During runtime we can just use the name of the binary.  I
don't know whether it used to be the case that it was thought that there might
be security issues with supplying different binary in a directory in $PATH, but
frankly, if you have (different-)user-writable directory in $PATH or non-root
access to modifying system-wide $PATH then you have bigger problems to deal
with.  Even though I do not have anything to back this claim I think that
might've been the original reason.

Anyway, what would be the desired approach to tell libvirt the runtime path?


Find it at runtime with virFindFileInPath() just like we already do with a few
binaries (and did for some since 2009 or so) or even without it as virCommand()
already searches $PATH since:

commit e0d014f2379ddde175c0c3126273911221c3e645
Author: Daniel P. Berrangé <berrange@xxxxxxxxxx>
Date:   Tue Mar 15 16:58:28 2011 +0000

    Ensure binary is resolved wrt $PATH in virExec

I was thinking about something like:
 option('runtime_path_exe', type: 'string', value: 'exe', description: 'runtime path of exe')
 runtime_path_exe = get_option('runtime_path_exe')
 if not get_option('runtime_path_exe').enabled()
   runtime_path_exe = find_program(runtime_path_exe, required: true).path()
 conf.set_quoted('EXE', runtime_path_exe)

Olaf

Just for the sake of completeness here are some examples on how to do it:

commit 274f09cbc5ed8be00127380327d9525b852a2d1d
Author: Stefan Berger <stefanb@xxxxxxxxxx>
Date:   Wed Apr 14 06:29:55 2010 -0400

    nwfilter: use virFindFileInPath for needed CLI tools

commit 2e045a4f9bf2757199c0997b9842d8dd8510459f
Author: Daniel P. Berrangé <berrange@xxxxxxxxxx>
Date:   Thu Jan 19 10:27:11 2017 +0000

    storage: avoid use of undefined GLUSTER_CLI variable

Martin

P.S.: It is not *strictly* necessary that the commit hash starts with '2' ;)

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux