NetBSD-Bugs archive

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

lib/45266: krb5-config causes namespace pollution (NetBSD 5, NetBSD 4, and probably HEAD)

>Number:         45266
>Category:       lib
>Synopsis:       krb5-config causes namespace pollution (NetBSD 5, NetBSD 4, 
>and probably HEAD)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    lib-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Thu Aug 18 10:15:00 +0000 2011
>Originator:     Robert Elz
>Release:        NetBSD 5.1  (all current supported releases)
        Prince of Songkla University
System: NetBSD 5.1 NetBSD 5.1 (JADE-1.12-20101117) #5: Wed 
Nov 17 05:30:55 ICT 2010 i386
Architecture: i386
Machine: i386
        First, while I say this affects netBSD current, I don't have a
        build less than a few months old, so it is possible this has
        already been changed there, though I doubt it.

        /usr/bin/krb-config --cflags (on NetBSD 4* and NetBSD 5* and
                NetBSD current at least of last April) generates


        That causes programs that use it (or more often, have it foist
        upon them) and which do

                #include <file>
        or      #include "file"

        to potentially find /usr/include/krb5/file instead of whatever
        they were intending to find.

        The only rational reason for ever doing -I of a sub-directory
        of /usr/include is when some subsystem wants to override the
        standard include files (for example, while I have no idea if
        it ever needs to, or does, I could imagine threads possibly doing
        that, with a different version of (perhaps) <resolv.h> for use
        by threaded programs),

        Aside from that, any program that wants to include something that
        is installed in a subdir of /usr/include should simply
                #include <subdir/file>

        That's the way it has always been for sys/* net/* netinet/* arpa/*
        and all the rest, and I cannot imagine why the krb5 directory needs
        to be different.  Certainly it doesn't include files that are
        overriding standard files in /usr/include - rather they're just
        polluting the namespace of programs that aren't expecting that
        stuff to exist.

        For an example of how this screwed things, see PR pkg/40198 (skip
        past the early bug report, and go down to the more recent part
        where this issue was the problem).

        Run krb5-config --cflags and observe the output.

        Change krb5-config so it omits nothing with the --cflags option
        (the -I is currently the only output, and it is bogus).

        Then fix anything (should there be anything) that has stupidly
        depended upon this behaviour, to include <krb5/file> instead of
        just <file>.

Home | Main Index | Thread Index | Old Index