unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Tomi Ollila <tomi.ollila@iki.fi>
To: Dmitry Kurochkin <dmitry.kurochkin@gmail.com>,
	Tomi Ollila <tomi.ollila@iki.fi>,
	Notmuch Mail <notmuch@notmuchmail.org>
Subject: Re: [PATCH] test: use dtach(1) instead of screen(1) in emacs tests.
Date: Fri, 11 Nov 2011 13:29:48 +0200	[thread overview]
Message-ID: <yf67h36ew2b.fsf@taco2.nixu.fi> (raw)
In-Reply-To: <877h373vbs.fsf@gmail.com>

On Fri, 11 Nov 2011 12:41:11 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> Hi Tomi.
> 
> On Thu, 10 Nov 2011 14:22:17 -0800, Jameson Graef Rollins <jrollins@finestructure.net> wrote:
> > From: Tomi Ollila <tomi.ollila@iki.fi>
> > 
> > dtach is lighter than screen and is not setuid/setgid program so
> > TMPDIR does not get reset by dynamic loader when executed.
> > 
> > Signed-off-by: Jameson Graef Rollins <jrollins@finestructure.net>
> > ---
> > This tweaks the original patch slightly by removing the no-longer needed
> > screenrc variables.
> > 
> >  test/test-lib.sh |    5 ++---
> >  1 files changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/test/test-lib.sh b/test/test-lib.sh
> > index c81c709..c0fe037 100755
> > --- a/test/test-lib.sh
> > +++ b/test/test-lib.sh
> > @@ -50,8 +50,6 @@ TZ=UTC
> >  TERM=dumb
> >  export LANG LC_ALL PAGER TERM TZ
> >  GIT_TEST_CMP=${GIT_TEST_CMP:-diff -u}
> > -export SCREENRC=/dev/null
> > -export SYSSCREENRC=/dev/null
> >  
> >  # Protect ourselves from common misconfiguration to export
> >  # CDPATH into the environment
> > @@ -844,7 +842,8 @@ test_emacs () {
> >  	if [ -z "$EMACS_SERVER" ]; then
> >  		EMACS_SERVER="notmuch-test-suite-$$"
> >  		# start a detached screen session with an emacs server
> > -		screen -S "$EMACS_SERVER" -d -m "$TMP_DIRECTORY/run_emacs" \
> > +		TERM=xterm dtach -n "$TMP_DIRECTORY/dtach-emacs-socket-$$" \
> 
> Can you please give a more detailed explanation (and a comment) to
> justify this workaround:
> 
> * Is it actually needed for dtach or emacs?  If it is the latter, then
>   it should be "dtach ... env TERM=xterm emacs ...", right?

dtach doesn't care about TERM, it is emacs which does (as you noticed
below). But it is bood that the TERM is same in dtach's environment.

doing VAR=val command args instead of env VAR=val saves one execve(2)
as the shell does the environment setting (after fork before execve)
> 
> * Why should we care about systems that use terminals without
>   corresponding terminfo installed?

That's the issue I thought, armdragon on IRC thought etc. The 'xterm'
is part of ncurses-base on Debian, at least (thanks armdragon for this
info) and is it pretty much as base to every terminal emulator there is 
(I just launched gnome-terminal for testing, TERM was set to xterm --
it may have been initially in environment but if gnome-terminal changed
it before launching shell, my shell config will not change it)

> * Why is it safe to use xterm?  Is there any standard that requires
>   xterm info to be present on the system?

xterm is not needed, it is just to tell emacs it can use it's display
control sequences. more common alternative would have been vt100, just
that if one ever wants to attach to that emacs session you he gets
better experience (such as colors), using any terminal emulator, like rxvt.

> I have tried running dtach with emacs in rxvt-unicode and it worked fine
> without overriding TERM.

you had originally suitable TERM to be passed to emacs.

> 
> I have also tried running dtach with invalid TERM:
> 
>   $ TERM=non-existing-term dtach -n s /bin/sh
>   zsh: can't find terminal definition for non-existing-term
> 
> No segfault, shell is started fine.

Yes, dtach could not care less...

> 
> But emacs does not work without a valid terminfo:
> 
>   $ TERM=non-existing-term emacs -nw
>   emacs: Terminal type non-existing-term is not defined.
>   If that is not the actual type of terminal you have,
>   use the Bourne shell command `TERM=... export TERM' (C-shell:
>   `setenv TERM ...') to specify the correct type.  It may be necessary
>   to do `unset TERMINFO' (C-shell: `unsetenv TERMINFO') as well.

Yes, I got SIGSEGV --  strace -o oprfx -ff command args  is your friend :D

> Regards,
>   Dmitry

Thanks for your analysis. 

Tomi

> 
> > +			"$TMP_DIRECTORY/run_emacs" \
> >  			--no-window-system \
> >  			--eval "(setq server-name \"$EMACS_SERVER\")" \
> >  			--eval '(server-start)' \
> > -- 
> > 1.7.7.1
> > 
> > _______________________________________________
> > notmuch mailing list
> > notmuch@notmuchmail.org
> > http://notmuchmail.org/mailman/listinfo/notmuch
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
> 

  reply	other threads:[~2011-11-11 11:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <id:878vnomntf.fsf@servo.finestructure.net>
2011-11-10 16:59 ` [PATCH] test: Use env to set TMPDIR when running emacs in screen Jameson Graef Rollins
2011-11-10 17:09   ` Jameson Graef Rollins
2011-11-10 19:28   ` Austin Clements
2011-11-10 19:35     ` Jameson Graef Rollins
2011-11-10 22:03       ` [PATCH] test: use dtach(1) instead of screen(1) in emacs tests Tomi Ollila
2011-11-10 22:22         ` Jameson Graef Rollins
2011-11-11  0:17           ` Pieter Praet
2011-11-11  8:09             ` Tomi Ollila
2011-11-15 16:53               ` Pieter Praet
2011-11-11  0:17           ` [PATCH 1/2] debian: clean up Uploaders and Build-Depends fields in debian/control Jameson Graef Rollins
2011-11-11  0:17             ` [PATCH 2/2] debian: update build dependency on dtach instead of screen Jameson Graef Rollins
2011-11-12  4:27               ` David Bremner
2011-11-12  4:27             ` [PATCH 1/2] debian: clean up Uploaders and Build-Depends fields in debian/control David Bremner
2011-11-11  8:41           ` [PATCH] test: use dtach(1) instead of screen(1) in emacs tests Dmitry Kurochkin
2011-11-11 11:29             ` Tomi Ollila [this message]
2011-11-11 16:02               ` Dmitry Kurochkin
2011-11-11 22:51                 ` Jameson Graef Rollins
2011-11-11 20:48           ` Tomi Ollila
2011-11-11 21:06             ` Dmitry Kurochkin
2011-11-11 21:15               ` Tomi Ollila
2011-11-11 21:33                 ` Tomi Ollila
2011-11-12  4:26                   ` David Bremner
2011-11-11 20:49           ` Tomi Ollila

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=yf67h36ew2b.fsf@taco2.nixu.fi \
    --to=tomi.ollila@iki.fi \
    --cc=dmitry.kurochkin@gmail.com \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).