From 2432b0b36785031acc53886a893d792ff2636765 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tarek=20Ziad=C3=A9?= Date: Fri, 13 Feb 2009 23:00:43 +0000 Subject: [PATCH] Fixed #4524: distutils build_script command failed with --with-suffix=3 --- Lib/distutils/command/build_scripts.py | 4 ++-- Lib/distutils/tests/test_build_scripts.py | 28 +++++++++++++++++++++++ Misc/NEWS | 3 +++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Lib/distutils/command/build_scripts.py b/Lib/distutils/command/build_scripts.py index 48e06aa5627..2ad4c7beb92 100644 --- a/Lib/distutils/command/build_scripts.py +++ b/Lib/distutils/command/build_scripts.py @@ -102,8 +102,8 @@ class build_scripts (Command): outf.write("#!%s%s\n" % (os.path.join( sysconfig.get_config_var("BINDIR"), - "python" + sysconfig.get_config_var("VERSION") - + sysconfig.get_config_var("EXE")), + "python%s%s" % (sysconfig.get_config_var("VERSION"), + sysconfig.get_config_var("EXE"))), post_interp)) outf.writelines(f.readlines()) outf.close() diff --git a/Lib/distutils/tests/test_build_scripts.py b/Lib/distutils/tests/test_build_scripts.py index 666ca44c1d3..2acfab828ef 100644 --- a/Lib/distutils/tests/test_build_scripts.py +++ b/Lib/distutils/tests/test_build_scripts.py @@ -5,6 +5,7 @@ import unittest from distutils.command.build_scripts import build_scripts from distutils.core import Distribution +from distutils import sysconfig from distutils.tests import support @@ -73,6 +74,33 @@ class BuildScriptsTestCase(support.TempdirManager, f.write(text) f.close() + def test_version_int(self): + source = self.mkdtemp() + target = self.mkdtemp() + expected = self.write_sample_scripts(source) + + + cmd = self.get_build_scripts_cmd(target, + [os.path.join(source, fn) + for fn in expected]) + cmd.finalize_options() + + # http://bugs.python.org/issue4524 + # + # On linux-g++-32 with command line `./configure --enable-ipv6 + # --with-suffix=3`, python is compiled okay but the build scripts + # failed when writing the name of the executable + old = sysconfig._config_vars.get('VERSION') + sysconfig._config_vars['VERSION'] = 4 + try: + cmd.run() + finally: + if old is not None: + sysconfig._config_vars['VERSION'] = old + + built = os.listdir(target) + for name in expected: + self.assert_(name in built) def test_suite(): return unittest.makeSuite(BuildScriptsTestCase) diff --git a/Misc/NEWS b/Misc/NEWS index a18e45f27b8..3c35413d616 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -155,6 +155,9 @@ Core and Builtins Library ------- +- Issue #4524: distutils build_script command failed with --with-suffix=3. + Initial patch by Amaury Forgeot d'Arc. + - Issue #2461: added tests for distutils.util - Issue #1008086: Fixed socket.inet_aton() to always return 4 bytes even on