mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +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 firmware-update
|
||||
lfsmake2 tshark
|
||||
lfsmake2 geoip-generator
|
||||
}
|
||||
|
||||
buildinstaller() {
|
||||
|
||||
@@ -25,6 +25,7 @@ TMP_FILE=$(mktemp -p $TMP_PATH)
|
||||
SCRIPT_PATH=/usr/local/bin
|
||||
DEST_PATH=/usr/share/xt_geoip
|
||||
DB_PATH=/var/lib/GeoIP
|
||||
DB1_PATH=/usr/share/GeoIP
|
||||
|
||||
DL_URL=https://geolite.maxmind.com/download/geoip/database
|
||||
DL_FILE=GeoLite2-Country-CSV.zip
|
||||
@@ -82,6 +83,21 @@ function install() {
|
||||
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() {
|
||||
echo "Convert database..."
|
||||
|
||||
@@ -121,7 +137,12 @@ function main() {
|
||||
# Convert the ruleset.
|
||||
build || exit $?
|
||||
|
||||
# Convert GeoIP2 to lagacy.
|
||||
build_legacy || exit $?
|
||||
return 0
|
||||
|
||||
# Remove temporary files.
|
||||
cleanup || exit $?
|
||||
}
|
||||
|
||||
# Run the main function.
|
||||
|
||||
Reference in New Issue
Block a user