giovedì 25 maggio 2006

compilare nmap su darwin 8 (mac os x 10.4): utopia?

qualcuno c' è riuscito?

a me non funziona neppure ./configure...

guardare per credere:



checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
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 ANSI C... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for g++... AVAILABLE
checking whether the compiler is gcc 4 or greater... yes
checking for inline... inline
checking build system type... powerpc-apple-darwin8.6.0
checking host system type... powerpc-apple-darwin8.6.0
checking how to run the C preprocessor... gcc -E
checking for egrep... 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 for string.h... (cached) yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for strings.h... (cached) yes
checking for memory.h... (cached) yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/sockio.h usability... yes
checking sys/sockio.h presence... yes
checking for sys/sockio.h... yes
checking bstring.h usability... no
checking bstring.h presence... no
checking for bstring.h... no
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sys/stat.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking for unistd.h... (cached) yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking for net/if.h... yes
checking for netinet/if_ether.h... yes
checking whether time.h and sys/time.h may both be included... yes
checking for library containing gethostent... none required
checking for library containing setsockopt... none required
checking for library containing nanosleep... none required
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking openssl/err.h usability... yes
checking openssl/err.h presence... yes
checking for openssl/err.h... yes
checking openssl/rand.h usability... yes
checking openssl/rand.h presence... yes
checking for openssl/rand.h... yes
checking for BIO_int_ctrl in -lcrypto... yes
checking for SSL_new in -lssl... yes
checking pcap.h usability... yes
checking pcap.h presence... yes
checking for pcap.h... yes
checking for pcap_datalink in -lpcap... yes
checking if libpcap version is recent enough... yes
checking pcre.h usability... yes
checking pcre.h presence... yes
checking for pcre.h... yes
checking for pcre_version in -lpcre... yes
checking struct ip... yes
checking ip_v in struct ip... yes
checking if sockaddr{} has sa_len member... yes
checking whether byte ordering is bigendian... yes
checking if struct in_addr is a wacky huge structure (some Sun boxes)... no
checking if struct icmp exists... yes
checking if struct ip exists... yes
checking if struct ip has ip_sum member... yes
checking for bzero... yes
checking for memcpy... yes
checking for nanosleep... yes
checking for strerror... yes
checking for strcasestr... yes
checking for inet_aton... yes
checking for getopt_long_only... yes
checking for usleep... yes
checking for type of 6th argument to recvfrom()... socklen_t
checking for pkg-config... no
checking If you have GTK+ installed... no
configure: WARNING: Gtk+ has not been installed -> nmapfe will not be made
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
configure: configuring in libdnet-stripped
configure: running /bin/sh './configure' --prefix=/usr/local --cache-file=/dev/null --srcdir=.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... powerpc-apple-darwin8.6.0
checking host system type... powerpc-apple-darwin8.6.0
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
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 ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking for a BSD-compatible install... /usr/bin/install -c
checking for a sed that does not truncate output... /usr/bin/sed
checking for egrep... grep -E
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... no
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -p
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -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 dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... none
checking how to run the C++ preprocessor... g++ -E
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for epcf90... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for gfortran... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether accepts -g... no
checking the maximum length of command line arguments... 65536
checking command to parse /usr/bin/nm -p output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc static flag works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fno-common
checking if gcc PIC flag -fno-common works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin8.6.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... no
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fno-common
checking if g++ PIC flag -fno-common works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin8.6.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking for dlopen in -ldl... (cached) yes
checking whether a program can dlopen itself... (cached) yes
checking whether a statically linked program can dlopen itself... (cached) yes
appending configuration tag "F77" to libtool
checking for Python... checking for gethostbyname... yes
checking for socket... yes
checking for putmsg in -lstr... no
checking for open_mib in -lnm... no
checking for Check... yes
checking for ANSI C header files... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for unistd.h... (cached) yes
checking sys/bufmod.h usability... no
checking sys/bufmod.h presence... no
checking for sys/bufmod.h... no
checking sys/dlpi.h usability... no
checking sys/dlpi.h presence... no
checking for sys/dlpi.h... no
checking sys/dlpihdr.h usability... no
checking sys/dlpihdr.h presence... no
checking for sys/dlpihdr.h... no
checking sys/dlpi_ext.h usability... no
checking sys/dlpi_ext.h presence... no
checking for sys/dlpi_ext.h... no
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/mib.h usability... no
checking sys/mib.h presence... no
checking for sys/mib.h... no
checking sys/ndd_var.h usability... no
checking sys/ndd_var.h presence... no
checking for sys/ndd_var.h... no
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/sockio.h usability... yes
checking sys/sockio.h presence... yes
checking for sys/sockio.h... yes
checking sys/sysctl.h usability... yes
checking sys/sysctl.h presence... yes
checking for sys/sysctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking net/bpf.h usability... yes
checking net/bpf.h presence... yes
checking for net/bpf.h... yes
checking net/if.h usability... no
checking net/if.h presence... yes
configure: WARNING: net/if.h: present but cannot be compiled
configure: WARNING: net/if.h: check for missing prerequisite headers?
configure: WARNING: net/if.h: see the Autoconf documentation
configure: WARNING: net/if.h: section "Present But Cannot Be Compiled"
configure: WARNING: net/if.h: proceeding with the preprocessor's result
configure: WARNING: net/if.h: in the future, the compiler will take precedence
configure: WARNING: ## ------------------------------------------ ##
configure: WARNING: ## Report this to the AC_PACKAGE_NAME lists. ##
configure: WARNING: ## ------------------------------------------ ##
checking for net/if.h... yes
checking net/if_var.h usability... yes
checking net/if_var.h presence... yes
checking for net/if_var.h... yes
checking net/if_arp.h usability... yes
checking net/if_arp.h presence... yes
checking for net/if_arp.h... yes
checking net/if_dl.h usability... yes
checking net/if_dl.h presence... yes
checking for net/if_dl.h... yes
checking net/pfilt.h usability... no
checking net/pfilt.h presence... no
checking for net/pfilt.h... no
checking net/pfvar.h usability... no
checking net/pfvar.h presence... no
checking for net/pfvar.h... no
checking net/radix.h usability... no
checking net/radix.h presence... no
checking for net/radix.h... no
checking net/raw.h usability... no
checking net/raw.h presence... no
checking for net/raw.h... no
checking net/route.h usability... yes
checking net/route.h presence... yes
checking for net/route.h... yes
checking netinet/in_var.h usability... no
checking netinet/in_var.h presence... yes
configure: WARNING: netinet/in_var.h: present but cannot be compiled
configure: WARNING: netinet/in_var.h: check for missing prerequisite headers?
configure: WARNING: netinet/in_var.h: see the Autoconf documentation
configure: WARNING: netinet/in_var.h: section "Present But Cannot Be Compiled"
configure: WARNING: netinet/in_var.h: proceeding with the preprocessor's result
configure: WARNING: netinet/in_var.h: in the future, the compiler will take precedence
configure: WARNING: ## ------------------------------------------ ##
configure: WARNING: ## Report this to the AC_PACKAGE_NAME lists. ##
configure: WARNING: ## ------------------------------------------ ##
checking for netinet/in_var.h... yes
checking net/if_tun.h usability... no
checking net/if_tun.h presence... no
checking for net/if_tun.h... no
checking linux/if_tun.h usability... no
checking linux/if_tun.h presence... no
checking for linux/if_tun.h... no
checking netinet/ip_fw.h usability... no
checking netinet/ip_fw.h presence... yes
configure: WARNING: netinet/ip_fw.h: present but cannot be compiled
configure: WARNING: netinet/ip_fw.h: check for missing prerequisite headers?
configure: WARNING: netinet/ip_fw.h: see the Autoconf documentation
configure: WARNING: netinet/ip_fw.h: section "Present But Cannot Be Compiled"
configure: WARNING: netinet/ip_fw.h: proceeding with the preprocessor's result
configure: WARNING: netinet/ip_fw.h: in the future, the compiler will take precedence
configure: WARNING: ## ------------------------------------------ ##
configure: WARNING: ## Report this to the AC_PACKAGE_NAME lists. ##
configure: WARNING: ## ------------------------------------------ ##
checking for netinet/ip_fw.h... yes
checking linux/ip_fw.h usability... no
checking linux/ip_fw.h presence... no
checking for linux/ip_fw.h... no
checking linux/ip_fwchains.h usability... no
checking linux/ip_fwchains.h presence... no
checking for linux/ip_fwchains.h... no
checking linux/netfilter_ipv4/ipchains_core.h usability... no
checking linux/netfilter_ipv4/ipchains_core.h presence... no
checking for linux/netfilter_ipv4/ipchains_core.h... no
checking ip_fil_compat.h usability... no
checking ip_fil_compat.h presence... no
checking for ip_fil_compat.h... no
checking netinet/ip_fil_compat.h usability... no
checking netinet/ip_fil_compat.h presence... no
checking for netinet/ip_fil_compat.h... no
checking ip_compat.h usability... no
checking ip_compat.h presence... no
checking for ip_compat.h... no
checking netinet/ip_compat.h usability... no
checking netinet/ip_compat.h presence... no
checking for netinet/ip_compat.h... no
checking ip_fil.h usability... no
checking ip_fil.h presence... no
checking for ip_fil.h... no
checking netinet/ip_fil.h usability... no
checking netinet/ip_fil.h presence... no
checking for netinet/ip_fil.h... no
checking hpsecurity.h usability... no
checking hpsecurity.h presence... no
checking for hpsecurity.h... no
checking stropts.h usability... no
checking stropts.h presence... no
checking for stropts.h... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for pid_t... yes
checking for size_t... yes
checking for sockaddr_in6 struct in ... yes
checking for sa_len in sockaddr struct... yes
checking for arp_dev in arpreq struct... no
checking for rt_msghdr struct in ... yes
checking whether gcc needs -traditional... no
checking for working memcmp... yes
checking for err... yes
checking for strlcat... yes
checking for strlcpy... yes
checking for strsep... yes
checking for Berkeley Packet Filter... yes
checking for Linux proc filesystem... no
checking for Linux PF_PACKET sockets... no
checking for SNMP MIB2 STREAMS... no
checking for route(7) STREAMS... no
checking for arp(7) ioctls... no
checking for raw IP sockets ip_{len,off} host byte ordering... no
checking for cooked raw IP sockets... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating dnet-config
config.status: creating include/Makefile
config.status: creating include/dnet/Makefile
config.status: creating src/Makefile
config.status: creating include/config.h
config.status: include/config.h is unchanged
config.status: executing depfiles commands
config.status: executing default commands
configure: configuring in nbase
configure: running /bin/sh './configure' --prefix=/usr/local --cache-file=/dev/null --srcdir=.
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
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 ANSI C... none needed
checking for ranlib... ranlib
checking build system type... powerpc-apple-darwin8.6.0
checking host system type... powerpc-apple-darwin8.6.0
checking how to run the C preprocessor... gcc -E
checking for egrep... 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 for string.h... (cached) yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for strings.h... (cached) yes
checking for memory.h... (cached) yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking bstring.h usability... no
checking bstring.h presence... no
checking for bstring.h... no
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking for sys/types.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking sys/sockio.h usability... yes
checking sys/sockio.h presence... yes
checking for sys/sockio.h... yes
checking rpc/types.h usability... yes
checking rpc/types.h presence... yes
checking for rpc/types.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking for sys/stat.h... (cached) yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking net/if.h usability... no
checking net/if.h presence... yes
configure: WARNING: net/if.h: present but cannot be compiled
configure: WARNING: net/if.h: check for missing prerequisite headers?
configure: WARNING: net/if.h: see the Autoconf documentation
configure: WARNING: net/if.h: section "Present But Cannot Be Compiled"
configure: WARNING: net/if.h: proceeding with the preprocessor's result
configure: WARNING: net/if.h: in the future, the compiler will take precedence
configure: WARNING: ## ------------------------------------------ ##
configure: WARNING: ## Report this to the AC_PACKAGE_NAME lists. ##
configure: WARNING: ## ------------------------------------------ ##
checking for net/if.h... yes
checking libiberty.h usability... no
checking libiberty.h presence... no
checking for libiberty.h... no
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for net/if.h... (cached) yes
checking for netinet/if_ether.h... yes
checking whether time.h and sys/time.h may both be included... yes
checking for inline... inline
checking for __attribute__... yes
checking whether byte ordering is bigendian... yes
checking for gethostent... yes
checking for setsockopt... yes
checking for char... yes
checking size of char... 1
checking for short... yes
checking size of short... 2
checking for int... yes
checking size of int... 4
checking for long... yes
checking size of long... 4
checking for bzero... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for memcpy... yes
checking for nanosleep... yes
checking for strerror... yes
checking for strcasestr... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for signal... yes
checking for inet_aton... yes
checking for vsnprintf... (cached) yes
checking for snprintf... (cached) yes
checking for asprintf... yes
checking for asnprintf... no
checking for vasprintf... yes
checking for vasnprintf... no
checking for usleep... yes
checking for gettimeofday... yes
checking for sleep... yes
checking for getopt_long_only... yes
checking for strcasecmp... (cached) yes
checking for strncasecmp... (cached) yes
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking openssl/err.h usability... yes
checking openssl/err.h presence... yes
checking for openssl/err.h... yes
checking openssl/rand.h usability... yes
checking openssl/rand.h presence... yes
checking for openssl/rand.h... yes
checking for BIO_int_ctrl in -lcrypto... yes
checking for SSL_new in -lssl... yes
checking for library containing getaddrinfo... none required
checking for library containing gai_strerror... none required
checking for library containing getnameinfo... none required
checking for gai_strerror... yes
checking for inet_ntop... yes
checking for inet_pton... yes
checking for working getaddrinfo... yes
checking for working getnameinfo... yes
checking for sockaddr_in6... yes
checking for sockaddr_storage... yes
checking for AF_INET6 definition... yes
checking for IPv6 support... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating nbase_config.h
config.status: nbase_config.h is unchanged
configure: configuring in nsock/src
configure: running /bin/sh './configure' --prefix=/usr/local --cache-file=/dev/null --srcdir=.
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
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 ANSI C... none needed
checking for ranlib... ranlib
checking build system type... powerpc-apple-darwin8.6.0
checking host system type... powerpc-apple-darwin8.6.0
checking for gethostent... yes
checking for setsockopt... yes
checking for nanosleep... yes
checking how to run the C preprocessor... gcc -E
checking for egrep... 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 openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking openssl/err.h usability... yes
checking openssl/err.h presence... yes
checking for openssl/err.h... yes
checking openssl/rand.h usability... yes
checking openssl/rand.h presence... yes
checking for openssl/rand.h... yes
checking for BIO_int_ctrl in -lcrypto... yes
checking for SSL_new in -lssl... yes
checking struct ip... yes
checking ip_v in struct ip... yes
checking if sockaddr{} has sa_len member... yes
checking if struct icmp exists... yes
checking if struct ip exists... yes
checking if struct ip has ip_sum member... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating nsock_config.h
config.status: nsock_config.h is unchanged
( ) /\ _ (
\ | ( \ ( \.( ) _____
\ \ \ ` ` ) \ ( ___ / _ (_` \+ . x ( .\ \/ \____-----------/ (o) \_
- .- \+ ; ( O \____
) \_____________ ` \ /
(__ +- .( -'.- <. - _ VVVVVVV VV V\ \/
(_____ ._._: <_ - <- _ (-- _AAAAAAA__A_/ |
. /./.+- . .- / +-- - . \______________//_ \_______
(__ ' /x / x _/ ( \___' \ /
, x / ( ' . / . / | \ /
/ / _/ / + / \/
' (__/ / NMAP IS A POWERFUL TOOL -- USE CAREFULLY AND REPONSIBLY
Configuration complete. Type make (or gmake on some *BSD machines) to compile.

se ora faccio make, sembra che vada tutto a posto, ma lanciando il programma, non succede niente, si incanta...
ed ho anche reinstallato l' os 3 volte....

qualcuno ha qualche idea?
o sono l'unico idiota?

2 commenti:

Forth ha detto...

I've guessed you'd like to use nmap on macOS 10.4, you can simply use Fink, DarwinPort or Pkgsrc. Here is for exemple the DarwinPort command :
sudo port install nmap

Cristiano RosenCreutz ha detto...

yes, i know about darwinport (in fact i use it, but i' d like to make it by hands..

thankyou very much for comment!