Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] mc: unify curses initialization
@ 2017-08-17  7:15 Hongxu Jia
  2017-08-17 13:00 ` Richard Purdie
  0 siblings, 1 reply; 2+ messages in thread
From: Hongxu Jia @ 2017-08-17  7:15 UTC (permalink / raw)
  To: openembedded-core, ross.burton, richard.purdie

Since ncurses upgraded to 6.0+20170715, it compile failed
...
| ../../../mc-4.8.19/lib/tty/tty-ncurses.c:199:13: error: dereferencing
pointer to incomplete type 'TERMINAL {aka struct term}'
|      cur_term->Nttyb.c_cc[VINTR] = CTRL ('g');   /* ^g */
|              ^~
...

Backport a patch from upstream fixed the issue.

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 ...3697-tty_init-unify-curses-initialization.patch | 66 ++++++++++++++++++++++
 meta/recipes-extended/mc/mc_4.8.19.bb              |  1 +
 2 files changed, 67 insertions(+)
 create mode 100644 meta/recipes-extended/mc/files/0002-Ticket-3697-tty_init-unify-curses-initialization.patch

diff --git a/meta/recipes-extended/mc/files/0002-Ticket-3697-tty_init-unify-curses-initialization.patch b/meta/recipes-extended/mc/files/0002-Ticket-3697-tty_init-unify-curses-initialization.patch
new file mode 100644
index 0000000..c54d4d0
--- /dev/null
+++ b/meta/recipes-extended/mc/files/0002-Ticket-3697-tty_init-unify-curses-initialization.patch
@@ -0,0 +1,66 @@
+From 4d46a108629beb66a293672db7b44f863b6598ba Mon Sep 17 00:00:00 2001
+From: Thomas Dickey <dickey@his.com>
+Date: Fri, 14 Apr 2017 14:06:13 +0300
+Subject: [PATCH] Ticket #3697: (tty_init): unify curses initialization
+
+...for various curses implementations.
+
+Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
+
+Upstream-Status: Backport [https://github.com/MidnightCommander/mc.git]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+---
+ lib/tty/tty-ncurses.c | 26 +++++++++-----------------
+ 1 file changed, 9 insertions(+), 17 deletions(-)
+
+diff --git a/lib/tty/tty-ncurses.c b/lib/tty/tty-ncurses.c
+index a7a11f3..8e69b39 100644
+--- a/lib/tty/tty-ncurses.c
++++ b/lib/tty/tty-ncurses.c
+@@ -179,6 +179,8 @@ mc_tty_normalize_lines_char (const char *ch)
+ void
+ tty_init (gboolean mouse_enable, gboolean is_xterm)
+ {
++    struct termios mode;
++
+     initscr ();
+ 
+ #ifdef HAVE_ESCDELAY
+@@ -194,25 +196,15 @@ tty_init (gboolean mouse_enable, gboolean is_xterm)
+     ESCDELAY = 200;
+ #endif /* HAVE_ESCDELAY */
+ 
+-#ifdef NCURSES_VERSION
++    tcgetattr (STDIN_FILENO, &mode);
+     /* use Ctrl-g to generate SIGINT */
+-    cur_term->Nttyb.c_cc[VINTR] = CTRL ('g');   /* ^g */
++    mode.c_cc[VINTR] = CTRL ('g');  /* ^g */
+     /* disable SIGQUIT to allow use Ctrl-\ key */
+-    cur_term->Nttyb.c_cc[VQUIT] = NULL_VALUE;
+-    tcsetattr (cur_term->Filedes, TCSANOW, &cur_term->Nttyb);
+-#else
+-    /* other curses implementation (bsd curses, ...) */
+-    {
+-        struct termios mode;
+-
+-        tcgetattr (STDIN_FILENO, &mode);
+-        /* use Ctrl-g to generate SIGINT */
+-        mode.c_cc[VINTR] = CTRL ('g');  /* ^g */
+-        /* disable SIGQUIT to allow use Ctrl-\ key */
+-        mode.c_cc[VQUIT] = NULL_VALUE;
+-        tcsetattr (STDIN_FILENO, TCSANOW, &mode);
+-    }
+-#endif /* NCURSES_VERSION */
++    mode.c_cc[VQUIT] = NULL_VALUE;
++    tcsetattr (STDIN_FILENO, TCSANOW, &mode);
++
++    /* curses remembers the "in-program" modes after this call */
++    def_prog_mode ();
+ 
+     tty_start_interrupt_key ();
+ 
+-- 
+2.7.4
+
diff --git a/meta/recipes-extended/mc/mc_4.8.19.bb b/meta/recipes-extended/mc/mc_4.8.19.bb
index 20ef9dd..b3a156c 100644
--- a/meta/recipes-extended/mc/mc_4.8.19.bb
+++ b/meta/recipes-extended/mc/mc_4.8.19.bb
@@ -8,6 +8,7 @@ RDEPENDS_${PN} = "ncurses-terminfo"
 
 SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
            file://0001-mc-replace-perl-w-with-use-warnings.patch \
+           file://0002-Ticket-3697-tty_init-unify-curses-initialization.patch \
            "
 SRC_URI[md5sum] = "ef423f5b6f80a1a5a5fc53b8324cab70"
 SRC_URI[sha256sum] = "d0dddfae7149fac903f74ef55cfcb2a198e0f7004346c7bded43669d61ba436f"
-- 
2.8.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] mc: unify curses initialization
  2017-08-17  7:15 [PATCH] mc: unify curses initialization Hongxu Jia
@ 2017-08-17 13:00 ` Richard Purdie
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Purdie @ 2017-08-17 13:00 UTC (permalink / raw)
  To: Hongxu Jia, openembedded-core, ross.burton

On Thu, 2017-08-17 at 03:15 -0400, Hongxu Jia wrote:
> Since ncurses upgraded to 6.0+20170715, it compile failed
> ...
> > 
> > ../../../mc-4.8.19/lib/tty/tty-ncurses.c:199:13: error:
> > dereferencing
> pointer to incomplete type 'TERMINAL {aka struct term}'
> > 
> >      cur_term->Nttyb.c_cc[VINTR] = CTRL ('g');   /* ^g */
> >              ^~
> ...
> 
> Backport a patch from upstream fixed the issue.
> 
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>

Unfortunately there is a version in meta-gplv2 that fails to build:

https://autobuilder.yocto.io/builders/nightly-non-gpl3/builds/406

I'm tempted just to delete that recipe at this point as porting the
patch to it would have to be done cleanroom style.

Cheers,

Richard


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-08-17 13:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-17  7:15 [PATCH] mc: unify curses initialization Hongxu Jia
2017-08-17 13:00 ` Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox