mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-28 03:33:25 +02:00
geoip-generator: added to build legacy GeoIP.dat file
program and scripts based on debian geoip packages. Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
This commit is contained in:
16
config/rootfiles/common/geoip-generator
Normal file
16
config/rootfiles/common/geoip-generator
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#usr/bin/geoiplookup
|
||||||
|
#usr/bin/geoiplookup6
|
||||||
|
#usr/include/GeoIP.h
|
||||||
|
#usr/include/GeoIPCity.h
|
||||||
|
#usr/lib/libGeoIP.a
|
||||||
|
#usr/lib/libGeoIP.la
|
||||||
|
usr/lib/libGeoIP.so
|
||||||
|
usr/lib/libGeoIP.so.1
|
||||||
|
usr/lib/libGeoIP.so.1.6.12
|
||||||
|
#usr/lib/pkgconfig/geoip.pc
|
||||||
|
#usr/share/GeoIP/bin
|
||||||
|
usr/share/GeoIP/bin/countryInfo.txt
|
||||||
|
usr/share/GeoIP/bin/geoip-generator
|
||||||
|
usr/share/GeoIP/bin/geolite2-to-legacy-csv.sh
|
||||||
|
#usr/share/man/man1/geoiplookup.1
|
||||||
|
#usr/share/man/man1/geoiplookup6.1
|
||||||
89
lfs/geoip-generator
Normal file
89
lfs/geoip-generator
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
###############################################################################
|
||||||
|
# #
|
||||||
|
# IPFire.org - A linux based firewall #
|
||||||
|
# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
|
||||||
|
# #
|
||||||
|
# This program is free software: you can redistribute it and/or modify #
|
||||||
|
# it under the terms of the GNU General Public License as published by #
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or #
|
||||||
|
# (at your option) any later version. #
|
||||||
|
# #
|
||||||
|
# This program is distributed in the hope that it will be useful, #
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||||
|
# GNU General Public License for more details. #
|
||||||
|
# #
|
||||||
|
# You should have received a copy of the GNU General Public License #
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||||
|
# #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Definitions
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
include Config
|
||||||
|
|
||||||
|
VER = 1.6.12
|
||||||
|
DVER = 1.6.12-3
|
||||||
|
|
||||||
|
THISAPP = geoip-api-c-$(VER)
|
||||||
|
DL_FILE = $(THISAPP).tar.gz
|
||||||
|
DL_FROM = $(URL_IPFIRE)
|
||||||
|
DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||||
|
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Top-level Rules
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
objects = $(DL_FILE) geoip_$(DVER).debian.tar.xz
|
||||||
|
|
||||||
|
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||||
|
geoip_$(DVER).debian.tar.xz = $(DL_FROM)/geoip_$(DVER).debian.tar.xz
|
||||||
|
|
||||||
|
$(DL_FILE)_MD5 = 727e5d6df9e9fc039dbc3a323cc56d2e
|
||||||
|
geoip_$(DVER).debian.tar.xz_MD5 = 64fb561362dc456b45b799da20d47dd4
|
||||||
|
|
||||||
|
install : $(TARGET)
|
||||||
|
|
||||||
|
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
|
||||||
|
|
||||||
|
download :$(patsubst %,$(DIR_DL)/%,$(objects))
|
||||||
|
|
||||||
|
md5 : $(subst %,%_MD5,$(objects))
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Downloading, checking, md5sum
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
$(patsubst %,$(DIR_CHK)/%,$(objects)) :
|
||||||
|
@$(CHECK)
|
||||||
|
|
||||||
|
$(patsubst %,$(DIR_DL)/%,$(objects)) :
|
||||||
|
@$(LOAD)
|
||||||
|
|
||||||
|
$(subst %,%_MD5,$(objects)) :
|
||||||
|
@$(MD5)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Installation Details
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||||
|
@$(PREBUILD)
|
||||||
|
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
|
||||||
|
cd $(DIR_APP) && ./bootstrap
|
||||||
|
cd $(DIR_APP) && ./configure --prefix=/usr
|
||||||
|
cd $(DIR_APP) && make $(MAKETUNING)
|
||||||
|
cd $(DIR_APP) && make install
|
||||||
|
cd $(DIR_APP) && tar axf $(DIR_DL)/geoip_$(DVER).debian.tar.xz
|
||||||
|
cd $(DIR_APP) && sed -i "s/use diagnostics;//g" debian/src/geolite2-to-legacy-csv.sh
|
||||||
|
cd $(DIR_APP) && g++ -std=gnu++11 -g debian/src/geoip-csv-to-dat.cpp \
|
||||||
|
-o geoip-generator -lGeoIP
|
||||||
|
-mkdir -p /usr/share/GeoIP/bin
|
||||||
|
cd $(DIR_APP) && install -m 755 geoip-generator /usr/share/GeoIP/bin
|
||||||
|
cd $(DIR_APP) && install -m 755 debian/src/geolite2-to-legacy-csv.sh /usr/share/GeoIP/bin
|
||||||
|
cd $(DIR_APP) && install -m 644 debian/src/countryInfo.txt /usr/share/GeoIP/bin
|
||||||
|
@rm -rf $(DIR_APP)
|
||||||
|
@$(POSTBUILD)
|
||||||
1
make.sh
1
make.sh
@@ -1626,6 +1626,7 @@ buildipfire() {
|
|||||||
lfsmake2 flashrom
|
lfsmake2 flashrom
|
||||||
lfsmake2 firmware-update
|
lfsmake2 firmware-update
|
||||||
lfsmake2 tshark
|
lfsmake2 tshark
|
||||||
|
lfsmake2 geoip-generator
|
||||||
}
|
}
|
||||||
|
|
||||||
buildinstaller() {
|
buildinstaller() {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ TMP_FILE=$(mktemp -p $TMP_PATH)
|
|||||||
SCRIPT_PATH=/usr/local/bin
|
SCRIPT_PATH=/usr/local/bin
|
||||||
DEST_PATH=/usr/share/xt_geoip
|
DEST_PATH=/usr/share/xt_geoip
|
||||||
DB_PATH=/var/lib/GeoIP
|
DB_PATH=/var/lib/GeoIP
|
||||||
|
DB1_PATH=/usr/share/GeoIP
|
||||||
|
|
||||||
DL_URL=https://geolite.maxmind.com/download/geoip/database
|
DL_URL=https://geolite.maxmind.com/download/geoip/database
|
||||||
DL_FILE=GeoLite2-Country-CSV.zip
|
DL_FILE=GeoLite2-Country-CSV.zip
|
||||||
@@ -82,6 +83,21 @@ function install() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function build_legacy() {
|
||||||
|
# Create temporary directory.
|
||||||
|
mkdir -pv $TMP_PATH
|
||||||
|
|
||||||
|
echo "Convert database to legacy GeoIP.dat ..."
|
||||||
|
cat $DB_PATH/GeoLite2-Country-Blocks-IPv4.csv | \
|
||||||
|
$DB1_PATH/bin/geolite2-to-legacy-csv.sh $DB1_PATH/bin/countryInfo.txt > \
|
||||||
|
$TMP_FILE
|
||||||
|
$DB1_PATH/bin/geoip-generator -v -4 --info="$(date -u +'GEO-106FREE %Y%m%d Build')" -o \
|
||||||
|
$DB1_PATH/GeoIP.dat $TMP_FILE
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function build() {
|
function build() {
|
||||||
echo "Convert database..."
|
echo "Convert database..."
|
||||||
|
|
||||||
@@ -121,7 +137,12 @@ function main() {
|
|||||||
# Convert the ruleset.
|
# Convert the ruleset.
|
||||||
build || exit $?
|
build || exit $?
|
||||||
|
|
||||||
|
# Convert GeoIP2 to lagacy.
|
||||||
|
build_legacy || exit $?
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
# Remove temporary files.
|
||||||
|
cleanup || exit $?
|
||||||
}
|
}
|
||||||
|
|
||||||
# Run the main function.
|
# Run the main function.
|
||||||
|
|||||||
Reference in New Issue
Block a user