Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 247145 - dev-python/pypcap fails to build
Summary: dev-python/pypcap fails to build
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-17 08:07 UTC by Diego Elio Pettenò (RETIRED)
Modified: 2009-04-18 14:24 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Build log (dev-python:pypcap-1.1:20081117-060703.log,2.32 KB, text/plain)
2008-11-17 08:08 UTC, Diego Elio Pettenò (RETIRED)
Details
Patch to correct include path detection mechanism in setup.py (include_path.patch,614 bytes, patch)
2009-04-12 08:11 UTC, Mike Kazantsev
Details | Diff
Fixed ebuild to utilize the patch (pypcap-1.1.ebuild,1.15 KB, text/plain)
2009-04-12 08:11 UTC, Mike Kazantsev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Elio Pettenò (RETIRED) gentoo-dev 2008-11-17 08:07:40 UTC
Portage 2.2_rc14 (default/linux/x86/2008.0, gcc-4.1.2-asneeded, glibc-2.8_p20080602-r0, 2.6.27-gentoo-r2 i686)
=================================================================
System uname: Linux-2.6.27-gentoo-r2-i686-Quad-Core_AMD_Opteron-tm-_Processor_2350-with-glibc2.0
Timestamp of tree: Fri, 14 Nov 2008 00:37:01 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7, 2.1.6-r1
dev-lang/python:     2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.3.0-r1
sys-apps/sandbox:    1.2.18.1-r3
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.19
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/openjms/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb /var/qmail/alias /var/qmail/control /var/spool/torque"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage-distfiles"
FEATURES="distlocks parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo"
INSTALL_MASK=" 	/usr/share/doc 	/usr/share/man 	/usr/share/info"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j14"
PKGDIR="/usr/portage-packages"
PORTAGE_COMPRESS=""
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="acl berkdb bzip2 cli cracklib crypt cups dri fortran gdbm gpm iconv ipv6 isdnlog midi mudflap ncurses nls nptl nptlonly openmp pam pcre perl pppd python readline reflection session spl ssl sysfs tcpd unicode x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="fbdev glint i810 intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa vga via vmware voodoo"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Diego Elio Pettenò (RETIRED) gentoo-dev 2008-11-17 08:08:03 UTC
Created attachment 172055 [details]
Build log
Comment 2 Patrick Lauer gentoo-dev 2009-01-04 21:31:21 UTC
Confirmed. No idea how to fix.
Comment 3 Kevin Pyle 2009-01-10 05:18:25 UTC
The errors in pcap_ex.c are because the build system failed to define HAVE_PCAP_FILE.  The libpcap maintainers do not provide a definition of the structure that backs pcap_t, probably to discourage people from accessing its members directly.  If HAVE_PCAP_FILE were defined, pcap_ex.c would call pcap_file and not need the definition of pcap_t.  Examination of setup.py reveals that this symbol is defined if the string 'pcap_file(' is found in a pcap header searched for in various places in the system.  This seems incredibly fragile and vulnerable to both false positives and false negatives.  If libpcap maintainers add whitespace, setup.py would incorrectly decide that pcap_file is missing.  If a pcap header were installed in one of the search paths used by setup.py, but not the compiler, then setup.py would incorrectly decide that pcap_file was available.  This probe should be replaced with a proper test the way autoconf probes for usability: write a test program, try to compile and link it, and decide based on the results.

I have not examined the failures in pcap.c yet, since that is a generated file and thus quite ugly.  Maintainers, if I write up the required patches to get setup.py to probe for the libpcap functions correctly, would you mind committing them to the Gentoo tree and/or pushing them upstream, as appropriate?
Comment 4 Mike Kazantsev 2009-04-12 08:11:03 UTC
Created attachment 188063 [details, diff]
Patch to correct include path detection mechanism in setup.py

Just changes the order of include paths from ['include', 'include/pcap'] to ['include/pcap', 'include'], so include/pcap dir with more complete pcap.h will be used first, if present.
Comment 5 Mike Kazantsev 2009-04-12 08:11:52 UTC
Created attachment 188065 [details]
Fixed ebuild to utilize the patch
Comment 6 Patrick Lauer gentoo-dev 2009-04-18 14:24:21 UTC
+  18 Apr 2009; Patrick Lauer <patrick@gentoo.org> +files/include_path.patch,
+  +pypcap-1.1-r1.ebuild:
+  Small patch to fix compilation issues, thanks to Mike Kazantsev. Closes
+  #247145