lol

geoip: add geoipWithDatabase for shell use

This installs (by default) geolite-legacy as the default database for geoiplookup

+16 -2
+11 -2
pkgs/development/libraries/geoip/default.nix
··· 1 - { stdenv, fetchurl }: 2 3 let version = "1.6.2"; in 4 5 stdenv.mkDerivation { 6 - name = "geoip-${version}"; 7 8 src = fetchurl { 9 url = "http://geolite.maxmind.com/download/geoip/api/c/GeoIP-${version}.tar.gz"; 10 sha256 = "0dd6si4cvip73kxdn43apg6yygvaf7dnk5awqfg9w2fd2ll0qnh7"; 11 }; 12 13 meta = { 14 description = "Geolocation API";
··· 1 + # in geoipDatabase, you can insert a package defining ${geoipDatabase}/share/GeoIP 2 + # e.g. geolite-legacy 3 + { stdenv, fetchurl, pkgs, drvName ? "geoip", geoipDatabase ? null }: 4 5 let version = "1.6.2"; in 6 7 stdenv.mkDerivation { 8 + name = "${drvName}-${version}"; 9 10 src = fetchurl { 11 url = "http://geolite.maxmind.com/download/geoip/api/c/GeoIP-${version}.tar.gz"; 12 sha256 = "0dd6si4cvip73kxdn43apg6yygvaf7dnk5awqfg9w2fd2ll0qnh7"; 13 }; 14 + 15 + postInstall = '' 16 + DB=${toString geoipDatabase} 17 + if [ -n "$DB" ]; then 18 + ln -s $DB/share/GeoIP $out/share/GeoIP 19 + fi 20 + ''; 21 22 meta = { 23 description = "Geolocation API";
+5
pkgs/top-level/all-packages.nix
··· 5767 5768 geoclue2 = callPackage ../development/libraries/geoclue/2.0.nix {}; 5769 5770 geoip = callPackage ../development/libraries/geoip { }; 5771 5772 geoipjava = callPackage ../development/libraries/java/geoipjava { };
··· 5767 5768 geoclue2 = callPackage ../development/libraries/geoclue/2.0.nix {}; 5769 5770 + geoipWithDatabase = makeOverridable (callPackage ../development/libraries/geoip) { 5771 + drvName = "geoip-tools"; 5772 + geoipDatabase = geolite-legacy; 5773 + }; 5774 + 5775 geoip = callPackage ../development/libraries/geoip { }; 5776 5777 geoipjava = callPackage ../development/libraries/java/geoipjava { };