Yelp/mrjob — pull request #823 by davidmarin (2013-11-16 06:52:27+00:00)
Title: patch boto 2.10.0 thru 2.15.0 to fix #778

Basically, boto started using [HMAC v4](http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) authentication for EMR in version 2.10.0, but didn't fix its ability to deal with EMR's non-standard hostnames until version 2.16.0. See #778 for more info, including some awesome library version forensics.

This wasn't an issue for boto itself because `boto.emr.regions()` was returning the "wrong" hostnames (incorrect according to EMR docs but more consistent with the rest of AWS). As of version 2.16.0, `boto.emr.regions()` matches the AWS documentation again. However, mrjob started bypassing `boto.emr.regions()` starting in v0.4.1 to future-proof mrjob against new AWS regions (see #659 for more discussion of why we did this).

And to make things better, this bug doesn't manifest at all in Python 2.7.6 (and probably not in v2.7.5 either, where an SSL bug was apparently fixed).

I don't see any meaningful way to write automated tests for this, but I did hand-test with several versions of boto (2.9.9, 2.14.0 and 2.16.0) and two values of `aws_region` (`us-west-1` and no region).