head 1.9; access; symbols pkgsrc-2026Q2:1.9.0.6 pkgsrc-2026Q2-base:1.9 pkgsrc-2026Q1:1.9.0.4 pkgsrc-2026Q1-base:1.9 pkgsrc-2025Q4:1.9.0.2 pkgsrc-2025Q4-base:1.9 pkgsrc-2025Q3:1.7.0.4 pkgsrc-2025Q3-base:1.7 pkgsrc-2025Q2:1.7.0.2 pkgsrc-2025Q2-base:1.7 pkgsrc-2025Q1:1.6.0.6 pkgsrc-2025Q1-base:1.6 pkgsrc-2024Q4:1.6.0.4 pkgsrc-2024Q4-base:1.6 pkgsrc-2024Q3:1.6.0.2 pkgsrc-2024Q3-base:1.6 pkgsrc-2024Q2:1.4.0.2 pkgsrc-2024Q2-base:1.4 pkgsrc-2024Q1:1.3.0.2 pkgsrc-2024Q1-base:1.3 pkgsrc-2023Q4:1.1.0.6 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.4 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.2 pkgsrc-2023Q2-base:1.1; locks; strict; comment @# @; 1.9 date 2025.11.17.07.43.46; author adam; state Exp; branches; next 1.8; commitid YH32SInkKfEQxSiG; 1.8 date 2025.10.11.22.03.50; author wiz; state Exp; branches; next 1.7; commitid n4qq5r6wxUBGuceG; 1.7 date 2025.04.11.07.53.40; author wiz; state Exp; branches; next 1.6; commitid oQwzMPKOBZBoFBQF; 1.6 date 2024.09.04.18.02.01; author gdt; state Exp; branches; next 1.5; commitid hnMSqdsWxBwG4woF; 1.5 date 2024.07.14.13.53.16; author wiz; state Exp; branches; next 1.4; commitid 6MWktQEnBalgnOhF; 1.4 date 2024.04.06.06.32.56; author wiz; state Exp; branches; next 1.3; commitid dzYfjx6F4SXs735F; 1.3 date 2024.01.02.08.43.10; author wiz; state Exp; branches; next 1.2; commitid WXwX3vCFTcTmTQSE; 1.2 date 2023.12.30.10.47.36; author wiz; state Exp; branches; next 1.1; commitid Oq4bANcCX34aGtSE; 1.1 date 2023.06.07.18.25.03; author wiz; state Exp; branches; next ; commitid EeBdhzldAYVEP2sE; desc @@ 1.9 log @scons4: updated to 4.10.1 4.10.1 NEW FUNCTIONALITY Add support for Visual Studio 2026. CHANGED/ENHANCED EXISTING FUNCTIONALITY Switch test framework from using profile to cProfile. profile generates deprecation warnings starting with Python 3.15. FIXES Enable membership tests on instances of Literal (non-substituting string). In the SequenceTypes tuple used for dynamic type checks, include the dict contents views, exclude the dictionary view itself as it is not an iterable sequence type. IMPROVEMENTS Internal: where the find method on a string was used to determine if a substring is present, use the more readable "in" and "not in". DOCUMENTATION Improve documentation of builder methods and builder objects. Make links clickable in the SetOption and GetOption manpage entries. @ text @$NetBSD: distinfo,v 1.8 2025/10/11 22:03:50 wiz Exp $ BLAKE2s (scons-4.10.1.tar.gz) = 18865d3216cde622ec28132763acbf2a1fcd62b469facebf34b28adc983f45de SHA512 (scons-4.10.1.tar.gz) = 4c64070714ba16c8e231ecfac9c1df6fad252b5509e0d260cc05f28865e3068f58c169d73c1559373b7a2d517bcb94a07593ab00781afd9a6a55893455471bc4 Size (scons-4.10.1.tar.gz) = 3258403 bytes SHA1 (patch-SCons_Platform_____init____.py) = 3505bd3aa579115b24aab0dac09649129693f6fa @ 1.8 log @py-scons: update to 4.10.0. CHANGED/ENHANCED EXISTING FUNCTIONALITY Nodes are now treated as PathLike objects. Replace use of old conditional expression idioms with the official one from PEP 308 introduced in Python 2.5 (2006). The idiom being replaced (using and/or) is regarded as error prone. MSVC: The following shell environment variables are now included in the environment used by SCons to initialize MSVC when defined: VCPKG_DISABLE_METRICS, VCPKG_ROOT, POWERSHELL_TELEMETRY_OPTOUT, PSDisableModuleAnalysisCacheCleanup, and PSModuleAnalysisCachePath. A subset of the shell environment PSModulePath is included in the environment used by SCons to initialize MSVC when defined. None of these variables and values are propagated to the user's SCons environment after running the MSVC batch files. TEMPFILE: A UserError exception is raised when encoding the contents of the tempfile fails due to a limited set of expected exceptions (e.g., UnicodeError). FIXES Fixed SCons.Variables.PackageVariable to correctly test the default setting against both enable & disable strings. (Fixes #4702) MSVC: Fixed a significant delay experienced in the Github Actions windows 2022 and 2025 runners due to the environment used by SCons to initialize MSVC when the Visual Studio vcpkg component is installed. The Github Actions windows 2019 runner was not affected. Fix the variant dir component being missing from generated source file paths with CompilationDatabase() builder (Fixes #4003). Ninja tool generate_command() fixed to call subst() with correct arguments in ListAction case. Unit tests added for generate_command. Fix the SCons.Scanner.LaTeX to mimic LaTeX's search method. Ninja tool now quotes targets (if necessary) when calling back to SCons - both in the POST request constructed to contact the daemon, and in the command eventually issued from the deamon. Ninja tool is adjusted to recognize and emit the right rule in the case of special actions that the tool recognizes, like Copy. This was working in the case of single commands, but not when part of a list of actions. Recognition only happens if the special action is first in the list. Fix a test problem on Windows where UNC tests failed due to incorrect path munging if a non-default %TEMP% was defined (as in moving to a Dev Drive). Fix Issue #4746. The TEMPFILE is written in utf-8 encoding by default. If the tempfile contents cannot be decoded by the command the tempfile is passed to, (new) TEMPPFILEENCODING can be used to speficy a different encoding to use. On Windows, the username may be a cause of this, as the default path for temporary files includes the username. Setting (existing) TEMPFILEDIR may also help in this case. Tweak runtest.py and test framework to more reliably get the requested Python binary (for odd Windows setups + Python launcher) Fix the tempfile encoding test regex strings to remove warnings in python 3.12 and 3.13. Incremental builds in Interactive mode could fail on platforms that support batch mode (currently: Windows). Change the way the changed and unchanged target and source lists are accounted for to resolve. Fixes #3029. IMPROVEMENTS Virtualenv support module modernized: previously looked first for an unofficial approach from before venv support was made part of Python in 3.3; now looks for the official approach first. This in an internal detail, the API is unchanged. Add internal routines to manipulate publicly visible argument and target lists. These interfaces are not part of the public API. Improve the error message when an environment method is called which does not exist in that environment. Mostly this is intended to be a bit more helpful in the case of a builder which did not instantiate. PACKAGING The generated roff (.1) manpages are now included in the scons-doc tarball built at part of the release process, in addition to the html and txt versions. For distribution packaging, the manpages can be extracted from here (downloadable from https://scons.org/doc/ using a a version-specific URL, e.g. https://scons.org/doc/4.9.1/scons-doc-4.9.1.tar.gz). DOCUMENTATION Clarify how pre/post actions on an alias work. Improve the description of PackageVariable. The "API Docs" build (Sphinx) configuration is improved, and SConsDoc and SConsExample are now included - their API is interesting to developers working on SCons (needed to write docs), even if not part of "The SCons API" itself. Missing documentation for the Virtualenv() function is added. Note that the User Guide previously described a negative outcome as returning None. It is now explicit that the path is returned if running in a virtualenv, and an empty (falsy) string if not. Improve the wording of Configure methods. Improve the wording of AppendENVPath and PrependENVPath in manpage. Improve documentation of builder methods and builder objects. All the User Guide sections now have textual anchors, meaning there no longer be build-generated numeric tags like https://scons.org/doc/production/HTML/scons-user.html#id1514 DEVELOPMENT runtest.py once again finds "external" tests, such as the tests for tools in scons-contrib. An earlier rework had broken this. Fixes #4699. Clean up C and C++ FLAGS tests. Tests which use a real compiler are now more clearly distinguished (-live.py suffix and docstring). Fix a couple of unit tests to not fail with Python 3.14. These involve expectations for bytecode strings and error message contents; there was no problem with SCons itself using 3.14. Move the GitHub workflow test runner files from the SCons root to the ci subdirectory of the testing directory. GitHub: Enable the interactive tests on windows. GitHub: Enable the packaging tar xz test on windows. GitHub: Exclude two ninja tests that consistently fail on MacOS in the experimental tests workflow. GitHub: Add a workflow file to test MSVC with optional environment variables. GitHub: Populate the MSVC cache before running the test suite for select windows workflow files. GitHub: Upload the failed_tests.log artifact on failure in select workflow files. GitHub: Change the runtest workflow to allow the python version to be specified with the OS version. Testing: Increase the default timeout from 20 seconds to 60 seconds in the testing framework wait_for method. The timeout was increased during isolated experiments of the interactive tests on windows. Testing: Update the packaging tar bz2 and xz tests on on Windows. The packaging tar bz2 and xz tests should be skipped on Windows 10 and GitHub windows-2022. The packaging tar bz2 and xz tests should be run on Windows 11 and GitHub windows-2025. Ninja: Increase the number of generated source files in the iterative speedup test from 200 to 250. Increasing the workload should reduce the likelihood that the ninja tests are slower. Add more unit tests to internal AppendPath, PrependPath functions. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.7 2025/04/11 07:53:40 wiz Exp $ d3 4 a6 4 BLAKE2s (scons-4.10.0.tar.gz) = 93a75d5f2b5189adaf3d2c8345a2e5f3441e57ef7fc751f49080392fbb8f6944 SHA512 (scons-4.10.0.tar.gz) = 5f9a4ac2cfc88b9862d56683f2cf8a1f649d6f7c96af7675fab6ffbd6461e2dd416279dc36fcc9aa347ea48b5fffd23fc59e5664b93a9b3e32a24241ec516337 Size (scons-4.10.0.tar.gz) = 3257277 bytes SHA1 (patch-SCons_Platform_____init____.py) = 944c044beea35d47f144a6a4ab8fe77e28aaf706 @ 1.7 log @py-scons: update to 4.9.1. 4.9.1 FIXES New CacheDir initialization code failed on Python 3.7 for unknown reason (worked on 3.8+). Adjusted the approach a bit. Fixes #4694. Fixed a hang in wait_for_process_to_die() on Windows, affecting clean-up of the SCons daemon used for Ninja builds. 4.9.0 CHANGED/ENHANCED EXISTING FUNCTIONALITY Expose the extra_libs keyword argument in CheckLibWithHeader and 'CheckLib' Removed Python 3.6 support. Override environments, created when giving construction environment keyword arguments to Builder calls (or manually, through the undocumented Override method), were modified not to "leak" on item deletion. The item will now not be deleted from the base environment. Added support for tracking beamer themes in the LaTeX scanner. MSVS: msvs project files are always generated before the corresponding msvs solution files. This changes the behavior of clean for a project generated with auto_build_solution disabled and explicit solution generation: when the solution files are cleaned, the project files are also cleaned. The tests for vs 6.0-7.1 were updated accordingly. MSVS: Add an optional keyword argument, auto_filter_projects, to MSVSSolution. Accepted values for auto_filter_projects are: None [default]: raise an exception when solution file names or nodes are detected in the projects argument list. True or evaluates True: automatically remove solution file names and nodes from the project argument list. False or evaluates False: leave solution file names and nodes in the project argument list. An exception is not raised. Solution file names and/or nodes in the project argument list cause erroneous Project records to be produced in the generated solution file. As a convenience, a user may elect to ignore solution file names and nodes in the projects argument list rather than manually removing solution file names and nodes from the MSVSProject return values. SCons C preprocessor: Update the optional integer suffixes to include the z|Z and wb|WB suffixes. Add support for binary integer constants. Add support for octal integer constants. Previously, octal integers were evaluated as decimal integers. A literal zero (0) is treated as an octal number. Change the method for attempted conversion of a define expansion value to an integer from a literal to a constant expression evaluation. Add a tag to each CacheDir to let systems ignore backing it up (per https://bford.info/cachedir/). Update the way a CacheDir is created, since it now has to create two files. The Dictionary method now has an as_dict flag. If true, Dictionary always returns a dict. The default remains to return different types depending on whether zero, one, or multiple construction A Variables object now makes available a "defaulted" attribute, a list of variable names that were set in the environment with their values taken from the default in the variable description (if a variable was set to the same value as the default in one of the input sources, it is not included in this list). If a build Variable is created with no aliases, the name of the Variable is no longer listed in its aliases. Internally, the name and aliases are considered together anyway so this should not have any effect except for being visible to custom help text formatters. FIXES PackageVariable now does what the documentation always said it does if the variable is used on the command line with one of the enabling string as the value: the variable's default value is produced (previously it always produced True in this case). Temporary files created by TempFileMunge() are now cleaned up on scons exit, instead of at the time they're used. Fixes #4595. AddOption now correctly adds short (single-character) options. Previously an added short option would always report as unknown, while long option names for the same option worked. Short options that take a value require the user to specify the value immediately following the option, with no spaces (e.g. -j5 and not -j 5). Fix a problem with compilation_db component initialization - the entries for assembler files were not being set up correctly. On Darwin, PermissionErrors are now handled while trying to access /etc/paths.d. This may occur if SCons is invoked in a sandboxed environment (such as Nix). Added error handling when creating MSVC detection debug log file specified by SCONS_MSCOMMON_DEBUG. MSVS: Modify select msvs test scripts to run on platforms not supported by the msvs/msvc tool implementation via a default host architecture for unsupported platforms. MSVS: Fixed early loop exit in select msvs test scripts. Select msvs test scripts were being invoked for msvc version 8.0 only. Additional msvs tool and test changes due to the msvs test scripts being run for all msvc versions (i.e., minor test and tool issues went undetected). MSVS: for variant build configurations, msvs solution files are generated in the source directory and a placeholder file is generated in the variant build directory. This mirrors the behavior of generated msvs project files. MSVS: msvs project files are generated before the corresponding msvs solution file. User-specified project GUIDs should now be correctly written to the solution file. SCons C preprocessor: Preserve literals that contain valid integer substring specifications. Previously, the integer suffix could be stripped from a symbol that contained an integer and suffix substring. SCons C preprocessor: Update the optional integer suffixes to include support for the alternate orderings of unsigned with long or long long as defined in the c/cpp grammar. SCons C preprocessor: Update the optional integer suffixes for case insensitive specifications as defined in the c/cpp grammar. Fix nasm test for missing include file, cleanup. Skip running a few validation tests if the user is root and the test is not designed to work for the root user. Make sure unknown variables from a Variables file are recognized as such. Previously only unknowns from the command line were recognized (issue #4645). Update ninja tool to use ninja.BIN_DIR to find pypi packaged ninja binary. python ninja package version 1.11.1.2 changed the location and previous logic no longer worked. The (optional) C Conditional Scanner now does limited macro replacement on the contents of CPPDEFINES, to improve finding deps that are conditionally included. Previously replacement was only done on macro definitions found in the file being scanned. Only object-like macros are replaced (not function-like), and only on a whole-word basis; recursion is limited to five levels and does not error out if that limit is reached (issue #4523). Minor modernization: make use of stat object's st_mode, st_mtime and other attributes rather than indexing into stat return. Ninja's TEMPLATE rule pool changed from local_pool to install_pool hoping it will fix a race condition that can occurs when Ninja defers to SCons to build. Renamed env.Help() & Help()'s argument keep_local to local_only, previously the documentation specified local_only, but the code and tests were using keep_local. The functionality more closely matches local only. NOTE: It doesn't seem like any code in the wild was using local_only as we'd not received any reports of such until PR #4606 from hedger. Fix Issue #2281, AddPreAction() & AddPostAction() were being ignored if no action was specified when the Alias was initially created. Handle case of "memoizer" as one member of a comma-separated --debug string - this was previously missed. IMPROVEMENTS For consistency with the optparse "add_option" method, AddOption accepts an SConsOption object as a single argument (this failed previously). Calling AddOption with the full set of arguments (option names and attributes) to set up the option is still the recommended approach. Add clang and clang++ to the default tool search orders for POSIX and Windows platforms. These will be searched for after gcc and g++, respectively. Does not affect explicitly requested tool lists. Note: on Windows, SCons currently only has builtin support for clang, not for clang-cl, the version of the frontend that uses cl.exe-compatible command line switches. DOCUMENTATION Some manpage cleanup for the gettext and pdf/ps builders. Some clarifications in the User Guide "Environments" chapter. Clarify documentation of Repository() in manpage and user guide. Many grammatical and spelling fixes in the documentation. Update Clean and NoClean documentation. Improved Variables documentation. Update the User Guide Command() example which now shows a target name being created from '${SOURCE.base}.out' to use a valid special attribute and to explain what's being done in the example. DEVELOPMENT Ruff/Mypy: Excluded items now synced. Ruff: Linter includes new rules - FA, UP006, UP007, and UP037 - to detect and upgrade legacy type-hint syntax. Removed "SCons.Util.sctyping.py", as the functionality can now be substituted via top-level from __future__ import annotations. Implemented type hints for Nodes. Added TestSCons.NINJA_BINARY to TestSCons to centralize logic to find ninja binary Refactored SCons.Tool.ninja -> SCons.Tool.ninja_tool, and added alias so env.Tool('ninja') will still work. This avoids conflicting with the pypi module ninja. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.6 2024/09/04 18:02:01 gdt Exp $ d3 3 a5 3 BLAKE2s (scons-4.9.1.tar.gz) = 81dbff5568f3b193412c4053672b21f674fd636f194a58621576d8204c0b5fe6 SHA512 (scons-4.9.1.tar.gz) = 8d881179a99a1c429ae76fbc01f0bfd606686c89b999687c0a2ec33126f7c71d1efc7c61666165981f752b8c52e40103fe08aadf07ea9337fe4fd3a8d3a94eb1 Size (scons-4.9.1.tar.gz) = 3252106 bytes @ 1.6 log @devel/scons4: Update to 4.8.1 (Built but not used; this is labeled a micro and I'm believing upstream. Permission granted to anyone to revert without asking me if this causes trouble.) upstream NEWS: CHANGED/ENHANCED EXISTING FUNCTIONALITY env.Dump() previously accepted a single optional "key" argument. It now accepts any number of optional "key" arguments; any supplied keys will be serialized with their values in a Python dict style. As a result there is a small change in behavior: if a single key argument is given, where it previously would return a string containing just the value, now it will return a string that looks like a dictionary including the key. For example, from "'gcc'" to "{'CC': 'gcc'}". This should not have any impact as the result of calling Dump is intended for diagnostic output, not for use by other interfaces. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.5 2024/07/14 13:53:16 wiz Exp $ d3 3 a5 3 BLAKE2s (scons-4.8.1.tar.gz) = c43a370b12a4f39a47e38a37caad01057a74ab8e494cc37ea0128c67d583f677 SHA512 (scons-4.8.1.tar.gz) = da6a8c6934f46738981408734b081a7e781b6a15481a54b881cf744d4ab72a85ea8d001a0b8de11f81c38c8d67d6729b6943a6e5e04b3a150fa245f08237ffb4 Size (scons-4.8.1.tar.gz) = 3244174 bytes @ 1.5 log @py-scons: update to 4.8.0. RELEASE 4.8.0 - Sun, 07 Jul 2024 17:22:20 -0700 From Joseph Brill: - For msvc version specifications without an 'Exp' suffix, an express installation is used when no other edition is detected for the msvc version. Similarly, an express installation of the IDE binary is used when no other IDE edition is detected. - VS2015 Express (14.0Exp) does not support the sdk version argument. VS2015 Express does not support the store argument for target architectures other than x86. Script argument validation now takes into account these restrictions. - VS2015 BuildTools (14.0) does not support the sdk version argument and does not support the store argument. Script argument validation now takes into account these restrictions. - The Windows SDK for Windows 7 and .NET Framework 4" (SDK 7.1) populates the registry keys in a manner in which the msvc detection would report that VS2010 (10.0) is installed when only the SDK was installed. The installed files are intended to be used via the sdk batch file setenv.cmd. The installed msvc batch files will fail. The msvc detection logic now ignores SDK-only VS2010 installations. Similar protection is implemented for the sdk-only installs that populate the installation folder and registry keys for VS2008 (9.0), if necessary. - For VS2005 (8.0) to VS2015 (14.0), vsvarsall.bat is employed to dispatch to a dependent batch file when configuring the msvc environment. Previously, only the existence of the compiler executable was verified. In certain installations, the dependent batch file (e.g., vcvars64.bat) may not exist while the compiler executable does exist resulting in build failures. The existence of vcvarsall.bat, the dependent batch file, and the compiler executable are now validated. - MSVC configuration data specific to versions VS2005 (8.0) to VS2008 (9.0) was added as the dependent batch files have different names than the batch file names used for VS2010 (10.0) and later. The VS2008 (9.0) Visual C++ For Python installation is handled as a special case as the dependent batch files are: (a) not used and (b) in different locations. - When VS2008 (9.0) Visual C++ For Python is installed using the ALLUSERS=1 option (i.e., msiexec /i VCForPython27.msi ALLUSERS=1), the registry keys are written to HKEY_LOCAL_MACHINE rather than HKEY_CURRENT_USER. An entry was added to query the Visual C++ For Python keys in HKLM following the HKCU query, if necessary. - For VS2008, a full development edition (e.g., Professional) is now selected before a Visual C++ For Python edition. Prior to this change, Visual C++ For Python was selected before a full development edition when both editions are installed. - The registry detection of VS2015 (14.0), and earlier, is now cached at runtime and is only evaluated once for each msvc version. - The vswhere executable is frozen upon initial detection. Specifying a different vswhere executable via the construction variable VSWHERE after the initial detection now results in an exception. Multiple bugs in the implementation of specifying a vswhere executable via the construction variable VSWHERE have been fixed. Previously, when a user specified vswhere executable detects new msvc installations after the initial detection, the internal msvc installation cache and the default msvc version based on the initial detection are no longer valid. For example, when no vswhere executable is found for the initial detection and then later an environment is constructed with a user specified vswhere executable that detects new msvc installations. - The vswhere detection of VS2017 (14.1), and later, is now cached at runtime and is only evaluated once using a single vswhere invocation for all msvc versions. Previously, the vswhere executable was invoked for each supported msvc version. - The vswhere executable locations for the WinGet and Scoop package managers were added to the default vswhere executable search list after the Chocolatey installation location. - Fix issue #4543: add support for msvc toolset versions 14.4X installed as the latest msvc toolset versions for msvc buildtools v143. The v143 msvc buildtools may contain msvc toolset versions from 14.30 to 14.4X. From Thaddeus Crews: - GetSConsVersion() to grab the latest SCons version without needing to access SCons internals. - Migrate setup.cfg logic to pyproject.toml; remove setup.cfg. - Update .gitattributes to match .editorconfig; enforce eol settings. - Replace black/flake8 with ruff for more efficient formatting & linting. - When debugging (--debug=pdb), the filename SCsub is now recognized when manipulating breakpoints. From Raymond Li: - Fix issue #3935: OSErrors are now no longer hidden during execution of Actions. All exceptions during the execution of an Action are now returned by value rather than by raising an exception, for more consistent behavior. NOTE: With this change, user created Actions should now catch and handle expected exceptions (whereas previously many of these were silently caught and suppressed by the SCons Action exection code). From Ryan Carsten Schmidt: - Teach ParseFlags to put a --stdlib=libname argument into CXXFLAGS. If placed in CCFLAGS (the default location), it could be fed to the C compiler (gcc, clang) where it is not applicable and causes a warning message. From Mats Wichmann: - Updated Value Node docs and tests. - Python 3.13 compat: re.sub deprecated count, flags as positional args, caused update-release-info test to fail. - Dump() with json format selected now recognizes additional compound types (UserDict and UserList), which improves the detail of the display. json output is also sorted, to match the default display. - Python 3.13 (alpha) changes the behavior of isabs() on Windows. Adjust SCons usage of in NodeInfo classes to match. Fixes #4502, #4504. - Drop duplicated __getstate__ and __setstate__ methods in AliasNodeInfo, FileNodeInfo and ValueNodeInfo classes, as they are identical to the ones in parent NodeInfoBase and can just be inherited. - Update manpage for Tools, and for TOOL, which also gets a minor tweak for how it's handled (should be more accurate in a few situations). - Test framework now uses a subdirectory named "scons" below the base temporary directory. This gives something invariant to tell antivirus to ignore without having to exclude tmpdir itself. Fixes #4509. - MSVS "live" tests of project files adjusted to look for the generated executable with an exe sufffix - Documentation build now properly passes through skipping the PDF (and EPUB) builds of manpage and user guide; this can also be done manually if directly calling doc/man/SConstruct and doc/user/SConstruct by adding SKIP_PDF=1. This should help with distro packaging of SCons, which now does not need "fop" and other tools to be set up in order to build pdf versions which are then ignored. - Add the ability to print a Variables object for debugging purposes (provides a __str__ method in the class). - Mark Python 3.6 support as deprecated. - Clean up Variables: more consistently call them variables (finish the old change from Options) in docstrings, etc.; some typing and other tweaks. Update manpage and user guide for Variables usage. - Regularize internal usage of Python version strings and drop one old Python 2-only code block in a test. - scons-time tests now supply a "filter" argument to tarfile.extract to quiet a warning which was added in Python 3.13 beta 1. - Improved the conversion of a "foreign" exception from an action into BuildError by making sure our defaults get applied even in corner cases. Fixes #4530. - Restructured API docs build (Sphinx) so main module contents appear on a given page *before* the submodule docs, not after. Also tweaked the Util package doc build so it's structured more like the other packages (a missed part of the transition when it was split). - Updated manpage description of Command "builder" and function. - Framework for scons-time tests adjusted so a path with a long username Windows has squashed doesn't get re-expanded. Fixes a problem seen on GitHub Windows runner which uses a name "runneradmin". - SCons.Environment.is_valid_construction_var() now returns a boolean to match the convention that functions beginning with "is" have yes/no answers (previously returned either None or an re.match object). Now matches the annotation and docstring (which were prematurely updated in 4.6). All SCons usage except unit test was already fully consistent with a bool. - When a variable is added to a Variables object, it can now be flagged as "don't perform substitution" by setting the argument subst. This allows variables to contain characters which would otherwise cause expansion. Fixes #4241. - The test runner now recognizes the unittest module's return code of 5, which means no tests were run. SCons/Script/MainTests.py currently has no tests, so this particular error code is expected - should not cause runtest to give up with an "unknown error code". - Updated the notes about reproducible builds with SCons and the example. - The Clone() method now respects the variables argument (fixes #3590) - is_valid_construction_var() (not part of the public API) moved from SCons.Environment to SCons.Util to avoid the chance of import loops. Variables and Environment both use the routine and Environment() uses a Variables() object so better to move to a safer location. - Performance tweak: the __setitem__ method of an Environment, used for setting construction variables, now uses the string method isidentifier to validate the name (updated from microbenchmark results). - AddOption and the internal add_local_option which AddOption calls now recognize a "settable" keyword argument to indicate a project-added option can also be modified using SetOption. Fixes #3983. NOTE: If you were using ninja and using SetOption() for ninja options in your SConscripts prior to loading the ninja tool, you will now see an error. The fix is to move the SetOption() to after you've loaded the ninja tool. - ListVariable now has a separate validator, with the functionality that was previously part of the converter. The main effect is to allow a developer to supply a custom validator, which previously could be inhibited by the converter failing before the validator is reached. - Regularized header (copyright, licens) at top of documentation files using SPDX. - Updated introductory section of manual page. - Minor cleanups in tests - drop unused "% locals()" stanzas. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.4 2024/04/06 06:32:56 wiz Exp $ d3 3 a5 3 BLAKE2s (scons-4.8.0.tar.gz) = 23513ac1737b4d7b1b9ca0b6498c6406c1de80681ee0295484656c882eca296d SHA512 (scons-4.8.0.tar.gz) = 44e6eefaf76cf8eff5be7654ef22e58113c18d7580f433dca0767a4590f0b9692c95fc887d4db69f407db3f013e236acabf743195bf95580e9518a2e896576de Size (scons-4.8.0.tar.gz) = 3243129 bytes @ 1.4 log @py-scons: update to 4.7.0. NEW FUNCTIONALITY Method unlink_files was added to the TestCmd class that unlinks a list of files from a specified directory. An attempt to unlink a file is made only when the file exists; otherwise, the file is ignored. CHANGED/ENHANCED EXISTING FUNCTIONALITY Add an optional argument list string to configure's CheckFunc method so that the generated function argument list matches the function's prototype when including a header file. Fixes GH Issue #4320 Now supports pre-release Python 3.13 Support for Python versions without support for the threading package has been removed Dropped three unused warning classes: DeprecatedSourceCodeWarning, TaskmasterNeedsExecuteWarning, DeprecatedMissingSConscriptWarning. Two warning classes that are actually used were added to manpage section on enabling warnings (cache-cleanup-error, future-reserved-variable). FIXES Fix of the --debug=sconscript option to return exist statements when using return statement with stop flag enabled MSVS: prevent overwriting the SCons environment variable SCONS_HOME with the OS environment value of SCONS_HOME in the msvs tool. MSVC: Fix the detection of Visual Studio 2015 Express ('14.0Exp') by adding a registry key definition and updating the installation root-relative registry value at runtime for the location of the VC folder. MSVS: Fix the msvs project generation test for MSVS 6.0 to use the correct name of the generated project file. MSVS: Fix the msvs project generation test scripts so that "false positive" tests results are not possible when the initial build is successful and the command-line build of the project file fails. On Windows platform, when collecting command output (Configure checks), make sure decoding of bytes doesn't fail. Documentation indicated that both Pseudo() and env.Pseudo() were usable, but Pseudo() did not work; is now enabled. Improve handling of file data that SCons itself processes - as in scanners - try harder to decode non-UTF-8 text. PyPackageDir no longer fails if passed a module name which cannot be found, now returns None. Add locking around creation of CacheDir config file. Fixes issue #4489. IMPROVEMENTS Use of NotImplemented instead of NotImplementedError for special methods of _ListVariable class The NewParallel scheduler is now the default, the tm_v2 flag is removed, and the old scheduler is opt-in under --experimental=legacy_sched. Additionally, the new scheduler is now used for -j1 builds as well. NOTE: This should significantly improve SCons performance for larger parallel builds (Larger -j values) CacheDir writes no longer happen within the taskmaster critical section, and therefore can run in parallel with both other CacheDir writes and the taskmaster DAG walk. The NewParallel scheduler now only adds threads as new work requiring execution is discovered, up to the limit set by -j. This should reduce resource utilization when the achievable parallelism in the DAG is less than the -j limit. Dumping an environment with json formatting will now explicitly specify if a given value cannot be serialized. PACKAGING Remove unnecessary dependencies on pypi packages from setup.cfg SCons documentation build can now be controlled through SKIP_DOC variable - rather than just true/false can now specify skip none, skip all, skip pdf docs, skip api docs. DOCUMENTATION Fixed the Scanner examples in the User Guide to be runnable and added some more explanation. Clarified discussion of the scanner function in the Scanner Objects section of the manpage. The manpage entry for Pseudo was clarified. The manpage entry for SharedLibrary was clarified. Update API docs for Warnings framework; add two warns to manpage enable/disable control. More consistent use of &Python; in the manpage. A few links added. A warning about overwriting env['ENV'] and one about Configure checks possibly not running in in no-exec mode also added. Clarify how SCons finds the project top directory, and what that is used for. Clarify MergeFlags usage of a dict argument. DEVELOPMENT Fix sphinx config to handle SCons versions with post such as: 4.6.0.post1 Created SCons.Util.sctyping to contain complex type information, allowing for repo-wide type hinting without causing cyclical dependencies. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.3 2024/01/02 08:43:10 wiz Exp $ d3 3 a5 3 BLAKE2s (SCons-4.7.0.tar.gz) = ed80366b527710b811653fd84e923a7298189562405d43996a18d10433e84cb5 SHA512 (SCons-4.7.0.tar.gz) = 4d607114eb4ed91a33bb86f07af8d60f89d55402752ca524ad79a5af8bd73cbc0d4e3490894200c71fe5fb62fb35558a3f9edbd1b03f134592c52de7ab146730 Size (SCons-4.7.0.tar.gz) = 3220727 bytes @ 1.3 log @scons4: update to 4.6.0.post1 This new release removes the pycache files that were accidentally included in the previous one. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.2 2023/12/30 10:47:36 wiz Exp $ d3 3 a5 3 BLAKE2s (SCons-4.6.0.post1.tar.gz) = af2d1211e1dde6fd02bcabaf775c6c7a7df312bd8241a02c5570333bf11f624f SHA512 (SCons-4.6.0.post1.tar.gz) = 1829e5ed0fc7ab4b4d921717e81171c13c2c1f9d77988bc35a3986c6e474664bae5d3b70a2b9758439c992a6b4ad2b507bc37beeb9c14d2654ee9b43171e98af Size (SCons-4.6.0.post1.tar.gz) = 3217478 bytes @ 1.2 log @py-scons: update to 4.6.0. NEW FUNCTIONALITY D compilers : added support for generation of .di interface files. New variables DI_FILE_DIR, DI_FILE_DIR_PREFIX, DI_FILE_DIR_SUFFIX, DI_FILE_SUFFIX. MSVC: If available, native arm64 tools will be used on arm64 hosts for VS2022. MSVC: If necessary, automatically define VSCMD_SKIP_SENDTELEMETRY for VS2019 and later on arm64 hosts when using an arm (32-bit) build of python to prevent a powershell error pop-up window (powershell dll not found). Add a LIBLITERALPREFIX variable which can be set to the linker's prefix for considering a library argument unmodified (e.g. for the GNU linker, the ':' in '-l:libfoo.a'). Fixes Github issue #3951. CHANGED/ENHANCED EXISTING FUNCTIONALITY When debugging (--debug=pdb), the filenames SConstruct and SConscript are now recognized when manipulating breakpoints. Previously, only a full pathname to an sconscript file worked, as pdb requires a .py extension to open a file that is not an absolute path. Three unused non-public methods of the Environment Base class were dropped: get_src_sig_type, get_tgt_sig_type, _changed_source. These were unused remnants of the previously removed SourceSignatures and TargetSignatures features (dropped in 3.1.2). The --debug flag now has a 'json' option which will write information generated by --debug={count, memory, time, action-timestamps} and about the build. Obsoleted YACCVCGFILESUFFIX, it's being replaced by YACC_GRAPH_FILE_SUFFIX. If YACC_GRAPH_FILE_SUFFIX is not set, it will respect YACCVCGFILESUFFIX. The yacc tool now understands the bison behavior of --header, --defines and --graph being called without an option-argument as being synonyms for -d (first two) and -g. -H also recognized as a synonym for -d. Default value for $YACC_GRAPH_FILE_SUFFIX changed to '.gv' to match current bison default (since bison 3.8). Set this variable to '.dot' if using byacc. Fixes #4326 and #4327. MSVC: When trying to find a valid msvc batch file, the existence of the msvc compiler executable is verified for VS6 to VS2015 to avoid executing the msvc batch file when the host/target tool is known not to be present. Always check that the msvc compiler executable is found on the msvc script environment path after running the msvc batch file. This is predominately needed for recent versions of Visual Studio where the msvc batch file exists but an individual msvc toolset may not support the host/target architecture combination. For example, when using VS2022 on arm64, the arm64 native tools are only installed for the 14.3x toolsets. MSVC: When the msvc compiler executable is not found during setup of the msvc environment, the warning message issued takes into account whether or not a possibly erroneous compiler executable was already present in the scons environment path. See CHANGES.txt for details. Extend range of recognized Java versions to 20. Builder calls (like Program()) now accept pathlib objects in source lists. The Help() function now takes an additional keyword argument keep_local: when starting to build a help message, you can now retain help from AddOption calls (options added for the project_, but omit help for SCons' own cmdline options with "Help(newtext, append=True, local_only=True)". Calling SConscript() with a nonexistent file is now an error. Previously this succeeded - prior to SCons 3.0, silently; since 3.0, with a warning. Developers can still instruct such an SConscript() call not to fail by being explicit: pass keyword argument "must_exist=False". The "--warn=missing-sconscript" commandline option is no longer available as the warning was part of the transitional phase. Add missing directories to searched paths for mingw installs SCons.Util.types renamed to to SCons.Util.sctypes to avoid any possible confusion with the Python stdlib "types" module. Note that it was briefly (for 4.5.x only) possible to import directly from SCons.Util.types, although the preferred usage remains to import from SCons.Util only. Any code that did the direct import will have to change to import from SCons.Util.sctypes. Add JDK 21 LTS support The newly added --debug=sconscript option (new) will output notices when entering an exiting each SConscript as they are processed. FIXES Fixed: when using the mingw tool, if an msys2 Python is used (os.sep is '/' rather than the Windows default ''), certain Configure checks could fail due to the construction of the path to run the compiled check. C scanner's dictifyCPPDEFINES routine did not understand the possible combinations of CPPDEFINES - not aware of a "name=value" string either embedded in a sequence, or by itself. The conditional C scanner thus did not always properly apply the defines. The regular C scanner does not use these, so was not affected. [fixes #4193] MSVC: The installed msvc list is calculated once and cached. There was an indirect dependency on the target architecture when determining if each version of msvc was installed based on the initial invocation. It was possible that an msvc instance would not be considered installed due to the tools for the requested target architecture not being installed. The initial call to construct the installed msvc list now uses an undefined target architecture to evaluate all potential host/target combinations when evaluating if the msvc tools are installed for a given Visual Studio installation. MSVC: Erroneous construction of the installed msvc list (as described above) caused an index error in the msvc support code. An explicit check was added to prevent indexing into an empty list. Fixes #4312. MSVC: The search for the msvc compiler executable (cl.exe) no longer inspects the OS system path in certain situations when setting up the msvc environment. MSCommon: Test SConfTests.py would fail when mscommon debugging was enabled via the MSVC_MSCOMMON_DEBUG environment variable. The mscommon logging filter class registered with the python logging module was refactored to prevent test failure. MSVS: Add arm64 to the MSVS supported architectures list for VS2017 and later to be consistent with the current documentation of MSVS_ARCH. FORTRAN: Fix gfortran tool initialization. Defaults to using binary named gfortran as would be expected, and properly set's SHFORTRAN flags to include -fPIC where previously it was only doing so for the other fortran versions (F77,..) MSCommon: Added more error handling while reading msvc config cache. (Enabled/specified by SCONS_CACHE_MSVC_CONFIG). The existing cache will be discarded if there's a decode error reading it. It's possible there's a race condition creating this issue it in certain CI builds. Fixed: race condition in Mkdir which can happen when two SConscript are processed simultaneously by two separate build commands. IMPROVEMENTS Now tries to find mingw if it comes from Chocolatey install of msys2. MSVC: Module imports were changed from a relative import to a top-level absolute import in the following Microsoft tools: midl, mslib, mslink, mssdk, msvc, msvs. Moving any of these tools that used relative imports to the scons site tools folder would fail on import (i.e., the relative import paths become invalid when moved). PACKAGING The build of scons now matches the help text displayed - the targets listed there can all now be given as a target to build (except for the two full source balls; the source tar.gz is currently generated directly by the GitHub release process). DOCUMENTATION Aligned manpage signature for Alias function to match implementation - if the previous targets parameter had been used as a keyword argument, the results would be incorrect (does not apply to positional argument usage, which had no problem). Changed the message about scons -H to clarify it shows built-in options only. Cachedir description updated. Updated the first two chapters on building with SCons in the User Guide. Clarify that exported variables are shared - if mutable, changes made in an SConscript are visible everywhere that takes a refereence to that object. Update PCH builder docs with some usage notes. DEVELOPMENT SCons test runner now uses pathlib to normalize and compare paths to test files, which allows test lists, exclude lists, and tests on the command line to "not care" about the OS convention for pathname separators. Class ActionBase is now an abstract base class to more accurately reflect its usage. Derived _ActionAction inherits the ABC, so it now declares (actually raises NotImplementedError) two methods it doesn't use so it can be instantiated by unittests and others. Added more type annotations to internal routines. Cleaned up dblite module (checker warnings, etc.). TeX tests: skip tests that use makeindex or epstopdf not installed, or if kpsewhich glossaries.sty fails. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.1 2023/06/07 18:25:03 wiz Exp $ d3 3 a5 3 BLAKE2s (SCons-4.6.0.tar.gz) = 8b8ff1a5cd07a012d904f25df23633f0b94b6fd1c0236033148a16553dfbb392 SHA512 (SCons-4.6.0.tar.gz) = c7dc952117c23ac30b8cf1f70ef0c4ad1c0a86c9865fd255fde1a29ea2fbf9e26573b73430f6adc8c545dab753077f380d29d77ac4eede7fce959c86576d2354 Size (SCons-4.6.0.tar.gz) = 3230138 bytes @ 1.1 log @devel/scons4: import py-scons-4.5.2 SCons is an Open Source software construction tool--that is, a build tool; an improved substitute for the classic Make utility; a better way to build software. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.30 2021/10/26 10:19:54 nia Exp $ d3 3 a5 3 BLAKE2s (SCons-4.5.2.tar.gz) = 6bf64717353280b52428f1df03817e63b8b87941b2fd6b91edbec4b1eeee232d SHA512 (SCons-4.5.2.tar.gz) = 01a68142bcb6b07ce307aa2f8e89622e7698d5aae0bd1734602d5f989810270dafe88746b1c28497682ffaba7e961fadf557872f23465438c81ee240a221642e Size (SCons-4.5.2.tar.gz) = 3194717 bytes @