Summary:ASTERISK-13311: make menuselect exits with install ncurses
Reporter:Mike Thomas (mthomasslo)Labels:
Date Opened:2009-01-06 13:08:01.000-0600Date Closed:2009-01-09 08:52:58.000-0600
Versions:Frequency of
Description:The most recent branch 1.4 initially fails to complete make menuselect.  It suggests that ncurses is missing.  Re-running make select gives the same response.  If the build is redone completely, beggining with a "make clean", it will ocasionally complete and bring up the menu.

Older SVN branch 1.4 and releases up to at least 1.4.22 compile properly, as ncurses and ncurses-devel (ver 5.5) are definetly installed.


This behavior is reproduceable on RHEL5 32 bit(2.6.18-8) and
CENTOS 5.0 64 bit(2.6.18-8)
Comments:By: Mark Michelson (mmichelson) 2009-01-06 15:50:27.000-0600

FYI, this problem came about as a result of revision 232 of the menuselect branch. Reverting that appears to fix the error. This is just a workaround for the real problem, though.

By: Sean Bright (seanbright) 2009-01-06 16:27:18.000-0600

I think it was revision 437.

By: Mark Michelson (mmichelson) 2009-01-06 17:06:10.000-0600

Ah, you're right. 232 was the previous rev to that one, so reverting to rev 232 would fix the problem. I got mixed up.

I can't point out exactly where the problem is, but it appears that this is a reliable way to reproduce the error:

make distclean && ./configure && make menuselect

Taking a look at what's happening, here's what I see:

1) Some files get removed from the Asterisk source directory
2) menuselect's configure script is run (?!)
3) Some files are removed from menuselect and its subdirectories
4) Steps 2 and 3 are repeated (?!)
5) menuselect/makeopts is removed (This appears to be key)
6) Some more files are removed
7) ./configure starts and ends
8) make menuselect begins
9) a shortened version of menuselect's configure script is run.
10) menuselect's Makefile is executed. Since there's no makeopts file, it is not included, and so menuselect_stub.c is built instead of menuselect_curses.c
11) When menuselect is executed, we get the stub telling us to install ncurses

Now, the kicker is that after all of this is over, there *is* a makeopts file in the /menuselect directory, so it got created...sometime. If you make a trivial change to the menuselect source like adding an extra blank line to menuselect.c, then make will know that it needs to rebuild menuselect when you run `make menuselect` and the problem will go away.

By: Jeremy Burton (jedi98) 2009-01-06 17:45:41.000-0600

Don't know if this helps at all but this problem is also in 1.4.23-rc3 (from tarball) and can be circumvented by adding the "--with-ncurses" switch to ./configure

By: Mark Michelson (mmichelson) 2009-01-09 08:52:58.000-0600

The commit which caused this problem has been reverted. The original issue that commit was meant to fix has been re-opened, and so this may be closed now.