Show More
@@ -479,6 +479,25 class hginstallscripts(install_scripts): | |||
|
479 | 479 | def run(self): |
|
480 | 480 | install_scripts.run(self) |
|
481 | 481 | |
|
482 | # It only makes sense to replace @LIBDIR@ with the install path if | |
|
483 | # the install path is known. For wheels, the logic below calculates | |
|
484 | # the libdir to be "../..". This is because the internal layout of a | |
|
485 | # wheel archive looks like: | |
|
486 | # | |
|
487 | # mercurial-3.6.1.data/scripts/hg | |
|
488 | # mercurial/__init__.py | |
|
489 | # | |
|
490 | # When installing wheels, the subdirectories of the "<pkg>.data" | |
|
491 | # directory are translated to system local paths and files therein | |
|
492 | # are copied in place. The mercurial/* files are installed into the | |
|
493 | # site-packages directory. However, the site-packages directory | |
|
494 | # isn't known until wheel install time. This means we have no clue | |
|
495 | # at wheel generation time what the installed site-packages directory | |
|
496 | # will be. And, wheels don't appear to provide the ability to register | |
|
497 | # custom code to run during wheel installation. This all means that | |
|
498 | # we can't reliably set the libdir in wheels: the default behavior | |
|
499 | # of looking in sys.path must do. | |
|
500 | ||
|
482 | 501 | if (os.path.splitdrive(self.install_dir)[0] != |
|
483 | 502 | os.path.splitdrive(self.install_lib)[0]): |
|
484 | 503 | # can't make relative paths from one drive to another, so use an |
@@ -500,6 +519,14 class hginstallscripts(install_scripts): | |||
|
500 | 519 | if b('\0') in data: |
|
501 | 520 | continue |
|
502 | 521 | |
|
522 | # During local installs, the shebang will be rewritten to the final | |
|
523 | # install path. During wheel packaging, the shebang has a special | |
|
524 | # value. | |
|
525 | if data.startswith(b'#!python'): | |
|
526 | log.info('not rewriting @LIBDIR@ in %s because install path ' | |
|
527 | 'not known' % outfile) | |
|
528 | continue | |
|
529 | ||
|
503 | 530 | data = data.replace(b('@LIBDIR@'), libdir.encode(libdir_escape)) |
|
504 | 531 | fp = open(outfile, 'wb') |
|
505 | 532 | fp.write(data) |
General Comments 0
You need to be logged in to leave comments.
Login now