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

Bug#648271: [debian-policy] 11.8.3 "Packages providing a terminal emulator" says xterm passes -e option straight to exec



Filipus Klutiero <chealer@gmail.com> writes:

> Section 11.8.3 "Packages providing a terminal emulator" contains:

>> To be an x-terminal-emulator, a program must:
>>
>>       Support the command-line option -e command, which creates a new
>>       terminal window[94
>>       <http://www.debian.org/doc/debian-policy/footnotes.html#f94>]
>>       and runs the specified command, interpreting the entirety of the
>>       rest of the command line as a command to pass straight to exec,
>>       in the manner that xterm does.

> However, as pointed out by Hendrik Sattler in #563352, xterm does *not*
> simply pass its -e option straight to exec, at least nowadays. The
> following command exemplifies:

>> $ xterm -e 'echo TEST && sleep 3'

> This works as intended, so xterm does not just support simple commands,
> but also pipelines.

[...]

> By the way, as Hendrik wrote, it would be best to specify how
> x-terminal-emulator should behave, rather than to say the behavior
> should be the same as xterm's.  Also, the term "command" is ambiguous.

I think there are a couple of different ways we could go with this.  One
is to fully specify xterm's behavior (including the fallback to the shell)
and require that everything else satisfy that, but from the referenced bug
it doesn't look like other upstreams want to do that.  The other is to be
clearer that the default is to call exec but to allow the fallback that
xterm does.  I think the latter makes more sense.

How about something like:

    Support the command-line option "-e <command>", which creates a new
    terminal window and runs the specified command.  <command> may be
    multiple arguments, all of which are part of the command.  All
    arguments are passed directly to exec, bypassing the shell.  (xterm's
    behavior of falling back on using the shell if -e had a single
    argument and exec failed is permissible but not required.)

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>



Reply to: