bump(net-misc/gsutil): Bump gsutil to version 3.31, add dependencies

This includes a new gsutil verison which is not yet in upstream portage
along with new ebuilds for a couple of its dependencies that are also
not in portage:
    dev-python/google-api-python-client
    dev-python/socksipy-branch

Also, dev-python/python-gflags is included here to apply two extra
patches that fix some unit tests and add mark that it conflicts with the
old version of dev-cpp/gflags that we had been using up until now.

Hopefully all this will be merged upstream soon:
    https://bugs.gentoo.org/show_bug.cgi?id=468080
This commit is contained in:
Michael Marineau 2013-06-28 14:09:12 -04:00
parent 0a6010bf45
commit f30674864e
15 changed files with 356 additions and 1 deletions

View File

@ -0,0 +1 @@
DIST google-api-python-client-1.1.tar.gz 71178 SHA256 bc88cae1c40446f22d58923fc5a8dbac77da29d6efbe4ae2276cc2f30f724617 SHA512 750c482e90f83d0b2d53f7d655db9a476686158b5e380cab7a5e92af1b521b26871dcda08a2ee946cd09035f65ca50ad8dcffa8f766d3671fceae009fbdb831e WHIRLPOOL 62d2ebb7f51f58c76b45f748fe79b031cda5f11fd6088d8ea947e7ab9b9b754688e004773f99169cc65fdd2789002faa486bed7717fc07dea0b25994cbede0da

View File

@ -0,0 +1,25 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
PYTHON_COMPAT=( python{2_5,2_6,2_7} )
inherit distutils-r1
DESCRIPTION="Google API Client Library for Python"
HOMEPAGE="http://code.google.com/p/google-api-python-client/"
SRC_URI="http://google-api-python-client.googlecode.com/files/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64"
IUSE=""
RDEPEND="${PYTHON_DEPS}
>=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
dev-python/python-gflags[${PYTHON_USEDEP}]"
DEPEND="${RDEPEND}
dev-python/setuptools[${PYTHON_USEDEP}]"
DOCS=( CHANGELOG README )

View File

@ -0,0 +1 @@
DIST python-gflags-2.0.tar.gz 64929 SHA256 311066217acb8cd8519a4c872cb3fe64f02bcf105802bb761ab0de55c2386cd6 SHA512 28566acffd092f09105f3b9ad3be4ada11f024f940914e6efb103907f3779283c63bdfe13edad83aa470c5e887b49ad8b05031fc1895f3bad9b5d9c368bbfe18 WHIRLPOOL 61054cce9033ef26ee6d6296fc761c840f394de07f068a899b52a5d4212de4e4601f9a203fd8033db576e79369e4d53a0bb04bfca0e50cf828ff94105a2b453a

View File

@ -0,0 +1,26 @@
From d544cdad63faa5a53ba524e39f091f4a18e1eeb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Sun, 16 Dec 2012 16:27:13 +0100
Subject: [PATCH] Install Python scripts using 'scripts' key.
This is necessary to ensure that the shebangs are properly replaced when
installing for multiple Python implementations.
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 573db2d..ddad318 100755
--- a/setup.py
+++ b/setup.py
@@ -39,6 +39,6 @@ setup(name='python-gflags',
author_email='google-gflags@googlegroups.com',
url='http://code.google.com/p/python-gflags',
py_modules=["gflags", "gflags_validators"],
- data_files=[("bin", ["gflags2man.py"])],
+ scripts=["gflags2man.py"],
include_package_data=True,
)
--
1.8.0.2

View File

@ -0,0 +1,26 @@
From 6e93aa28e1e116619a82e1b78ffbc15ce1133d51 Mon Sep 17 00:00:00 2001
From: Michael Marineau <mike@marineau.org>
Date: Thu, 27 Jun 2013 19:26:23 -0400
Subject: [PATCH 3/3] Skip a permissions check when running as root.
---
tests/gflags_unittest.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tests/gflags_unittest.py b/tests/gflags_unittest.py
index 091ebd9..ddd3b5c 100755
--- a/tests/gflags_unittest.py
+++ b/tests/gflags_unittest.py
@@ -1111,6 +1111,9 @@ class LoadFromFlagFileTest(googletest.TestCase):
def testMethod_flagfiles_NoPermissions(self):
"""Test that --flagfile raises except on file that is unreadable."""
+ # This test doesn't work as root
+ if os.getuid() == 0:
+ return
tmp_files = self._SetupTestFiles()
# specify our temp file on the fake cmd line
fake_cmd_line = ('fooScript --SomeFlag some_arg --flagfile=%s'
--
1.8.1.5

View File

@ -0,0 +1,74 @@
From 8cd3b4270459124a25a96d7bc1b2924669f89fce Mon Sep 17 00:00:00 2001
From: "jwilliams@endpoint.com"
<jwilliams@endpoint.com@844fb29a-f99b-11de-8173-5df4dc7aba59>
Date: Tue, 21 Feb 2012 22:17:32 +0000
Subject: [PATCH 1/3] Unit test updates for Python 2.7 compatibility
* Add "msg" parameter to our versions of the test functions
* Change regex to match the updated 2.7 float() ValueError response
git-svn-id: http://python-gflags.googlecode.com/svn/trunk@41 844fb29a-f99b-11de-8173-5df4dc7aba59
---
tests/gflags_googletest.py | 12 ++++++------
tests/gflags_unittest.py | 4 ++--
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/tests/gflags_googletest.py b/tests/gflags_googletest.py
index 9ae614c..e725de6 100644
--- a/tests/gflags_googletest.py
+++ b/tests/gflags_googletest.py
@@ -88,22 +88,22 @@ def MultiLineEqual(expected, actual):
class TestCase(unittest.TestCase):
- def assertListEqual(self, list1, list2):
+ def assertListEqual(self, list1, list2, msg=None):
"""Asserts that, when sorted, list1 and list2 are identical."""
# This exists in python 2.7, but not previous versions. Use the
# built-in version if possible.
if hasattr(unittest.TestCase, "assertListEqual"):
- unittest.TestCase.assertListEqual(self, Sorted(list1), Sorted(list2))
+ unittest.TestCase.assertListEqual(self, Sorted(list1), Sorted(list2), msg)
else:
- self.assertEqual(Sorted(list1), Sorted(list2))
+ self.assertEqual(Sorted(list1), Sorted(list2), msg)
- def assertMultiLineEqual(self, expected, actual):
+ def assertMultiLineEqual(self, expected, actual, msg=None):
# This exists in python 2.7, but not previous versions. Use the
# built-in version if possible.
if hasattr(unittest.TestCase, "assertMultiLineEqual"):
- unittest.TestCase.assertMultiLineEqual(self, expected, actual)
+ unittest.TestCase.assertMultiLineEqual(self, expected, actual, msg)
else:
- self.assertTrue(MultiLineEqual(expected, actual))
+ self.assertTrue(MultiLineEqual(expected, actual), msg)
def assertRaisesWithRegexpMatch(self, exception, regexp, fn, *args, **kwargs):
try:
diff --git a/tests/gflags_unittest.py b/tests/gflags_unittest.py
index 8e948bf..091ebd9 100755
--- a/tests/gflags_unittest.py
+++ b/tests/gflags_unittest.py
@@ -814,7 +814,7 @@ class MultiNumericalFlagsTest(googletest.TestCase):
self.assertRaisesWithRegexpMatch(
gflags.IllegalFlagValue,
- 'flag --m_float2=abc: invalid literal for float\(\): abc',
+ 'flag --m_float2=abc: (invalid literal for float\(\)||could not convert string to float): abc',
gflags.DEFINE_multi_float, 'm_float2', ['abc'], 'desc')
# Test non-parseable command line values.
@@ -831,7 +831,7 @@ class MultiNumericalFlagsTest(googletest.TestCase):
argv = ('./program', '--m_float2=def')
self.assertRaisesWithRegexpMatch(
gflags.IllegalFlagValue,
- 'flag --m_float2=def: invalid literal for float\(\): def',
+ 'flag --m_float2=def: (invalid literal for float\(\)||could not convert string to float): def',
FLAGS, argv)
--
1.8.1.5

View File

@ -0,0 +1,55 @@
From 4a430830e75bfe2228e9d953b12f74a20ec2cb8f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Sun, 16 Dec 2012 16:53:24 +0100
Subject: [PATCH] Use tempfile.mkdtemp() to create temporary directory.
This creates an unique directory, and respects TMPDIR.
---
tests/gflags_unittest.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/tests/gflags_unittest.py b/tests/gflags_unittest.py
index 8e948bf..fcddb7b 100755
--- a/tests/gflags_unittest.py
+++ b/tests/gflags_unittest.py
@@ -38,6 +38,7 @@ import cStringIO
import sys
import os
import shutil
+import tempfile
import gflags
from flags_modules_for_testing import module_foo
@@ -907,17 +908,16 @@ class LoadFromFlagFileTest(googletest.TestCase):
flag_values=self.flag_values)
self.files_to_delete = []
+ # Figure out where to create temporary files
+ self.tmp_path = tempfile.mkdtemp(prefix='gflags_unittest')
+
def tearDown(self):
self._RemoveTestFiles()
def _SetupTestFiles(self):
""" Creates and sets up some dummy flagfile files with bogus flags"""
- # Figure out where to create temporary files
- tmp_path = '/tmp/flags_unittest'
- if os.path.exists(tmp_path):
- shutil.rmtree(tmp_path)
- os.makedirs(tmp_path)
+ tmp_path = self.tmp_path
try:
tmp_flag_file_1 = open(tmp_path + '/UnitTestFile1.tst', 'w')
@@ -973,6 +973,7 @@ class LoadFromFlagFileTest(googletest.TestCase):
os.remove(file_name)
except OSError, e_msg:
print '%s\n, Problem deleting test file' % e_msg
+ shutil.rmtree(self.tmp_path)
#end RemoveTestFiles def
def _ReadFlagsFromFiles(self, argv, force_gnu):
--
1.8.0.2

View File

@ -0,0 +1,50 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/python-gflags/python-gflags-2.0.ebuild,v 1.5 2012/12/17 19:59:53 mgorny Exp $
EAPI="5"
PYTHON_COMPAT=( python{2_5,2_6,2_7} pypy{1_8,1_9} )
inherit distutils-r1
DESCRIPTION="Google's Python argument parsing library"
HOMEPAGE="http://code.google.com/p/python-gflags/"
SRC_URI="http://python-gflags.googlecode.com/files/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ~x86"
IUSE=""
# Prior to 1.4 gflags provided python-gflags
RDEPEND="!<dev-cpp/gflags-1.4"
DEPEND="${RDEPEND}
dev-python/setuptools[${PYTHON_USEDEP}]"
PATCHES=(
# The scripts are installed as 'data' rather than scripts.
# http://code.google.com/p/python-gflags/issues/detail?id=12
"${FILESDIR}"/${P}-scripts-install.patch
# Tests try to write to /tmp (sandbox).
# http://code.google.com/p/python-gflags/issues/detail?id=13
"${FILESDIR}"/${P}-tests-respect-tmpdir.patch
# Fix unit tests with Python 2.7
# http://code.google.com/p/python-gflags/source/detail?r=41
"${FILESDIR}"/${P}-test-updates-for-python-2.7.patch
# One unit test currently fails if run as root.
"${FILESDIR}"/${P}-skip-permission-test-as-root.patch
)
python_test() {
local t
cd tests || die
for t in *.py; do
# (it's ok to run the gflags_googletest.py too)
"${PYTHON}" "${t}" || die "Tests fail with ${EPYTHON}"
done
}

View File

@ -0,0 +1 @@
DIST SocksiPy-branch-1.02.zip 10650 SHA256 6f0fb4224bf2ed48e2302d3fa226bb94ba1d138dfb03aa0ba88747ad8bdfd471 SHA512 6d17de2bbefac123e447d46dae082e46246132e582ab4f129661c0bfb090df3acf0ee0ea074a80882b835c4fa5346808e530da0170ecf01b610ce6f799aa6234 WHIRLPOOL c98290445311efafa145efd89a16ea2401a20bf3c1bf6a70cd4a245b5ba17ba2b53efcb5e3ec92a7689f08bd03c559218fc7e5afb67f509642f6bf1299e8a46a

View File

@ -0,0 +1,27 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
PYTHON_COMPAT=( python{2_5,2_6,2_7} )
inherit distutils-r1
MY_PN="SocksiPy-branch"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Google API Client Library for Python"
HOMEPAGE="http://code.google.com/p/socksipy-branch/"
SRC_URI="http://socksipy-branch.googlecode.com/files/${MY_P}.zip"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64"
IUSE=""
RDEPEND="${PYTHON_DEPS}"
DEPEND="${RDEPEND}"
S="${WORKDIR}/${MY_P}"
DOCS=( BUGS README )

View File

@ -0,0 +1 @@
DIST gsutil_3.31.tar.gz 1533732 SHA256 fc429054777caa6dfa49776b28c0511f0d63dc45351f9e0ba31e9fee036694f9 SHA512 acb210147d618c1a5e82259ab0183ef4349b491889d862f4619d6b10384f30a719dd1239e87d2b65260ba1f6865447b9c4989cf35959c15149d124b345d65da6 WHIRLPOOL 4279cfbdb5d452a062e6a8cc23dd49bb7bff3e264903c1da46861bc5ef39dfb73a62e22b49175652b5003e658017921873f2c6dbfdc6c114ad80cf1b71e7d004

View File

@ -0,0 +1,4 @@
# dummy .boto file
[Credentials]
gs_oauth2_refresh_token = 1/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

View File

@ -0,0 +1,22 @@
diff --git a/setup.py b/setup.py
index e1d4603..6b907b0 100755
--- a/setup.py
+++ b/setup.py
@@ -33,15 +33,13 @@ management tasks, including:
"""
requires = [
- 'boto==2.9.0-dev',
+ 'boto>=2.9.0-dev',
'httplib2>=0.8',
'python-gflags>=2.0',
'google-api-python-client>=1.1',
'pyOpenSSL>=0.13',
'crcmod>=1.7',
- # Not using 1.02 because of:
- # https://code.google.com/p/socksipy-branch/issues/detail?id=3
- 'SocksiPy-branch==1.01',
+ 'SocksiPy-branch>=1.01',
]
dependency_links = [

View File

@ -0,0 +1,38 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="5"
PYTHON_COMPAT=( python{2_6,2_7} )
inherit distutils-r1
DESCRIPTION="command line tool for interacting with cloud storage services"
HOMEPAGE="http://code.google.com/p/gsutil/"
SRC_URI="http://commondatastorage.googleapis.com/pub/${PN}_${PV}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64"
IUSE=""
DEPEND="${PYTHON_DEPS}"
RDEPEND="${DEPEND}
>=dev-python/boto-2.9.5[${PYTHON_USEDEP}]
>=dev-python/crcmod-1.7
>=dev-python/httplib2-0.8[${PYTHON_USEDEP}]
>=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
dev-python/google-api-python-client[${PYTHON_USEDEP}]
dev-python/python-gflags[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
dev-python/socksipy-branch[${PYTHON_USEDEP}]
"
S=${WORKDIR}/${PN}
DOCS=( README.md ReleaseNotes.txt )
PATCHES=( ${FILESDIR}/${P}-use-friendy-version-checks.patch )
python_test() {
export BOTO_CONFIG=${FILESDIR}/dummy.boto
${PYTHON} gslib/__main__.py test -u
}

View File

@ -58,7 +58,6 @@
=dev-lang/closure-compiler-bin-20120305 ~amd64
=sys-devel/clang-3.2 ~amd64
=dev-util/shflags-1.0.3 ~amd64
=net-misc/gsutil-3.21 ~amd64
=dev-util/perf-3.4 ~amd64
=dev-python/boto-2.7.0 ~amd64
=sys-libs/libnih-1.0.3 ~amd64
@ -101,3 +100,8 @@
# Needed for docker
=sys-fs/aufs-util-3.7.6 ~amd64
# Needed by gsutil-3.31
=dev-python/httplib2-0.8 ~amd64
=dev-python/crcmod-1.7-r1 ~amd64
=dev-python/boto-2.9.6 ~amd64