Issue 14848: Use shutil.move instead of os.rename in packaging (original) (raw)
pysetup install. strace of removal looks like this: stat("/home/nekto0n/workspace/pillar/penv/lib/python2.7/site-packages/ygroup/init.py", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0 rename("/home/nekto0n/workspace/pillar/penv/lib/python2.7/site-packages/ygroup/init.py", "/tmp/ygroup-client-uninstalljkoIAl/init.py") = -1 EXDEV (Invalid cross-device link)
Sorry, no traceback by default, had to augment with "raise" :) Now output looks like this:
nekto0n@ya-darkstar /var/tmp/mypackage $ pysetup remove pygraphviz u'workflow': u'1.01' is not a valid version (field 'Version') u'zc-zookeeper-static': u'3.4.3-3' is not a valid version (field 'Version') u'virtkey': u'0.01' is not a valid version (field 'Version') u'SSSDConfig': u'1' is not a valid version (field 'Version') [Errno 18] Invalid cross-device link Traceback (most recent call last): File "/home/nekto0n/.local/lib/python2.7/site-packages/distutils2/run.py", line 651, in main return dispatcher() File "/home/nekto0n/.local/lib/python2.7/site-packages/distutils2/run.py", line 639, in call return func(self, self.args) File "/home/nekto0n/.local/lib/python2.7/site-packages/distutils2/run.py", line 91, in wrapper return f(*args, **kwargs) File "/home/nekto0n/.local/lib/python2.7/site-packages/distutils2/run.py", line 239, in _remove remove(dist, auto_confirm=auto_confirm) File "/home/nekto0n/.local/lib/python2.7/site-packages/distutils2/install.py", line 413, in remove error = move_file(file, tmpfile) File "/home/nekto0n/.local/lib/python2.7/site-packages/distutils2/install.py", line 399, in _move_file os.rename(source, target) OSError: [Errno 18] Invalid cross-device link
According to strace arguments to rename where: rename("/home/nekto0n/.local/lib/python2.7/site-packages/pygraphviz-1.1-py2.7.egg-info/PKG-INFO", "/tmp/pygraphviz-uninstallIiAQ1I/PKG-INFO") = -1 EXDEV (Invalid cross-device link)