Subject: lib/35133: namespace pollution from prop/prop_object.h prevents build of filesharing tool!
To: None <lib-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <lars.nordlund@hem.utfors.se>
List: netbsd-bugs
Date: 11/26/2006 20:40:01
>Number:         35133
>Category:       lib
>Synopsis:       namespace pollution from prop/prop_object.h prevents build of filesharing tool!
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    lib-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Nov 26 20:40:00 +0000 2006
>Originator:     Lars Nordlund
>Release:        NetBSD-current
>Organization:
>Environment:
NetBSD laphroaig 4.99.4 NetBSD 4.99.4 (LAPHROAIG) #6: Sat Nov 25 22:28:55 CET 2006  lars@laphroaig:/home/lars/tmp/current-obj_amd64/sys/arch/amd64/compile/LAPHROAIG amd64

>Description:
Building gtk-gnutella from SVN head fails with this message:

Continuing in src...
../scripts/svn-revision .. revision.h
cc -c -I.. -I. -O2 -pipe -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI -I/usr/pkg/include/gtk-2.0 -I/usr/pkg/lib/gtk-2.0/include -I/usr/pkg/include/atk-1.0 -I/usr/pkg/include/cairo -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include -I/usr/pkg/include/freetype2 -I/usr/pkg/xorg/include -I/usr/pkg/include/glib/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/libpng12   -I/usr/pkg/include/glib/glib-2.0 -I/usr/pkg/lib/glib-2.0/include   -I/usr/pkg/include/libxml2    -I/usr/pkg/include     -DCURDIR=src -O2 -g -W -Wall -Wformat=2 -Wshadow -momit-leaf-frame-pointer -pipe  main.c
In file included from ./if/core/downloads.h:35,
                 from ./if/core/fileinfo.h:31,
                 from core/share.h:44,
                 from core/fileinfo.h:39,
                 from core/downloads.h:40,
                 from core/dmesh.h:39,
                 from main.c:48:
./core/rx_link.h:49: warning: 'libintl_printf' is an unrecognized format function type
In file included from ./if/core/downloads.h:36,
                 from ./if/core/fileinfo.h:31,
                 from core/share.h:44,
                 from core/fileinfo.h:39,
                 from core/downloads.h:40,
                 from core/dmesh.h:39,
                 from main.c:48:
./core/rx_chunk.h:48: warning: 'libintl_printf' is an unrecognized format function type
In file included from ./if/gui_property.h:32,
                 from ui/gtk/settings.h:33,
                 from main.c:130:
./lib/prop.h:51: error: redeclaration of enumerator 'PROP_TYPE_STRING'
/usr/include/prop/prop_object.h:60: error: previous definition of 'PROP_TYPE_STRING' was here
./lib/prop.h:55: error: conflicting types for 'prop_type_t'
/usr/include/prop/prop_object.h:65: error: previous declaration of 'prop_type_t' was here
gmake[2]: *** [main.o] Error 1
gmake[2]: Leaving directory `/home/lars/netbsd/pkgsrc-current/wip/gtk-gnutella-current/work/gtk-gnutella/src'
gmake[1]: *** [subdirs] Error 1
gmake[1]: Leaving directory `/home/lars/netbsd/pkgsrc-current/wip/gtk-gnutella-current/work/gtk-gnutella'
gmake: *** [all] Error 2
*** Error code 2


Somehow prop-headers from /usr/include/prop sneaks into the build of gtk-gnutella. I think it is via sys/dkio.h. Common names like 'prop_type_t' should not be exposed to userland.

Since file-sharing is important for mankind, I put the fault into high severity/priority. :-)

>How-To-Repeat:
Try to build pkgsrc-wip/gtk-gnutella-current on NetBSD-current/amd64.

>Fix:
Vaccuum clean all software suffering from the namespace clashes.