--- ipv6calc-0.70cvs+20070208.orig/INSTALLING +++ ipv6calc-0.70cvs+20070208/INSTALLING @@ -57,7 +57,8 @@ Following options are used: --bindir=/usr/bin (@bindir@) --mandir=/usr/share/man (@mandir@) - --enable-ip2location (@ENABLE_SUPPORT_IP2LOCATION@) + --enable-ip2location (see below for more information) + --enable-geoip (see below for more information) Execute: ./configure --bindir=/usr/bin --mandir=/usr/share/man @@ -79,6 +80,40 @@ ./databases/ieee-iab/README ./databases/ieee-oui/README +IP2LOCATION LIBRARY +------------------- + +You can use the IP2Location library with ipv6calc. The library is available +at , and the currently supported version +is 2.1.1. The support is enabled with the --enable-ip2location configure +option. + +If you have installed the IP2Location library in a non-standard place, you +may find the --with-ip2location-headers=DIR and --with-ip2location-lib=DIR +configure options useful. If you have problems finding the library at +runtime, try linking it statically the --with-ip2location-static configure +option. + +If you have problems building the IP2Location library, see the +README.BUILDING-IP2LOCATION file in the ipv6calc distribution. + +GEOIP LIBRARY +------------- + +You can also use the GeoIP library with ipv6calc. The library is available +at , and the currently supported +version is 1.4.1 (although others may work too). The support is enabled +with the --enable-geoip configure option. + +If you have installed the GeoIP library in a non-standard place, you may +find the --with-geoip-headers=DIR and --with-geoip-lib=DIR configure +options useful. If you have problems finding the library at runtime, +try linking it statically the --with-geoip-static configure option. + +You can set the path to a default GeoIP database file by using the +--with-geoip-default-file configure option. This file is used +when ipv6calc is invoked with the '-G' (or '--db-geoip-default') +option. COMPILE ------- --- ipv6calc-0.70cvs+20070208.orig/configure.in +++ ipv6calc-0.70cvs+20070208/configure.in @@ -5,13 +5,6 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(ipv6calc, 0.70.0cvs, ipv6calc@deepspace6.net, ipv6calc) -dnl Define versions of built-in IP location database APIs -VERSION_IP2LOCATION=2.1.0 -VERSION_GEOIP=1.4.0 - -AC_DEFINE(VERSION_IP2LOCATION, "2.1.0", Version of IP2Location API.) -AC_DEFINE(VERSION_GEOIP, "1.4.0", Version of GeoIP API.) - dnl Define version header AC_CONFIG_HEADER(config.h) @@ -49,45 +42,97 @@ AC_ARG_ENABLE([ip2location], AS_HELP_STRING([--enable-ip2location], [Enable IP2Location support (default: disabled)]), - [if test "x$enable_ip2location" = "xyes"; then - ENABLE_SUPPORT_IP2LOCATION=1 - AC_DEFINE(SUPPORT_IP2LOCATION, 1, Define if you want IP2Location support.) - fi]) -AC_SUBST(ENABLE_SUPPORT_IP2LOCATION) -AC_SUBST(VERSION_IP2LOCATION) + [ + IP2LOCATION="$enableval" + IP2LOCATION_LIB="-lIP2Location" + ], + [IP2LOCATION="no"]) + +AC_ARG_WITH([ip2location-headers], + AS_HELP_STRING([--with-ip2location-headers=DIR], + [IP2Location include files location]), + [IP2LOCATION_INCLUDE="-I$withval"]) + +AC_ARG_WITH([ip2location-lib], + AS_HELP_STRING([--with-ip2location-lib=DIR], + [IP2Location library location]), + [IP2LOCATION_LIB="-L$withval $IP2LOCATION_LIB"]) + +AC_ARG_WITH([ip2location-static], + AS_HELP_STRING([--with-ip2location-static], + [Explicitly link IP2Location statically (default=no)]), + [if test "$withval" != "no"; then + IP2LOCATION_LIB="-Wl,-Bstatic $IP2LOCATION_LIB -Wl,-Bdynamic" + fi]) + +if test "$IP2LOCATION" = "yes"; then + CPPFLAGS="$CPPFLAGS $IP2LOCATION_INCLUDE" + LDFLAGS="$LDFLAGS $IP2LOCATION_LIB" + AC_CHECK_HEADER(IP2Location.h,, + [AC_MSG_ERROR([IP2Location library header files not found])] + ) + AC_CHECK_LIB(IP2Location,IP2Location_open, + [ + AC_DEFINE(SUPPORT_IP2LOCATION, 1, Define if you want IP2Location support.) + ], + [ + AC_MSG_ERROR([IP2Location library header files were found but the library was not found]) + ]) +fi + +AC_SUBST(IP2LOCATION_INCLUDE) +AC_SUBST(IP2LOCATION_LIB) dnl GeoIP support AC_ARG_ENABLE([geoip], AS_HELP_STRING([--enable-geoip], [Enable GeoIP support (default: disabled)]), - [if test "x$enable_geoip" = "xyes"; then - ENABLE_SUPPORT_GEOIP=1 - AC_DEFINE(SUPPORT_GEOIP, 1, Define if you want GeoIP support.) - fi]) - -AC_ARG_ENABLE([geoip-system], - AS_HELP_STRING([--enable-geoip-system], - [Use the system GeoIP library instead of the bundled one (default: bundled)]), - [if test "x$enable_geoip_system" = "xyes"; then - AC_CHECK_HEADER([GeoIP.h], [], AC_MSG_ERROR([System GeoIP library not found])) - ENABLE_SYSTEM_GEOIP=1 - ENABLE_SUPPORT_GEOIP=1 - AC_DEFINE(SUPPORT_GEOIP, 1, Define if you want to use GeoIP support.) - AC_DEFINE(ENABLE_GEOIP_SYSTEM, 1, Define if you want to use GeoIP system library support.) - fi]) + [ + GEOIP="$enableval" + GEOIP_LIB="-lGeoIP" + ], + [GEOIP="no"]) + +AC_ARG_WITH([geoip-headers], + AS_HELP_STRING([--with-geoip-headers=DIR], + [GeoIP include files location]), + [GEOIP_INCLUDE="-I$withval"]) + +AC_ARG_WITH([geoip-lib], + AS_HELP_STRING([--with-geoip-lib=DIR], + [GeoIP library location]), + [GEOIP_LIB="-L$withval $GEOIP_LIB"]) + + +AC_ARG_WITH([geoip-static], + AS_HELP_STRING([--with-geoip-static], + [Explicitly link GeoIP statically (default=no)]), + [if test "$withval" != "no"; then + GEOIP_LIB="-Wl,-Bstatic $GEOIP_LIB -Wl,-Bdynamic" + fi]) -AC_ARG_ENABLE([geoip-default-file], - AS_HELP_STRING([--enable-geoip-default-file=file], +AC_ARG_WITH([geoip-default-file], + AS_HELP_STRING([--with-geoip-default-file=file], [Use a default GeoIP database file when ipv6calc is invoked with '--db-geoip-default|-G']), - [if test "x$enable_geoip_default_file" != xno; then - AC_DEFINE_UNQUOTED(GEOIP_DEFAULT_FILE, "$enable_geoip_default_file", Define for a default GeoIP database file.) - ENABLE_SUPPORT_GEOIP=1 - AC_DEFINE(SUPPORT_GEOIP, 1, Define if you want to use GeoIP support.) - fi]) - -AC_SUBST(ENABLE_SUPPORT_GEOIP) -AC_SUBST(VERSION_GEOIP) -AC_SUBST(ENABLE_SYSTEM_GEOIP) + [AC_DEFINE_UNQUOTED(GEOIP_DEFAULT_FILE, "$withval", Define for a default GeoIP database file.)]) + +if test "$GEOIP" = "yes"; then + CPPFLAGS="$CFLAGS $GEOIP_INCLUDE" + LDFLAGS="$LDFLAGS $GEOIP_LIB" + AC_CHECK_HEADER(GeoIP.h,, + [AC_MSG_ERROR([GeoIP library header files not found])] + ) + AC_CHECK_LIB(GeoIP, GeoIP_open, + [ + AC_DEFINE(SUPPORT_GEOIP, 1, Define if you want GeoIP support.) + ], + [ + AC_MSG_ERROR([GeoIP library header files were found but the library was not found]) + ]) +fi + +AC_SUBST(GEOIP_INCLUDE) +AC_SUBST(GEOIP_LIB) dnl Files to create AC_OUTPUT([Makefile ipv6calc/Makefile man/Makefile ipv6logconv/Makefile ipv6loganon/Makefile ipv6logstats/Makefile contrib/ipv6calc.spec ipv6calcweb/ipv6calcweb.cgi ]) --- ipv6calc-0.70cvs+20070208.orig/Makefile.in +++ ipv6calc-0.70cvs+20070208/Makefile.in @@ -19,15 +19,6 @@ CC = gcc -ifeq (@ENABLE_SUPPORT_IP2LOCATION@, 1) - IP2LOCATION_MAKE = ip2location-make -endif -ifeq (@ENABLE_SUPPORT_GEOIP@, 1) - ifeq (, @ENABLE_SYSTEM_GEOIP@) - GEOIP_MAKE = geoip-make - endif -endif - all: md5-make $(GETOPT_MAKE) ipv6calc ipv6logconv ipv6loganon ipv6logstats .c.o: @@ -46,7 +37,7 @@ ${MAKE} clean rm -f config.cache config.status config.log rm -rf autom4te.cache - for dir in ipv6logconv ipv6loganon ipv6logstats ipv6calcweb ipv6calc man lib md5 $(GETOPT_MAKE) databases/ieee-oui databases/ieee-iab databases/ipv4-assignment databases/ipv6-assignment databases/IP2Location/C-IP2Location-@VERSION_IP2LOCATION@ databases/GeoIP/GeoIP-@VERSION_GEOIP@; do \ + for dir in ipv6logconv ipv6loganon ipv6logstats ipv6calcweb ipv6calc man lib md5 $(GETOPT_MAKE) databases/ieee-oui databases/ieee-iab databases/ipv4-assignment databases/ipv6-assignment; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; \ @@ -67,7 +58,7 @@ done clean: - for dir in ipv6logconv ipv6loganon ipv6logstats ipv6calcweb ipv6calc man lib md5 $(GETOPT_MAKE) databases/IP2Location/C-IP2Location-@VERSION_IP2LOCATION@ databases/GeoIP/GeoIP-@VERSION_GEOIP@; do \ + for dir in ipv6logconv ipv6loganon ipv6logstats ipv6calcweb ipv6calc man lib md5 $(GETOPT_MAKE); do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; \ @@ -104,7 +95,7 @@ ipv6logstats-make: lib-make cd ipv6logstats && ${MAKE} -ipv6calc-make: lib-make $(IP2LOCATION_MAKE) $(GEOIP_MAKE) +ipv6calc-make: lib-make cd ipv6calc && ${MAKE} ipv6calcweb-make: @@ -122,31 +113,6 @@ db-ipv6-assignment-make: cd databases/ipv6-assignment && ${MAKE} -ip2location-make: - # check for existence of object file - test -f databases/IP2Location/C-IP2Location-@VERSION_IP2LOCATION@/libIP2Location/IP2Location.o || ${MAKE} ip2location-makereal - # check for object file newer than source file - test databases/IP2Location/C-IP2Location-@VERSION_IP2LOCATION@/libIP2Location/IP2Location.o -nt databases/IP2Location/C-IP2Location-@VERSION_IP2LOCATION@/libIP2Location/IP2Location.c || ${MAKE} ip2location-makereal - -ip2location-makereal: - ( cd databases/IP2Location/C-IP2Location-@VERSION_IP2LOCATION@ || exit 1 ; \ - autoreconf -i -v --force || exit 1; \ - ./configure || exit 1; \ - ${MAKE}; \ - ) - -geoip-make: - # check for existence of object file - test -f databases/GeoIP/GeoIP-@VERSION_GEOIP@/libGeoIP/GeoIP.o || ${MAKE} geoip-makereal - -geoip-makereal: - ( cd databases/GeoIP/GeoIP-@VERSION_GEOIP@ || exit 1; \ - ./bootstrap || exit 1; \ - ./configure || exit 1; \ - ${MAKE}; \ - ${MAKE} check; \ - ) - update: for dir in databases/ieee-oui databases/ieee-iab databases/registries; do \ ocwd=`pwd`; \ --- ipv6calc-0.70cvs+20070208.orig/LICENSE +++ ipv6calc-0.70cvs+20070208/LICENSE @@ -20,27 +20,6 @@ IAB/OUI data is taken from IEEE IPv4/IPv6 assignment data is taken from registries RIPE NCC, APNIC, ARIN, LACNIC, AfriNIC - * IP2Location API code - GPL licence: databases/IP2Location/C-IP2Location-1.1.0/COPYING - - databases/IP2Location/* - - * IP2Location real databases - are NOT distributed with this package because of dedicated licensing is required - see here for more: http://www.ip2location.com/ - - * GeoIP API code - GPL licence: databases/GeoIP/GeoIP-1.3.17/COPYING - - databases/GeoIP/* - - * GeoIP free databases - are NOT included with this package because of keeping exported package small - see here for more: http://www.maxmind.com/ or retrieve them directly: - http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz - http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz - but don't forget to read the license - http://www.maxmind.com/download/geoip/database/LICENSE.txt - - 1. The program "ipv6calc" is distributed under the GNU GPL version 2 (see COPYING file for more) --- ipv6calc-0.70cvs+20070208.orig/README.BUILDING-IP2LOCATION +++ ipv6calc-0.70cvs+20070208/README.BUILDING-IP2LOCATION @@ -0,0 +1,62 @@ +BUILDING IP2LOCATION +-------------------- + +If you want to use the IP2Location library with ipv6calc, you will +have to build and install it yourself separately. Unfortunately, +the current version (2.1.1) of the IP2Location library distributed at + is not very polished. It needs at +least GNU automake, autoconf and libtool to build. You must first build +the configure script, as documented in the README: + +% autoreconf -i -v --force + +Then, as normal: + +./configure + +If you get this message: + +configure: creating ./config.status +config.status: error: cannot find input file: Makefile + +the problem is that configure.ac contains DOS-style line +endings. + +An easy way to fix this is: + +% perl -pi.bak -e 's/\r//' configure.ac + +Afterwards, you'll have to rerun autoreconf: + +% autoreconf -i -v --force + +Now the normal build procedure + +% ./configure && make + +should work, but be aware that 'make install' will only +install the library, not the include files (and even the +library will go into a strange place). The best way to fix +this is to edit libIP2Location/Makefile.am and change + +pkglib_LTLIBRARIES = libIP2Location.la + +into + +lib_LTLIBRARIES = libIP2Location.la +include_HEADERS = IP2Location.h bigd.h + +So, one more iteration: + +% autoreconf -i -v --force + +% ./configure && make + +# make install + +and you should be OK. Phew! + +Next, see the INSTALL file in the ipv6calc distribution for information +on configuring ipv6calc to use the library. + +-- Niko Tyni , Fri, 09 Feb 2007 00:23:29 +0200 --- ipv6calc-0.70cvs+20070208.orig/ipv6calc/Makefile.in +++ ipv6calc-0.70cvs+20070208/ipv6calc/Makefile.in @@ -13,27 +13,9 @@ # Compiler and Linker Options COPTS = -O2 -Wall -g -CFLAGS = $(COPTS) @GETOPT_INCLUDE@ -I../ -I../lib/ +CFLAGS = $(COPTS) @GETOPT_INCLUDE@ @GEOIP_INCLUDE@ @IP2LOCATION_INCLUDE@ -I../ -I../lib/ -GETOBJS = @LIBOBJS@ ../md5/md5.o - -ifeq (@ENABLE_SUPPORT_IP2LOCATION@, 1) - COPTS := $(COPTS) -DSUPPORT_IP2LOCATION - path_libIP2Location = ../databases/IP2Location/C-IP2Location-@VERSION_IP2LOCATION@/libIP2Location - CFLAGS := $(CFLAGS) -I$(path_libIP2Location) - GETOBJS := $(GETOBJS) $(path_libIP2Location)/IP2Location.o $(path_libIP2Location)/bigdigits.o $(path_libIP2Location)/spBigdigits.o $(path_libIP2Location)/bigd.o -endif - -ifeq (@ENABLE_SUPPORT_GEOIP@, 1) - COPTS := $(COPTS) -DSUPPORT_GEOIP - ifeq (@ENABLE_SYSTEM_GEOIP@, 1) - GETOBJS := $(GETOBJS) -lGeoIP - else - path_libGeoIP = ../databases/GeoIP/GeoIP-@VERSION_GEOIP@/libGeoIP - CFLAGS := $(CFLAGS) -I$(path_libGeoIP) - GETOBJS := $(GETOBJS) $(path_libGeoIP)/GeoIP.o $(path_libGeoIP)/GeoIPCity.o - endif -endif +GETOBJS = @LIBOBJS@ ../md5/md5.o @GEOIP_LIB@ @IP2LOCATION_LIB@ CC = gcc --- ipv6calc-0.70cvs+20070208.orig/ipv6calc/showinfo.c +++ ipv6calc-0.70cvs+20070208/ipv6calc/showinfo.c @@ -28,6 +28,14 @@ #ifdef SUPPORT_IP2LOCATION #include "IP2Location.h" + +/* + * API_VERSION is defined as a bareword in IP2Location.h, + * we need this trick to stringify it. Blah. + */ +#define makestr(x) #x +#define xmakestr(x) makestr(x) + extern int use_ip2location_ipv4; extern int use_ip2location_ipv6; extern char file_ip2location_ipv4[NI_MAXHOST]; @@ -167,7 +175,7 @@ flag_ip2location_info_shown = 1; if ( machinereadable != 0 ) { - snprintf(tempstring, sizeof(tempstring) - 1, "IP2LOCATION_DATABASE_INFO=url=http://www.ip2location.com date=%04d-%02d-%02d entries=%d apiversion=%s", IP2LocationObj->databaseyear + 2000, IP2LocationObj->databasemonth + 1, IP2LocationObj->databaseday, IP2LocationObj->databasecount, VERSION_IP2LOCATION); + snprintf(tempstring, sizeof(tempstring) - 1, "IP2LOCATION_DATABASE_INFO=url=http://www.ip2location.com date=%04d-%02d-%02d entries=%d apiversion=%s", IP2LocationObj->databaseyear + 2000, IP2LocationObj->databasemonth + 1, IP2LocationObj->databaseday, IP2LocationObj->databasecount, xmakestr(API_VERSION)); printout(tempstring); }; }; @@ -319,11 +327,7 @@ flag_geoip_info_shown = 1; if ( machinereadable != 0 ) { -#ifdef ENABLE_GEOIP_SYSTEM snprintf(tempstring, sizeof(tempstring) - 1, "GEOIP_DATABASE_INFO=%s apiversion=system", GeoIP_database_info(gi)); -#else - snprintf(tempstring, sizeof(tempstring) - 1, "GEOIP_DATABASE_INFO=%s apiversion=%s", GeoIP_database_info(gi), VERSION_GEOIP); -#endif printout(tempstring); }; };