Building and Running Argus-3.0.0 on Cygwin

Jason Baekey jbaekey at hotmail.com
Sun Mar 9 19:01:39 EDT 2008


Hello,
  I have had many of the issues that have already been
reported in the group concerning building and running the Argus 3.0.0
server on Cygwin, but I cannot seem to resolve them as many others
have.  I'm using the most current version of Cygwin on XP SP2 for these
tests.  I'll list the issues below:

1)  Problem with IPv6 support

It
appears that the in.h requires USE_IPV6 to be defined but it is not by
default.  The this results in the following output when attempting make
in the common directory:

gcc -O3 -I. -I../../WpdPack/Include
-I../include/cygwin-include -I./../include  -I./../argus
-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
-DHAVE_STRING_H=1 -DHAVE_FCNTL_H=1 -DHAVE_SYS_FILE_H=1
-DHAVE_SYSLOG_H=1 -DHAVE_SYS_VFS_H=1 -DHAVE_VFPRINTF=1
-DHAVE_STRCASECMP=1 -DHAVE_STRLCAT=1 -DHAVE_STRLCPY=1 -DHAVE_STRDUP=1
-DHAVE_STRFTIME=1 -DHAVE_SETLINEBUF=1 -DHAVE_ALARM=1 -DHAVE_STRERROR=1
-DHAVE_STRTOF=1 -DHAVE_FLOORF=1 -DHAVE_REMAINDERF=1 -DHAVE_INTTYPES_H=1
-DHAVE_VSNPRINTF=1 -DHAVE_SNPRINTF=1 -DLBL_ALIGN=1 -DCONFIG_X86_BSWAP=1
-DCYGWIN=1 -DSTDC_HEADERS=1 -DARGUS_SYSLOG=1 -c argus_util.c
In file included from ./../include/argus_os.h:99,
                 from argus_util.c:46:
../include/cygwin-include/netinet/icmp6.h:150: error: field `nd_ns_target' has incomplete type
../include/cygwin-include/netinet/icmp6.h:162: error: field `nd_na_target' has incomplete type
../include/cygwin-include/netinet/icmp6.h:183: error: field `nd_rd_target' has incomplete type
../include/cygwin-include/netinet/icmp6.h:184: error: field `nd_rd_dst' has incomplete type
../include/cygwin-include/netinet/icmp6.h:217: error: field `nd_opt_pi_prefix' has incomplete type
In file included from argus_util.c:48:
./../include/argus_parser.h:55: error: field `addr' has incomplete type
In file included from ./../argus/ArgusModeler.h:164,
                 from argus_util.c:50:
../include/cygwin-include/netinet/ip6.h:45: error: field `ip6_src' has incomplete type
../include/cygwin-include/netinet/ip6.h:46: error: field `ip6_dst' has incomplete type
../include/cygwin-include/netinet/ip6.h:91: error: field `ip6r0_addr' has incomplete type
make: *** [argus_util.o] Error 1

Adding this definition resolves this problem.

2) XDR Functions

Once
the IPv6 problem is resolved there are further issues with the what I
believe is the rpc library resulting in the following output from make:

### Making in /home/admin/argus-3.0.0/common
make[1]: Entering directory `/home/admin/argus-3.0.0/common'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/admin/argus-3.0.0/common'
### Done with /home/admin/argus-3.0.0/common
### Making in /home/admin/argus-3.0.0/argus
make[1]: Entering directory `/home/admin/argus-3.0.0/argus'
gcc
-O3 -I. -I../../WpdPack/Include -I../include/cygwin-include
-I./../include  -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\"
-DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\"
-DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
-DHAVE_UNISTD_H=1 -DHAVE_STRING_H=1 -DHAVE_FCNTL_H=1
-DHAVE_SYS_FILE_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_SYS_VFS_H=1
-DHAVE_VFPRINTF=1 -DHAVE_STRCASECMP=1 -DHAVE_STRLCAT=1 -DHAVE_STRLCPY=1
-DHAVE_STRDUP=1 -DHAVE_STRFTIME=1 -DHAVE_SETLINEBUF=1 -DHAVE_ALARM=1
-DHAVE_STRERROR=1 -DHAVE_STRTOF=1 -DHAVE_FLOORF=1 -DHAVE_REMAINDERF=1
-DHAVE_INTTYPES_H=1 -DHAVE_VSNPRINTF=1 -DHAVE_SNPRINTF=1 -DLBL_ALIGN=1
-DCONFIG_X86_BSWAP=1 -DCYGWIN=1 -DSTDC_HEADERS=1 -DARGUS_SYSLOG=1 -o
../bin/argus argus.o ArgusModeler.o ArgusSource.o ArgusUtil.o
ArgusOutput.o ArgusUdp.o ArgusTcp.o ArgusIcmp.o ArgusIgmp.o ArgusEsp.o
ArgusArp.o ArgusFrag.o ArgusAuth.o ArgusApp.o  ../lib/libpcap.a  
../lib/argus_common.a -lm
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x4eb): undefined reference to `_xdrmem_create'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x4fa): undefined reference to `_xdr_int'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x50c): undefined reference to `_xdr_float'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x51e): undefined reference to `_xdr_float'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x530): undefined reference to `_xdr_float'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x545): undefined reference to `_xdr_float'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x1090): undefined reference to `_xdrmem_create'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x109f): undefined reference to `_xdr_int'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x10b1): undefined reference to `_xdr_float'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x10c3): undefined reference to `_xdr_float'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x10d5): undefined reference to `_xdr_float'
../lib/argus_common.a(argus_util.o):argus_util.c:(.text+0x10e7): undefined reference to `_xdr_float'
Info: resolving _optind by linking to __imp__optind (auto-import)
Info: resolving _opterr by linking to __imp__opterr (auto-import)
Info: resolving _optarg by linking to __imp__optarg (auto-import)
collect2: ld returned 1 exit status
make[1]: *** [../bin/argus] Error 1
make[1]: Leaving directory `/home/admin/argus-3.0.0/argus'
### Done with /home/admin/argus-3.0.0/argus

I
am a novice at resolving these issues cleanly.  I was able to extract
the object files from the librpclib.a file and include them in the
argus_common.a which truly seems like an overkill.

3)  Running argus

Once
these hurdles were overcome, I was able to run a "make install" and
attempted to launch argus but it immediately returned to the prompt
without listing interfaces.  This was the exact situation described by
a previous post.  It failed in the init_console_handler function which
is a native Cygwin function.

I'm including the output from configure in the the hopes that it will be of some assistance:
$ ./configure
checking build system type... i686-pc-cygwin
checking host system type... i686-pc-cygwin
checking target system type... i686-pc-cygwin
checking for gcc... gcc
checking for C compiler default output file name... a.exe
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... .exe
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking gcc version... 3
checking for inline... inline
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking how to run the C preprocessor... gcc -E
checking whether make sets $(MAKE)... yes
checking for ranlib... ranlib
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/sockio.h usability... no
checking sys/sockio.h presence... no
checking for sys/sockio.h... no
checking for string.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking sys/vfs.h usability... yes
checking sys/vfs.h presence... yes
checking for sys/vfs.h... yes
checking for vfprintf... yes
checking for strcasecmp... yes
checking for strlcat... yes
checking for strlcpy... yes
checking for strdup... yes
checking for strftime... yes
checking for setlinebuf... yes
checking for alarm... yes
checking for strerror... yes
checking for strtof... yes
checking for floorf... yes
checking for remainderf... yes
checking sys/bitypes.h usability... no
checking sys/bitypes.h presence... no
checking for sys/bitypes.h... no
checking for int8_t... yes
checking for u_int8_t... yes
checking for int16_t... yes
checking for u_int16_t... yes
checking for int32_t... yes
checking for u_int32_t... yes
checking for int64_t... yes
checking for u_int64_t... yes
checking for inttypes.h... (cached) yes
checking whether inttypes.h defines the PRI[doxu]64 macros... yes
checking for vsnprintf... yes
checking for snprintf... yes
checking for getaddrinfo... no
checking for library containing gethostbyname... none required
checking for library containing socket... none required
checking for library containing putmsg... no
checking for ether_hostton... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for local pcap library... not found
checking for main in -lpcap... no
checking for local wpcap library... checking for extraneous pcap header directories... found -- -I../WpdPack/Include added
checking for pcap_list_datalinks... no
checking for pcap_set_datalink... no
checking for pcap_datalink_name_to_val... no
checking for pcap_breakloop... no
checking for pcap_dump_ftell... no
checking for local tcp_wrappers library... not found
checking for system tcp_wrappers library... no
configure: WARNING: tcp_wrapper not found
checking for flex... flex
checking for flex 2.4 or higher... yes
checking for bison... bison
checking for ranlib... ranlib
checking if unaligned accesses fail... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for ANSI C header files... (cached) yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ./common/Makefile
config.status: creating ./argus/Makefile

I appreciate any assistance or guidance anyone can give.  Thanks ahead of time for the help.

Jason
_________________________________________________________________
Climb to the top of the charts! Play the word scramble challenge with star power.
http://club.live.com/star_shuffle.aspx?icid=starshuffle_wlmailtextlink_jan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20080309/91bf2b68/attachment.html>


More information about the argus mailing list