Re: git: 1f31e00e19f9 - main - flua: add fbsd module
- In reply to: Mark Johnston : "Re: git: 1f31e00e19f9 - main - flua: add fbsd module"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 28 Sep 2023 16:10:38 UTC
On Thu, Sep 28, 2023 at 11:41:23AM -0400, Mark Johnston wrote: > On Thu, Sep 28, 2023 at 05:27:52PM +0200, Baptiste Daroussin wrote: > > On Thu, Sep 28, 2023 at 10:58:20AM -0400, Mark Johnston wrote: > > > On Wed, Sep 27, 2023 at 02:00:54PM +0000, Baptiste Daroussin wrote: > > > > The branch main has been updated by bapt: > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=1f31e00e19f9e24d4c891a24973e08a027c4f71c > > > > > > > > commit 1f31e00e19f9e24d4c891a24973e08a027c4f71c > > > > Author: Baptiste Daroussin <bapt@FreeBSD.org> > > > > AuthorDate: 2023-09-13 07:43:33 +0000 > > > > Commit: Baptiste Daroussin <bapt@FreeBSD.org> > > > > CommitDate: 2023-09-27 14:00:00 +0000 > > > > > > > > flua: add fbsd module > > > > > > > > This module is bundled into flua, it only provides for now the exec > > > > function. The point of the function is to be able to execute a program > > > > without actually executing a shell. > > > > > > > > to use it: > > > > fbsd.exec({"id", "bapt"}) > > > > > > Hi Baptiste, > > > > > > How is this different from posix.unistd.exec in the luaposix module? > > > Wouldn't it be better to add this to the existing posix.unistd namespace > > > in lposix.c? exec does not seem FreeBSD-specific. > > > > This is more like os.execure without the invocation of /bin/sh! > > Right, different from os.execute, but almost identical to > posix.unistd.exec: https://luaposix.github.io/luaposix/modules/posix.unistd.html#exec not indentical this fbsd.exec will fork/exec while posix.unistd.exec, will just exec. yes if add to lposix.c fork() and exec() then we can replace fbsd.exec by a pure lua version calling unistd.fork() and unistd.exec() is that is what you meant by almost identical. > > We have a subset of luaposix already, in libexec/flua/modules/lposix.c. > So my question is, how about we extend that to provide "exec"? "exec" > is not FreeBSD-specific at all. I am happy to write the patch. I am fine if we extend lposix with fork and exec and remove my fbsd.exec. I am happy to work on it as well. > > > > I have a related question: this week I wrote some FreeBSD-specific lua > > > modules wrapping some system calls like sysctl(2) and cap_enter(2). How > > > do we want to organize the flua namespace for such things? Should we > > > have a freebsd.sys namespace for system call wrappers? I would then put > > > bindings for FreeBSD libraries under freebsd.* or freebsd.lib.*, so we > > > could have freebsd.lib.procstat, for example. > > > > > > I am fine with a module named freebsd.lib.* I plan to add kenv, rcctl, > > procctl so, (I scratched sysctl and cap_enter has you have them ;) ) > > So my proposal is, raw system call wrappers should live under > freebsd.sys.*; some higher-level interfaces can be built on top, > hopefully written in lua as much as possible. I do like this proposal and it is better with that my ugly fbsd.* :) > > Also, if we start adding more FreeBSD modules, I suspect it will be > useful to maintain these modules of the tree. I have some plain lua > (not flua) programs for which I wrote FreeBSD modules, and they could be > useful to others. It'd also be useful to target multiple lua versions, > at least 5.1 as well so that luajit can be used. But that's a topic for > later. Best regards, Bapt