Bug 911540 - ncurses C++ dynamic library missing
Summary: ncurses C++ dynamic library missing
Alias: None
Product: Fedora
Classification: Fedora
Component: ncurses   
(Show other bugs)
Version: 18
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Miroslav Lichvar
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2013-02-15 09:58 UTC by Tim Niemueller
Modified: 2013-05-01 03:34 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2013-03-18 17:52:49 UTC
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Patch to build using libtool for C++ shared library (2.11 KB, patch)
2013-03-05 21:34 UTC, Tim Niemueller
no flags Details | Diff

Description Tim Niemueller 2013-02-15 09:58:41 UTC
Description of problem:
The ncurses-devel package comes with the C++ development header files. For the C++ wrapper, no dynamic library is built. Therefore, installing only ncurses-devel makes C++ wrapper builds fail, as the required library is missing. It is only available if ncurses-static is installed (which contains the static versions of the C++ wrapper libraries).

Version-Release number of selected component (if applicable):

Additional info:
There are two ways to fix this. The preferred solution would be to patch the configure scripts to also build the dynamic libraries, properly package them, and remove the ncurses++ pkg-config file deletion from the spec file. Then the C++ wrapper would be a first-class citizen. Another option would be to make the -devel subpkg depend on the -static subpkg. And yet another option would be to bring back the c++-devel subpkg containing both, the static library and the C++ headers. Dropping the C++ support would be bad, as software can depend on it.

Comment 1 Tim Niemueller 2013-03-05 21:34:09 UTC
Created attachment 705670 [details]
Patch to build using libtool for C++ shared library

This patch applies with git am.

Comment 2 Miroslav Lichvar 2013-03-06 08:36:30 UTC
Thanks for the patch.

We can also ask the upstream maintainer if there are plans to build shared ncurses++ also in the non-libtool build.

Comment 3 Thomas E. Dickey 2013-03-06 11:59:25 UTC
It's been neglected (a) since rules for building C++ shared libraries differ for various compilers and (b) there aren't a lot of users of the C++ binding.  (It's likely that libtool only works reliablyfor g++, which in this context isn't an argument about (a) - and making g++ work with shared libraries in the normal build is doable - will add it to my to-do list.

Comment 4 Tim Niemueller 2013-03-06 16:15:29 UTC
What's the problem about just using the libtool-based build in Fedora? It works just fine, I'm using it...

Comment 5 Miroslav Lichvar 2013-03-06 16:34:06 UTC
I'm not against using it, but I think it would be nice if the default build created shared ncurses++ too, perhaps more applications will be written for it if it's included in more distributions.

I'd like to keep the flags for parallel build though.

Comment 6 Tim Niemueller 2013-03-06 16:42:49 UTC
Ok, I see and I agree. On Ubuntu they also only build the static library, but at least it's in the -dev package and comes with the pkg-config file (that this file is missing and deleted in the spec actually bothers me the most).

Plan B could be to re-introduce the ncurses-cpp-devel package that brings the required files and pulls in the static libraries. Though I'd still prefer a dynamic lib it would at least bring back the pkg-config file without always pulling in the static lib.

Comment 7 Miroslav Lichvar 2013-03-06 16:50:12 UTC
Static libraries are strongly discouraged in Fedora and I'd like to eventually see the -static subpackage dropped.

I think building and including the shared library is the correct approach.

Comment 8 Thomas E. Dickey 2013-03-14 21:24:48 UTC
I added a configure option last weekend to address this; there's
some followup changes which will be in this week's patch.

Comment 9 Miroslav Lichvar 2013-03-18 17:52:49 UTC
Thanks. The shared C++ libs are now packaged in ncurses-5.9-9.20130316.fc19.

There was a small problem with RPATH being set in the C++ libs. Thomas, should LDFLAGS in the c++ Makefile.in include LOCAL_LDFLAGS?

Comment 10 Thomas E. Dickey 2013-03-19 10:41:51 UTC
no - I overlooked it.  That is needed for the demo program,
but should not be used for the library.  I'll work on this,
to separate the two uses.

Comment 11 Fedora Update System 2013-04-15 12:46:28 UTC
ncurses-5.9-10.20130413.fc18 has been submitted as an update for Fedora 18.

Comment 12 Fedora Update System 2013-04-15 13:03:53 UTC
ncurses-5.9-10.20130413.fc17 has been submitted as an update for Fedora 17.

Comment 13 Fedora Update System 2013-05-01 03:27:23 UTC
ncurses-5.9-10.20130413.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2013-05-01 03:34:04 UTC
ncurses-5.9-10.20130413.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.