[opensuse-packaging] ncurses maintainers please help fix "presage" package.
Hi, packagers, I'm preparing for fcitx 4.2.6 updates in home:csslayer:fcitx repository. And I found something unbelievable about ncurses-devel: https://build.opensuse.org/package/show?package=presage&project=home%3Acsslayer%3Afcitx In this "presage" package, I can't build "presage-demo" package for openSUSE: [ 62s] [137/306] preinstalled libncurses5-5.9-12.5.1 [ 62s] [138/306] installing libncurses6-5.9-12.5.1 [ 78s] [267/306] installing ncurses-devel-5.9-12.5.1 [ 111s] checking for initscr in -lcurses... no [ 111s] configure: WARNING: curses library not found. curses demo programs will not be built. [ 111s] checking curses.h usability... yes [ 111s] checking curses.h presence... yes [ 111s] checking for curses.h... yes But the same BuildRequires works in Fedora. The related presage code in src/tools/presageDemo.cpp 129:3 is: // curses initscr(); noecho(); cbreak(); keypad(stdscr, TRUE); clear(); refresh(); disclaimer(); So where's "initscr" function goes in our ncurses? Thanks in advance Marguerite -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, Sep 14, 2012 at 01:33:03PM +0800, Marguerite Su wrote:
Hi, packagers,
I'm preparing for fcitx 4.2.6 updates in home:csslayer:fcitx repository.
And I found something unbelievable about ncurses-devel:
https://build.opensuse.org/package/show?package=presage&project=home%3Acsslayer%3Afcitx
In this "presage" package, I can't build "presage-demo" package for openSUSE:
[ 62s] [137/306] preinstalled libncurses5-5.9-12.5.1 [ 62s] [138/306] installing libncurses6-5.9-12.5.1 [ 78s] [267/306] installing ncurses-devel-5.9-12.5.1
[ 111s] checking for initscr in -lcurses... no [ 111s] configure: WARNING: curses library not found. curses demo programs will not be built. [ 111s] checking curses.h usability... yes [ 111s] checking curses.h presence... yes [ 111s] checking for curses.h... yes
But the same BuildRequires works in Fedora.
The related presage code in src/tools/presageDemo.cpp 129:3 is:
// curses initscr(); noecho(); cbreak(); keypad(stdscr, TRUE); clear(); refresh();
disclaimer();
So where's "initscr" function goes in our ncurses?
Install ncurses-devel and read /usr/share/doc/packages/ncurses/README.devel Werner -- "Having a smoking section in a restaurant is like having a peeing section in a swimming pool." -- Edward Burr -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, Sep 14, 2012 at 4:41 PM, Dr. Werner Fink <werner@suse.de> wrote:
Install ncurses-devel and read
/usr/share/doc/packages/ncurses/README.devel
Hi, Werner, I used these CXXFLAGS and LIBS but it still complains initscr not found... export LIBS+="-lm -lX11 -lgmodule-2.0 -L/usr/lib64/ncurses6 -lncurses -ltinfo" %if 0%{?suse_version} %configure CXXFLAGS="$CXXFLAGS -I/usr/include/ncurses6/ncurses -I/usr/include/ncurses6" %else %configure %endif Where am I wrong? Thanks Marguerite -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
I even tried: 4 combinations (ncurses, ncursesw, ncurses6, ncursesw6) of this script: %build export LDFLAGS="$LDFLAGS blabla" export CXXFLAGS="$CXXFLAGS blabla" export CFLAGS="$CFLAGS blabla" export LIBS="$LIBS blabla" %configure But they all failed. (it took my entire Saturday , it's nearly a brute force attack, but the enemy is still solid.) So I'd say, README.devel is useless to my level. So please offer another hand in hand fix. OFF-TOPIC-COMPLAIN: Have anyone ever think about such packaging of ncurses will drive someone who don't know FLAGS and LIBS at all into crazy? Marguerite -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
At Sat, 15 Sep 2012 15:33:44 +0800, Marguerite Su wrote:
I even tried:
4 combinations (ncurses, ncursesw, ncurses6, ncursesw6) of this script:
%build export LDFLAGS="$LDFLAGS blabla" export CXXFLAGS="$CXXFLAGS blabla" export CFLAGS="$CFLAGS blabla" export LIBS="$LIBS blabla" %configure
But they all failed. (it took my entire Saturday , it's nearly a brute force attack, but the enemy is still solid.)
Are you sure that $LIBS is evaluated in your setup? Usually $CFLAGS and $CXXFLAGS are taken by auto-tools, but $LIBS and $LDFLAGS aren't.
So I'd say, README.devel is useless to my level.
So please offer another hand in hand fix.
OFF-TOPIC-COMPLAIN: Have anyone ever think about such packaging of ncurses will drive someone who don't know FLAGS and LIBS at all into crazy?
Blame ncurses developers who didn't keep the compatibility :) Takashi -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Mon, Sep 17, 2012 at 10:02 PM, Takashi Iwai <tiwai@suse.de> wrote:
Are you sure that $LIBS is evaluated in your setup? Usually $CFLAGS and $CXXFLAGS are taken by auto-tools, but $LIBS and $LDFLAGS aren't.
Hi, tiwai, Yes, I'm sure...$LIBS also contains another important options like "-lm". if it's not evaluated, the build will fail at a different place.
Blame ncurses developers who didn't keep the compatibility :)
Actually I don't care too much about basic system packages, unless it blocks me from building. It's not a Linux case but a SuSE case. Fedora seems to contain only libncurses.so.5.9 in ncurses-libs package. But it seems such packaging didn't block them from making a distro. I believe our ncurses must have been evaluated carefully to offer such an multi-version solution, but we'd better make it easier for packagers and self-builders to use. A README.devel is too low level to understand, you know, there's a huge gap in packaging skills, infrastructure knowledge between base system packagers and high-end application packagers. Personaly I still can't understand the difference between the libncurses.so libncurses5 provides and the libncurses.so libncurses6 provides, because I don't know where to find things like "ABI" and there's no apparent difference in appearance like libncurses.so.5 and libncurses.so.6. So under such a situation, how could I myself trust that I use a correct version? Just a few thoughts. Greetings Marguerite
Takashi
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
At Tue, 18 Sep 2012 14:06:51 +0800, Marguerite Su wrote:
On Mon, Sep 17, 2012 at 10:02 PM, Takashi Iwai <tiwai@suse.de> wrote:
Are you sure that $LIBS is evaluated in your setup? Usually $CFLAGS and $CXXFLAGS are taken by auto-tools, but $LIBS and $LDFLAGS aren't.
Hi, tiwai,
Yes, I'm sure...$LIBS also contains another important options like "-lm". if it's not evaluated, the build will fail at a different place.
OK, then the reason is that configure script is looking for libcurses.so blindly. You need to fix configure.ac in such a case. Takashi -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Sep 18, 2012 at 2:58 PM, Takashi Iwai <tiwai@suse.de> wrote:
OK, then the reason is that configure script is looking for libcurses.so blindly. You need to fix configure.ac in such a case.
Hi, tiwai, Thanks for showing the way! I found Joey Zheng to fix configure.ac ( I'm not that autotools ninja)
Takashi
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Sep 18, 2012 at 02:06:51PM +0800, Marguerite Su wrote:
On Mon, Sep 17, 2012 at 10:02 PM, Takashi Iwai <tiwai@suse.de> wrote:
Are you sure that $LIBS is evaluated in your setup? Usually $CFLAGS and $CXXFLAGS are taken by auto-tools, but $LIBS and $LDFLAGS aren't.
Hi, tiwai,
Yes, I'm sure...$LIBS also contains another important options like "-lm". if it's not evaluated, the build will fail at a different place.
Blame ncurses developers who didn't keep the compatibility :)
Actually I don't care too much about basic system packages, unless it blocks me from building.
It's not a Linux case but a SuSE case. Fedora seems to contain only libncurses.so.5.9 in ncurses-libs package. But it seems such packaging didn't block them from making a distro.
I believe our ncurses must have been evaluated carefully to offer such an multi-version solution, but we'd better make it easier for packagers and self-builders to use. A README.devel is too low level to understand, you know, there's a huge gap in packaging skills, infrastructure knowledge between base system packagers and high-end application packagers.
Personaly I still can't understand the difference between the libncurses.so libncurses5 provides and the libncurses.so libncurses6 provides, because I don't know where to find things like "ABI" and there's no apparent difference in appearance like libncurses.so.5 and libncurses.so.6.
So under such a situation, how could I myself trust that I use a correct version?
Hmmm ... I'm not aware that README.devel is that low level. Things like LIBS="$(ncursesw5-config --libs)" CFLAGS="$(ncursesw5-config --cflags)" export LIBS CFLAGS shouldn't that low level. The reason of having 4 ncurses config scripts is simply that there are still applications without wide character support. For this I've done ncurses5-config and ncurses6-config, for all others the ncursesw5-config and ncursesw6-config are usefull. The ncurses6-config and ncursesw6-config are the upcoming new ABI which includes experimental mouse version 2 supports wheel mice with buttons 4 and 5. The experimental extended colors allows encoding of 256 foreground and background colors, e.g., with the xterm-256color or xterm-88color terminfo entries. This requires ABI 6 because it changes the size of cchar_t. Beside this ABI 6 will provide full reentrant support as well as extend pthread support. All four versions are binary incompatible otherwise I would not provide four version of libncurses nor four include paths. OK I could also support only one ncurses version like ncursesw5 to allow developers not to read README.devel but this would intend that e.g. YaST2 ncurses GUI would loose reentrant and pthread safe ncurses support. Werner -- "Having a smoking section in a restaurant is like having a peeing section in a swimming pool." -- Edward Burr -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
At Tue, 18 Sep 2012 09:52:15 +0200, Dr. Werner Fink wrote:
On Tue, Sep 18, 2012 at 02:06:51PM +0800, Marguerite Su wrote:
On Mon, Sep 17, 2012 at 10:02 PM, Takashi Iwai <tiwai@suse.de> wrote:
Are you sure that $LIBS is evaluated in your setup? Usually $CFLAGS and $CXXFLAGS are taken by auto-tools, but $LIBS and $LDFLAGS aren't.
Hi, tiwai,
Yes, I'm sure...$LIBS also contains another important options like "-lm". if it's not evaluated, the build will fail at a different place.
Blame ncurses developers who didn't keep the compatibility :)
Actually I don't care too much about basic system packages, unless it blocks me from building.
It's not a Linux case but a SuSE case. Fedora seems to contain only libncurses.so.5.9 in ncurses-libs package. But it seems such packaging didn't block them from making a distro.
I believe our ncurses must have been evaluated carefully to offer such an multi-version solution, but we'd better make it easier for packagers and self-builders to use. A README.devel is too low level to understand, you know, there's a huge gap in packaging skills, infrastructure knowledge between base system packagers and high-end application packagers.
Personaly I still can't understand the difference between the libncurses.so libncurses5 provides and the libncurses.so libncurses6 provides, because I don't know where to find things like "ABI" and there's no apparent difference in appearance like libncurses.so.5 and libncurses.so.6.
So under such a situation, how could I myself trust that I use a correct version?
Hmmm ... I'm not aware that README.devel is that low level. Things like
LIBS="$(ncursesw5-config --libs)" CFLAGS="$(ncursesw5-config --cflags)" export LIBS CFLAGS
shouldn't that low level. The reason of having 4 ncurses config scripts is simply that there are still applications without wide character support. For this I've done ncurses5-config and ncurses6-config, for all others the ncursesw5-config and ncursesw6-config are usefull.
The ncurses6-config and ncursesw6-config are the upcoming new ABI which includes experimental mouse version 2 supports wheel mice with buttons 4 and 5. The experimental extended colors allows encoding of 256 foreground and background colors, e.g., with the xterm-256color or xterm-88color terminfo entries. This requires ABI 6 because it changes the size of cchar_t. Beside this ABI 6 will provide full reentrant support as well as extend pthread support.
All four versions are binary incompatible otherwise I would not provide four version of libncurses nor four include paths. OK I could also support only one ncurses version like ncursesw5 to allow developers not to read README.devel but this would intend that e.g. YaST2 ncurses GUI would loose reentrant and pthread safe ncurses support.
I guess a bit cleaner way is to split ncurses-devel to ncurses-devel and (lib)ncurses6-devel and provide pkg-config stuff. Of course, this will break builds of many packages, so no easy but painful way. But this thread made me wonder what is the reason to keep ncurses5 as a sort of "default". Any obstacle to port from ncurses5 to ncurses6, e.g. serious API incompatibilities? Takashi -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Sep 18, 2012 at 10:13:14AM +0200, Takashi Iwai wrote:
I guess a bit cleaner way is to split ncurses-devel to ncurses-devel and (lib)ncurses6-devel and provide pkg-config stuff. Of course, this will break builds of many packages, so no easy but painful way.
But this thread made me wonder what is the reason to keep ncurses5 as a sort of "default". Any obstacle to port from ncurses5 to ncurses6, e.g. serious API incompatibilities?
I'm waiting that ABI 6 becomes stable which will happen if the version of ncurses will cross 6.0 Werner -- "Having a smoking section in a restaurant is like having a peeing section in a swimming pool." -- Edward Burr -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Sep 18, 2012 at 3:52 PM, Dr. Werner Fink <werner@suse.de> wrote:
Hmmm ... I'm not aware that README.devel is that low level. Things like
LIBS="$(ncursesw5-config --libs)" CFLAGS="$(ncursesw5-config --cflags)" export LIBS CFLAGS
shouldn't that low level. The reason of having 4 ncurses config scripts is simply that there are still applications without wide character support. For this I've done ncurses5-config and ncurses6-config, for all others the ncursesw5-config and ncursesw6-config are usefull.
The ncurses6-config and ncursesw6-config are the upcoming new ABI which includes experimental mouse version 2 supports wheel mice with buttons 4 and 5. The experimental extended colors allows encoding of 256 foreground and background colors, e.g., with the xterm-256color or xterm-88color terminfo entries. This requires ABI 6 because it changes the size of cchar_t. Beside this ABI 6 will provide full reentrant support as well as extend pthread support.
All four versions are binary incompatible otherwise I would not provide four version of libncurses nor four include paths. OK I could also support only one ncurses version like ncursesw5 to allow developers not to read README.devel but this would intend that e.g. YaST2 ncurses GUI would loose reentrant and pthread safe ncurses support.
Werner
Hi, Werner, Thanks for explanation. In this case it's presage upstream to blame...who seems to "hard-code" curses which make ncurses not possible. To change configure.ac will work. Now I had the basic knowledge of our 4 versions of ncurses (You're a good teacher, last time it was freetype2), but...err...actually knowing why doesn't mean knowing how. eg: I know the difference between the libraries, but I still don't know which one presage used, that's what blocks me from "choosing" which lib to use...so everytime I face ncurses , I have to launch a saturation attack... Marguerite -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Dnia piątek, 14 września 2012 13:33:03 Marguerite Su pisze:
Hi, packagers,
I'm preparing for fcitx 4.2.6 updates in home:csslayer:fcitx repository.
And I found something unbelievable about ncurses-devel:
https://build.opensuse.org/package/show?package=presage&project=home%3Acssla yer%3Afcitx
In this "presage" package, I can't build "presage-demo" package for openSUSE:
[ 62s] [137/306] preinstalled libncurses5-5.9-12.5.1 [ 62s] [138/306] installing libncurses6-5.9-12.5.1 [ 78s] [267/306] installing ncurses-devel-5.9-12.5.1
[ 111s] checking for initscr in -lcurses... no
in -lncurses would work
So where's "initscr" function goes in our ncurses?
HTH, Chris -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Dnia niedziela, 16 września 2012 15:36:32 Marguerite Su pisze:
On Sun, Sep 16, 2012 at 3:15 PM, Křištof Želechovski
<yecril71pl@gmail.com> wrote:
in -lncurses would work
...sadly not.
Please quote the relevant log. Chris -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Sun, Sep 16, 2012 at 6:10 PM, Křištof Želechovski <yecril71pl@gmail.com> wrote:
Please quote the relevant log.
Chris
Hi, Sorry for the late reply, this thread went to my bulk box. https://build.opensuse.org/package/show?package=presage&project=home%3AMargueriteSu You can get fail log here. 1. Installed packages: ncurses-devel, libncurses5 and libncurses6. In the %build section, LIBS="-lm -lX11 -lgmoudule-2.0 -lncurses". And the LIBS is exported, because without "-lm" presage would fail earlier than it does. 2. If I add CFLAGS or CXXFLAGS, it'll build as "g++ -g blabla -I/usr/include/ncurses", like this, but in the configure log, it still shows "initscr in lcurses...no" complain, then no ncurses demo support will be built. Thanks a lot for help. Marguerite -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Dnia wtorek, 18 września 2012 13:51:52 Marguerite Su pisze:
On Sun, Sep 16, 2012 at 6:10 PM, Křištof Želechovski
<yecril71pl@gmail.com> wrote:
Please quote the relevant log.
Chris
Hi,
Sorry for the late reply, this thread went to my bulk box.
https://build.opensuse.org/package/show?package=presage&project=home%3AMargu eriteSu
You can get fail log here.
Package "presage" not found in project "home:MargueriteSu" -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (4)
-
Dr. Werner Fink
-
Křištof Želechovski
-
Marguerite Su
-
Takashi Iwai