Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^2: Need help compiling Net::Pcap on Ubuntu 8.04

by bpa (Novice)
on Jul 21, 2008 at 23:16 UTC ( #699181=note: print w/ replies, xml ) Need Help??


in reply to Re: Need help compiling Net::Pcap on Ubuntu 8.04
in thread Need help compiling Net::Pcap on Ubuntu 8.04

alexm, Thanks for the advice. I installed the libpcap0.8-dev packages, and that seemed to eliminate some of the functions that it was having trouble finding, however, I still receive the following output:

cc -c -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-s +trict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE +_OFFSET_BITS=64 -O2 -DVERSION=\"0.14\" -DXS_VERSION=\"0.14\" -fPIC +"-I/usr/lib/perl/5.8/CORE" -DHAVE_BLANK -DHAVE_PCAP_LIB_VERSION -DHA +VE_PCAP_BREAKLOOP -DHAVE_PCAP_COMPILE_NOPCAP -DHAVE_PCAP_DATALINK_NAM +E_TO_VAL -DHAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION -DHAVE_PCAP_DATALINK +_VAL_TO_NAME -DHAVE_PCAP_DUMP_FILE -DHAVE_PCAP_DUMP_FLUSH -DHAVE_PCAP +_DUMP_FOPEN -DHAVE_PCAP_DUMP_FTELL -DHAVE_PCAP_FINDALLDEVS -DHAVE_PCA +P_FOPEN_OFFLINE -DHAVE_PCAP_FREEALLDEVS -DHAVE_PCAP_GETNONBLOCK -DHAV +E_PCAP_GET_SELECTABLE_FD -DHAVE_PCAP_INJECT -DHAVE_PCAP_LIB_VERSION - +DHAVE_PCAP_LIST_DATALINKS -DHAVE_PCAP_NEXT_EX -DHAVE_PCAP_OPEN_DEAD - +DHAVE_PCAP_SENDPACKET -DHAVE_PCAP_SETDIRECTION -DHAVE_PCAP_SETNONBLOC +K -DHAVE_PCAP_SET_DATALINK Pcap.c In file included from Pcap.xs:43: stubs.inc:322:2: warning: #warning "the function pcap_createsrcstr() i +s not available" stubs.inc:337:2: warning: #warning "the function pcap_parsesrcstr() is + not available" stubs.inc:352:2: warning: #warning "the function pcap_open() is not av +ailable" stubs.inc:373:2: warning: #warning "the function pcap_setbuff() is not + available" stubs.inc:388:2: warning: #warning "the function pcap_setuserbuffer() +is not available" stubs.inc:403:2: warning: #warning "the function pcap_setmode() is not + available" stubs.inc:418:2: warning: #warning "the function pcap_setmintocopy() i +s not available" stubs.inc:433:2: warning: #warning "the function pcap_sendqueue_alloc( +) is not available" stubs.inc:455:2: warning: #warning "the function pcap_sendqueue_destro +y() is not available" stubs.inc:469:2: warning: #warning "the function pcap_sendqueue_queue( +) is not available" stubs.inc:484:2: warning: #warning "the function pcap_sendqueue_transm +it() is not available" stubs.inc:499:2: warning: #warning "the function pcap_event() is not a +vailable" stubs.inc:514:2: warning: #warning "the function pcap_setsampling() is + not available" Pcap.c: In function ‘XS_Net__Pcap_strerror’: Pcap.c:1386: warning: assignment discards qualifiers from pointer targ +et type Running Mkbootstrap for Net::Pcap () chmod 644 Pcap.bs rm -f blib/arch/auto/Net/Pcap/Pcap.so cc -shared -L/usr/local/lib Pcap.o -o blib/arch/auto/Net/Pcap/Pcap.s +o \ -lpcap \ chmod 755 blib/arch/auto/Net/Pcap/Pcap.so cp Pcap.bs blib/arch/auto/Net/Pcap/Pcap.bs chmod 644 blib/arch/auto/Net/Pcap/Pcap.bs cp bin/pcapinfo blib/script/pcapinfo /usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/pcapi +nfo Manifying blib/man1/pcapinfo.1p Manifying blib/man3/Net::Pcap.3pm


Incidentally, I just tried to compile/install the Net-Libnet-0.01_04 and it seemed to work fine. Earlier this was complaining about Net::Pcap as well, so maybe version 0.8 helped that.

I do still need Net::Pcap0.14 though, because Net-Write-1.03 requires at least Net::Pcap0.12 from the following output when running "perl Makefile.PL":

Warning: prerequisite Net::Pcap 0.12 not found. We have 0.04.


Also, (maybe this will be helpful in that the problem is related) I get the following output when trying to run "perl Makefile.PL" for Net-Libdnet-0.01:

Checking if your kit is complete... Looks good Note (probably harmless): No library found for -ldnet Writing Makefile for Net::Libdnet


And when trying to run "sudo make" for the same module:

cp Libdnet.pm blib/lib/Net/Libdnet.pm AutoSplitting blib/lib/Net/Libdnet.pm (blib/lib/auto/Net/Libdnet) /usr/bin/perl /usr/share/perl/5.8/ExtUtils/xsubpp -typemap /usr/share +/perl/5.8/ExtUtils/typemap Libdnet.xs > Libdnet.xsc && mv Libdnet.xs +c Libdnet.c cc -c -I/usr/local/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_ +PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARG +EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"0.01\" -DXS_VER +SION=\"0.01\" -fPIC "-I/usr/lib/perl/5.8/CORE" Libdnet.c Libdnet.xs:35:18: error: dnet.h: No such file or directory Libdnet.xs:37: warning: ‘struct intf_entry’ declared inside parameter +list Libdnet.xs:37: warning: its scope is only this definition or declarati +on, which is probably not what you want Libdnet.xs: In function ‘intf2hash’: Libdnet.xs:50: error: dereferencing pointer to incomplete type Libdnet.xs:58: error: dereferencing pointer to incomplete type Libdnet.xs:66: error: dereferencing pointer to incomplete type Libdnet.xs:74: error: dereferencing pointer to incomplete type Libdnet.xs:82: error: dereferencing pointer to incomplete type Libdnet.xs:91: error: dereferencing pointer to incomplete type Libdnet.xs:91: warning: assignment makes pointer from integer without +a cast Libdnet.xs:95: error: dereferencing pointer to incomplete type Libdnet.xs:95: warning: passing argument 2 of ‘Perl_newSVpv’ makes poi +nter from integer without a cast Libdnet.xs:105: error: dereferencing pointer to incomplete type Libdnet.xs:105: warning: assignment makes pointer from integer without + a cast Libdnet.xs:109: error: dereferencing pointer to incomplete type Libdnet.xs:109: warning: passing argument 2 of ‘Perl_newSVpv’ makes po +inter from integer without a cast Libdnet.xs:119: error: dereferencing pointer to incomplete type Libdnet.xs:119: warning: assignment makes pointer from integer without + a cast Libdnet.xs:123: error: dereferencing pointer to incomplete type Libdnet.xs:123: warning: passing argument 2 of ‘Perl_newSVpv’ makes po +inter from integer without a cast Libdnet.xs: In function ‘XS_Net__Libdnet_addr_cmp’: Libdnet.xs:144: error: storage size of ‘SadA’ isn’t known Libdnet.xs:144: error: storage size of ‘SadB’ isn’t known Libdnet.xs: In function ‘XS_Net__Libdnet_addr_bcast’: Libdnet.xs:188: error: storage size of ‘SadAd’ isn’t known Libdnet.xs:188: error: storage size of ‘SadBc’ isn’t known Libdnet.xs:208: warning: assignment makes pointer from integer without + a cast Libdnet.xs: In function ‘XS_Net__Libdnet_addr_net’: Libdnet.xs:226: error: storage size of ‘SadAd’ isn’t known Libdnet.xs:226: error: storage size of ‘SadBc’ isn’t known Libdnet.xs:246: warning: assignment makes pointer from integer without + a cast Libdnet.xs: In function ‘XS_Net__Libdnet_arp_add’: Libdnet.xs:264: error: ‘arp_t’ undeclared (first use in this function) Libdnet.xs:264: error: (Each undeclared identifier is reported only on +ce Libdnet.xs:264: error: for each function it appears in.) Libdnet.xs:264: error: ‘AtArp’ undeclared (first use in this function) Libdnet.xs:265: error: storage size of ‘SarEntry’ isn’t known Libdnet.xs:266: error: storage size of ‘SadAddr’ isn’t known Libdnet.xs:293: error: invalid application of ‘sizeof’ to incomplete t +ype ‘struct addr’ Libdnet.xs:303: error: invalid application of ‘sizeof’ to incomplete t +ype ‘struct addr’ Libdnet.xs: In function ‘XS_Net__Libdnet_arp_delete’: Libdnet.xs:327: error: ‘arp_t’ undeclared (first use in this function) Libdnet.xs:327: error: ‘AtArp’ undeclared (first use in this function) Libdnet.xs:328: error: storage size of ‘SarEntry’ isn’t known Libdnet.xs:329: error: storage size of ‘SadAddr’ isn’t known Libdnet.xs:352: error: invalid application of ‘sizeof’ to incomplete t +ype ‘struct addr’ Libdnet.xs: In function ‘XS_Net__Libdnet_arp_get’: Libdnet.xs:376: error: ‘arp_t’ undeclared (first use in this function) Libdnet.xs:376: error: ‘AtArp’ undeclared (first use in this function) Libdnet.xs:377: error: storage size of ‘SarEntry’ isn’t known Libdnet.xs:378: error: storage size of ‘SadAddr’ isn’t known Libdnet.xs:401: error: invalid application of ‘sizeof’ to incomplete t +ype ‘struct addr’ Libdnet.xs:410: warning: assignment makes pointer from integer without + a cast Libdnet.xs: In function ‘XS_Net__Libdnet_intf_get’: Libdnet.xs:433: error: ‘intf_t’ undeclared (first use in this function +) Libdnet.xs:433: error: ‘ItIntf’ undeclared (first use in this function +) Libdnet.xs:434: error: storage size of ‘SieEntry’ isn’t known Libdnet.xs:457: error: ‘INTF_NAME_LEN’ undeclared (first use in this f +unction) Libdnet.xs: In function ‘XS_Net__Libdnet_intf_get_src’: Libdnet.xs:478: error: ‘intf_t’ undeclared (first use in this function +) Libdnet.xs:478: error: ‘ItIntf’ undeclared (first use in this function +) Libdnet.xs:479: error: storage size of ‘SieEntry’ isn’t known Libdnet.xs:480: error: storage size of ‘SaAddr’ isn’t known Libdnet.xs: In function ‘XS_Net__Libdnet_intf_get_dst’: Libdnet.xs:529: error: ‘intf_t’ undeclared (first use in this function +) Libdnet.xs:529: error: ‘ItIntf’ undeclared (first use in this function +) Libdnet.xs:530: error: storage size of ‘SieEntry’ isn’t known Libdnet.xs:531: error: storage size of ‘SaAddr’ isn’t known Libdnet.xs: In function ‘XS_Net__Libdnet_route_add’: Libdnet.xs:580: error: ‘route_t’ undeclared (first use in this functio +n) Libdnet.xs:580: error: ‘RtRoute’ undeclared (first use in this functio +n) Libdnet.xs:581: error: storage size of ‘SrtEntry’ isn’t known Libdnet.xs:582: error: storage size of ‘SadAddr’ isn’t known Libdnet.xs:609: error: invalid application of ‘sizeof’ to incomplete t +ype ‘struct addr’ Libdnet.xs:619: error: invalid application of ‘sizeof’ to incomplete t +ype ‘struct addr’ Libdnet.xs: In function ‘XS_Net__Libdnet_route_delete’: Libdnet.xs:643: error: ‘route_t’ undeclared (first use in this functio +n) Libdnet.xs:643: error: ‘RtRoute’ undeclared (first use in this functio +n) Libdnet.xs:644: error: storage size of ‘SrtEntry’ isn’t known Libdnet.xs:645: error: storage size of ‘SadAddr’ isn’t known Libdnet.xs:668: error: invalid application of ‘sizeof’ to incomplete t +ype ‘struct addr’ Libdnet.xs: In function ‘XS_Net__Libdnet_route_get’: Libdnet.xs:692: error: ‘route_t’ undeclared (first use in this functio +n) Libdnet.xs:692: error: ‘RtRoute’ undeclared (first use in this functio +n) Libdnet.xs:693: error: storage size of ‘SrtEntry’ isn’t known Libdnet.xs:694: error: storage size of ‘SadAddr’ isn’t known Libdnet.xs:717: error: invalid application of ‘sizeof’ to incomplete t +ype ‘struct addr’ Libdnet.xs:726: warning: assignment makes pointer from integer without + a cast make: *** [Libdnet.o] Error 1


All of this starts with the fact that I am trying to install Net-Packet-3.26. When running "perl Makefile.PL" for this module, I receive the following output:

WARNING: LICENSE is not a known parameter. Warning: prerequisite Net::Libdnet 0 not found. Warning: prerequisite Net::Pcap 0.12 not found. We have 0.04. Warning: prerequisite Net::Write 1.00 not found. 'LICENSE' is not a known MakeMaker parameter name. Writing Makefile for Net::Packet


Thank you all for your time you are spending on this issue.

-Barret


Comment on Re^2: Need help compiling Net::Pcap on Ubuntu 8.04
Select or Download Code
Re^3: Need help compiling Net::Pcap on Ubuntu 8.04
by pc88mxer (Vicar) on Jul 21, 2008 at 23:41 UTC
      pc88mxer,

      Thanks again. I really appreciate the wisdom. I had looked at that thread before, and I got confused because I thought the package might have changed for Ubuntu. The reason for my confusion is that there is the libdumbnet-dev and also simply libdnet-dev. In libdnet-dev, the header file is also not named, "dnet.h", but instead, "dn.h". I attemped to "adapt" the steps in the other thread to the libdnet-dev package, and I failed miserably. I just ran it exactly as it says to with the libdumbnet-dev package, and the install for Net-Libdnet-0.01 went smoothly. That is one dependency down. On my first post topic, the Monastery is already proving to be invaluable.
Re^3: Need help compiling Net::Pcap on Ubuntu 8.04
by alexm (Chaplain) on Jul 22, 2008 at 00:12 UTC

    Those warnings above are not errors; they just warn you that some functionality may not be added. If you run make test after make and all tests are successful, then everything should be fine. You can see that the Makefile targets were actually made:

    ... chmod 755 blib/arch/auto/Net/Pcap/Pcap.so cp Pcap.bs blib/arch/auto/Net/Pcap/Pcap.bs chmod 644 blib/arch/auto/Net/Pcap/Pcap.bs cp bin/pcapinfo blib/script/pcapinfo /usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/pcapi +nfo Manifying blib/man1/pcapinfo.1p Manifying blib/man3/Net::Pcap.3pm

    BTW, there's no need to sudo make unless you need to install the Makefile targets, i.e. sudo make install.

      alexm,

      Thanks again. I had wondered about whether the warnings were really critical or not, so thanks for that. I usually never sudo until the install step, and most of the time it is fine, except in this case I got the error:

      touch: cannot touch `Pcap.bs': Permission denied


      when running make, so that is why I used sudo. After that I just got somewhat paranoid that maybe not being root was causing some of my problems, and I just decided to sudo with everything figuring it couldn't hurt.

      I took you suggestion to go ahead and run "make test" and I get the following:

      PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-load...........# Testing Net::Pcap 0.14 under Perl 5.008008 t/00-load...........ok + t/01-api............ok + t/02-lookup.........ok + t/03-openlive.......ok 1/14 + # Failed test ' - $err must be set: SIOCGIFHWADDR: No such device' # at t/03-openlive.t line 70. t/03-openlive.......NOK 13# 'SIOCGIFHWADDR: No such +device' # doesn't match '/^(?:bind|ioctl): (?:No such device)/' # Looks like you failed 1 test of 14. t/03-openlive.......dubious + Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 13 Failed 1/14 tests, 92.86% okay t/04-loop...........ok 1/195


      It just hangs there. It looks like maybe it can't find my network device?

        It seems an error in Net-Pcap-0.14 since I tried Net-Pcap-0.16 and that error is gone. While performing tests as root (needed for several of them), I even got unexpected successful results with 0.16:

        All tests successful (9 subtests UNEXPECTEDLY SUCCEEDED), 9 tests and +93 subtests skipped. Files=30, Tests=1609, 315 wallclock secs ( 1.07 cusr + 0.15 csys = 1 +.22 CPU)

        Please, note that some tests take quite time to finish, hence the 315 wallclock secs.

        you only need to install from synaptic libnet-pcap-perl This package contains Net::Pcap module. Buckaroo. Argentina
      Thank you so much for all your help. I have gotten the Net::Packet module working. I just ignored the error from the "make test" step for Net::Pcap because upon further scrutiny, I noticed that it was looking for something that wasn't there:

      t/03-openlive.......NOK 13# at t/03-openlive.t line 70. + # 'SIOCGIFHWADDR: No such device' # doesn't match '/^(?:bind|ioctl): (?:No such device)/'

      The regular expression seems to be looking only for bind or ioctl instead of the SIOCGIFHWADDR at the begining of the string. I went ahead with the "sudo make install" step and then ran my test packet sniffing script and it worked fine.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://699181]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (11)
As of 2014-07-10 14:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (212 votes), past polls