[Bug 1119646] New: package perl-Curses is broken
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646 Bug ID: 1119646 Summary: package perl-Curses is broken Classification: openSUSE Product: openSUSE Distribution Version: Leap 15.0 Hardware: x86-64 OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: Other Assignee: bnc-team-screening@forge.provo.novell.com Reporter: suse-obs@s-boehringer.org QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Created attachment 792806 --> http://bugzilla.opensuse.org/attachment.cgi?id=792806&action=edit patch for CursesFun.c to solve the issue The following functions are no longer defined but are needed by other perl modules such as Curses::UI. The build-log of a source build of the perl module (version 1.36) Curses shows: function 'getparyx' NOT found function 'getbegyx' NOT found function 'getmaxyx' NOT found The attached patch for CursesFun.c forces the definition and resolves the issue with a non-upstreamable patch. The true issue seems to lie in the configuration which fails to define C-preprocessor variables. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646#c4
--- Comment #4 from Dr. Werner Fink
@Werner, if it is not possible to enable them from ncurses I'll redefine them inside the perl-Curses package.
As libncurses(+libtinfo+libtic) as well as libncursesw(+libtinfo+libticw) are trheadsafe there could be missed some functions, nevertheess IMHO something is broken in the build of perl-Curses as I see b> nm -D /lib64/libncurses.so.6.1 /lib64/libtinfo.so.6.1 /lib64/libtic.so.6.1 | grep -E 'wattr_get|color_content|pair_content|getyx|getparyx|getmaxyx|getsyx|mousemask|wmouse_trafo|flusok|getcap|touchoverlap|menu_format|scale_menu|menu_spacing|scale_form|field_info|dynamic_field_info' 000000000000d890 T color_content 000000000000d700 T color_content_sp 0000000000012b90 T mousemask 0000000000012a90 T mousemask_sp 000000000000da10 T pair_content 000000000000d970 T pair_content_sp 000000000000f4c0 T wattr_get 0000000000012c70 T wmouse_trafo b> nm -D /lib64/libncursesw.so.6.1 /lib64/libtinfo.so.6.1 /lib64/libticw.so.6.1 | grep -E 'wattr_get|color_content|pair_content|getyx|getparyx|getmaxyx|getsyx|mousemask|wmouse_trafo|flusok|getcap|touchoverlap|menu_format|scale_menu|menu_spacing|scale_form|field_info|dynamic_field_info' 0000000000011160 T color_content 0000000000011090 T color_content_sp 0000000000011720 T extended_color_content 0000000000011630 T extended_color_content_sp 0000000000011740 T extended_pair_content 0000000000011640 T extended_pair_content_sp 0000000000017d30 T mousemask 0000000000017c30 T mousemask_sp 00000000000112e0 T pair_content 0000000000011240 T pair_content_sp 0000000000013070 T wattr_get 0000000000017e10 T wmouse_trafo b> grep -E 'wattr_get|color_content|pair_content|getyx|getparyx|getmaxyx|getsyx|mousemask|wmouse_trafo|flusok|getcap|touchoverlap|menu_format|scale_menu|menu_spacing|scale_form|field_info|dynamic_field_info' /usr/include/ncurses.h | grep -v NCURSES_EXPORT #define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) #define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) #define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) #define getsyx(y,x) do { if (newscr) { \ getyx(newscr,(y), (x)); \ #define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) #define wattr_get(win,a,p,opts) \ #define wattr_get(win,a,p,opts) \ #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) b> grep -E 'wattr_get|color_content|pair_content|getyx|getparyx|getmaxyx|getsyx|mousemask|wmouse_trafo|flusok|getcap|touchoverlap|menu_format|scale_menu|menu_spacing|scale_form|field_info|dynamic_field_info' /usr/include/ncursesw/ncurses.h | grep -v NCURSES_EXPORT #define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) #define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) #define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) #define getsyx(y,x) do { if (newscr) { \ getyx(newscr,(y), (x)); \ #define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) #define wattr_get(win,a,p,opts) \ #define wattr_get(win,a,p,opts) \ #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
Just for reference, here is the list of all not found symbols:
function 'wattr_get' NOT found function 'color_content' NOT found function 'pair_content' NOT found function 'getyx' NOT found function 'getparyx' NOT found function 'getbegyx' NOT found function 'getmaxyx' NOT found function 'getsyx' NOT found function 'mousemask' NOT found function 'wmouse_trafo' NOT found function 'flusok' NOT found function 'getcap' NOT found function 'touchoverlap' NOT found function 'menu_format' NOT found function 'scale_menu' NOT found function 'menu_spacing' NOT found function 'scale_form' NOT found function 'field_info' NOT found function 'dynamic_field_info' NOT found
Of course, not all symbols are needed and some of them are already deprecated.
-- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646#c5
--- Comment #5 from Dr. Werner Fink
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646#c6
--- Comment #6 from Dr. Werner Fink
From ncurses-6.1/INSTALL
--enable-opaque-curses --enable-opaque-form --enable-opaque-menu --enable-opaque-panel Define symbol in curses.h which controls whether some library structures are treated as "opaque". The --enable-opaque-curses option is overridden by the --enable-reentrant option. ... --enable-reentrant is set --enable-reentrant Compile configuration which improves reentrant use of the library by reducing global and static variables. This option is also set if --with-pthread is used. Enabling this option adds a "t" to the library names, except for the special case when --enable-weak-symbols is also used. ... and also --enable-weak-symbols ... there is no "t" added to the library names -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646#c7
--- Comment #7 from Dr. Werner Fink
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646#c8
--- Comment #8 from Pedro Monreal Gonzalez
As libncurses(+libtinfo+libtic) as well as libncursesw(+libtinfo+libticw) are trheadsafe there could be missed some functions, nevertheess IMHO something is broken in the build of perl-Curses as I see
Hmm, not sure yet why perl-Curses doesn't find them. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646#c9
--- Comment #9 from Dr. Werner Fink
From the package I see
CURSES_CFLAGS: -I and -D options needed at compile time for access to the basic Curses library (libcurses). CURSES_LDFLAGS: -L and -l options needed at link time for access to the basic Curses library (libcurses). (this really must be only -L and -l options; Makefile.PL parses it. Furthermore, there can't be any space between the -L or -l and its value). CURSES_PANEL_CFLAGS CURSES_PANEL_LDFLAGS CURSES_MENU_CFLAGS CURSES_MENU_LDFLAGS CURSES_FORM_CFLAGS CURSES_FORM_LDFLAGS ... that is that something like (for libncursesw with "w" for wide) CURSES_CFLAGS="$(pkg-config --cflags ncursesw)" CURSES_LDFLAGS="$(pkg-config --libs ncursesw)" CURSES_PANEL_CFLAGS="$(pkg-config --cflags panelw)" CURSES_PANEL_LDFLAGS="$(pkg-config --libs panelw)" CURSES_MENU_CFLAGS="$(pkg-config --cflags menuw)" CURSES_MENU_LDFLAGS="$(pkg-config --libs menuw)" CURSES_FORM_CFLAGS="$(pkg-config --cflags formw)" CURSES_FORM_LDFLAGS="$(pkg-config --libs formw)" export ${!CURSES_*} for the very first lines in the %build section might help here -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646#c10
--- Comment #10 from Dr. Werner Fink
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646
http://bugzilla.opensuse.org/show_bug.cgi?id=1119646#c12
--- Comment #12 from Dr. Werner Fink
participants (1)
-
bugzilla_noreply@novell.com