Scons

Latest version: v4.7.0

Safety actively analyzes 641872 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 13

3.0.2

Not secure
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 (matslinux.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 protocol.
- 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 protocol.
- Updated FS.py to handle removal of splitunc function from python 3.7
- Updated the vc.py to ignore MSVS versions where no 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)

3.0.1

Not secure
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
packaged with the correct compiled class files.
- 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
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

3.0.0

Not secure
NOTE: This is a major release. You should expect that some targets may rebuild when upgrading.
Significant changes in some python action signatures. Also switching between PY 2.7 and PY 3.5, 3.6
will cause rebuilds.


From William Blevins:
- Updated D language scanner support to latest: 2.071.1. (PR 1924)
https://dlang.org/spec/module.html accessed 11 August 2016
- Enhancements:
- Added support for selective imports: "import A : B, C;" -> A
- Added support for renamed imports. "import B = A;" -> A
- Supports valid combinations: "import A, B, CCC = C, DDD = D : EEE = FFF;" -> A, B, C, D
- Notes:
- May find new (previously missed) Dlang dependencies.
- May cause rebuild after upgrade due to dependency changes.
- Updated Fortran-related tests to pass under GCC 5/6.
- Fixed SCons.Tool.Packaging.rpm.package source nondeterminism across builds.

From William Deegan:
- Removed deprecated tools CVS, Perforce, BitKeeper, RCS, SCCS, Subversion.
- Removed deprecated module SCons.Sig
- Added prioritized list of xsltproc tools to docbook. The order will now be as
follows: xsltproc, saxon, saxon-xslt, xalan (with first being highest priority, first
tool found is used)
- Fixed MSVSProject example code (http://scons.tigris.org/issues/show_bug.cgi?id=2979)
- Defined MS SDK 10.0 and Changed VS 2015 to use SDK 10.0
- Changes to Action Function and Action Class signiture creation. NOTE: This will cause rebuilds
for many builds when upgrading to SCons 3.0
- Fixed Bug 3027 - "Cross Compiling issue: cannot override ranlib"
- Fixed Bug 3020 - "Download link in user guide wrong. python setup.py install --version-lib broken"
- Fixed Bug 2486 - Added SetOption('silent',True) - Previously this value was not allowed to be set.
- Fixed Bug 3040 - Non-unicode character in CHANGES.txt
- Fixed Bug 2622 - AlwaysBuild + MSVC regression.
- Fixed Bug 3025 - (Credit to Florian : User flow86 on tigris) - Fix typo JAVACLASSSUFIX should have been
JAVACLASSSUFFIX


From Ibrahim Esmat:
- Added the capability to build Windows Store Compatible libraries that can be used
with Universal Windows Platform (UWP) Apps and published to the store

From Daniel Holth:
- Add basic support for PyPy (by deleting __slots__ from Node with a
metaclass on PyPy); wrap most-used open() calls in 'with' statements to
avoid too many open files.
- Add __main__.py for `python -m SCons` in case it is on PYTHONPATH.
- Always use highest available pickle protocol for efficiency.
- Remove unused command line fallback for the zip tool.

From Gaurav Juvekar:
- Fix issue 2832: Expand construction variables in 'chdir' argument of builders. (PR 463)
- Fix issue 2910: Make --tree=all handle Unicode. (PR 427)
- Fix issue 2788: Fix typo in documentation example for sconf. (PR 388)

From Alexey Klimkin:
- Use memoization to optimize PATH evaluation across all dependencies per
node. (PR 345)
- Use set() where it is applicable (PR 344)

From M. Limber:
- Fixed msvs.py for Visual Studio Express editions that would report
"Error : ValueError: invalid literal for float(): 10.0Exp".

From Rick Lupton:
- Update LaTeX scanner to understand \import and related commands

From Steve Robinson:
- 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
https://github.com/Microsoft/vswhere

From Tom Tanner:
- Allow nested $( ... $) sections

From Paweł Tomulik:
- Fixed the issue with LDMODULEVERSIONFLAGS reported by Tim Jenness
(https://pairlist4.pair.net/pipermail/scons-users/2016-May/004893.html).
An error was causing "-Wl,Bsymbolic" being added to linker's command-line
even when there was no specified value in LDMODULEVERSION and thus no
need for the flags to be specified.
- Added LoadableModule to the list of global functions (DefaultEnvironment
builders).

From Manish Vachharajani:
- Update debian rules, compat, and control to not use features
deprecated or obsolete in later versions of debhelpers
- Update python version to 2.7 in debian/control

From Richard Viney:
- Fixed PCHPDBFLAGS causing a deprecation warning on MSVC v8 and later when
using PCHs and PDBs together.


From Richard West:
- Added nested / namespace tool support
- Added a small fix to the python3 tool loader when loading a tool as a package
- Added additional documentation to the user manual on using toolpaths with the environment
This includes the use of sys.path to search for tools installed via pip or package managers
- Added support for a PyPackageDir function for use with the toolpath

From Russel Winder:
- Reordered the default D tools from "dmd, gdc, ldc" to "dmd, ldc, gdc".
- Add a ProgramAllAtOnce builder to the dmd, ldc, and gdc tools. (PR 448)
- Remove a file name exception for very old Fedora LDC installation.
- gdc can now handle building shared objects (tested for version 6.3.0).
- Remove establishing the SharedLibrary builder in the dmd, ldc, and gdc
tools, must now include the ar tool to get this builder as is required for
other compiler tools.
- Add clang and clang++ tools based on Paweł Tomulik's work.

2.5.1

Not secure
From William Deegan:
- Add scons-configure-cache.py to packaging. It was omitted

From Alexey Klimkin:
- Use memoization to optimize PATH evaluation across all dependencies per
node. (PR 345)

2.5.0

Not secure
From Dirk Baechle:
- Removed a lot of compatibility methods and workarounds
for Python versions < 2.7, in order to prepare the work
towards a combined 2.7/3.x version. (PR 284)
Also fixed the default arguments for the print_tree and
render_tree methods. (PR 284, too)

From William Blevins:
- Added support for cross-language dependency scanning;
SCons now respects scanner keys for implicit dependencies.
- Notes for SCons users with heterogeneous systems.
- May find new (previously missed) dependencies.
- May cause rebuild after upgrade due to dependency changes.
- May find new dependency errors (EG. cycles).
- Discovered in some of the SCons QT tests.
- Resolved missing cross-language dependencies for
SWIG bindings (fixes 2264).
- Corrected typo in User Guide for Scanner keyword. (PR 2959)
- Install builder interacts with scanner found in SCANNERS differently.
- Previous: Install builder recursively scanned implicit dependencies
for scanners from SCANNER, but not for built-in (default) scanners.
- Current: Install builder will not scan for implicit dependencies via
either scanner source. This optimizes some Install builder behavior
and brings orthogonality to Install builder scanning behavior.

From William Deegan:
- Add better messaging when two environments have
different actions for the same target (Bug 2024)
- Fix issue only with MSVC and Always build where targets
marked AlwaysBuild wouldn't make it into CHANGED_SOURCES
and thus yield an empty compile command line. (Bug 2622)
- Fix posix platform escaping logic to properly handle paths
with parens in them "()". (Bug 2225)

From Jakub Pola:
- Intel Compiler 2016 (Linux/Mac) update for tool directories.

From Adarsh Sanjeev:
- Fix for issue 2494: Added string support for Chmod function.

From Tom Tanner:
- change cache to use 2 character subdirectories, rather than one character,
so as not to give huge directories for large caches, a situation which
causes issues for NFS.
For existing caches, you will need to run the scons-configure-cache.py
script to update them to the new format. You will get a warning every time
you build until you co this.
- Fix a bunch of unit tests on windows

2.4.1

Not secure
From Arfrever Frehtes Taifersar Arahesis:
- Fix for Bug 2791 - Setup.py fails unnecessarily under Jython.

From Dirk Baechle:
- Fixed license of SVG titlepage files in the context of Debian
packaging, such that they allow for commercial use too (2985).

From William Blevins:
- InstallVersionedLib now available in the DefaultEnvironment context.
- Improves orthogonality of use cases between different Install functions.

From Carnë Draug:
- Added new configure check, CheckProg, to check for
existence of a program.

From Andrew Featherstone:
- Fix for issue 2840 - Fix for two environments specifying same target with different
actions not throwing hard error. Instead SCons was incorrectly issuing a warning
and continuing.

From Hiroaki Itoh :
- Add support `Microsoft Visual C++ Compiler for Python 2.7'
Compiler can be obtained at: https://www.microsoft.com/en-us/download/details.aspx?id=44266

From Florian Miedniak:
- Fixed tigris issue 3011: Glob() excludes didn't work when used with VariantDir(duplicate=0)

From William Roberts:
- Fix bug 2831 and allow Help() text to be appended to AddOption() help.

From Paweł Tomulik:
- Reimplemented versioning for shared libraries, with the following effects
- Fixed tigris issues 3001, 3006.
- Fixed several other issues not reported to tigris, including:
issues with versioned libraries in subdirectories with tricky names,
issues with versioned libraries and variant directories,
issue with soname not being injected to library when using D linkers,
- Switched to direct symlinks instead of daisy-chained ones -- soname and
development symlinks point directly to the versioned shared library now),
for rationale see:
https://www.debian.org/doc/debian-policy/ch-sharedlibs.html
https://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages
https://bitbucket.org/scons/scons/pull-requests/247/new-versioned-libraries-gnulink-cyglink/diff#comment-10063929
- New construction variables to allow override default behavior: SONAME,
SHLIBVERSIONFLAGS, _SHLIBVERSIONFLAGS, SHLIBNOVERSIONSYMLINKS,
LDMODULEVERSION, LDMODULEVERSIONFLAGS, _LDMODULEVERSIONFLAGS,
LDMODULENOVERSIONSYMLINKS.
- Changed logic used to configure the versioning machinery from
platform-centric to linker-oriented.
- The SHLIBVERSION/LDMODULEVERSION variables are no longer validated by
SCons (more freedom to users).
- InstallVersionedLib() doesn't use SHLIBVERSION anymore.
- Enchanced docs for the library versioning stuff.
- New tests for versioned libraries.
- Library versioning is currently implemented for the following linker
tools: 'cyglink', 'gnulink', 'sunlink'.
- Fix to swig tool - pick-up 'swig', 'swig3.0' and 'swig2.0' (in order).
- Fix to swig tool - respect env['SWIG'] provided by user.

Page 4 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.