[Home]

Summary:ASTERISK-08536: asterisk config options for external libs (ssl, qt3, ncurses, ...) are not followed
Reporter:snowcrash (snowcrash)Labels:
Date Opened:2007-01-09 21:34:18.000-0600Date Closed:2007-04-23 13:30:50
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/Configuration
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:i'm working with both asterisk trunk/v1.4.0.

i'm attempting to build w/ links against _my_ (in 'other' locations ...) external libs.

i have external LIBs installed in:

(1) openssl  v0.9.8d is installed in /usr/local/ssl
(2) qt3      v3.3.7  is installed in /usr/local/qt3
(3) ncurses  v5.6    is installed in /usr/local
(4) readline v5.2    is installed in /usr/local
(5) editline v2.10   is installed in /usr/local

where readline & editline are consistently built against ncurses ...

% otool -L /usr/local/lib/libreadline.dylib
/usr/local/lib/libreadline.5.2.dylib (compatibility version 5.0.0, current version 5.2.0)
/usr/local/lib/libncurses.5.6.dylib (compatibility version 5.6.0, current version 5.6.0)
/usr/lib/libmx.A.dylib (compatibility version 1.0.0, current version 92.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.7)

% otool -L /usr/local/lib/libedit.dylib
/usr/local/lib/libedit.0.dylib (compatibility version 1.0.0, current version 1.23.0)
/usr/local/lib/libncurses.5.6.dylib (compatibility version 5.6.0, current version 5.6.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.7)

and, -lcurses & -ltermcap are symlinked to -lncurses

lrwxr-xr-x 1 root wheel 20 2007-01-09 12:40 libcurses.dylib -> libncurses.5.6.dylib
lrwxr-xr-x 1 root wheel 20 2007-01-09 12:40 libtermcap.dylib -> libncurses.5.6.dylib

i'm having varying success getting asterisk to accept the libs in locations. here are the details ...

(1) SSL

config'ing asterisk with,

      --with-ssl=/usr/local/ssl \

is not sufficient.  but, adding,

setenv LDFLAGS "-bind_at_load -L/usr/local/ssl/lib"
setenv CPPFLAGS "-I /usr/local/ssl/include"

results in

% otool -L asterisk | grep ssl
/usr/local/ssl/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
/usr/local/ssl/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)

(2) QT3

qt3 is installed in,

--prefix=/usr/local/qt3

where,

% cd /usr/local/qt3/
% ls -al include/qdatetime.h lib/libqt-mt.dylib
-rw-r--r-- 1 root wheel 8792 Jan  4 15:20 include/qdatetime.h
lrwxr-xr-x 1 root wheel   20 Jan  4 15:20 lib/libqt-mt.dylib -> libqt-mt.3.3.7.dylib

so, in addition to

setenv LDFLAGS  "...  -L/usr/local/qt3/lib ..."
setenv CPPFLAGS "... -I/usr/local/qt3/include ..."

and,

./configure ... --with-qt=/usr/local/qt3 ...

i need to change,

% vi asterisk-svn/configure.ac
-------------------------------------------
@719
- [#include <qt3/qdatetime.h>],
+ [#include <qdatetime.h>],

@ 739
- [#include <qt3/qdatetime.h>],
+ [#include <qdatetime.h>],
-------------------------------------------


(3) NCURSES

i haven't gotten ncurses to behave at all. yet.

to reiterate, _my_ ncurses is installed in,

--prefix=/usr/local

where,

% cd /usr/local/lib
% ls -al *curses*
lrwxr-xr-x 1 root wheel     20 Jan  5 12:40 libcurses.dylib -> libncurses.5.6.dylib
lrwxr-xr-x 1 root wheel     21 Jan  5 12:40 libcursesw.dylib -> libncursesw.5.6.dylib
-rwxr-xr-x 1 root wheel 144780 Jan  5 06:18 libncurses++.a
-rwxr-xr-x 1 root wheel 144780 Jan  5 06:09 libncurses++w.a
lrwxr-xr-x 1 root wheel     20 Jan  5 16:17 libncurses.5.5.dylib -> libncurses.5.6.dylib
-rwxr-xr-x 1 root wheel 302952 Jan  5 06:18 libncurses.5.6.dylib
-rw-r--r-- 1 root wheel 518720 Jan  5 06:18 libncurses.a
lrwxr-xr-x 1 root wheel     20 Jan  5 06:18 libncurses.dylib -> libncurses.5.6.dylib
lrwxr-xr-x 1 root wheel     21 Jan  5 16:17 libncursesw.5.5.dylib -> libncursesw.5.6.dylib
-rwxr-xr-x 1 root wheel 350800 Jan  5 06:08 libncursesw.5.6.dylib
-rw-r--r-- 1 root wheel 594696 Jan  5 06:08 libncursesw.a
lrwxr-xr-x 1 root wheel     21 Jan  5 06:08 libncursesw.dylib -> libncursesw.5.6.dylib

and,

% cd /usr/local/include
% ls ncurses*
ncurses:
 curses.h     cursesp.h  etip.h     ncurses_dll.h  unctrl.h
 cursesapp.h  cursesw.h  form.h     panel.h
 cursesf.h    cursslk.h  menu.h     term.h
 cursesm.h    eti.h      ncurses.h  termcap.h

ncursesw:
 curses.h     cursesp.h  etip.h     ncurses_dll.h  unctrl.h
 cursesapp.h  cursesw.h  form.h     panel.h
 cursesf.h    cursslk.h  menu.h     term.h
 cursesm.h    eti.h      ncurses.h  termcap.h

next, if i, simply,

unsetenv LDFLAGS
unsetenv CPPFLAGS
./configure ... --with-ncurses=/usr/local ...

then, ./configure fails @,

...
checking for mandatory modules:  NCURSES OPENSSL... fail

configure: ***
configure: *** The NCURSES installation appears to be missing or broken.
configure: *** Either correct the installation, or run configure
configure: *** including --without-ncurses.

if i add,

  setenv LDFLAGS "-bind_at_load -L/usr/local/lib -lncurses"
  setenv CPPFLAGS "-I/usr/local/include/ncurses"

to the above config, i get same error.

if, instead, i keep these LFGLAGS & CPPFLAGS defs, but,

      ./configure ... --with-ncurses ...

then, NO error, but subsequent build selects ncurses from /usr, not
spec'd /usr/local, e.g.,

% otool -L asterisk | grep curses
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,


ncurses lib/path checks seem to be woven throughout the code, including for bundled 'editline' and 'menuselect' builds.



don't know it this is as "simple" as adding path checks for ncurses/ncurses.h as well ...

happy to provide add'l info.

thanks.
Comments:By: snowcrash (snowcrash) 2007-01-18 15:37:28.000-0600

just fyi ...

probably no surprise at all, but i've verified this behavior on both OSX & FreeBSD boxes, with src-built /usr/local/ trees.

thanks.

By: Serge Vecher (serge-v) 2007-01-25 12:41:41.000-0600

can you please check the latest 1.4 svn branch? I wonder if this is related to ASTERISK-8399

By: snowcrash (snowcrash) 2007-01-25 17:35:05.000-0600

> can you please check the latest 1.4 svn branch?

building with a fresh co of latest svn,

% svn info asterisk-svn | grep Revision
Revision: 51363

i still seem the same results ... i.e. either,

 (a) igoring _my_ ncurses install, or
 (b) FAIL @ ./configure

-------------------------------------
case:

...
% setenv LDFLAGS "-bind_at_load -L/usr/local/lib -lncurses"
% setenv CPPFLAGS "-I/usr/local/include/ncurses"
...
% ./configure ... --with-ncurses ...
...
% make
% otool -L main/asterisk | grep curses
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
% otool -L menuselect/menuselect | grep curses
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)

-------------------------------------
case:
...
% setenv LDFLAGS "-bind_at_load -L/usr/local/lib -lncurses"
% setenv CPPFLAGS "-I/usr/local/include/ncurses"
...
% ./configure ... --with-ncurses=/usr/local ...
...

checking for gtk-config... no
checking for curl-config... /usr/local/bin/curl-config
checking for mandatory modules:  NCURSES OPENSSL... fail

configure: ***
configure: *** The NCURSES installation appears to be missing or broken.
configure: *** Either correct the installation, or run configure
configure: *** including --without-ncurses.
%

-------------------------------------



> I wonder if this is related to ASTERISK-8399

"0008637: asterisk fails to cross compile for arm" ?

got me.

the curses-checking code -- included termcap, editline, etc etc -- is so convoluted -- to my read -- that i'm simply confused atm.

By: Russell Bryant (russell) 2007-03-26 13:49:14

Alright, let's take this one issue at a time.

First, I don't think our build system is set up to deal with you setting custom CFLAGS/LDFLAGS as environment variables to the configure script.  So, let's see if we can solve this without setting those at all.

Can you please post your config.log after running ./configure --with-ncurses=/usr/local ?

By: Russell Bryant (russell) 2007-04-23 13:30:49

Feel free to re-open this issue if you are still interested in working on this.  Thanks!