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



The following reply was made to PR pkg/39582; it has been noted by GNATS.

From: christos%zoulas.com@localhost (Christos Zoulas)
To: gnats-bugs%NetBSD.org@localhost, pkg-manager%netbsd.org@localhost, 
gnats-admin%netbsd.org@localhost, 
        pkgsrc-bugs%netbsd.org@localhost
Cc: 
Subject: Re: pkg/39582: devel/ncurses breaks /usr/include/curses.h on NetBSD
Date: Thu, 18 Sep 2008 17:27:05 -0400

 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