Thanks for this note, I haven't looked at these packages. At first I
thought execline binaries will only be called inside execlinep
scripts. Could you give some examples that s6 calls these binaries
directly except exelinep?

 In addition to what Casper said: for instance, some of the
s6-fdholder-* utilities in the s6 package assume that the "fdclose"
and "fdmove" programs are accessible via a PATH search.

 The point of execline is to allow the user to embed control commands
into a single argv. This is useful regardless of the execlineb
binary, whose sole purpose is to convert a text file into an argv.

I try this because I find document(INSTALL) says there's
--enable-absolute-paths option. And

 This will ensure that programs calling binaries from
this package will call them with their full installation path (in bindir)
 without relying on a PATH search.

So either I misunderstand the document or this feature hasn't been implemented.

 This option ensures compiled binaries embeds absolute paths, yes,
so by using it you would make sure, for instance, that the
s6-fdholder-* utilities mentioned above can actually find the fdclose
and fdmove commands they rely on. But this does not say anything
about scripts you write - execlineb cannot tell whether you are
executing a binary provided by execline or any other binary.

 When you write 'execlineb -c "if { foo } blah"', the execlineb binary
will execute into an argv starting with "if". If the "if" command
isn't in its PATH, then it won't find it.
 --enable-absolute-paths cannot rewrite it into "/usr/lib/execline/if"
in your scripts for you.


Reply via email to