The wxWidgets header file <wx/wx.h> is supposed to include all wxWidgets header files, so that one doesn't have to include them each manually. However, after receiving some compilation errors, I behold that my /usr/include/wx/wx.h doesn't include <wx/socket.h>. This strikes me as something that might very well be a bug in wxWidgets itself (or maybe even a feature) and not Gentoo's installation of it, but I don't know, and I remember once seeing a request to file bugs with Gentoo first (and the developers here would send the bug upstream if the problem is with the package itself). Reproducible: Always Steps to Reproduce: 1. Install wxWidgets through Portage. 2. Take a look at /usr/include/wx/wx.h, or alternatively, compile a program using a class like wxIPV4address while only including <wx/wx.h>. 3. Behold that <wx/wx.h> doesn't include <wx/socket.h>. Actual Results: I saw that /usr/include/wx/wx.h doesn't include <wx/socket.h>, after getting compilation errors when using classes from <wx/socket.h> but only including <wx/wx.h>. Expected Results: Included <wx/socket.h> automatically. Portage 2.0.51.22-r1 (default-linux/amd64/2005.0, gcc-3.4.3, glibc-2.3.4.20041102-r1, 2.6.11-gentoo-r11 x86_64) ================================================================= System uname: 2.6.11-gentoo-r11 x86_64 AMD Opteron(tm) Processor 246 Gentoo Base System version 1.6.12 dev-lang/python: 2.3.5 sys-apps/sandbox: 1.2.9 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=opteron -O3 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=opteron -O3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" LANG="en_US.utf8" LC_ALL="en_US.utf8" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X Xaw3d a52 aac aalib accessibility acl acpi adns aim alsa apache2 arts audiofile avi bash-completion bcmath berkdb bidi bitmap-fonts bluetooth bmp bonobo bzlib calendar canna cdb cdparanoia cdr chasen cjk crypt cscope ctype cups curl curlwrappers db2 dba dbase dbm dbx dedicated dga dio directfb doc dv dvb dvd dvdr dvdread eds emacs emacs-w3 emul-linux-x86 encode esd ethereal evo examples exif expat fam fastcgi fbcon ffmpeg flac flash flatfile font-server foomaticdb fortran freetds freewnn ftp gb gcj gd gdbm geoip ggi gif ginac glut gmp gnome gnustep gnutls gphoto2 gpm gps gstreamer gtk gtk2 gtkhtml guile hal hardened hardenedphp howl hyperwave-api iconv icq imagemagick imap imlib inifile innodb interbase iodbc ipv6 jabber jack javascript joystick jp2 jpeg kde kerberos krb4 ladcca lcms ldap leim libcaca libg++ libgda libwww lirc lm_sensors lzw lzw-tiff m17n-lib mad maildir mailwrapper matroska mbox mcal mcve memlimit mhash migemo mikmod milter mime ming mmap mng mnogosearch motif mozilla mp3 mpeg mpi msession msql mssql mule mysql mysqli nas ncurses neXt netcdf nis nls nocd nptl oci8 odbc offensive ofx ogg openal opengl oracle oracle7 osc oscar oss ovrimos pam pcntl pcre pda pdflib perl php plotutils png portaudio posix postgres ppds prelude python qdbm qt quicktime readline recode ruby samba sapdb sasl scanner sdl session sharedext sharedmem shorten simplexml skey slang smartcard sndfile snmp soap sockets socks5 source sox speex spell spl sqlite ssl svg symlink sysvipc szip tcltk tcpd tetex theora threads tidy tiff tokenizer truetype truetype-fonts type1-fonts unicode usb userlocales v4l vcd vhosts videos vorbis wddx wifi wmf wxwindows xface xine xml xml2 xmlrpc xmms xosd xpm xprint xrandr xsl xv xvid yahoo yaz zeo zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
wx/wx.h is not supposed to include every header, only the most used ones. wx/socket.h is apparently not deemed to be used that often, and I agree there. If you disagree, then you should check out the feature request/bug tracker of wxWidgets. See the wxWidgets manuals "Multi-platform development with wxWidgets" -> "Include Files" topic for reference: "The main include file is "wx/wx.h"; this includes the _most commonly_ used modules of wxWidgets." (emphasize mine)
Not a bug.
One gets the opposite impression from the last of the following sentences taken from their Hello World sample: "You have to include wxWidgets' header files, of course. This can be done on a file by file basis (such as #include "wx/window.h") or using one global include (#include "wx/wx.h")." Oh well, I see what you mean.