pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/50175: devel/editline fails to compile on Solaris after ncurses was upgraded



Le 26/08/15 11:30, joern.clausen%uni-bielefeld.de@localhost a écrit :
>> Number:         50175
>> Category:       pkg
>> Synopsis:       devel/editline fails to compile on Solaris after ncurses was upgraded
>> Confidential:   no
>> Severity:       serious
>> Priority:       medium
>> Responsible:    pkg-manager
>> State:          open
>> Class:          sw-bug
>> Submitter-Id:   net
>> Arrival-Date:   Wed Aug 26 09:30:00 +0000 2015
>> Originator:     Joern Clausen
>> Release:        
>> Organization:
> University of Bielefeld
>> Environment:
> Solaris 11.2/i86, GCC 4.8.5
>> Description:
> devel/editline fails to compile on Solaris 11.2, after devel/ncurses was upgraded to 6.0:
> 
> --- terminal.lo ---
> In file included from terminal.c:56:0:
> /opt/pkgsrc/pkg-hrz/pkgsrc/devel/editline/work.pkgsrc-sol11i86/.buildlink/include/ncurses/termcap.h:63:31: error: conflicting types for 'tgetstr'
>  extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);
>                                ^
> In file included from ../config.h:297:0,
>                  from terminal.c:35:
> ./sys.h:139:14: note: previous declaration of 'tgetstr' was here
>  extern char* tgetstr(char*, char**);
>               ^
> In file included from terminal.c:56:0:
> /opt/pkgsrc/pkg-hrz/pkgsrc/devel/editline/work.pkgsrc-sol11i86/.buildlink/include/ncurses/termcap.h:66:28: error: conflicting types for 'tgetflag'
>  extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);
>                             ^
> In file included from ../config.h:297:0,
>                  from terminal.c:35:
> ./sys.h:135:12: note: previous declaration of 'tgetflag' was here
>  extern int tgetflag(char *);
>             ^
> 
> 
> Every use of tgetstr in editline's source is preceeded by
> 
> /* XXX: some systems' tgetstr needs non const */
> 
> which is great to know but doesn't really help.
> 
> curses.h of ncurses-6.0 defines
> 
> /*
>  * Expands to 'const' if ncurses is configured using --enable-const.  Note that
>  * doing so makes it incompatible with other implementations of X/Open Curses.
>  */
> #undef  NCURSES_CONST
> #define NCURSES_CONST const
> 
> although I don't see this configure option used during build.
> 
> 
>> How-To-Repeat:
> 
>> Fix:
> --- Makefile.common.bak Tue Aug 25 08:32:58 2015
> +++ Makefile.common     Wed Aug 26 11:05:05 2015
> @@ -18,6 +18,7 @@
>  USE_LIBTOOL=           yes
>  USE_TOOLS+=            gmake tbl
>  GNU_CONFIGURE=         yes
> +CONFIGURE_ARGS+=       --disable-const
>  CONFIGURE_ARGS+=       --with-libtool
>  CONFIGURE_ARGS+=       --enable-bsdpad
>  CONFIGURE_ARGS+=       --enable-overwrite
> 
> in devel/ncurses(!!) seems to fix the problem
> 
> 

I have the same on illumos (SunOS 5.11).

Looks like the following should be alright:
> diff --git a/devel/ncurses/Makefile.common b/devel/ncurses/Makefile.common
> index 4cf293d..6fddd00 100644
> --- a/devel/ncurses/Makefile.common
> +++ b/devel/ncurses/Makefile.common
> @@ -64,6 +64,7 @@ CONFIGURE_ARGS+=      --without-manpage-tbl
>  .include "../../mk/compiler.mk"
>  
>  .if ${OPSYS} == "SunOS"
> +CONFIGURE_ARGS+=       --disable-const
>  TERMINFO_SRC=  ${WRKSRC}/misc/terminfo.src
>  TERMINFODIR=   share/lib/terminfo
>  .else


-- 
Richard PALO



Home | Main Index | Thread Index | Old Index