Commit 70e95ee6 authored by Jason R. Coombs's avatar Jason R. Coombs

When copying package data, make sure it's writable, but otherwise preserve the mode. Fixes #2041.

parent a3620a45
...@@ -7,6 +7,7 @@ import textwrap ...@@ -7,6 +7,7 @@ import textwrap
import io import io
import distutils.errors import distutils.errors
import itertools import itertools
import stat
from setuptools.extern import six from setuptools.extern import six
from setuptools.extern.six.moves import map, filter, filterfalse from setuptools.extern.six.moves import map, filter, filterfalse
...@@ -20,6 +21,10 @@ except ImportError: ...@@ -20,6 +21,10 @@ except ImportError:
"do nothing" "do nothing"
def make_writable(target):
os.chmod(target, os.stat(target).st_mode | stat.S_IWRITE)
class build_py(orig.build_py, Mixin2to3): class build_py(orig.build_py, Mixin2to3):
"""Enhanced 'build_py' command that includes data files with packages """Enhanced 'build_py' command that includes data files with packages
...@@ -120,8 +125,8 @@ class build_py(orig.build_py, Mixin2to3): ...@@ -120,8 +125,8 @@ class build_py(orig.build_py, Mixin2to3):
target = os.path.join(build_dir, filename) target = os.path.join(build_dir, filename)
self.mkpath(os.path.dirname(target)) self.mkpath(os.path.dirname(target))
srcfile = os.path.join(src_dir, filename) srcfile = os.path.join(src_dir, filename)
outf, copied = self.copy_file( outf, copied = self.copy_file(srcfile, target)
srcfile, target, preserve_mode=False) make_writable(target)
srcfile = os.path.abspath(srcfile) srcfile = os.path.abspath(srcfile)
if (copied and if (copied and
srcfile in self.distribution.convert_2to3_doctests): srcfile in self.distribution.convert_2to3_doctests):
......
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