#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
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 19 years ago by blb@…
Owner: | changed from darwinports-bugs@… to mww@… |
---|
comment:2 Changed 19 years ago by mww@…
Summary: | can't link to dp libncurses → BUG: 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 19 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 19 years ago by mww@…
Resolution: | → fixed |
---|---|
Status: | new → closed |
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 19 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!
Assign to maintainer.