about summary refs log tree commit diff
path: root/pkgs/data
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>2015-03-31 15:54:06 +0200
committerTobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>2015-03-31 16:36:15 +0200
commit1a77b59a8520b4d4ecbd06508de323e0f76c8ca2 (patch)
treef34cbe61f8ab6e76bfc36b3deaa096da85ee83eb /pkgs/data
parent1670a7528526e889f6ccc85167eeb67f43d20aad (diff)
Add geolite-legacy 2015-03-26
The geoip package only installs a GeoIP _library_ which is useless
without a GeoIP _database_.

The only package to currently install such a database is ntopng, which
manually downloads Maxmind's GeoLite Legacy files to a private location.

Provide these as a separate package so other packages can use them as
well.
Diffstat (limited to 'pkgs/data')
-rw-r--r--pkgs/data/misc/geolite-legacy/builder.sh19
-rw-r--r--pkgs/data/misc/geolite-legacy/default.nix43
2 files changed, 62 insertions, 0 deletions
diff --git a/pkgs/data/misc/geolite-legacy/builder.sh b/pkgs/data/misc/geolite-legacy/builder.sh
new file mode 100644
index 0000000000000..1886d144e480a
--- /dev/null
+++ b/pkgs/data/misc/geolite-legacy/builder.sh
@@ -0,0 +1,19 @@
+#!/bin/sh -e
+
+source "$stdenv/setup"
+
+mkdir -p $out/share/GeoIP
+cd $out/share/GeoIP
+
+# Iterate over all environment variable names beginning with "src":
+for var in "${!src@}"; do
+	# Store the value of the variable with name $var in $src:
+	eval src="\$$var"
+
+	# Copy $src to current directory, removing Nix hash from the filename:
+	dest="${src##*/}"
+	dest="${dest#*-}"
+	cp "$src" "$dest"
+done
+
+gunzip -v *.gz
diff --git a/pkgs/data/misc/geolite-legacy/default.nix b/pkgs/data/misc/geolite-legacy/default.nix
new file mode 100644
index 0000000000000..c36e6f83106fa
--- /dev/null
+++ b/pkgs/data/misc/geolite-legacy/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl }:
+
+# Annoyingly, these files are updated without a change in URL. This means that
+# builds will start failing every month or so, until the hashes are updated.
+let version = "2015-03-26"; in
+stdenv.mkDerivation {
+  name = "geolite-legacy-${version}";
+
+  srcGeoIP = fetchurl {
+    url = https://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz;
+    sha256 = "01xw896n9wcm1pv7sixfbh4gv6isl6m1i6lwag1c2bbcx6ci1zvr";
+  };
+  srcGeoIPv6 = fetchurl {
+    url = https://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz;
+    sha256 = "07l10hd7fkgk1nbw5gx4hjp61kdqqgri97fidn78dlk837rb02d0";
+  };
+  srcGeoLiteCity = fetchurl {
+    url = https://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz;
+    sha256 = "1xqjyz9xnga3dvhj0f38hf78wv781jflvqkxm6qni3sj781nfr4a";
+  };
+  srcGeoLiteCityv6 = fetchurl {
+    url = https://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz;
+    sha256 = "03s41ffc5a13qy5kgx8jqya97jkw2qlvdkak98hab7xs0i17z9pd";
+  };
+  srcGeoIPASNum = fetchurl {
+    url = https://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz;
+    sha256 = "1h766l8dsfgzlrz0q76877xksaf5qf91nwnkqwb6zl1gkczbwy6p";
+  };
+  srcGeoIPASNumv6 = fetchurl {
+    url = https://download.maxmind.com/download/geoip/database/asnum/GeoIPASNumv6.dat.gz;
+    sha256 = "0dwi9b3amfpmpkknf9ipz2r8aq05gn1j2zlvanwwah3ib5cgva9d";
+  };
+
+  meta = with stdenv.lib; {
+    description = "GeoLite Legacy IP geolocation databases";
+    homepage = https://geolite.maxmind.com/download/geoip;
+    license = with licenses; cc-by-sa-30;
+    platforms = with platforms; linux;
+    maintainers = with maintainers; [ nckx ];
+  };
+
+  builder = ./builder.sh;
+}