This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author catalin.iacob
Recipients catalin.iacob, hm, skrah, v.claudic
Date 2012-07-07.12:59:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1341665982.57.0.440484189488.issue12271@psf.upfronthosting.co.za>
In-reply-to
Content
The same happens on OpenSUSE 12.1 so Python can't be fully built there which is a bit of a shame.

OpenSUSE uses this patch for their packages, but that would break other distributions so it's not a good solution:
-#include <panel.h>
+#include <ncurses/panel.h>

Here's a list of all curses related files in /usr/include on my OpenSUSE 12.1:
catalin@linux-vo6z:~/cpython/issue12271> find  /usr/include/  -regex '.*curses.*' -and \( -type f -or -type l \) -exec ls -lh {} \; 
-rw-r--r-- 1 root root 4.1K May 10 15:28 /usr/include/python2.7/py_curses.h
lrwxrwxrwx 1 root root 16 Nov 20  2011 /usr/include/curses.h -> ncurses/curses.h
-rw-r--r-- 1 root root 75K Oct 29  2011 /usr/include/ncurses/curses.h
-rw-r--r-- 1 root root 6.5K Oct 29  2011 /usr/include/ncurses/cursesapp.h
-rw-r--r-- 1 root root 27K Oct 29  2011 /usr/include/ncurses/cursesf.h
-rw-r--r-- 1 root root 20K Oct 29  2011 /usr/include/ncurses/cursesm.h
-rw-r--r-- 1 root root 8.3K Oct 29  2011 /usr/include/ncurses/cursesp.h
-rw-r--r-- 1 root root 49K Oct 29  2011 /usr/include/ncurses/cursesw.h
-rw-r--r-- 1 root root 7.2K Oct 29  2011 /usr/include/ncurses/cursslk.h
-rw-r--r-- 1 root root 2.9K Oct 29  2011 /usr/include/ncurses/eti.h
-rw-r--r-- 1 root root 9.1K Oct 29  2011 /usr/include/ncurses/etip.h
-rw-r--r-- 1 root root 18K Oct 29  2011 /usr/include/ncurses/form.h
-rw-r--r-- 1 root root 12K Oct 29  2011 /usr/include/ncurses/menu.h
-rw-r--r-- 1 root root 4.0K Oct 29  2011 /usr/include/ncurses/nc_tparm.h
lrwxrwxrwx 1 root root 8 Nov 20  2011 /usr/include/ncurses/ncurses.h -> curses.h
-rw-r--r-- 1 root root 3.9K Oct 29  2011 /usr/include/ncurses/ncurses_dll.h
-rw-r--r-- 1 root root 4.0K Oct 29  2011 /usr/include/ncurses/panel.h
-rw-r--r-- 1 root root 40K Oct 29  2011 /usr/include/ncurses/term.h
-rw-r--r-- 1 root root 7.2K Oct 29  2011 /usr/include/ncurses/term_entry.h
-rw-r--r-- 1 root root 3.5K Oct 29  2011 /usr/include/ncurses/termcap.h
-rw-r--r-- 1 root root 13K Oct 29  2011 /usr/include/ncurses/tic.h
-rw-r--r-- 1 root root 3.1K Oct 29  2011 /usr/include/ncurses/unctrl.h
lrwxrwxrwx 1 root root 17 Nov 20  2011 /usr/include/ncurses.h -> ncurses/ncurses.h
lrwxrwxrwx 1 root root 16 Nov 20  2011 /usr/include/ncurses6/curses.h -> ncurses/curses.h
-rw-r--r-- 1 root root 75K Oct 29  2011 /usr/include/ncurses6/ncurses/curses.h
-rw-r--r-- 1 root root 6.5K Oct 29  2011 /usr/include/ncurses6/ncurses/cursesapp.h
-rw-r--r-- 1 root root 27K Oct 29  2011 /usr/include/ncurses6/ncurses/cursesf.h
-rw-r--r-- 1 root root 20K Oct 29  2011 /usr/include/ncurses6/ncurses/cursesm.h
-rw-r--r-- 1 root root 8.3K Oct 29  2011 /usr/include/ncurses6/ncurses/cursesp.h
-rw-r--r-- 1 root root 49K Oct 29  2011 /usr/include/ncurses6/ncurses/cursesw.h
-rw-r--r-- 1 root root 7.2K Oct 29  2011 /usr/include/ncurses6/ncurses/cursslk.h
-rw-r--r-- 1 root root 2.9K Oct 29  2011 /usr/include/ncurses6/ncurses/eti.h
-rw-r--r-- 1 root root 9.1K Oct 29  2011 /usr/include/ncurses6/ncurses/etip.h
-rw-r--r-- 1 root root 18K Oct 29  2011 /usr/include/ncurses6/ncurses/form.h
-rw-r--r-- 1 root root 12K Oct 29  2011 /usr/include/ncurses6/ncurses/menu.h
-rw-r--r-- 1 root root 4.0K Oct 29  2011 /usr/include/ncurses6/ncurses/nc_tparm.h
lrwxrwxrwx 1 root root 8 Nov 20  2011 /usr/include/ncurses6/ncurses/ncurses.h -> curses.h
-rw-r--r-- 1 root root 3.9K Oct 29  2011 /usr/include/ncurses6/ncurses/ncurses_dll.h
-rw-r--r-- 1 root root 4.0K Oct 29  2011 /usr/include/ncurses6/ncurses/panel.h
-rw-r--r-- 1 root root 40K Oct 29  2011 /usr/include/ncurses6/ncurses/term.h
-rw-r--r-- 1 root root 7.2K Oct 29  2011 /usr/include/ncurses6/ncurses/term_entry.h
-rw-r--r-- 1 root root 3.5K Oct 29  2011 /usr/include/ncurses6/ncurses/termcap.h
-rw-r--r-- 1 root root 13K Oct 29  2011 /usr/include/ncurses6/ncurses/tic.h
-rw-r--r-- 1 root root 3.1K Oct 29  2011 /usr/include/ncurses6/ncurses/unctrl.h
lrwxrwxrwx 1 root root 17 Nov 20  2011 /usr/include/ncurses6/ncurses.h -> ncurses/ncurses.h
-rw-r--r-- 1 root root 92K Oct 29  2011 /usr/include/ncurses6/ncursesw/curses.h

If we look just for panel.h we get:
catalin@linux-vo6z:~/cpython/issue12271> find  /usr/include/  -regex '.*curses.*' -and \( -type f -or -type l \) -exec ls -lh {} \;  | grep panel.h
-rw-r--r-- 1 root root 4.0K Oct 29  2011 /usr/include/ncurses/panel.h
-rw-r--r-- 1 root root 4.0K Oct 29  2011 /usr/include/ncurses6/ncurses/panel.h
-rw-r--r-- 1 root root 4.0K Oct 29  2011 /usr/include/ncurses6/ncursesw/panel.h
-rw-r--r-- 1 root root 4.0K Oct 29  2011 /usr/include/ncursesw/panel.h

There is some specific code that appends '/usr/include/ncursesw' to the include list in setup.py but that doesn't get triggered here because curses_library == 'ncurses' because readline is built against that.

The attached patch makes it build and the curses tests pass but it feels kind of hack-ish. panel.h is there so Python should find it somehow therefore this is a genuine bug. Ideas for a better solution?
History
Date User Action Args
2012-07-07 12:59:42catalin.iacobsetrecipients: + catalin.iacob, skrah, v.claudic, hm
2012-07-07 12:59:42catalin.iacobsetmessageid: <1341665982.57.0.440484189488.issue12271@psf.upfronthosting.co.za>
2012-07-07 12:59:42catalin.iacoblinkissue12271 messages
2012-07-07 12:59:41catalin.iacobcreate