From cf07760a2cfc92b347be9159661bd104a034c7cc Mon Sep 17 00:00:00 2001 From: Herwig Hochleitner Date: Tue, 21 Apr 2015 04:21:41 +0200 Subject: [PATCH] geoip: add geoipWithDatabase for shell use This installs (by default) geolite-legacy as the default database for geoiplookup --- pkgs/development/libraries/geoip/default.nix | 13 +++++++++++-- pkgs/top-level/all-packages.nix | 5 +++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/geoip/default.nix b/pkgs/development/libraries/geoip/default.nix index 99a566cf1955..77ea6b6a0165 100644 --- a/pkgs/development/libraries/geoip/default.nix +++ b/pkgs/development/libraries/geoip/default.nix @@ -1,15 +1,24 @@ -{ stdenv, fetchurl }: +# in geoipDatabase, you can insert a package defining ${geoipDatabase}/share/GeoIP +# e.g. geolite-legacy +{ stdenv, fetchurl, pkgs, drvName ? "geoip", geoipDatabase ? null }: let version = "1.6.2"; in stdenv.mkDerivation { - name = "geoip-${version}"; + name = "${drvName}-${version}"; src = fetchurl { url = "http://geolite.maxmind.com/download/geoip/api/c/GeoIP-${version}.tar.gz"; sha256 = "0dd6si4cvip73kxdn43apg6yygvaf7dnk5awqfg9w2fd2ll0qnh7"; }; + postInstall = '' + DB=${toString geoipDatabase} + if [ -n "$DB" ]; then + ln -s $DB/share/GeoIP $out/share/GeoIP + fi + ''; + meta = { description = "Geolocation API"; maintainers = [ stdenv.lib.maintainers.raskin ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 94b6d67908be..8fb89a81ce2e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5767,6 +5767,11 @@ let geoclue2 = callPackage ../development/libraries/geoclue/2.0.nix {}; + geoipWithDatabase = makeOverridable (callPackage ../development/libraries/geoip) { + drvName = "geoip-tools"; + geoipDatabase = geolite-legacy; + }; + geoip = callPackage ../development/libraries/geoip { }; geoipjava = callPackage ../development/libraries/java/geoipjava { };