diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/geoip')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/geoip/default.nix | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/geoip/default.nix b/nixpkgs/pkgs/development/libraries/geoip/default.nix new file mode 100644 index 000000000000..8747433047c6 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/geoip/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook +, drvName ? "geoip" + +# in geoipDatabase, you can insert a package defining +# "${geoipDatabase}/share/GeoIP" e.g. geolite-legacy +, geoipDatabase ? "/var/lib/geoip-databases" +}: + +let + dataDir = if lib.isDerivation geoipDatabase + then "${toString geoipDatabase}/share/GeoIP" + else geoipDatabase; +in +stdenv.mkDerivation rec { + pname = drvName; + version = "1.6.12"; + + src = fetchFromGitHub { + owner = "maxmind"; + repo = "geoip-api-c"; + rev = "v${version}"; + sha256 = "0ixyp3h51alnncr17hqp1p0rlqz9w69nlhm60rbzjjz3vjx52ajv"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + + # Cross compilation shenanigans + configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "ac_cv_func_malloc_0_nonnull=yes" + "ac_cv_func_realloc_0_nonnull=yes" + ]; + + # Fix up the default data directory + postConfigure = '' + find . -name Makefile.in -exec sed -i -r 's#^pkgdatadir\s*=.+$#pkgdatadir = ${dataDir}#' {} \; + ''; + + meta = with lib; { + description = "An API for GeoIP/Geolocation databases"; + maintainers = with maintainers; [ thoughtpolice raskin ]; + license = licenses.lgpl21; + platforms = platforms.unix; + homepage = "https://www.maxmind.com"; + }; +} |