summaryrefslogtreecommitdiff
path: root/CHANGES.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGES.txt')
-rwxr-xr-x[-rw-r--r--]CHANGES.txt339
1 files changed, 313 insertions, 26 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index abcced8..c46a804 100644..100755
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -5,44 +5,335 @@
Change Log
-RELEASE 3.0.1 - Mon, 14 Nov 2017 08:28:09 -0700
+RELEASE 3.0.5 - Mon, 26 Mar 2019 15:04:42 -0700
- From Thomas Berg:
- - Fixed a regression in scons-3.0.0 where "from __future__ import print_function" was imposed
- on the scope where SConstruct is executed, breaking existing builds using PY 2.7.
+ From William Deegan:
+
+ - Fix Issue #3283 - Handle using --config=force in combination with Decider('MD5-timestamp').
+ 3.0.2 in fix for issue #2980 added that deciders can throw DeciderNeedsNode exception.
+ The Configure logic directly calls the decider when using --config=force but wasn't handling
+ that exception. This would yield minimally configure tests using TryLink() not running and
+ leaving TypeError Nonetype exception in config.log
+ - Fix Issue #3303 - Handle --config=force overwriting the Environment passed into Configure()'s
+ Decider and not clearing it when the configure context is completed.
+ - Add default paths for yacc tool on windows to include cygwin, mingw, and chocolatey
+ - Fix issue #2799 - Fix mingw tool to respect SHCCCOMSTR, SHLINKCOMSTR and LDMODULECOMSTR
+ - Fix Issue #3329 - Add support for MS SDK V10.0A (which is commonly installed with VS2017)
+ - Fix Issue #3333 - Add support for finding vswhere under 32 bit windows installs.
+
+ From Maciej Kumorek:
+ - Update the MSVC tool to include the nologo flag by default in RCFLAGS
+
+ From Daniel Moody:
+ - Change the default for AppendENVPath to delete_existing=0, so path
+ order will not be changed, unless explicitly set (Issue #3276)
+ - Fixed bug which threw error when running SCons on windows system with no MSVC installed.
+ - Update link tool to convert target to node before accessing node member
+ - Update mingw tool to remove MSVC like nologo CCFLAG
+ - Add default paths for lex tool on windows to include cygwin, mingw, and chocolatey
+ - Add lex construction variable LEXUNISTD for turning off unix headers on windows
+ - Update lex tool to use win_flex on windows if available
+
+ From Mats Wichmann:
+ - Quiet open file ResourceWarnings on Python >= 3.6 caused by
+ not using a context manager around Popen.stdout
+ - Add the textfile tool to the default tool list
+ - Fix syntax on is/is not clauses: should not use with a literal
+ - Properly retrieve exit code when catching SystemExit
+ - scons-time now uses context managers around file opens
+ - Fix regex patterns that were not specified as raw strings
+
+ From Bernhard M. Wiedemann:
+ - Do not store build host+user name if reproducible builds are wanted
+
+
+RELEASE 3.0.4 - Mon, 20 Jan 2019 22:49:27 +0000
+
+ From Mats Wichmann:
+ - Improve finding of Microsoft compiler: add a 'products' wildcard
+ in case 2017 Build Tools only is installed as it is considered a separate
+ product from the default Visual Studio
+ - Add TEMPFILESUFFIX to allow a customizable filename extension, as
+ described in the patch attached to issue #2431.
+ - scons.py and sconsign.py stopped working if script called as a symlink
+ to location in scons-local location.
+ - Fix issue running scons using a symlink to scons.py in an scons-local dir
+ - Doc updates around Default(), and the various *TARGETS variables.
+
+ From Daniel Moody:
+ - Improved support for VC14.1 and Visual Studio 2017, as well as arm and arm64 targets.
+ Issues #3268 & Issue #3222
+ - Initial support for ARM targets with Visual Studio 2017 - Issue #3182 (You must set TARGET_ARCH for this to work)
+ - Update TempFileMunge class to use PRINT_CMD_LINE_FUNC
+
+ From Tobias Herzog
+ - Enhance cpp scanner regex logic to detect if/elif expressions without whitespaces but
+ parenthesis like "#if(defined FOO)" or "#elif!(BAR)" correctly.
+
+
+RELEASE 3.0.3 - Mon, 07 Jan 2019 20:05:22 -0400
+ NOTE: 3.0.2 release was dropped because there was a packaging bug. Please consider all 3.0.2
+ content.
From William Deegan:
- - Fix issue where code in utility routine to_String_for_subst() had code whose result was never
- properly returned.
- (Found by: James Rinkevich https://pairlist4.pair.net/pipermail/scons-users/2017-October/006358.html )
- - Fixed Variables.GenerateHelpText() to now use the sort parameter. Due to incorrect 2to3 fixer changes
- 8 years ago it was being used as a boolean parameter. Now you can specify sort to be a callable, or boolean
- value. (True = normal sort). Manpage also updated.
- - Fixed Tool loading logic from exploding sys.path with many site_scons/site_tools prepended on py3.
- - Added additional output with time to process each SConscript file when using --debug=time.
- - Fix broken subst logic where a string with "$$(abc)" was being treated as "$(abc) and the
- logic for removing the signature escapes was then failing because there was no closing "$)".
- This was introduced by a pull request to allow recursive variable evaluations to yield a string
- such as "$( $( some stuff $) $)".
+ - Fixes to packaging logic. Ensuring the SCons.Tool.clangCommon module is added
+ to the release packages.
+ - Modify scons.bat script to check for scons python script without .py extension if no file
+ scons.py exists. This enables an all platform wheel to work.
+
+ From Mats Wichmann:
+ - Update doc examples to work with Python 3.5+: map() now returns an iterable instead of a list.
+
+
+RELEASE 3.0.2 - Mon, 31 Dec 2018 16:00:12 -0700
+
+ From Bernard Blackham:
+ - Fixed handling of side-effects in task master (fixes #3013).
+
+ From William Deegan:
+ - Remove long deprecated SCons.Options code and tests. This removes BoolOption,EnumOption,
+ ListOption,PackageOption, and PathOption which have been replaced by *Variable() many years ago.
+ - Re-Enable parallel SCons (-j) when running via Pypy
+ - Move SCons test framework files to testing/framework and remove all references to QMtest.
+ QMTest has not been used by SCons for some time now.
+ - Updated logic for mingw and clang on win32 to search default tool install paths if not
+ found in normal SCons PATH. If the user specifies PATH or tool specific paths they
+ will be used and the default paths below will be ignored.
+ - Default path for clang/clangxx : C:\Program Files\LLVM\bin
+ - Default path for mingw : C:\MinGW\bin and/or C:\mingw-w64\*\mingw64\bin
+ - Key program to locate mingw : mingw32-make (as the gcc with mingw prefix has no fixed name)
+ - Fixed issue causing stack trace when python Action function contains a unicode string when being
+ run with Python 2.7
+ - Add alternate path to QT install for Centos in qt tool: /usr/lib64/qt-3.3/bin
+ - Fix Java tools to search reasonable default paths for Win32, Linux, macOS. Add required paths
+ for swig and java native interface to JAVAINCLUDES. You should add these to your CPPPATH if you need
+ to compile with them. This handles spaces in paths in default Java paths on windows.
+ - Added more java paths to match install for Centos 7 of openjdk
+ - Fix new logic which populates JAVAINCLUDES to handle the case where javac is not found.
+ - Fix GH Issue #2580 - # in FRAMEWORKPATH doesn't get properly expanded. The # is left in the
+ command line.
+ - Fix issue #2980 with credit to Piotr Bartosik (and William Blevins). This is an issue where using
+ TimeStamp-MD5 Decider and CacheDir can yield incorrect md5's being written into the .sconsign.
+ The difference between Piotr Bartosik's patch and the current code is that the more complicated
+ creation of file to csig map is only done when the count of children for the current node doesn't
+ match the previous count which is loaded from the sconsign.
+ - Fix issue # 3106 MSVC if using MSVC_BATCH and target dir had a space would fail due to quirk in
+ MSVC's handling of escaped targetdirs when batch compiling.
+ - Fix GH Issue #3141 unicode string in a TryAction() with python 2.7 crashes.
+ - Fix GH Issue #3212 - Use of Py3 and CacheDir + Configure's TryCompile (or likely and Python Value Nodes)
+ yielded trying to combine strings and bytes which threw exception.
+ - Fix GH Issue #3225 SCons.Util.Flatten() doesn't handle MappingView's produced by dictionary as return
+ values from dict().{items(), keys(), values()}.
+ - Fix GH Issue #3241 - Properly support versioned shared libraries for MacOS. We've also introduced two
+ new env variables APPLELINK_CURRENT_VERSION and APPLELINK_COMPATIBILITY_VERSION which will specify
+ what is passed to the linkers -current_version and -compatibility_version flags. If not specified
+ they will be derived from SHLIBVERSION as such:
+ - APPLELINK_CURRENT_VERSION = SHLIBVERSION
+ - APPLELINK_COMPATIBILITY_VERSION = all but the last digit in SHLIBVERSION with .0 appended.
+ Note that the values of the above will be validated. Valid format for either APPLELINK variable is
+ X[.Y[.Z]] where 0 <= X <= 65535, 0 <= Y <= 255, 0 <= Z <= 255.
+ The new variables have been added to the documents and should show up in user guide and manpage.
+ - Fix GH Issue #3136 no longer wrap io.{BufferedReader,BufferedWriter,BufferedRWPair,BufferedRandom,TextIOWrapper
+ with logic to set HANDLE_FLAG_INHERIT flag on the file handle. Python 3.4+ automatically sets this according
+ to Python docs: https://docs.python.org/3/library/os.html#fd-inheritance
+
+ From Ray Donnelly:
+ - Fix the PATH created by scons.bat (and other .bat files) to provide a normalized
+ PATH. Some pythons in the 3.6 series are no longer able to handle paths which
+ have ".." in them and end up crashing. This is done by cd'ing into the directory
+ we want to add to the path and then using %CD% to give us the normalized directory
+ See bug filed under Python 3.6: https://bugs.python.org/issue32457.
+ Note: On Win32 PATH's which have not been normalized may cause undefined behavior
+ by other executables being run by SCons (or any subprocesses of executables being run by SCons).
+ Resolving this issue should eliminate that possibility going forward.
+
+ From Andrew Featherstone
+ - Removed unused --warn options from the man page and source code.
+
+ From Arda Fu
+ - Fix cpp scanner regex logic to treat ifndef for py3.5+. Previously it was
+ not properly differentiating between if, ifdef, and ifndef.
+
+ From Philipp Maierhöfer
+ - Added a __hash__ method to the class Scons.Subst.Literal. Required when substituting Literal
+ objects when SCons runs with Python 3.
+ - Added missing FORTRANMODDIRPREFIX to the gfortran tool.
+
+ From Matthew Marinets:
+ - Fixed an issue that caused the Java emitter to incorrectly parse arguments to constructors that
+ implemented a class.
+
+ From Fredrik Medley:
+ - Fix exception when printing of EnviromentError messages.
+ Specifically, this fixes error reporting of the race condition when
+ initializing the cache which error previously was hidden.
+
+ From Daniel Moody:
+ - Updated Jar builder to handle nodes and directories better
+ - Updated Jar builder to flatten source list which could contain embedded lists
+ - Removed some magic numbers from jar.py on behalf of Mats Wichmann (mats@linux.com)
+ - Set the pickling protocal back to highest which was causing issues
+ with variant dir tests. This will cause issues if reading sconsigns
+ pickled with the previous lower protocal.
+ - Updated swig to setup default paths for windows
+ - Updated gettext tools to setup default paths for windows with Cygwin/MinGW setups
+ - Add common location for default paths for cygwin and mingw in Platform modules
+ - Updated YACC tool to work on windows with Cygwin/MinGW setups
+ - Set the pickling protocal back to highest which was causing issues
+ with variant dir tests. This will cause issues if reading sconsigns
+ pickled with the previous lower protocal.
+ - Updated FS.py to handle removal of splitunc function from python 3.7
+ - Updated the vc.py to ignore MSVS versions where not compiler could be found
+
+ From Gary Oberbrunner:
+ - Fix bug when Installing multiple subdirs outside the source tree
+ - fix to_str to handle None without raising exception
+ - Fix -jN for python 3.7
+
+ From Jonathon Reinhart:
+ - Replace all instances of `int main()` in C code with `int main(void)`.
+ Specifically, this fixes the test cases use by Configure.CheckCC() which
+ would fail when using -Wstrict-prototypes.
+
+ From Zachary Tessler:
+ - Fix calculation of signatures for FunctionActions that contain list (or set,...)
+ comprehensions whose expressions involve constant literals. Those constants had
+ been ignored in signatures, so changing them did not cause targets to be rebuilt.
+
+ From Paweł Tomulik:
+ - In the testing framework, module TestCommon, fixed must_contain(),
+ must_not_contain(), and related methods of TestCommon class to work with
+ substrings located at zero offset.
+ - Added virtualenv support. A new function Virtualenv() determines whether
+ SCons runs in a virtualenv. The search PATH may also be extended to
+ prefer executables from the current virtualenv over the ones provided by
+ base environment. New option --enable-virtualenv provided to import some
+ virtualenv-related variables to SCons and extend every env['ENV']['PATH']
+ automatically. New option --ignore-virtualenv disables this. Two
+ environment variables, SCONS_ENABLE_VIRTUALENV and
+ SCONS_IGNORE_VIRTUALENV are supported for the same purpose.
+
+ From Richard West:
+ - Add SConstruct.py, Sconstruct.py, sconstruct.py to the search path for the root SConstruct file.
+ Allows easier debugging within Visual Studio
+ - Change setup.py to change the install directory (via pip, or setup.py install) from scons-#.#.#
+ to scons (Yielding <pythondir>/lib/scons/SCons/ instead of <pythondir>/lib/scons/SCons-#.#.#/).
+ This changes SCons to better comply with normal Python installation practices.
+
+ From Mats Wichmann:
+ - Recognize new java 9, 10, 11 (as 9.0 and 10.0, 11.0)
+ - Updated manpage scons.xml to fix a nested list problem
+ - Updated doc terminiology: use prepend instead of append as appropriate
+ - XML validity fixes from SConstruct.py change
+ - Update wiki links to new github location
+ - Update bug links to new github location
+ - Make it easier for SConscript() call to fail on missing script.
+ It was possible to call SCons.Warnings.warningAsException
+ (not documented as a user API) to make all warnings fail. Now
+ SConscript can take an optional must_exist flag which if true fails
+ if the script does not exist. Not failing on missing script is
+ now considered deprecated, and the first instance will print a
+ deprecation message. It is now also possible to flip the scons
+ behavior (which still defaults to warn, not fail) by calling
+ SCons.Script.set_missing_sconscript_error, which is also not a
+ documented interface at the moment.
+ - Convert TestCmd.read to use with statement on open (quiets 17 py3 warnings)
+ - Quiet py3 warning in UtilTests.py
+ - Fix tests specifying octal constants for py3
+ - Fix must_contain tests for py3
+ - RPM package generation:
+ - Fix supplying a build architecture
+ - Disable auto debug package generation on certain rpmbuild versions
+ - Adjust some tests to only supply build-id file on certain rpmbuild versions
+ - Tests now use a file fixture for the repeated (trivial) main.c program.
+ - Document and comment cleanup.
+ - Added new Environment Value X_RPM_EXTRADEFS to supply custom settings
+ to the specfile without adding specific logic for each one to scons.
+ - The test for Python.h needed by swig tests is moved to get_python_platform
+ so it does not have to be repeated in every test; picks up one failure
+ which did not make the (previously needed) check. Windows version
+ of get_python_platform needed some rework in case running in virtualenv.
+ - If test opens os.devnull, register with atexit so file opens do not leak.
+ - Fix bugs in Win32 process spawn logic to handle OSError exception correctly.
+ - Use time.perf_counter instead of time.clock if it exists.
+ time.clock deprecated since py3.3, due to remove in 3.8. deprecation
+ warnings from py3.7 were failing a bunch of tests on Windows since they
+ mess up expected stderr.
+ - Prefer Py3's inspect.getfullargspec over deprecated inspect.getargspec.
+ Switched to "new" (standard in Py2.7) usage of receiving a namedtuple -
+ we were unpacking to a four-tuple, two of the items of which were unused;
+ getfullargspec returns a named tuple with seven elements so it is a
+ cleaner drop-in replacement using the namedtuple.
+ - Updated the test-framework.rst documentation.
+ - Remove obsoleted internal implementaiton of OrderedDict.
+ - Test for tar packaging fixups
+ - Stop using deprecated unittest asserts
+ - messages in strip-install-dir test now os-neutral
+ - Add xz compression format to packaging choices.
+ - Syntax cleanups - trailing blanks, use "is" to compare with None, etc.
+ Three uses of variables not defined are changed.
+ - Some script changes in trying to find scons engine
+ - Update (pep8) configure-cache script, add a --show option.
+ - Fix for a couple of "what if tool not found" exceptions in framework.
+ - Add Textfile/Substfile to default environment. (issue #3147)
+ - sconsign: a couple of python3 fixes; be more tolerant of implicit
+ entries which have no signatures; minor PEP8 changes.
+ - Fix a couple of type mistakes (list-> string, filter type -> list)
+ - Fix a couple of type mistakes in packaging tools: list-> string in msi,
+ filter type -> list in ipk
+
+ From Bernhard M. Wiedemann:
+ - Update SCons' internal scons build logic to allow overriding build date
+ with SOURCE_DATE_EPOCH for SCons itself.
+ - Change the datestamps in SCons' docs and embedded in code use ISO 8601 format and UTC
+
+ From Hao Wu
+ - Typo in customized decider example in user guide
+ - Replace usage of unittest.TestSuite with unittest.main() (fix #3113)
+
+RELEASE 3.0.1 - Mon, 12 Nov 2017 15:31:33 -0700
From Daniel Moody:
- Jar can take multiple targets, and will make a duplicate jar from the sources for each target
- Added some warnings in case the Jar builder makes an implicit target
- Added Jar method and changed jar build to be more specific. Jar method will take in
- directories or classes as source. Added more tests to JAR to ensure the jar was
+ directories or classes as source. Added more tests to JAR to ensure the jar was
packaged with the correct compiled class files.
- - Added a No result test case to handle bug which seems unrelated to java in the
+ - Added a No result test case to handle bug which seems unrelated to java in the
swig-dependencies.py test, more info here: http://scons.tigris.org/issues/show_bug.cgi?id=2907
- Added a travis script to test on ubuntu trusty now that the project is on github
- so that Continuus Integration tests can be run automatically. It tests most case and considers
- no result a pass as well. Improving this script can install more dependincies allowing for more
+ so that Continuus Integration tests can be run automatically. It tests most case and considers
+ no result a pass as well. Improving this script can install more dependincies allowing for more
tests to be run.
+
+ From Daniel Moody:
- Updated the Jar Builder tool in Tool/__init__.py so that is doesn't force class files as
sources, allowing directories to be passed, which was causing test/Java/JAR.py to fail.
+ From William Deegan:
+ - Fix issue where code in utility routine to_String_for_subst() had code whose result was never
+ properly returned.
+ (Found by: James Rinkevich https://pairlist4.pair.net/pipermail/scons-users/2017-October/006358.html )
+ - Fixed Variables.GenerateHelpText() to now use the sort parameter. Due to incorrect 2to3 fixer changes
+ 8 years ago it was being used as a boolean parameter. Now you can specify sort to be a callable, or boolean
+ value. (True = normal sort). Manpage also updated.
+ - Fixed Tool loading logic from exploding sys.path with many site_scons/site_tools prepended on py3.
+ - Added additional output with time to process each SConscript file when using --debug=time.
+
+ From Thomas Berg:
+ - Fixed a regression in scons-3.0.0 where "from __future__ import print_function" was imposed
+ on the scope where SConstruct is executed, breaking existing builds using PY 2.7.
+
+ From William Deegan:
+ - Fix broken subst logic where a string with "$$(abc)" was being treated as "$(abc) and the
+ logic for removing the signature escapes was then failing because there was no closing "$)".
+ This was introduced by a pull request to allow recursive variable evaluations to yield a string
+ such as "$( $( some stuff $) $)".
+
From Zachary Tessler:
- Fix incorrect warning for repeated identical builder calls that use overrides
+
RELEASE 3.0.0 - Mon, 18 Sep 2017 08:32:04 -0700
NOTE: This is a major release. You should expect that some targets may rebuild when upgrading.
@@ -115,9 +406,9 @@ will cause rebuilds.
- Add support for Visual Studio 2017. This support requires vswhere.exe a helper
tool installed with newer installs of 2017. SCons expects it to be located at
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"
- It can be downloaded separately at
+ It can be downloaded separately at
https://github.com/Microsoft/vswhere
-
+
From Tom Tanner:
- Allow nested $( ... $) sections
@@ -6173,7 +6464,3 @@ A brief overview of important functionality available in release 0.01:
- Windows installer available.
-
-
-Copyright (c) 2001 - 2017 The SCons Foundation
-src/CHANGES.txt 74b2c53bc42290e911b334a6b44f187da698a668 2017/11/14 13:16:53 bdbaddog