msg255261 - (view) |
Author: Ismail Donmez (donmez) * |
Date: 2015-11-24 11:39 |
ncurses6 turned on NCURSES_OPAQUE, so now you have to use some helper functions instead of accessing the structs directly. This _should_ be compatible with ncurses5 though I didn't test it.
Original patch is from openSUSE.
|
msg258136 - (view) |
Author: Ismail Donmez (donmez) * |
Date: 2016-01-13 09:26 |
Any patch review/comment ?
|
msg258137 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2016-01-13 09:53 |
configure.ac directly uses w->_flags in a check. It looks that this check always fails with ncurses6.
|
msg258142 - (view) |
Author: Ismail Donmez (donmez) * |
Date: 2016-01-13 13:53 |
Thats not an issue for ncurses because Include/py_curses.h does:
#ifdef HAVE_NCURSES_H
/* configure was checking <curses.h>, but we will
use <ncurses.h>, which has all these features. */
#ifndef WINDOW_HAS_FLAGS
#define WINDOW_HAS_FLAGS 1
#endif
#ifndef MVWDELCH_IS_EXPRESSION
#define MVWDELCH_IS_EXPRESSION 1
#endif
#endif
So it overrides WINDOW_HAS_FLAGS for ncurses case.
|
msg261920 - (view) |
Author: Ismail Donmez (donmez) * |
Date: 2016-03-17 17:18 |
ping?
|
msg261923 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2016-03-17 18:00 |
I suspect that the patch can break build with non-ncurses implementations or with old ncurses (when is_pad() was added?). Needed more direct feature check.
|
msg278050 - (view) |
Author: (yan12125) * |
Date: 2016-10-04 15:32 |
is_pad is added in ncurses 5.7-20090906 [1]. At least Mac OS X still ships ancient ncurses 5.7-20081102 [2], so an check in configure.ac is necessary. I'm trying it out.
[1] http://invisible-island.net/ncurses/NEWS.html#t20090906
[2] http://opensource.apple.com//source/ncurses/ncurses-46/ncurses/NEWS
|
msg278054 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2016-10-04 15:55 |
Mark, do you have relation to this?
|
msg278128 - (view) |
Author: Masayuki Yamamoto (masamoto) * |
Date: 2016-10-05 14:51 |
I tried to build curses module on Cygwin (Vista x86) using #25720 patch. And it has been succeeded.
When test_curses ran without skip condition, it was same result as msg278060 (#28190).
I found out build success reasons for cases of applying patch:
#25720 -- implementation of WINDOW is opaque (*but* WINDOW_HAS_FLAGS is defined at Include/py_curses.h:61 ). However, curses module build went well to cover the _flags field from source code by is_pad.
#14598 -- implementation of WINDOW is not opaque (WINDOWS_HAS_FLAGS is defined at configure script). Therefore, curses module build went well because WINDOW has the _flags field.
#28190 -- implementation of WINDOW is opaque (WINDOW_HAS_FLAGS isn't defined: py_curses.h has been cleaned by patch). Hence, curses module build went well to remove the _flags field from source code at preprocessing.
All case tests on Cygwin have failed at unget_wch.
|
msg278140 - (view) |
Author: Mark Dickinson (mark.dickinson) *  |
Date: 2016-10-05 17:18 |
> Mark, do you have relation to this?
Sorry, no. Whatever ncurses knowledge I may once have had has long since vanished.
|
msg278241 - (view) |
Author: Masayuki Yamamoto (masamoto) * |
Date: 2016-10-07 13:36 |
I updated the patch that add configuration check for is_pad. the is_pad is wrapped into py_is_pad at Modules/_cursesmodule.c:932 by either of three ways.
Case one -- is_pad is found: Define the macro that is simple wrapping.
Case two -- is_pad is not found, however WINDOW has _flags field: Define the macro using _flags field.
Case three -- is_pad is not found, and WINDOW doesn't have _flags field: Define the macro that is always preprocessed to FALSE.
I succeeded to build curses module on Cygwin (Vista x86) using this patch.
This patch doesn't include that undo fixes for specific platforms.
|
msg278242 - (view) |
Author: Ismail Donmez (donmez) * |
Date: 2016-10-07 13:39 |
@masamoto thank you!
|
msg278245 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2016-10-07 14:29 |
Added a comment on Rietveld.
|
msg278248 - (view) |
Author: (yan12125) * |
Date: 2016-10-07 15:24 |
Thanks masamoto! There's another minor issue about this patch: if there's no curses.h (ncurses built with --without-curses-h), the detection always fails.
|
msg278303 - (view) |
Author: Masayuki Yamamoto (masamoto) * |
Date: 2016-10-08 14:16 |
Added comment in review.
Yen, I tried to build without curses.h file (overwrite to ncurses.h). It was failed on checking header. Hence, I confirmed curses headers on Cygwin and Ubuntu.
I found out that curses.h includes the directive "#include <unctrl.h>". And unctrl.h has "#include <curses.h>". Therefore, I think that some platforms require curses.h.
Would you confirm your platform curses library?
|
msg278353 - (view) |
Author: (yan12125) * |
Date: 2016-10-09 09:50 |
headers.sh in ncurses changes "#include <curses.h>" to the actual path. For example here's a line in my unctrl.h:
#include <ncursesw/ncurses.h>
|
msg278360 - (view) |
Author: Masayuki Yamamoto (masamoto) * |
Date: 2016-10-09 13:35 |
Thank you for confirming, Yen :)
In this case, It seems necessary that resolves headers. I think missing headers issue maybe solve by #28190. I wrote a join test patch for #28190 and #25720.
Would you be able to resolve headers using this?
|
msg278363 - (view) |
Author: (yan12125) * |
Date: 2016-10-09 15:40 |
Thanks, building is fine here.
By the way, testing is broken due to other bugs (/tmp not available on Android). It's unrelated and I'll open a new issue for that.
|
msg287757 - (view) |
Author: Ismail Donmez (donmez) * |
Date: 2017-02-14 10:09 |
What's the status on this? Can you please create a pull request on Github so we can continue there?
|
msg294071 - (view) |
Author: Masayuki Yamamoto (masamoto) * |
Date: 2017-05-21 04:05 |
Hi, I finished various things and tackle the issue again, I opened PR 1689 at last.
Changes from previous patch:
* If ncurses doesn't have both is_pad function and _flags field of WINDOW, NCURSES_OPAQUE is defined as zero to make WINDOW to non-opaque type before including ncurses.h.
* The conditional compile on function definition are kept, it replaces WINDOW_HAS_FLAGS with py_is_pad macro itself.
* Unindent the blocks that places after section of the conditional compile on function definition.
|
msg296750 - (view) |
Author: Masayuki Yamamoto (masamoto) * |
Date: 2017-06-24 02:41 |
Ping. I updated PR a bit: macOS is joined to new compile condition and remove platform-specific condition.
|
msg305178 - (view) |
Author: Masayuki Yamamoto (masamoto) * |
Date: 2017-10-29 09:09 |
I opened PR 4164 to improve the is_pad configure check and previous PR was closed.
|
msg305181 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2017-10-29 09:39 |
I'll try to test this on NetBSD after fixing curses on NetBSD. It uses a different implementation of curses which don't support is_pad.
|
msg305370 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2017-11-01 12:05 |
New changeset 8bc7d63560024681dce9f40445f2877b2987e92c by Serhiy Storchaka (Masayuki Yamamoto) in branch 'master':
bpo-25720: Fix the method for checking pad state of curses WINDOW (#4164)
https://github.com/python/cpython/commit/8bc7d63560024681dce9f40445f2877b2987e92c
|
msg305372 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2017-11-01 12:35 |
New changeset ff6ae4de3874f4922a5883f08bb661c93834b060 by Serhiy Storchaka (Miss Islington (bot)) in branch '3.6':
bpo-25720: Fix the method for checking pad state of curses WINDOW (GH-4164) (#4212)
https://github.com/python/cpython/commit/ff6ae4de3874f4922a5883f08bb661c93834b060
|
msg305373 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2017-11-01 12:36 |
New changeset 6ba0b583d6785a256b17d27431908d67015eeeb6 by Serhiy Storchaka (Miss Islington (bot)) in branch '2.7':
bpo-25720: Fix the method for checking pad state of curses WINDOW (GH-4164) (#4213)
https://github.com/python/cpython/commit/6ba0b583d6785a256b17d27431908d67015eeeb6
|
msg305374 - (view) |
Author: Serhiy Storchaka (serhiy.storchaka) *  |
Date: 2017-11-01 12:38 |
Thank you for your contribution Masayuki!
|
|
Date |
User |
Action |
Args |
2022-04-11 14:58:24 | admin | set | github: 69906 |
2017-11-04 08:56:20 | serhiy.storchaka | link | issue14598 superseder |
2017-11-01 12:38:50 | serhiy.storchaka | set | status: open -> closed resolution: fixed messages:
+ msg305374
stage: patch review -> resolved |
2017-11-01 12:36:50 | serhiy.storchaka | set | messages:
+ msg305373 |
2017-11-01 12:35:43 | serhiy.storchaka | set | messages:
+ msg305372 |
2017-11-01 12:07:34 | python-dev | set | pull_requests:
+ pull_request4182 |
2017-11-01 12:06:34 | python-dev | set | pull_requests:
+ pull_request4181 |
2017-11-01 12:05:28 | serhiy.storchaka | set | messages:
+ msg305370 |
2017-10-29 09:39:47 | serhiy.storchaka | set | dependencies:
+ Make curses compiling on NetBSD 7.1 and tests passing messages:
+ msg305181 versions:
+ Python 2.7, Python 3.6, - Python 3.5 |
2017-10-29 09:09:34 | masamoto | set | messages:
+ msg305178 |
2017-10-29 09:03:13 | masamoto | set | pull_requests:
+ pull_request4133 |
2017-06-24 02:41:42 | masamoto | set | messages:
+ msg296750 |
2017-05-21 04:05:36 | masamoto | set | messages:
+ msg294071 |
2017-05-21 03:32:39 | masamoto | set | pull_requests:
+ pull_request1782 |
2017-02-14 10:09:11 | donmez | set | messages:
+ msg287757 |
2017-01-06 02:17:02 | berker.peksag | link | issue29170 superseder |
2016-11-25 18:15:42 | berker.peksag | link | issue28802 superseder |
2016-10-09 15:40:17 | yan12125 | set | messages:
+ msg278363 |
2016-10-09 13:35:17 | masamoto | set | files:
+ join-test-issue28190-issue25720.patch
messages:
+ msg278360 |
2016-10-09 09:50:09 | yan12125 | set | messages:
+ msg278353 |
2016-10-08 14:16:29 | masamoto | set | messages:
+ msg278303 |
2016-10-07 15:24:11 | yan12125 | set | messages:
+ msg278248 |
2016-10-07 14:29:09 | serhiy.storchaka | set | messages:
+ msg278245 |
2016-10-07 13:39:46 | donmez | set | messages:
+ msg278242 |
2016-10-07 13:36:19 | masamoto | set | files:
+ curses-is_pad.patch
messages:
+ msg278241 versions:
+ Python 3.7 |
2016-10-05 17:18:01 | mark.dickinson | set | messages:
+ msg278140 |
2016-10-05 14:51:34 | masamoto | set | nosy:
+ masamoto messages:
+ msg278128
|
2016-10-04 15:55:42 | serhiy.storchaka | set | nosy:
+ mark.dickinson messages:
+ msg278054
|
2016-10-04 15:32:50 | yan12125 | set | nosy:
+ yan12125 messages:
+ msg278050
|
2016-03-17 18:00:50 | serhiy.storchaka | set | messages:
+ msg261923 |
2016-03-17 17:18:06 | donmez | set | messages:
+ msg261920 |
2016-01-13 13:53:39 | donmez | set | messages:
+ msg258142 |
2016-01-13 09:53:13 | serhiy.storchaka | set | messages:
+ msg258137 |
2016-01-13 09:26:18 | donmez | set | messages:
+ msg258136 |
2015-11-24 14:00:25 | serhiy.storchaka | set | nosy:
+ twouters, serhiy.storchaka
type: compile error stage: patch review |
2015-11-24 11:39:07 | donmez | create | |