diff options
-rw-r--r-- | user/py3-setuptools/APKBUILD | 19 | ||||
-rw-r--r-- | user/py3-setuptools/pythonpath.patch | 19 | ||||
-rw-r--r-- | user/py3-setuptools/update-wheel-tests.patch | 460 |
3 files changed, 18 insertions, 480 deletions
diff --git a/user/py3-setuptools/APKBUILD b/user/py3-setuptools/APKBUILD index ed0269de7..6bee60420 100644 --- a/user/py3-setuptools/APKBUILD +++ b/user/py3-setuptools/APKBUILD @@ -2,21 +2,19 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=py3-setuptools _pkgname=setuptools -pkgver=39.0.1 -pkgrel=1 +pkgver=39.1.0 +pkgrel=0 pkgdesc="A collection of enhancements to the Python distutils" url="http://pypi.python.org/project/setuptools" arch="noarch" license="MIT" depends="python3" makedepends="python3-dev" -#checkdepends="py3-tox" -options="!check" # Circular dependency with py3-tox. Passes on x86_64 +checkdepends="py3-tox" +options="net" # Circular dependency with py3-tox. Passes on x86_64 subpackages="py3-easy_install:easy_install" -# Note: PyPI download is missing tests/requirements.txt -source="$pkgname-$pkgver.tar.gz::https://github.com/pypa/$_pkgname/archive/v$pkgver.tar.gz - pythonpath.patch - update-wheel-tests.patch" +source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz + pythonpath.patch" builddir="$srcdir/$_pkgname-$pkgver" build() { @@ -42,6 +40,5 @@ easy_install() { mv "$pkgdir"/usr/bin/easy_install* "$subpkgdir/usr/bin" } -sha512sums="34df8f10e89825975c82059c759690a2cc1486fc84c71a76875b92c2452529fbdd628e11e3043e479ea3f031af18b37a37b86d2a8d2505c300188eccdc109332 py3-setuptools-39.0.1.tar.gz -0c80433534dbb715829f48713690a72a68f6cb7e337215c9aa507df0fbb2a2a242f54d42fab848c6f03729f155dfe0ccb819a6f5d5230e2195e94e20094eec0b pythonpath.patch -5262d1dcdbf8ab40eb4e9fde3e8496e6b4e9809d6056e6069fc11ef5390e064dfef9f7eccec3452e7566b88ab861bf544b57dce249c4291142f307bd6465e45a update-wheel-tests.patch" +sha512sums="9fa00930a1923782c2f6356bf992410d42b3dd81b5a673e2957eaf8941787fbea324851c5df48e37601641d004ee900c88a1cfa97ef9df374879586a36efa5c6 py3-setuptools-39.1.0.tar.gz +ee248df4174240e90a35190e0a47bf0fa4cc5601adc64eff5fd585c8919e47c3a2bb6191b8333800016567d8a0f0f71b7c2306779ea7e4ab7c8951bdee28ef5e pythonpath.patch" diff --git a/user/py3-setuptools/pythonpath.patch b/user/py3-setuptools/pythonpath.patch index 371804f55..d9d78a861 100644 --- a/user/py3-setuptools/pythonpath.patch +++ b/user/py3-setuptools/pythonpath.patch @@ -1,10 +1,11 @@ ---- setuptools-38.4.0/tox.ini 2018-01-05 13:17:02.000000000 +0000 -+++ setuptools-38.4.0/tox.ini 2018-01-11 01:50:05.810000000 +0000 -@@ -6,6 +6,6 @@ - - [testenv] - deps=-rtests/requirements.txt --passenv=APPDATA USERPROFILE HOMEDRIVE HOMEPATH windir APPVEYOR -+passenv=APPDATA USERPROFILE HOMEDRIVE HOMEPATH windir APPVEYOR PYTHONPATH - commands=py.test {posargs} +--- setuptools-39.1.0/tox.ini 2018-04-28 07:07:00.000000000 -0400 ++++ setuptools-39.1.0/tox.ini 2018-05-22 00:25:02.969163171 -0400 +@@ -12,7 +12,7 @@ + setenv=COVERAGE_FILE={toxworkdir}/.coverage.{envname} + # TODO: The passed environment variables came from copying other tox.ini files + # These should probably be individually annotated to explain what needs them. +-passenv=APPDATA HOMEDRIVE HOMEPATH windir APPVEYOR APPVEYOR_* CI CODECOV_* TRAVIS TRAVIS_* ++passenv=APPDATA HOMEDRIVE HOMEPATH windir APPVEYOR APPVEYOR_* CI CODECOV_* TRAVIS TRAVIS_* PYTHONPATH + commands=pytest --cov-config={toxinidir}/tox.ini --cov-report= {posargs} usedevelop=True + diff --git a/user/py3-setuptools/update-wheel-tests.patch b/user/py3-setuptools/update-wheel-tests.patch deleted file mode 100644 index 769ef470f..000000000 --- a/user/py3-setuptools/update-wheel-tests.patch +++ /dev/null @@ -1,460 +0,0 @@ -From 41882016dbd6b334e6e10e2c3ac5afb9f5793ede Mon Sep 17 00:00:00 2001 -From: Paul Ganssle <paul@ganssle.io> -Date: Fri, 6 Apr 2018 17:07:44 -0400 -Subject: [PATCH 1/2] Update wheel tests to reflect latest version - ---- - setuptools/tests/test_wheel.py | 16 ---------------- - 1 file changed, 16 deletions(-) - -diff --git a/setuptools/tests/test_wheel.py b/setuptools/tests/test_wheel.py -index b6be6f1f0..d8d5ddb23 100644 ---- a/setuptools/tests/test_wheel.py -+++ b/setuptools/tests/test_wheel.py -@@ -161,11 +161,9 @@ def __repr__(self): - ''' - foo-1.0-py{py_version}.egg/ - |-- EGG-INFO/ -- | |-- DESCRIPTION.rst - | |-- PKG-INFO - | |-- RECORD - | |-- WHEEL -- | |-- metadata.json - | |-- top_level.txt - |-- foo/ - | |-- __init__.py -@@ -196,11 +194,9 @@ def __repr__(self): - ''' - foo-1.0-py{py_version}.egg/ - |-- EGG-INFO/ -- | |-- DESCRIPTION.rst - | |-- PKG-INFO - | |-- RECORD - | |-- WHEEL -- | |-- metadata.json - | |-- top_level.txt - |-- data_dir/ - | |-- data.txt -@@ -267,11 +263,9 @@ def __repr__(self): - foo-1.0-py{py_version}-{platform}.egg/ - |-- extension{shlib_ext} - |-- EGG-INFO/ -- | |-- DESCRIPTION.rst - | |-- PKG-INFO - | |-- RECORD - | |-- WHEEL -- | |-- metadata.json - | |-- top_level.txt - ''' - ), -@@ -293,11 +287,9 @@ def __repr__(self): - foo-1.0-py{py_version}.egg/ - |-- header.h - |-- EGG-INFO/ -- | |-- DESCRIPTION.rst - | |-- PKG-INFO - | |-- RECORD - | |-- WHEEL -- | |-- metadata.json - | |-- top_level.txt - ''' - ), -@@ -326,11 +318,9 @@ def __repr__(self): - ''' - foo-1.0-py{py_version}.egg/ - |-- EGG-INFO/ -- | |-- DESCRIPTION.rst - | |-- PKG-INFO - | |-- RECORD - | |-- WHEEL -- | |-- metadata.json - | |-- top_level.txt - | |-- scripts/ - | | |-- script.py -@@ -346,11 +336,9 @@ def __repr__(self): - ''' - foo-1.0-py{py_version}.egg/ - |-- EGG-INFO/ -- | |-- DESCRIPTION.rst - | |-- PKG-INFO - | |-- RECORD - | |-- WHEEL -- | |-- metadata.json - | |-- requires.txt - | |-- top_level.txt - '''), -@@ -430,11 +418,9 @@ def __repr__(self): - foo-1.0-py{py_version}.egg/ - |-- foo-1.0-py{py_version}-nspkg.pth - |-- EGG-INFO/ -- | |-- DESCRIPTION.rst - | |-- PKG-INFO - | |-- RECORD - | |-- WHEEL -- | |-- metadata.json - | |-- namespace_packages.txt - | |-- top_level.txt - |-- foo/ -@@ -466,11 +452,9 @@ def __repr__(self): - ''' - foo-1.0-py{py_version}.egg/ - |-- EGG-INFO/ -- | |-- DESCRIPTION.rst - | |-- PKG-INFO - | |-- RECORD - | |-- WHEEL -- | |-- metadata.json - | |-- top_level.txt - |-- foo/ - | |-- __init__.py - -From ed3762fc7d16174a54b2fa83af1996decafd756f Mon Sep 17 00:00:00 2001 -From: Paul Ganssle <paul@ganssle.io> -Date: Sat, 7 Apr 2018 13:38:31 -0400 -Subject: [PATCH 2/2] Switch test_wheel over to subset-based test - -This is both compatible with the old version of wheel (last one -supported under Python 3.3) and is more in line with our commitment, -which is that the wheel install provides at least these files. ---- - setuptools/tests/test_wheel.py | 268 ++++++++++++++++++++++------------------- - 1 file changed, 142 insertions(+), 126 deletions(-) - -diff --git a/setuptools/tests/test_wheel.py b/setuptools/tests/test_wheel.py -index d8d5ddb23..150ac4c1b 100644 ---- a/setuptools/tests/test_wheel.py -+++ b/setuptools/tests/test_wheel.py -@@ -92,39 +92,49 @@ def build_wheel(extra_file_defs=None, **kwargs): - yield glob.glob(os.path.join(source_dir, 'dist', '*.whl'))[0] - - --def tree(root): -- def depth(path): -- return len(path.split(os.path.sep)) -- def prefix(path_depth): -- if not path_depth: -- return '' -- return '| ' * (path_depth - 1) + '|-- ' -- lines = [] -- root_depth = depth(root) -+def tree_set(root): -+ contents = set() - for dirpath, dirnames, filenames in os.walk(root): -- dirnames.sort() -- filenames.sort() -- dir_depth = depth(dirpath) - root_depth -- if dir_depth > 0: -- lines.append('%s%s/' % (prefix(dir_depth - 1), -- os.path.basename(dirpath))) -- for f in filenames: -- lines.append('%s%s' % (prefix(dir_depth), f)) -- return '\n'.join(lines) + '\n' -- -- --def _check_wheel_install(filename, install_dir, install_tree, -+ for filename in filenames: -+ contents.add(os.path.join(os.path.relpath(dirpath, root), -+ filename)) -+ return contents -+ -+ -+def flatten_tree(tree): -+ """Flatten nested dicts and lists into a full list of paths""" -+ output = set() -+ for node, contents in tree.items(): -+ if isinstance(contents, dict): -+ contents = flatten_tree(contents) -+ -+ for elem in contents: -+ if isinstance(elem, dict): -+ output |= {os.path.join(node, val) -+ for val in flatten_tree(elem)} -+ else: -+ output.add(os.path.join(node, elem)) -+ return output -+ -+ -+def format_install_tree(tree): -+ return {x.format( -+ py_version=PY_MAJOR, -+ platform=get_platform(), -+ shlib_ext=get_config_var('EXT_SUFFIX') or get_config_var('SO')) -+ for x in tree} -+ -+ -+def _check_wheel_install(filename, install_dir, install_tree_includes, - project_name, version, requires_txt): - w = Wheel(filename) - egg_path = os.path.join(install_dir, w.egg_name()) - w.install_as_egg(egg_path) -- if install_tree is not None: -- install_tree = install_tree.format( -- py_version=PY_MAJOR, -- platform=get_platform(), -- shlib_ext=get_config_var('EXT_SUFFIX') or get_config_var('SO') -- ) -- assert install_tree == tree(install_dir) -+ if install_tree_includes is not None: -+ install_tree = format_install_tree(install_tree_includes) -+ exp = tree_set(install_dir) -+ assert install_tree.issubset(exp), (install_tree - exp) -+ - metadata = PathMetadata(egg_path, os.path.join(egg_path, 'EGG-INFO')) - dist = Distribution.from_filename(egg_path, metadata=metadata) - assert dist.project_name == project_name -@@ -157,18 +167,17 @@ def __repr__(self): - setup_kwargs=dict( - packages=['foo'], - ), -- install_tree=DALS( -- ''' -- foo-1.0-py{py_version}.egg/ -- |-- EGG-INFO/ -- | |-- PKG-INFO -- | |-- RECORD -- | |-- WHEEL -- | |-- top_level.txt -- |-- foo/ -- | |-- __init__.py -- ''' -- ), -+ install_tree=flatten_tree({ -+ 'foo-1.0-py{py_version}.egg': { -+ 'EGG-INFO': [ -+ 'PKG-INFO', -+ 'RECORD', -+ 'WHEEL', -+ 'top_level.txt' -+ ], -+ 'foo': ['__init__.py'] -+ } -+ }), - ), - - dict( -@@ -190,18 +199,19 @@ def __repr__(self): - setup_kwargs=dict( - data_files=[('data_dir', ['data.txt'])], - ), -- install_tree=DALS( -- ''' -- foo-1.0-py{py_version}.egg/ -- |-- EGG-INFO/ -- | |-- PKG-INFO -- | |-- RECORD -- | |-- WHEEL -- | |-- top_level.txt -- |-- data_dir/ -- | |-- data.txt -- ''' -- ), -+ install_tree=flatten_tree({ -+ 'foo-1.0-py{py_version}.egg': { -+ 'EGG-INFO': [ -+ 'PKG-INFO', -+ 'RECORD', -+ 'WHEEL', -+ 'top_level.txt' -+ ], -+ 'data_dir': [ -+ 'data.txt' -+ ] -+ } -+ }), - ), - - dict( -@@ -258,17 +268,17 @@ def __repr__(self): - sources=['extension.c']) - ], - ), -- install_tree=DALS( -- ''' -- foo-1.0-py{py_version}-{platform}.egg/ -- |-- extension{shlib_ext} -- |-- EGG-INFO/ -- | |-- PKG-INFO -- | |-- RECORD -- | |-- WHEEL -- | |-- top_level.txt -- ''' -- ), -+ install_tree=flatten_tree({ -+ 'foo-1.0-py{py_version}-{platform}.egg': [ -+ 'extension{shlib_ext}', -+ {'EGG-INFO': [ -+ 'PKG-INFO', -+ 'RECORD', -+ 'WHEEL', -+ 'top_level.txt', -+ ]}, -+ ] -+ }), - ), - - dict( -@@ -282,17 +292,17 @@ def __repr__(self): - setup_kwargs=dict( - headers=['header.h'], - ), -- install_tree=DALS( -- ''' -- foo-1.0-py{py_version}.egg/ -- |-- header.h -- |-- EGG-INFO/ -- | |-- PKG-INFO -- | |-- RECORD -- | |-- WHEEL -- | |-- top_level.txt -- ''' -- ), -+ install_tree=flatten_tree({ -+ 'foo-1.0-py{py_version}.egg': [ -+ 'header.h', -+ {'EGG-INFO': [ -+ 'PKG-INFO', -+ 'RECORD', -+ 'WHEEL', -+ 'top_level.txt', -+ ]}, -+ ] -+ }), - ), - - dict( -@@ -314,34 +324,37 @@ def __repr__(self): - setup_kwargs=dict( - scripts=['script.py', 'script.sh'], - ), -- install_tree=DALS( -- ''' -- foo-1.0-py{py_version}.egg/ -- |-- EGG-INFO/ -- | |-- PKG-INFO -- | |-- RECORD -- | |-- WHEEL -- | |-- top_level.txt -- | |-- scripts/ -- | | |-- script.py -- | | |-- script.sh -- ''' -- ), -+ install_tree=flatten_tree({ -+ 'foo-1.0-py{py_version}.egg': { -+ 'EGG-INFO': [ -+ 'PKG-INFO', -+ 'RECORD', -+ 'WHEEL', -+ 'top_level.txt', -+ {'scripts': [ -+ 'script.py', -+ 'script.sh' -+ ]} -+ -+ ] -+ } -+ }) - ), - - dict( - id='requires1', - install_requires='foobar==2.0', -- install_tree=DALS( -- ''' -- foo-1.0-py{py_version}.egg/ -- |-- EGG-INFO/ -- | |-- PKG-INFO -- | |-- RECORD -- | |-- WHEEL -- | |-- requires.txt -- | |-- top_level.txt -- '''), -+ install_tree=flatten_tree({ -+ 'foo-1.0-py{py_version}.egg': { -+ 'EGG-INFO': [ -+ 'PKG-INFO', -+ 'RECORD', -+ 'WHEEL', -+ 'requires.txt', -+ 'top_level.txt', -+ ] -+ } -+ }), - requires_txt=DALS( - ''' - foobar==2.0 -@@ -413,21 +426,22 @@ def __repr__(self): - namespace_packages=['foo'], - packages=['foo.bar'], - ), -- install_tree=DALS( -- ''' -- foo-1.0-py{py_version}.egg/ -- |-- foo-1.0-py{py_version}-nspkg.pth -- |-- EGG-INFO/ -- | |-- PKG-INFO -- | |-- RECORD -- | |-- WHEEL -- | |-- namespace_packages.txt -- | |-- top_level.txt -- |-- foo/ -- | |-- __init__.py -- | |-- bar/ -- | | |-- __init__.py -- '''), -+ install_tree=flatten_tree({ -+ 'foo-1.0-py{py_version}.egg': [ -+ 'foo-1.0-py{py_version}-nspkg.pth', -+ {'EGG-INFO': [ -+ 'PKG-INFO', -+ 'RECORD', -+ 'WHEEL', -+ 'namespace_packages.txt', -+ 'top_level.txt', -+ ]}, -+ {'foo': [ -+ '__init__.py', -+ {'bar': ['__init__.py']}, -+ ]}, -+ ] -+ }), - ), - - dict( -@@ -448,20 +462,22 @@ def __repr__(self): - packages=['foo'], - data_files=[('foo/data_dir', ['foo/data_dir/data.txt'])], - ), -- install_tree=DALS( -- ''' -- foo-1.0-py{py_version}.egg/ -- |-- EGG-INFO/ -- | |-- PKG-INFO -- | |-- RECORD -- | |-- WHEEL -- | |-- top_level.txt -- |-- foo/ -- | |-- __init__.py -- | |-- data_dir/ -- | | |-- data.txt -- ''' -- ), -+ install_tree=flatten_tree({ -+ 'foo-1.0-py{py_version}.egg': { -+ 'EGG-INFO': [ -+ 'PKG-INFO', -+ 'RECORD', -+ 'WHEEL', -+ 'top_level.txt', -+ ], -+ 'foo': [ -+ '__init__.py', -+ {'data_dir': [ -+ 'data.txt', -+ ]} -+ ] -+ } -+ }), - ), - - ) |