From 5113a065d7340f8c2650566bf1400e1863c539e2 Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Fri, 6 Mar 2015 20:45:02 -0800 Subject: [PATCH 1/4] boto: Apply patch needed to fix docker-registry This makes docker-registry work when backed by S3. It's the same patch applied in the docker upstream container image. Backported from boto/boto#2932 --- .../python-modules/boto/content-length-str.patch | 16 ++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 pkgs/development/python-modules/boto/content-length-str.patch diff --git a/pkgs/development/python-modules/boto/content-length-str.patch b/pkgs/development/python-modules/boto/content-length-str.patch new file mode 100644 index 000000000000..7895e223c6b5 --- /dev/null +++ b/pkgs/development/python-modules/boto/content-length-str.patch @@ -0,0 +1,16 @@ +Cherry-picked from https://github.com/boto/boto/pull/2932 + +This fix is required for things like docker-registry to interact with S3. Will +be obsolete after the next boto release (> 2.36.0) + +--- a/boto/connection.py ++++ b/boto/connection.py +@@ -381,7 +381,7 @@ class HTTPRequest(object): + if 'Content-Length' not in self.headers: + if 'Transfer-Encoding' not in self.headers or \ + self.headers['Transfer-Encoding'] != 'chunked': +- self.headers['Content-Length'] = len(self.body) ++ self.headers['Content-Length'] = str(len(self.body)) + + + class HTTPResponse(http_client.HTTPResponse): diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b41732005bfa..200c086ed806 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1110,6 +1110,8 @@ let buildInputs = [ self.nose self.mock ]; propagatedBuildInputs = [ self.requests self.httpretty ]; + patches = [ ../development/python-modules/boto/content-length-str.patch ]; + meta = { homepage = https://github.com/boto/boto; From 02712cc3f1443e0b1d6ff6a9d18daab59f98b005 Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Fri, 6 Mar 2015 20:48:25 -0800 Subject: [PATCH 2/4] Drop obsolete boto-1.9 patch This has been unreferenced since commit d52d71a04bd99794401178acaf164fec94b8e387 from August 2014. --- .../python-modules/boto-1.9-python-2.7.patch | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 pkgs/development/python-modules/boto-1.9-python-2.7.patch diff --git a/pkgs/development/python-modules/boto-1.9-python-2.7.patch b/pkgs/development/python-modules/boto-1.9-python-2.7.patch deleted file mode 100644 index 79ff9a7e4afa..000000000000 --- a/pkgs/development/python-modules/boto-1.9-python-2.7.patch +++ /dev/null @@ -1,19 +0,0 @@ -Fix Boto 1.9 on Python 2.7. - -https://github.com/boto/boto/commit/6760075073c34d6dddb7e13b80dfa8d09f0f4f79 - -diff --git a/boto/connection.py b/boto/connection.py -index c5779e2..71942f1 100644 ---- a/boto/connection.py -+++ b/boto/connection.py -@@ -252,8 +252,9 @@ class AWSAuthConnection(object): - # versions, it would append ":443" to the hostname sent - # in the Host header and so we needed to make sure we - # did the same when calculating the V2 signature. In 2.6 -+ # (and higher!) - # it no longer does that. Hence, this kludge. -- if sys.version[:3] == "2.6" and port == 443: -+ if sys.version[:3] in ('2.6', '2.7') and port == 443: - signature_host = self.host - else: - signature_host = '%s:%d' % (self.host, port) From 65d6eb0f20584e9e0654860ee304907744897188 Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Fri, 6 Mar 2015 23:20:18 -0800 Subject: [PATCH 3/4] docker-registry: update to 0.9.1 --- pkgs/top-level/python-packages.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 200c086ed806..f3272fa57000 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2407,12 +2407,12 @@ let }; docker_registry = buildPythonPackage rec { - name = "docker-registry-0.9.0"; + name = "docker-registry-0.9.1"; disabled = isPy3k; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/d/docker-registry/${name}.tar.gz"; - md5 = "65eb9fd05b94f7f9fbbb5e2e8ca62912"; + sha256 = "1svm1h59sg4bwj5cy10m016gj0xpiin15nrz5z66h47sbkndvlw3"; }; DEPS = "loose"; @@ -2420,7 +2420,7 @@ let doCheck = false; # requires redis server propagatedBuildInputs = with self; [ setuptools docker_registry_core blinker flask gevent gunicorn pyyaml - requests2 rsa sqlalchemy setuptools backports_lzma pyasn1 + requests2 rsa sqlalchemy9 setuptools backports_lzma pyasn1 m2crypto ]; patchPhase = "> requirements/main.txt"; From ed6ce446d03ce89cffe533aaec02b0325f091d44 Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Sat, 7 Mar 2015 00:58:23 -0800 Subject: [PATCH 4/4] euca2ools: bump to 2.1.4, use python27 Change-Id: I8be644bcf2892e1146c3b3eedea36c5f5e749c16 --- pkgs/tools/virtualization/euca2ools/default.nix | 8 +++----- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pkgs/tools/virtualization/euca2ools/default.nix b/pkgs/tools/virtualization/euca2ools/default.nix index 84dc7c3c0719..a87dd5683229 100644 --- a/pkgs/tools/virtualization/euca2ools/default.nix +++ b/pkgs/tools/virtualization/euca2ools/default.nix @@ -1,19 +1,17 @@ { stdenv, fetchgit, which, pythonPackages }: pythonPackages.buildPythonPackage rec { - name = "euca2ools-2.1.3"; + name = "euca2ools-2.1.4"; namePrefix = ""; src = fetchgit { url = https://github.com/eucalyptus/euca2ools.git; - rev = "8ae2ecc"; - sha256 = "caef5a3e2c9b515fd815034b5b7304acc878a0b9777ae4208dc033b0bf39da2b"; + rev = "19cb7eac34dd7efe3a56e4841b9692c03458bf3b"; + sha256 = "0f52jqw3s79w391lbzlh83lp55j73clvwmn2np4fy6kxc4j49da1"; }; pythonPath = [ pythonPackages.boto pythonPackages.m2crypto ]; - doCheck = false; - meta = { homepage = http://open.eucalyptus.com/downloads; description = "Tools for interacting with Amazon EC2/S3-compatible cloud computing services"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d90b5cbbbf70..30bc8f664f41 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1187,7 +1187,7 @@ let ettercap = callPackage ../applications/networking/sniffers/ettercap { }; - euca2ools = callPackage ../tools/virtualization/euca2ools { pythonPackages = python26Packages; }; + euca2ools = callPackage ../tools/virtualization/euca2ools { }; evtest = callPackage ../applications/misc/evtest { };