Re: Possible issue with linux xattr support?

From: Felix Palmen <zirias_at_freebsd.org>
Date: Sun, 27 Aug 2023 17:15:57 UTC
* Felix Palmen <zirias@freebsd.org> [20230825 19:54]:
> To verify, I removed xattr support completely from coreutils (and also
> sed) in commit "linuxsrc: Disable usage of xattr" and indeed, with this
> change, GNU's install works as it should.

I now ran into a second case which makes it very likely the xattr
support is indeed the problem. Trying to create a port for python
setuptools, calling "setup.py install" with debugging opened showed me
this error:

#v+
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/_distutils/command/install.py", line 706, in run
    self.run_command(cmd_name)
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/_distutils/cmd.py", line 317, in run_command
    self.distribution.run_command(command)
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/dist.py", line 1217, in run_command
    super().run_command(command)
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/_distutils/dist.py", line 987, in run_command
    cmd_obj.run()
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/command/install_egg_info.py", line 42, in run
    self.execute(
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/_distutils/cmd.py", line 338, in execute
    util.execute(func, args, msg, dry_run=self.dry_run)
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/_distutils/util.py", line 344, in execute
    func(*args)
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/command/install_egg_info.py", line 63, in copytree
    unpack_archive(self.source, self.target, skimmer)
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/archive_util.py", line 53, in unpack_archive
    driver(filename, extract_dir, progress_filter)
  File "/wrkdirs/usr/ports/devel/linuxsrc-setuptools/work/setuptools-63.1.0/setuptools/archive_util.py", line 88, in unpack_directory
    shutil.copystat(f, target)
  File "/usr/lib64/python3.11/shutil.py", line 380, in copystat
    _copyxattr(src, dst, follow_symlinks=follow)
  File "/usr/lib64/python3.11/shutil.py", line 322, in _copyxattr
    names = os.listxattr(src, follow_symlinks=follow_symlinks)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 1] Operation not permitted: 'setuptools.egg-info/top_level.txt'
#v-

I then rebuilt python passing "ac_cv_header_sys_xattr_h=no" to its
configure script, so it thinks there is no sys/xattr.h header. Indeed,
this made the problem installing setuptools go away.

Cheers, Felix

-- 
 Felix Palmen <zirias@FreeBSD.org>     {private}   felix@palmen-it.de
 -- ports committer --                     {web}  http://palmen-it.de
 {pgp public key}  http://palmen-it.de/pub.txt
 {pgp fingerprint} 6936 13D5 5BBF 4837 B212  3ACC 54AD E006 9879 F231