Bug#1039579: gnome-terminal.wrapper does not support the '--' syntax itself

Simon McVittie smcv at debian.org
Tue Jun 27 14:13:46 BST 2023


On Tue, 27 Jun 2023 at 14:11:35 +0200, Christophe Lohr wrote:
>   The code of this wrapper make several rearrangements to convert '-e' and '-x'
> options into the '--' syntax, but it seems to not support itself the '--'
> syntax on its command line. Isn't it?
> Is this an oversight or I am wrong?
> May I suggest adding support for "--"?

Please could you clarify why it would be useful for gnome-terminal.wrapper
to support the "--" syntax?

The only purpose of gnome-terminal.wrapper is to implement Debian's
x-terminal-emulator interface as defined in
<https://www.debian.org/doc/debian-policy/ch-customized-programs.html#packages-providing-a-terminal-emulator>,
which is a subset of xterm's command-line interface and therefore uses
"-e" to prefix a command to run. xterm does not support the GNU-style "--"
and there is no guarantee that an implementation of x-terminal-emulator
will support it either, so accepting it in gnome-terminal.wrapper
would just make it a bit more likely for people to write calls like
"x-terminal-emulator -- less /etc/hosts" which will actually only work
for a few specific terminal emulators.

If you're writing code that runs gnome-terminal (specifically) as a
subprocess, please use the gnome-terminal command and its preferred
"--" syntax.  There is no need to use the wrapper in this case, and in
fact it would be counterproductive to do so: all it does is to slow down
startup a little bit, and make some features unavailable.

If you're writing code that runs the generic x-terminal-emulator command
as a subprocess, then you will have to use the "-e" syntax, otherwise it
won't work correctly with xterm (and probably many other terminal emulators).

If you're writing code that supports multiple specific commands as ways
to run a command in a terminal, then it needs to "just know" whether
each one expects "-e", "-x", "--", or no argument at all. The table of
known terminals in
<https://gitlab.gnome.org/GNOME/glib/-/blob/2.76.3/gio/gdesktopappinfo.c#L2698>
is an example of this technique. Everyone involved recognises that this
is not a pleasant interface, but that's the price we pay for portability.

    smcv



More information about the pkg-gnome-maintainers mailing list