libncurses6_32bit
I am looking for the sources for the libncurses6-32bit-6.1-150000.5.24.1.x86_64 rpm. Is it the built from the normal ncurses src? I have a 3rd party software package that is looking for symbols that don't seem to be there. So I thought I would build it from src. But what source? ./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.3.20021019' not found (required by ./util/tbosdt) ./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.1.20000708' not found (required by ./util/tbosdt) Thanks Mark
On 8/7/24 6:18 AM, Mark Hounschell wrote:
I am looking for the sources for the libncurses6-32bit-6.1-150000.5.24.1.x86_64 rpm.
Is it the built from the normal ncurses src? I have a 3rd party software package that is looking
for symbols that don't seem to be there. So I thought I would build it from src. But what source?
./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.3.20021019' not found (required by ./util/tbosdt) ./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.1.20000708' not found (required by ./util/tbosdt)
Thanks
Mark
Mark, I'd grab the .srpm, extract the source and the .spec and take a look, e.g. for Tumbleweed: http://download.opensuse.org/source/tumbleweed/repo/oss/src/ncurses-6.5.2024... I'm scratching my head a bit on the symbol you are looking for, e.g. libncursesw.so.6: version `NCURSESW6_5.3.20021019 ^^^^ ^ ^^^ ^^^^^^^^ It could be perfectly ligit, but it looks like a Ver. 5 symbol being looked for in Ver. 6 dating from 2002? I've not run into this with ncurses, but I don't link against it that often. Also, look though the change log in the .spec file for any hint of a version or symbol change. What version of Leap or TW are you using? -- David C. Rankin, J.D.,P.E.
On 8/7/24 19:54, David C. Rankin wrote:
On 8/7/24 6:18 AM, Mark Hounschell wrote:
I am looking for the sources for the libncurses6-32bit-6.1-150000.5.24.1.x86_64 rpm.
Is it the built from the normal ncurses src? I have a 3rd party software package that is looking
for symbols that don't seem to be there. So I thought I would build it from src. But what source?
./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.3.20021019' not found (required by ./util/tbosdt) ./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.1.20000708' not found (required by ./util/tbosdt)
Thanks
Mark
Mark,
I'd grab the .srpm, extract the source and the .spec and take a look, e.g. for Tumbleweed:
http://download.opensuse.org/source/tumbleweed/repo/oss/src/ncurses-6.5.2024...
So it as I assumed it is in the normal srpm for ncurses.
I'm scratching my head a bit on the symbol you are looking for, e.g.
libncursesw.so.6: version `NCURSESW6_5.3.20021019 ^^^^ ^ ^^^ ^^^^^^^^
It could be perfectly ligit, but it looks like a Ver. 5 symbol being looked for in Ver. 6 dating from 2002? I've not run into this with ncurses, but I don't link against it that often. Also, look though the change log in the .spec file for any hint of a version or symbol change.
What version of Leap or TW are you using?
Ya, I downloaded the tarball from the official site and found no NCURSESW6_5.3.20021019 symbold at all. I will look at the spec file. I am running leap 15.6. Regards Mark
On 8/9/24 10:40, Mark Hounschell wrote:
On 8/7/24 19:54, David C. Rankin wrote:
On 8/7/24 6:18 AM, Mark Hounschell wrote:
I am looking for the sources for the libncurses6-32bit-6.1-150000.5.24.1.x86_64 rpm.
Is it the built from the normal ncurses src? I have a 3rd party software package that is looking
for symbols that don't seem to be there. So I thought I would build it from src. But what source?
./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.3.20021019' not found (required by ./util/tbosdt) ./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.1.20000708' not found (required by ./util/tbosdt)
Thanks
Mark
Mark,
I'd grab the .srpm, extract the source and the .spec and take a look, e.g. for Tumbleweed:
http://download.opensuse.org/source/tumbleweed/repo/oss/src/ncurses-6.5.2024...
So it as I assumed it is in the normal srpm for ncurses.
I'm scratching my head a bit on the symbol you are looking for, e.g.
libncursesw.so.6: version `NCURSESW6_5.3.20021019 ^^^^ ^ ^^^ ^^^^^^^^
It could be perfectly ligit, but it looks like a Ver. 5 symbol being looked for in Ver. 6 dating from 2002? I've not run into this with ncurses, but I don't link against it that often. Also, look though the change log in the .spec file for any hint of a version or symbol change.
What version of Leap or TW are you using?
Ya, I downloaded the tarball from the official site and found no
NCURSESW6_5.3.20021019 symbold at all. I will look at the spec file. I am running leap 15.6.
Regards
Mark
I have built the ncurses rpms from the srpm. The rpms created are: Wrote: /usr/src/packages/RPMS/x86_64/ncurses-utils-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-base-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-screen-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-iterm-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/libncurses5-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/libncurses6-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/ncurses-devel-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/ncurses5-devel-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/tack-6.1-150000.5.24.1.x86_64.rpm There are no NCURSESW6_5.3.20021019 symbols anywhere in the SOURCES /lib/libncursesw.so.6 comes from libncurses6-32bit-6.1-150000.5.24.1.x86_64 So where is the srpm for libncurses6-32bit-6.1-150000.5.24.1.x86_64? Regards Mark
On 10.08.2024 17:54, Mark Hounschell wrote:
On 8/9/24 10:40, Mark Hounschell wrote:
On 8/7/24 19:54, David C. Rankin wrote:
On 8/7/24 6:18 AM, Mark Hounschell wrote:
I am looking for the sources for the libncurses6-32bit-6.1-150000.5.24.1.x86_64 rpm.
Is it the built from the normal ncurses src? I have a 3rd party software package that is looking
for symbols that don't seem to be there. So I thought I would build it from src. But what source?
./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.3.20021019' not found (required by ./util/tbosdt) ./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.1.20000708' not found (required by ./util/tbosdt)
Thanks
Mark
Mark,
I'd grab the .srpm, extract the source and the .spec and take a look, e.g. for Tumbleweed:
http://download.opensuse.org/source/tumbleweed/repo/oss/src/ncurses-6.5.2024...
So it as I assumed it is in the normal srpm for ncurses.
I'm scratching my head a bit on the symbol you are looking for, e.g.
libncursesw.so.6: version `NCURSESW6_5.3.20021019 ^^^^ ^ ^^^ ^^^^^^^^
It could be perfectly ligit, but it looks like a Ver. 5 symbol being looked for in Ver. 6 dating from 2002? I've not run into this with ncurses, but I don't link against it that often. Also, look though the change log in the .spec file for any hint of a version or symbol change.
What version of Leap or TW are you using?
Ya, I downloaded the tarball from the official site and found no
NCURSESW6_5.3.20021019 symbold at all. I will look at the spec file. I am running leap 15.6.
Regards
Mark
I have built the ncurses rpms from the srpm. The rpms created are:
Wrote: /usr/src/packages/RPMS/x86_64/ncurses-utils-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-base-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-screen-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-iterm-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/libncurses5-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/libncurses6-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/ncurses-devel-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/ncurses5-devel-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/tack-6.1-150000.5.24.1.x86_64.rpm
There are no NCURSESW6_5.3.20021019 symbols anywhere in the SOURCES
ncurses supports ABI 5 and ABI 6 and dynamically generates version string from map files in package subdirectory. It is not a problem. The problem is that SUSE builds ncurses with --with-pthread and --enable-weak-symbols. The former adds suffix `T` to symbol version string (NCURSESW6 -> NCURSESTW6), but the latter builds library with non-threaded name (libncursesw instead of libncursestw). So, exported symbol versions do not match library name. The description of --enable-weak-symbols suggests that with that option resulting library should support both threaded and non-threaded operation. In which case it probably has to export both versions. I do not know if it is even possible. Your best bet is to rebuild your program against SUSE libncurses.
/lib/libncursesw.so.6 comes from libncurses6-32bit-6.1-150000.5.24.1.x86_64
So where is the srpm for libncurses6-32bit-6.1-150000.5.24.1.x86_64?
There is only one SRPM.
On 8/10/24 13:20, Andrei Borzenkov wrote:
On 10.08.2024 17:54, Mark Hounschell wrote:
On 8/9/24 10:40, Mark Hounschell wrote:
On 8/7/24 19:54, David C. Rankin wrote:
On 8/7/24 6:18 AM, Mark Hounschell wrote:
I am looking for the sources for the libncurses6-32bit-6.1-150000.5.24.1.x86_64 rpm.
Is it the built from the normal ncurses src? I have a 3rd party software package that is looking
for symbols that don't seem to be there. So I thought I would build it from src. But what source?
./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.3.20021019' not found (required by ./util/tbosdt) ./util/tbosdt: /lib/libncursesw.so.6: version `NCURSESW6_5.1.20000708' not found (required by ./util/tbosdt)
Thanks
Mark
Mark,
I'd grab the .srpm, extract the source and the .spec and take a look, e.g. for Tumbleweed:
http://download.opensuse.org/source/tumbleweed/repo/oss/src/ncurses-6.5.2024...
So it as I assumed it is in the normal srpm for ncurses.
I'm scratching my head a bit on the symbol you are looking for, e.g.
libncursesw.so.6: version `NCURSESW6_5.3.20021019 ^^^^ ^ ^^^ ^^^^^^^^
It could be perfectly ligit, but it looks like a Ver. 5 symbol being looked for in Ver. 6 dating from 2002? I've not run into this with ncurses, but I don't link against it that often. Also, look though the change log in the .spec file for any hint of a version or symbol change.
What version of Leap or TW are you using?
Ya, I downloaded the tarball from the official site and found no
NCURSESW6_5.3.20021019 symbold at all. I will look at the spec file. I am running leap 15.6.
Regards
Mark
I have built the ncurses rpms from the srpm. The rpms created are:
Wrote: /usr/src/packages/RPMS/x86_64/ncurses-utils-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-base-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-screen-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-iterm-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/libncurses5-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/libncurses6-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/terminfo-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/ncurses-devel-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/ncurses5-devel-6.1-150000.5.24.1.x86_64.rpm Wrote: /usr/src/packages/RPMS/x86_64/tack-6.1-150000.5.24.1.x86_64.rpm
There are no NCURSESW6_5.3.20021019 symbols anywhere in the SOURCES
ncurses supports ABI 5 and ABI 6 and dynamically generates version string from map files in package subdirectory. It is not a problem.
The problem is that SUSE builds ncurses with --with-pthread and --enable-weak-symbols. The former adds suffix `T` to symbol version string (NCURSESW6 -> NCURSESTW6), but the latter builds library with non-threaded name (libncursesw instead of libncursestw). So, exported symbol versions do not match library name.
The description of --enable-weak-symbols suggests that with that option resulting library should support both threaded and non-threaded operation. In which case it probably has to export both versions. I do not know if it is even possible.
Your best bet is to rebuild your program against SUSE libncurses.
/lib/libncursesw.so.6 comes from libncurses6-32bit-6.1-150000.5.24.1.x86_64
So where is the srpm for libncurses6-32bit-6.1-150000.5.24.1.x86_64?
There is only one SRPM.
#rpm -qf /lib/libncursesw.so.6 libncurses6-32bit-6.1-150000.5.24.1.x86_64 Then why did the build I did not include the building of libncurses6-32bit-6.1-150000.5.24.1.x86_64? That rpm is where /lib/libncursesw.so.6 comes from. #rpmbuild -bb /usr/src/SPECS/ncurses.spec is the command used. Mark
On 10.08.2024 20:51, Mark Hounschell wrote:
There is only one SRPM.
#rpm -qf /lib/libncursesw.so.6 libncurses6-32bit-6.1-150000.5.24.1.x86_64
Then why did the build I did not include the building of libncurses6-32bit-6.1-150000.5.24.1.x86_64? That rpm is where /lib/libncursesw.so.6 comes from.
#rpmbuild -bb /usr/src/SPECS/ncurses.spec
is the command used.
Because rpmbuild defaults to building RPM for the same architecture as your host. The libncurses6-32bit is actually built as libncurses6 for i386 (or whatever exact architecture is used) and then imported into 64 bit repository under the name libncurses6-32bit.
On 8/10/24 15:07, Andrei Borzenkov wrote:
On 10.08.2024 20:51, Mark Hounschell wrote:
There is only one SRPM.
#rpm -qf /lib/libncursesw.so.6 libncurses6-32bit-6.1-150000.5.24.1.x86_64
Then why did the build I did not include the building of libncurses6-32bit-6.1-150000.5.24.1.x86_64? That rpm is where /lib/libncursesw.so.6 comes from.
#rpmbuild -bb /usr/src/SPECS/ncurses.spec
is the command used.
Because rpmbuild defaults to building RPM for the same architecture as your host. The libncurses6-32bit is actually built as libncurses6 for i386 (or whatever exact architecture is used) and then imported into 64 bit repository under the name libncurses6-32bit.
So you are saying that they took the ncurses-6.1-150000.5.24.1.src.rpm and built it on a 32 bit platform? What OS is running on that 32 bit platform? Obviously not any recent leap as 32 bit support has been null for some time. Mark
On 8/10/24 3:15 PM, Mark Hounschell wrote:
So you are saying that they took the ncurses-6.1-150000.5.24.1.src.rpm and built it on a 32 bit platform? What OS is running on that 32 bit platform? Obviously not any recent leap as 32 bit support has been null for some time.
If the symbol is in the -32-bit package, then all you need to do is install the 32-bit package on your system. The 32-bit does NOT mean it was built on a 32-bit box, it means the compiler target was a 32-bit executable (e.g. compiling with -m32 or the like) We have the 32-bit package for just that reason, to allow you to build 32-bit executables on your current 64-bit box. Seeing the dates on the symbols of 2002 and 2005, if I recall correctly from the post, makes sense that would relate to the days of 32-bit computing. I generally install the normal and 32-bit versions of libraries any time I may want to target a 32-bit build, to dump 32-bit asselbler output, etc.. It's quite common, especially when working with other processors like Raspberry Pi, ect. that still have a 32-bit architecture. -- David C. Rankin, J.D.,P.E.
On 10.08.2024 23:15, Mark Hounschell wrote:
On 8/10/24 15:07, Andrei Borzenkov wrote:
On 10.08.2024 20:51, Mark Hounschell wrote:
There is only one SRPM.
#rpm -qf /lib/libncursesw.so.6 libncurses6-32bit-6.1-150000.5.24.1.x86_64
Then why did the build I did not include the building of libncurses6-32bit-6.1-150000.5.24.1.x86_64? That rpm is where /lib/libncursesw.so.6 comes from.
#rpmbuild -bb /usr/src/SPECS/ncurses.spec
is the command used.
Because rpmbuild defaults to building RPM for the same architecture as your host. The libncurses6-32bit is actually built as libncurses6 for i386 (or whatever exact architecture is used) and then imported into 64 bit repository under the name libncurses6-32bit.
So you are saying that they
Who are "they"?
took the ncurses-6.1-150000.5.24.1.src.rpm and built it on a 32 bit platform?
No. I say that it was built *for* 32 bit platform. Whether build itself happened on 32 or 64 bit I do not know.
What OS is running on that 32 bit platform?
You can look at a build log of any package on OBS to see what has been installed. In any case, I fail to see what you are trying to achieve. If you rebuild SUSE package you get exactly what you already have. You need to build ncurses with different options (but then you cannot use it as replacement for SUSE package because it may break some other software) or rebuild your program against SUSE package.
Obviously not any recent leap as 32 bit support has been null for some time.
Mark
participants (3)
-
Andrei Borzenkov
-
David C. Rankin
-
Mark Hounschell