pkgsrc-Bugs archive

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

Re: pkg/39582: devel/ncurses breaks /usr/include/curses.h on NetBSD



On Sep 18,  9:20pm, campbell%mumble.net@localhost (Taylor R Campbell) wrote:
-- Subject: pkg/39582: devel/ncurses breaks /usr/include/curses.h on NetBSD

| >Number:         39582
| >Category:       pkg
| >Synopsis:       devel/ncurses breaks /usr/include/curses.h on NetBSD
| >Confidential:   no
| >Severity:       serious
| >Priority:       medium
| >Responsible:    pkg-manager
| >State:          open
| >Class:          sw-bug
| >Submitter-Id:   net
| >Arrival-Date:   Thu Sep 18 21:20:00 +0000 2008
| >Originator:     Taylor R Campbell <campbell%mumble.net@localhost>
| >Release:        NetBSD 4.0_STABLE
| >Organization:
| >Environment:
| System: NetBSD smalltalk.localdomain 4.0_STABLE NetBSD 4.0_STABLE 
(RIAX3DOM0_GATEWAY) #1: Wed Sep 10 22:47:22 UTC 2008 
riastradh%smalltalk.localdomain@localhost:/home/riastradh/netbsd/4/obj/sys/arch/i386/compile/RIAX3DOM0_GATEWAY
 i386
| Architecture: i386
| Machine: i386
| >Description:
| 
|       devel/ncurses installs several files in /usr/pkg/include, one
|       of which is named unctrl.h.  This file itself includes
|       <ncurses.h>.  /usr/include/curses.h from the NetBSD base system
|       contains the line
|       
|               #include <unctrl.h>
|       
|       which, when /usr/pkg/include is in the system header path,
|       causes inclusion of /usr/pkg/include/unctrl.h, rather than of
|       the intended /usr/include/unctrl.h.  This transitively includes
|       /usr/pkg/include/ncurses.h, which does not lead a happy
|       coexistence with /usr/include/curses.h.
| 
| >How-To-Repeat:
| 
|       Install devel/ncurses.  Compile, or preprocess, the following
|       trivial program with -I/usr/pkg/include:
|       
|               #include <curses.h>
|       
|               int
|               main (int argc, char *argv[])
|               {
|                       return (0);
|               }
| 
| >Fix:
| 
|       Two choices immediately spring to mind:
|       
|       1. Install a symbolic link /usr/pkg/include/curses.h pointing
|          to ncurses.h.  (This is the reverse of what one often finds
|          in Linux systems.)  This is a matter of adding an extra line
|          to the `post-install' target.
|       
|       2. Install ncurses in a subdirectory of /usr/pkg/include, such
|          as /usr/pkg/include/ncurses.  This is what devel/ncursesw
|          already does.  This requires configuring ncurses differently
|          and changing ncurses/buildlink3.mk to add the subdirectory
|          to the system header path.
|       
|       There is already a hack in ncurses/buildlink3.mk to install a
|       temporary symbolic link so that source files in the dependent
|       packages can include <curses.h> and see ncurses.  This doesn't
|       help when building software outside of pkgsrc, however.

There is also the #include_next option and the -idirafter -include option
but both are gcc specific. But [2] is probably the right one.

christos


Home | Main Index | Thread Index | Old Index