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.