diff options
-rw-r--r-- | QMTest/TestSCons.py | 38 | ||||
-rw-r--r-- | README.rst | 16 | ||||
-rw-r--r-- | ReleaseConfig | 9 | ||||
-rw-r--r-- | SConstruct | 6 | ||||
-rw-r--r-- | debian/changelog | 13 | ||||
-rw-r--r-- | src/Announce.txt | 10 | ||||
-rw-r--r-- | src/CHANGES.txt | 2 | ||||
-rw-r--r-- | src/engine/SCons/Script/Main.py | 27 |
8 files changed, 69 insertions, 52 deletions
diff --git a/QMTest/TestSCons.py b/QMTest/TestSCons.py index b015637..6f6beb1 100644 --- a/QMTest/TestSCons.py +++ b/QMTest/TestSCons.py @@ -34,12 +34,12 @@ from TestCmd import PIPE # here provides some independent verification that what we packaged # conforms to what we expect. -default_version = '2.1.0.alpha.yyyymmdd' +default_version = '2.3.0' -copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012' +copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013' python_version_unsupported = (2, 3, 0) -python_version_deprecated = (2, 4, 0) +python_version_deprecated = (2, 7, 0) # In the checked-in source, the value of SConsVersion in the following # line must remain "__ VERSION __" (without the spaces) so the built @@ -119,7 +119,7 @@ def search_re(out, l): m = re.search(l, out) if m: return m.start() - + return None def search_re_in_list(out, l): @@ -131,7 +131,7 @@ def search_re_in_list(out, l): m = re.search(l, o) if m: return idx - + return None # @@ -256,7 +256,7 @@ class TestSCons(TestCommon): # control character output on FC8 # TERM can cause test failures due to control chars in prompts etc. os.environ['TERM'] = 'dumb' - + self.ignore_python_version = kw.get('ignore_python_version',1) if kw.get('ignore_python_version', -1) != -1: del kw['ignore_python_version'] @@ -312,7 +312,7 @@ class TestSCons(TestCommon): if norm and os.sep != '/': result = result.replace(os.sep, '/') return result - + return self.where_is(prog) def detect_tool(self, tool, prog=None, ENV=None): @@ -656,12 +656,12 @@ class TestSCons(TestCommon): self._java_env = {} except KeyError: pass - + import SCons.Environment env = SCons.Environment.Environment() self._java_env[version] = env - - + + if version: patterns = [ '/usr/java/jdk%s*/bin' % version, @@ -676,12 +676,12 @@ class TestSCons(TestCommon): '/usr/local/j2sdk*/bin', ] java_path = self.paths(patterns) + [env['ENV']['PATH']] - + env['ENV']['PATH'] = os.pathsep.join(java_path) return env['ENV'] return None - + def java_where_includes(self,version=None): """ Return java include paths compiling java jni code @@ -959,13 +959,13 @@ SConscript( sconscript ) libs = ['g2c'] cmd = ['gcc','-v'] - + try: p = Popen(cmd, stdout=PIPE, stderr=PIPE) stdout, stderr = p.communicate() except: return libs - + m = re.search('(gcc\s+version|gcc-Version)\s+(\d\.\d)', stderr) if m: gcc_version = m.group(2) @@ -973,7 +973,7 @@ SConscript( sconscript ) libs = ['gfortranbegin'] elif gcc_version in ('3.1', '4.0'): libs = ['frtbegin'] + libs - + return libs def skip_if_not_msvc(self, check_platform=True): @@ -990,7 +990,7 @@ SConscript( sconscript ) msg = "Skipping Visual C/C++ test on non-Windows platform '%s'\n" % sys.platform self.skip_test(msg) return - + try: import SCons.Tool.MSCommon as msc if not msc.msvc_exists(): @@ -1058,7 +1058,7 @@ SConscript( sconscript ) if flag == self.CR: # up to date log=log + \ - re.escape("scons: Configure: \"%s\" is up to date." + re.escape("scons: Configure: \"%s\" is up to date." % file) + ls log=log+re.escape("scons: Configure: The original builder " "output was:") + ls @@ -1086,7 +1086,7 @@ SConscript( sconscript ) if doCheckLog: lastEnd = matchPart(ls, logfile, lastEnd) if doCheckLog and lastEnd != len(logfile): raise NoMatch(lastEnd) - + except NoMatch, m: print "Cannot match log file against log regexp." print "log file: " @@ -1474,7 +1474,7 @@ class TimeSCons(TestSCons): source = os.path.join(root, filename) destination = source.replace(source_dir, dest_dir) shutil.copy2(source, destination) - + # In some environments, $AR will generate a warning message to stderr # if the library doesn't previously exist and is being created. One @@ -480,14 +480,14 @@ following packages will be built:: build/dist/scons-2.0.0-1.noarch.rpm build/dist/scons-2.0.0-1.src.rpm build/dist/scons-2.0.0.linux-i686.tar.gz - build/dist/scons-2.1.0.alpha.yyyymmdd.tar.gz - build/dist/scons-2.1.0.alpha.yyyymmdd.win32.exe - build/dist/scons-2.1.0.alpha.yyyymmdd.zip - build/dist/scons-doc-2.1.0.alpha.yyyymmdd.tar.gz - build/dist/scons-local-2.1.0.alpha.yyyymmdd.tar.gz - build/dist/scons-local-2.1.0.alpha.yyyymmdd.zip - build/dist/scons-src-2.1.0.alpha.yyyymmdd.tar.gz - build/dist/scons-src-2.1.0.alpha.yyyymmdd.zip + build/dist/scons-2.3.0.tar.gz + build/dist/scons-2.3.0.win32.exe + build/dist/scons-2.3.0.zip + build/dist/scons-doc-2.3.0.tar.gz + build/dist/scons-local-2.3.0.tar.gz + build/dist/scons-local-2.3.0.zip + build/dist/scons-src-2.3.0.tar.gz + build/dist/scons-src-2.3.0.zip build/dist/scons_1.3.0-1_all.deb The SConstruct file is supposed to be smart enough to avoid trying to build diff --git a/ReleaseConfig b/ReleaseConfig index c7943a1..b64ebc0 100644 --- a/ReleaseConfig +++ b/ReleaseConfig @@ -24,21 +24,22 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" # # After updating this file, run bin/update-release-info.py <MODE>. -# +# # The version tuple that will be used for the release. The fields are # (major, minor, micro, type, patchlevel). The release level is one of # 'alpha', 'beta', 'candidate', or 'final'. If the release type is not # 'final', the patchlevel is set to the release date. This value is -# manatory and must be present in this file. -version_tuple = (2, 2, 0, 'final', 0) +# mandatory and must be present in this file. +#version_tuple = (2, 2, 0, 'final', 0) +version_tuple = (2, 3, 0) # Python versions prior to unsupported_python_version cause a fatal error # when that version is used. Python versions prior to deprecate_python_version # cause a warning to be issued (assuming it's not disabled). These values are # mandatory and must be present in the configuration file. unsupported_python_version = (2, 3, 0) -deprecated_python_version = (2, 4, 0) +deprecated_python_version = (2, 7, 0) # If release_date is (yyyy, mm, dd, hh, mm, ss), that is used as the release # date and time. If release_date is (yyyy, mm, dd), it is used for the @@ -5,10 +5,10 @@ # When this gets changed, you must also change the copyright_years string # in QMTest/TestSCons.py so the test scripts look for the right string. -copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012' +copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013' # This gets inserted into the man pages to reflect the month of release. -month_year = 'MONTH YEAR' +month_year = 'March 2013' # # __COPYRIGHT__ @@ -43,7 +43,7 @@ import sys import tempfile project = 'scons' -default_version = '2.1.0.alpha.yyyymmdd' +default_version = '2.3.0' copyright = "Copyright (c) %s The SCons Foundation" % copyright_years platform = distutils.util.get_platform() diff --git a/debian/changelog b/debian/changelog index af58281..ec049e1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +scons (2.3.0) unstable; urgency=low + + * Maintenance release. + + -- Gary Oberbrunner <garyo@oberbrunner.com> Sat, 9 Feb 2013 21:00:00 -0500 + + scons (2.2.0) unstable; urgency=low * Maintenance release. @@ -112,7 +119,7 @@ scons (0.08-1) unstable; urgency=low scons (0.07-3) unstable; urgency=low * Removing /usr/doc links - * Python 2.1 -> Python 2.2 + * Python 2.1 -> Python 2.2 -- Moshe Zadka <moshez@debian.org> Tue, 27 Aug 2002 18:48:02 +0300 @@ -128,7 +135,7 @@ scons (0.07-1) unstable; urgency=low * New upstream version * Packaging properly, instead of as debian native - * Modifying copyright to include upstream location (Closes: #144491) + * Modifying copyright to include upstream location (Closes: #144491) * Fixing my e-mail address (Closes: #144490) * Thanks for looking after my packages, tbm ;-) @@ -136,7 +143,7 @@ scons (0.07-1) unstable; urgency=low scons (0.06-1) unstable; urgency=low - * New upstream version + * New upstream version -- Moshe Zadka <moshez@debian.org> Mon, 15 Apr 2002 19:22:09 +0300 diff --git a/src/Announce.txt b/src/Announce.txt index 7d80e79..4f7558b 100644 --- a/src/Announce.txt +++ b/src/Announce.txt @@ -19,7 +19,7 @@ effectively, please go to http://scons.org/lists.php#users to sign up for the scons-users mailing list. -RELEASE 2.3.0 - FEB XXX 2013 +RELEASE 2.3.0 - Mon, 02 Mar 2013 13:22:29 -0400 Please consult the RELEASE.txt file for a summary of changes since the last release and consult the CHANGES.txt file for complete a list of changes @@ -28,6 +28,14 @@ RELEASE 2.3.0 - FEB XXX 2013 Please note the following important changes since release 2.2.0: + -- SUPPORT FOR PYTHON VERSIONS BEFORE 2.7 IS NOW DEPRECATED + + ***IMPORTANT***: This release is the last version of SCons to support + Python versions older than 2.7. This release will warn if you are + running on Python 2.6 or older; future releases will probably not + work at all, as we are moving toward supporting Python 3. + Use --warn=no-python-version to suppress the warning if needed. + -- A lot of python pre-2.4 compatibility code was removed in this release. 2.4 is the official floor for SCons, but this release will likely enforce it more rigidly. diff --git a/src/CHANGES.txt b/src/CHANGES.txt index a33c75d..e0a4fb5 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -4,7 +4,7 @@ Change Log -RELEASE 2.3 - +RELEASE 2.3.0 - Mon, 02 Mar 2013 13:22:29 -0400 From Anatoly Techtonik: - Added ability to run scripts/scons.py directly from source checkout diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py index e379a39..837c103 100644 --- a/src/engine/SCons/Script/Main.py +++ b/src/engine/SCons/Script/Main.py @@ -203,7 +203,7 @@ class BuildTask(SCons.Taskmaster.OutOfDateTask): SCons.Taskmaster.OutOfDateTask.fail_stop(self) exit_status = status this_build_status = status - + def executed(self): t = self.targets[0] if self.top and not t.has_builder() and not t.side_effect: @@ -248,7 +248,7 @@ class BuildTask(SCons.Taskmaster.OutOfDateTask): except ValueError: t, e = exc_info tb = None - + # Deprecated string exceptions will have their string stored # in the first entry of the tuple. if e is None: @@ -266,9 +266,9 @@ class BuildTask(SCons.Taskmaster.OutOfDateTask): errfmt = "scons: *** [%s] %s\n" sys.stderr.write(errfmt % (nodename, buildError)) - if (buildError.exc_info[2] and buildError.exc_info[1] and + if (buildError.exc_info[2] and buildError.exc_info[1] and not isinstance( - buildError.exc_info[1], + buildError.exc_info[1], (EnvironmentError, SCons.Errors.StopError, SCons.Errors.UserError))): type, value, trace = buildError.exc_info @@ -546,7 +546,7 @@ def find_deepest_user_frame(tb): Input is a "pre-processed" stack trace in the form returned by traceback.extract_tb() or traceback.extract_stack() """ - + tb.reverse() # find the deepest traceback frame that is not part @@ -559,7 +559,7 @@ def find_deepest_user_frame(tb): def _scons_user_error(e): """Handle user errors. Print out a message and a description of the - error, along with the line number and routine where it occured. + error, along with the line number and routine where it occured. The file and line number will be the deepest stack frame that is not part of SCons itself. """ @@ -677,7 +677,7 @@ def _load_site_scons_dir(topdir, site_dir_name=None): else: site_dir_name = "site_scons" err_if_not_found = False - + site_dir = os.path.join(topdir, site_dir_name) if not os.path.exists(site_dir): if err_if_not_found: @@ -934,7 +934,7 @@ def _main(parser): _load_site_scons_dir(d.path, options.site_dir) elif not options.no_site_dir: _load_all_site_scons_dirs(d.path) - + if options.include_dir: sys.path = options.include_dir + sys.path @@ -1009,10 +1009,11 @@ def _main(parser): # warning about deprecated Python versions--delayed until here # in case they disabled the warning in the SConscript files. if python_version_deprecated(): - msg = "Support for pre-2.4 Python (%s) is deprecated.\n" + \ + msg = "Support for pre-%s Python version (%s) is deprecated.\n" + \ " If this will cause hardship, contact dev@scons.tigris.org." + deprecated_version_string = ".".join(map(str, deprecated_python_version)) SCons.Warnings.warn(SCons.Warnings.PythonVersionWarning, - msg % python_version_string()) + msg % (deprecated_version_string, python_version_string())) if not options.help: SCons.SConf.CreateConfigHBuilder(SCons.Defaults.DefaultEnvironment()) @@ -1133,7 +1134,7 @@ def _build_targets(fs, options, targets, target_top): # x doesn't have a cwd, so it's either not a target, # or not a file, so go ahead and keep it as a default # target and let the engine sort it out: - return 1 + return 1 d = list(filter(check_dir, SCons.Script.DEFAULT_TARGETS)) SCons.Script.DEFAULT_TARGETS[:] = d target_top = None @@ -1327,7 +1328,7 @@ def main(): except (ImportError, AttributeError): # On Windows there is no scons.py, so there is no # __main__.__version__, hence there is no script version. - pass + pass parts.append(version_string("engine", SCons)) parts.append(path_string("engine", SCons)) parts.append("__COPYRIGHT__") @@ -1338,7 +1339,7 @@ def main(): values = SConsOptions.SConsValues(parser.get_default_values()) OptionsParser = parser - + try: _exec_main(parser, values) except SystemExit, s: |