Commit 4e05272dd68 by Martin von Zweigbergk

packaging: leverage os.path.relpath() in setup.py

`os.path.relpath()` has existed since Python 2.6, so we can safely use
it. This fixes a bug in the current code when the common prefix is "/"
(in which case `uplevel` would be one less than it should).

Differential Revision: https://phab.mercurial-scm.org/D7875
parent 191a461d6be
......@@ -1064,11 +1064,7 @@ class hginstallscripts(install_scripts):
# absolute path instead
libdir = self.install_lib
else:
common = os.path.commonprefix((self.install_dir, self.install_lib))
rest = self.install_dir[len(common) :]
uplevel = len([n for n in os.path.split(rest) if n])
libdir = uplevel * ('..' + os.sep) + self.install_lib[len(common) :]
libdir = os.path.relpath(self.install_lib, self.install_dir)
for outfile in self.outfiles:
with open(outfile, 'rb') as fp:
......
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