Pycodestyle: PyPI distfile with wrong permissions

Created on 14 Nov 2016  路  9Comments  路  Source: PyCQA/pycodestyle

See #548.

% tar -tvzf pycodestyle-2.1.0.tar.gz
drwxr-xr-x lee1001/38140     0 2016-11-04 16:46 pycodestyle-2.1.0/
-rw-rw---- lee1001/38140 20322 2016-11-04 16:00 pycodestyle-2.1.0/CHANGES.txt
-rw-rw---- lee1001/38140  2316 2016-08-13 20:42 pycodestyle-2.1.0/CONTRIBUTING.rst
-rw-rw---- lee1001/38140     4 2016-06-08 06:18 pycodestyle-2.1.0/dev-requirements.txt
drwxr-xr-x lee1001/38140     0 2016-11-04 16:46 pycodestyle-2.1.0/docs/
-rw-rw---- lee1001/38140  2824 2016-06-08 06:18 pycodestyle-2.1.0/docs/advanced.rst
-rw-rw---- lee1001/38140  2582 2016-06-08 06:18 pycodestyle-2.1.0/docs/api.rst
-rw-rw---- lee1001/38140  8328 2016-06-08 06:18 pycodestyle-2.1.0/docs/conf.py
-rw-rw---- lee1001/38140  4285 2016-06-25 21:55 pycodestyle-2.1.0/docs/developer.rst
-rw-rw---- lee1001/38140  1911 2016-06-08 06:18 pycodestyle-2.1.0/docs/index.rst
-rw-rw---- lee1001/38140 25631 2016-07-09 18:58 pycodestyle-2.1.0/docs/intro.rst
-rw-rw---- lee1001/38140  5106 2016-06-08 06:18 pycodestyle-2.1.0/docs/make.bat
-rw-rw---- lee1001/38140  5584 2016-06-08 06:18 pycodestyle-2.1.0/docs/Makefile
-rw-rw---- lee1001/38140   227 2016-05-31 18:17 pycodestyle-2.1.0/MANIFEST.in
-rw-r--r-- lee1001/38140 31564 2016-11-04 16:46 pycodestyle-2.1.0/PKG-INFO
drwxr-xr-x lee1001/38140     0 2016-11-04 16:46 pycodestyle-2.1.0/pycodestyle.egg-info/
-rw-rw---- lee1001/38140     1 2016-11-04 16:46 pycodestyle-2.1.0/pycodestyle.egg-info/dependency_links.txt
-rw-rw---- lee1001/38140    51 2016-11-04 16:46 pycodestyle-2.1.0/pycodestyle.egg-info/entry_points.txt
-rw-rw---- lee1001/38140     1 2016-11-04 16:46 pycodestyle-2.1.0/pycodestyle.egg-info/namespace_packages.txt
-rw-rw---- lee1001/38140     1 2016-11-04 16:40 pycodestyle-2.1.0/pycodestyle.egg-info/not-zip-safe
-rw-rw---- lee1001/38140 31564 2016-11-04 16:46 pycodestyle-2.1.0/pycodestyle.egg-info/PKG-INFO
-rw-rw---- lee1001/38140  1175 2016-11-04 16:46 pycodestyle-2.1.0/pycodestyle.egg-info/SOURCES.txt
-rw-rw---- lee1001/38140    12 2016-11-04 16:46 pycodestyle-2.1.0/pycodestyle.egg-info/top_level.txt
-rwxrwx--- lee1001/38140 87565 2016-11-04 16:41 pycodestyle-2.1.0/pycodestyle.py
-rw-rw---- lee1001/38140  3651 2016-11-04 16:17 pycodestyle-2.1.0/README.rst
-rw-rw---- lee1001/38140   146 2016-11-04 16:46 pycodestyle-2.1.0/setup.cfg
-rw-rw---- lee1001/38140  1733 2016-06-08 06:18 pycodestyle-2.1.0/setup.py
drwxr-xr-x lee1001/38140     0 2016-11-04 16:46 pycodestyle-2.1.0/testsuite/
-rw-rw---- lee1001/38140     0 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/__init__.py
-rw-rw---- lee1001/38140   740 2016-06-08 06:18 pycodestyle-2.1.0/testsuite/E10.py
-rw-rw---- lee1001/38140   663 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E11.py
-rw-rw---- lee1001/38140  6781 2016-07-09 18:58 pycodestyle-2.1.0/testsuite/E12.py
-rw-rw---- lee1001/38140 12915 2016-07-09 18:58 pycodestyle-2.1.0/testsuite/E12not.py
-rw-rw---- lee1001/38140   755 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E20.py
-rw-rw---- lee1001/38140   226 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E21.py
-rw-rw---- lee1001/38140  1990 2016-06-25 23:41 pycodestyle-2.1.0/testsuite/E22.py
-rw-rw---- lee1001/38140   163 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E23.py
-rw-rw---- lee1001/38140   216 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E24.py
-rw-rw---- lee1001/38140   938 2016-06-08 06:18 pycodestyle-2.1.0/testsuite/E25.py
-rw-rw---- lee1001/38140  1225 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E26.py
-rw-rw---- lee1001/38140   555 2016-06-08 06:18 pycodestyle-2.1.0/testsuite/E27.py
-rw-rw---- lee1001/38140  1526 2016-08-13 20:42 pycodestyle-2.1.0/testsuite/E30.py
-rw-rw---- lee1001/38140  1556 2016-06-25 23:41 pycodestyle-2.1.0/testsuite/E30not.py
-rw-rw---- lee1001/38140   450 2016-06-03 03:06 pycodestyle-2.1.0/testsuite/E40.py
-rw-rw---- lee1001/38140  2846 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E50.py
-rw-rw---- lee1001/38140   418 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E70.py
-rw-rw---- lee1001/38140  1062 2016-06-08 06:18 pycodestyle-2.1.0/testsuite/E71.py
-rw-rw---- lee1001/38140   901 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E72.py
-rw-rw---- lee1001/38140   262 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E73.py
-rw-rw---- lee1001/38140   441 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/E90.py
-rw-rw---- lee1001/38140   152 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/latin-1.py
-rw-rw---- lee1001/38140   408 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/noqa.py
-rw-rw---- lee1001/38140    99 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/python3.py
-rw-rw---- lee1001/38140  7338 2016-06-26 05:29 pycodestyle-2.1.0/testsuite/support.py
-rw-rw---- lee1001/38140  2244 2016-07-09 18:58 pycodestyle-2.1.0/testsuite/test_all.py
-rw-rw---- lee1001/38140 15704 2016-07-09 18:58 pycodestyle-2.1.0/testsuite/test_api.py
-rw-rw---- lee1001/38140  1250 2016-06-08 06:18 pycodestyle-2.1.0/testsuite/test_parser.py
-rw-rw---- lee1001/38140  7369 2016-06-08 06:18 pycodestyle-2.1.0/testsuite/test_shell.py
-rw-rw---- lee1001/38140   863 2016-06-08 06:18 pycodestyle-2.1.0/testsuite/test_util.py
-rw-rw---- lee1001/38140    83 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/utf-8-bom.py
-rw-rw---- lee1001/38140  1864 2016-06-26 00:14 pycodestyle-2.1.0/testsuite/utf-8.py
-rw-rw---- lee1001/38140  2645 2016-07-09 18:58 pycodestyle-2.1.0/testsuite/W19.py
-rw-rw---- lee1001/38140   375 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/W29.py
-rw-rw---- lee1001/38140   269 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/W39.py
-rw-rw---- lee1001/38140   239 2016-05-31 18:17 pycodestyle-2.1.0/testsuite/W60.py

Most helpful comment

Fixed in version 2.2.0.

All 9 comments

@IanLee1521 I can release 2.1.1 for you so this isn't an issue (so you don't have to worry about toying with your umask settings again).

@sigmavirus24 - If you want to, go ahead. That said, I _did_ set my umask, and tested it, and no matter what I was doing I was still getting those permissions when I ran python setup.py sdist.

@asergi - I'm still not sure what issue this causes.. As @sigmavirus24 mentioned, if you untar the sdist, you should get the permissions of your local umask.

@IanLee1521 what did you set your umask to?

% pip download --no-binary :all: pycodestyle
% tar xf pycodestyle-2.1.0.tar.gz
% ls -al *
-rw-r----- 1 alessio alessio 20322 Nov  4 16:00 CHANGES.txt
-rw-r----- 1 alessio alessio  2316 Aug 13 20:42 CONTRIBUTING.rst
-rw-r----- 1 alessio alessio   227 May 31 18:17 MANIFEST.in
-rw-r--r-- 1 alessio alessio 31564 Nov  4 16:46 PKG-INFO
-rw-r----- 1 alessio alessio  3651 Nov  4 16:17 README.rst
-rw-r----- 1 alessio alessio     4 Jun  8 06:18 dev-requirements.txt
-rwxr-x--- 1 alessio alessio 87565 Nov  4 16:41 pycodestyle.py
-rw-r----- 1 alessio alessio   146 Nov  4 16:46 setup.cfg
-rw-r----- 1 alessio alessio  1733 Jun  8 06:18 setup.py

docs:
total 84
drwxr-xr-x 2 alessio alessio  4096 Nov  4 16:46 .
drwxr-xr-x 5 alessio alessio  4096 Nov  4 16:46 ..
-rw-r----- 1 alessio alessio  5584 Jun  8 06:18 Makefile
-rw-r----- 1 alessio alessio  2824 Jun  8 06:18 advanced.rst
-rw-r----- 1 alessio alessio  2582 Jun  8 06:18 api.rst
-rw-r----- 1 alessio alessio  8328 Jun  8 06:18 conf.py
-rw-r----- 1 alessio alessio  4285 Jun 25 21:55 developer.rst
-rw-r----- 1 alessio alessio  1911 Jun  8 06:18 index.rst
-rw-r----- 1 alessio alessio 25631 Jul  9 18:58 intro.rst
-rw-r----- 1 alessio alessio  5106 Jun  8 06:18 make.bat

pycodestyle.egg-info:
total 64
drwxr-xr-x 2 alessio alessio  4096 Nov  4 16:46 .
drwxr-xr-x 5 alessio alessio  4096 Nov  4 16:46 ..
-rw-r----- 1 alessio alessio 31564 Nov  4 16:46 PKG-INFO
-rw-r----- 1 alessio alessio  1175 Nov  4 16:46 SOURCES.txt
-rw-r----- 1 alessio alessio     1 Nov  4 16:46 dependency_links.txt
-rw-r----- 1 alessio alessio    51 Nov  4 16:46 entry_points.txt
-rw-r----- 1 alessio alessio     1 Nov  4 16:46 namespace_packages.txt
-rw-r----- 1 alessio alessio     1 Nov  4 16:40 not-zip-safe
-rw-r----- 1 alessio alessio    12 Nov  4 16:46 top_level.txt

testsuite:
total 188
drwxr-xr-x 2 alessio alessio  4096 Nov  4 16:46 .
drwxr-xr-x 5 alessio alessio  4096 Nov  4 16:46 ..
-rw-r----- 1 alessio alessio   740 Jun  8 06:18 E10.py
-rw-r----- 1 alessio alessio   663 May 31 18:17 E11.py
-rw-r----- 1 alessio alessio  6781 Jul  9 18:58 E12.py
-rw-r----- 1 alessio alessio 12915 Jul  9 18:58 E12not.py
-rw-r----- 1 alessio alessio   755 May 31 18:17 E20.py
-rw-r----- 1 alessio alessio   226 May 31 18:17 E21.py
-rw-r----- 1 alessio alessio  1990 Jun 25 23:41 E22.py
-rw-r----- 1 alessio alessio   163 May 31 18:17 E23.py
-rw-r----- 1 alessio alessio   216 May 31 18:17 E24.py
-rw-r----- 1 alessio alessio   938 Jun  8 06:18 E25.py
-rw-r----- 1 alessio alessio  1225 May 31 18:17 E26.py
-rw-r----- 1 alessio alessio   555 Jun  8 06:18 E27.py
-rw-r----- 1 alessio alessio  1526 Aug 13 20:42 E30.py
-rw-r----- 1 alessio alessio  1556 Jun 25 23:41 E30not.py
-rw-r----- 1 alessio alessio   450 Jun  3 03:06 E40.py
-rw-r----- 1 alessio alessio  2846 May 31 18:17 E50.py
-rw-r----- 1 alessio alessio   418 May 31 18:17 E70.py
-rw-r----- 1 alessio alessio  1062 Jun  8 06:18 E71.py
-rw-r----- 1 alessio alessio   901 May 31 18:17 E72.py
-rw-r----- 1 alessio alessio   262 May 31 18:17 E73.py
-rw-r----- 1 alessio alessio   441 May 31 18:17 E90.py
-rw-r----- 1 alessio alessio  2645 Jul  9 18:58 W19.py
-rw-r----- 1 alessio alessio   375 May 31 18:17 W29.py
-rw-r----- 1 alessio alessio   269 May 31 18:17 W39.py
-rw-r----- 1 alessio alessio   239 May 31 18:17 W60.py
-rw-r----- 1 alessio alessio     0 May 31 18:17 __init__.py
-rw-r----- 1 alessio alessio   152 May 31 18:17 latin-1.py
-rw-r----- 1 alessio alessio   408 May 31 18:17 noqa.py
-rw-r----- 1 alessio alessio    99 May 31 18:17 python3.py
-rw-r----- 1 alessio alessio  7338 Jun 26 05:29 support.py
-rw-r----- 1 alessio alessio  2244 Jul  9 18:58 test_all.py
-rw-r----- 1 alessio alessio 15704 Jul  9 18:58 test_api.py
-rw-r----- 1 alessio alessio  1250 Jun  8 06:18 test_parser.py
-rw-r----- 1 alessio alessio  7369 Jun  8 06:18 test_shell.py
-rw-r----- 1 alessio alessio   863 Jun  8 06:18 test_util.py
-rw-r----- 1 alessio alessio    83 May 31 18:17 utf-8-bom.py
-rw-r----- 1 alessio alessio  1864 Jun 26 00:14 utf-8.py

If you install pycodestyle using setup.py, you get the following error:

% pycodestyle foo.py
Traceback (most recent call last):
  File "/usr/bin/pycodestyle", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 3017, in <module>
    @_call_aside
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 3003, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 3030, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 650, in _build_master
    ws = cls()
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 643, in __init__
    self.add_entry(entry)
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 699, in add_entry
    for dist in find_distributions(entry, True):
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2023, in find_on_path
    path_item, entry, metadata, precedence=DEVELOP_DIST
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2432, in from_location
    py_version=py_version, platform=platform, **kw
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2772, in _reload_version
    md_version = _version_from_file(self._get_metadata(self.PKG_INFO))
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2397, in _version_from_file
    line = next(iter(version_lines), '')
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2565, in _get_metadata
    for line in self.get_metadata_lines(name):
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1471, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1467, in get_metadata
    value = self._get(self._fn(self.egg_info, name))
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1576, in _get
    with open(path, 'rb') as stream:
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.5/site-packages/pycodestyle-2.1.0-py3.5.egg-info/PKG-INFO'

@sigmavirus24:

$ umask
022

Ok, figured it out (http://stackoverflow.com/a/18604540/450858) and cutting a new release.

Fixed in version 2.2.0.

Was this page helpful?
0 / 5 - 0 ratings