A simple python replacement for the MaxMind geoipupdate program

Introduction
============

MaxMind publishes several `GeoIP databases
<https://dev.maxmind.com/geoip>`_ that associate geographical
locations with IP addresses. To keep those databases updated, they
provide a utility called `geoipupdate
<https://github.com/maxmind/geoipupdate>`_.

The geoipupdate client was originally in C but has now been rewritten
in Go. That has several downsides from system administration and
security standpoints that we need not repeat here. As a result, it's
nice to have a simple python client that can update the databases,
perhaps at the expense of a few bells and whistles. That's what
geoipyupdate is.

To use it, you will still need a MaxMind account because your account
id and license key are required to access the files. A `free option
<https://dev.maxmind.com/geoip/geolite2-free-geolocation-data>`_ is
available. For more details... go bother MaxMind. The intended
audience for geoipyupdate is system administrators who already know
what these databases are and how to use them.


Configuration
=============

geoipyupdate has a configuration file just like the official client,
except ours is in `TOML <https://en.wikipedia.org/wiki/TOML>`_ format.
The default location for the file is
``$XDG_CONFIG_HOME/geoipyupdate/geoipyupdate.conf`` but you can change
that with the ``--config-file`` flag. A sample configuration is
included in the source tarballs.

Because geoipyupdate is supposed to be *simple*, there are several
things you cannot configure it to do:

- Download from anywhere other than updates.maxmind.com
- Use a proxy
- Mess with the modification times of the databases
- Retry failed downloads
- Use a lock file (use `lockrun
  <http://www.unixwiz.net/tools/lockrun.html>`_ to prevent
  simultaneous runs)
- Download in parallel

Sorry :)
