Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#6602 closed defect (fixed)

BUG: ncurses has 'w' suffix in lib-names

Reported by: aips@… Owned by: mww@…
Priority: Normal Milestone:
Component: ports Version: 1.0
Keywords: Cc:
Port:

Description

Hi

after installing the ncurses port (5.5), I found the libraries all have a trailing "w" in the name:

sudo port install ncurses ---> Extracting ncurses ---> Configuring ncurses ---> Building ncurses with target all ---> Staging ncurses into destroot ---> Installing ncurses 5.5_0+darwin_8 ---> Activating ncurses 5.5_0+darwin_8 ---> Cleaning ncurses

sudo port list ncurses ncurses @5.5 devel/ncurses

sudo port contents ncurses |grep lib

/opt/local/lib/libformw.5.dylib /opt/local/lib/libformw.a /opt/local/lib/libformw.dylib /opt/local/lib/libmenuw.5.dylib /opt/local/lib/libmenuw.a /opt/local/lib/libmenuw.dylib /opt/local/lib/libncurses++w.a /opt/local/lib/libncursesw.5.dylib /opt/local/lib/libncursesw.a /opt/local/lib/libncursesw.dylib /opt/local/lib/libpanelw.5.dylib /opt/local/lib/libpanelw.a /opt/local/lib/libpanelw.dylib /opt/local/lib/terminfo

Is this intended???? Because now I have to change anything that links to -lncurses to -lncursesw... I guess. What am I missing?

I did read in

http://bugzilla.opendarwin.org/show_bug.cgi?id=2616

that /usr/lib/libcurses.dylib == libncurses.

Why does the 'all' target not install both the ordinary libncurses.* _and_ the libncursesw.* versions? I submit that this behaviour is a bug not a feature.

Change History (5)

comment:1 Changed 18 years ago by blb@…

Owner: changed from darwinports-bugs@… to mww@…

Assign to maintainer.

comment:2 Changed 18 years ago by mww@…

Summary: can't link to dp libncursesBUG: ncurses has 'w' suffix in lib-names

From the ncurses README:

If you configure using the --enable-widec option, a "w" is appended to the library names (e.g., libncursesw.a), and the resulting libraries support wide-characters, e.g., via a UTF-8 locale. The corresponding header files are compatible with the non-wide-character configuration; wide-character features are provided by ifdef's in the header files. The wide-character library interfaces are not binary-compatible with the non-wide-character version.

comment:3 Changed 18 years ago by aips@…

yes, yes, I read this in the readme. my complaint is that -

not providling a symlink:

libncurses.{a,dylib, etc} -> libncursesw.{a,dylib, etc} (because the libncursesw lib works the same, for non-wide chars

  • does it? It does not look so from the quotation above)

and not providing a separate libncurses.{a,dylib} etc

and having --enable-wide on by default

breaks the expectations of most applications that want to link with ncurses.

which wastes a lot of peoples' time digging around for the portsfiles and hacking them to make something that should Just Work actually work.

I can think of the following solutions:

  • rename this port to ncursesw and provide a real ncurses
  • change the build to make libncursesw.* and libncurses.*

comment:4 Changed 18 years ago by mww@…

Resolution: fixed
Status: newclosed

to take the safe way, I've just added a new port 'ncursesw' that holds the old configuration and a new port 'ncurses' that brings along the non-UTF8 interface and libs (but lacks the libs and terminfo files to not conflict with ncursesw). Therefore the ncurses port requires ncursesw to be installed. Hope this solves your issues.

comment:5 Changed 18 years ago by aips@…

(In reply to comment #4)

to take the safe way, I've just added a new port 'ncursesw' that holds the old configuration and a new port 'ncurses' that brings along the non-UTF8 interface and libs (but lacks the libs and terminfo files to not conflict with ncursesw). Therefore the ncurses port requires ncursesw to be installed. Hope this solves your issues.

this certainly will. thank you!

Note: See TracTickets for help on using tickets.