gnuports@2rosenthals.com ?????????????? ????? #43

???: "Lewis" <gnuports@2rosenthals.com> ?? ????
?????????
??: Re: [GNU Ports] Assertion error with pip building
??: Fri, 30 Sep 2022 23:27:59 -0400
??: GNU Ports for eCS Mailing List <gnuports@2rosenthals.com>

Hi, Steve...

On 09/30/22 10:35 pm, Steven Levine wrote:
In <list-4952563@2rosenthals.com>, on 09/30/22
    at 10:18 PM, "Lewis G Rosenthal" <gnuports@2rosenthals.com> said:

HI Lewis,

I've hackishly worked around the problem by removing line 91 from
python3.9/site-packages/setuptools/command/install_lib.py:
assert preserve_mode and preserve_times and not preserve_symlinks
Rather than removing the line, I recommend inserting a few lines to print
the values of preserve_mode, preserve_times and preserve_symlinks.  This
should tell you which variable has the unexpected value.

To my eyes, it seems odd that copy_tree is being called with
preserve_symlinks=1 given what the assertion says.


Hmmm... That is interesting, isn't it? I need to track that back to its source. Obviously, install_lib.py is only following what it's been given, and as such, the assertion is indeed false.

For the sake of completeness, the actual routine (line 91 restored) in install_lib.py is:

--

def copy_tree(

self, infile, outfile,

preserve_mode=1, preserve_times=1, preserve_symlinks=0, level=1

):

assert preserve_mode and preserve_times and not preserve_symlinks exclude = self.get_exclusions()

if not exclude:

return orig.install_lib.copy_tree(self, infile, outfile)

# Exclude namespace package __init__.py* files from the output

from setuptools.archive_util import unpack_directory

from distutils import log

outfiles = []

def pf(src, dst):

if dst in exclude:

log.warn("Skipping installation of %s (namespace package)",

dst)

return False

log.info("copying %s -> %s", src, os.path.dirname(dst))

outfiles.append(dst)

return dst

unpack_directory(infile, outfile, pf)

return outfiles


???????: ????, ??????, ??????.
?????????
??? ????????