Commit e7f29530 authored by Jason R. Coombs's avatar Jason R. Coombs

Merge pull request 1424 from jorikdima.

parents 17dde199 52e71887
Prevent keeping files mode for package_data build. It may break a build if user's package data has read only flag.
\ No newline at end of file
......@@ -120,7 +120,7 @@ class build_py(orig.build_py, Mixin2to3):
target = os.path.join(build_dir, filename)
self.mkpath(os.path.dirname(target))
srcfile = os.path.join(src_dir, filename)
outf, copied = self.copy_file(srcfile, target)
outf, copied = self.copy_file(srcfile, target, preserve_mode=False)
srcfile = os.path.abspath(srcfile)
if (copied and
srcfile in self.distribution.convert_2to3_doctests):
......
import os
import stat
import shutil
from setuptools.dist import Distribution
......@@ -20,3 +22,28 @@ def test_directories_in_package_data_glob(tmpdir_cwd):
os.makedirs('path/subpath')
dist.parse_command_line()
dist.run_commands()
def test_read_only(tmpdir_cwd):
"""
Ensure mode is not preserved in copy for package modules
and package data, as that causes problems
with deleting read-only files on Windows.
#1451
"""
dist = Distribution(dict(
script_name='setup.py',
script_args=['build_py'],
packages=['pkg'],
package_data={'pkg': ['data.dat']},
name='pkg',
))
os.makedirs('pkg')
open('pkg/__init__.py', 'w').close()
open('pkg/data.dat', 'w').close()
os.chmod('pkg/__init__.py', stat.S_IREAD)
os.chmod('pkg/data.dat', stat.S_IREAD)
dist.parse_command_line()
dist.run_commands()
shutil.rmtree('build')
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment