From Fedora Project Wiki

SWIG 4.1.0

Summary

Update the SWIG in Fedora to the latest version 4.1.0. New version was released in October 24nd 2022. See RELEASENOTES for more details about new release.

Owner

Current status

Detailed Description

SWIG-4.1.0 summary:

  • Add Javascript Node v12-v18 support, remove support prior to v6.
  • Octave 6.0 to 6.4 support added.
  • Add PHP 8 support.
  • PHP wrapping is now done entirely via PHP's C API - no more .php wrapper.
    • the change breaks build of graphviz, libkolabxml, mapserver and mlt - it requires update of code and spec file to not install *.php files
    • one of possible solution
  • Perl 5.8.0 is now the oldest version SWIG supports.
  • Python 3.3 is now the oldest Python 3 version SWIG supports.
  • Python 3.9-3.11 support added.
  • Various memory leak fixes in Python generated code.
  • Scilab 5.5-6.1 support improved.
  • Many improvements for each and every target language.
  • Various preprocessor expression handling improvements.
  • Improved C99, C++11, C++14, C++17 support. Start adding C++20 standard.
  • Make SWIG much more move semantics friendly.
  • Add C++ std::unique_ptr support.
  • Few minor C++ template handling improvements.
  • Various C++ using declaration fixes.
  • Few fixes for handling Doxygen comments.
  • Add building SWIG using CMake as a secondary build system.
  • Update optional SWIG build dependency for regex support from PCRE to PCRE2.
  • The undocumented SWIGVERSION macro is no longer defined.

Benefit to Fedora

Provides the latest SWIG version to developers.

Scope

  • Proposal owners: Check Koschei status. Test with latest version to ensure compatibility. Work with upstream on bug fixing.
  • Other developers: N/A (not a System Wide Change)
  • Release engineering:
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

The SWIG dependencies are monitored by Koschei, see the Koschei SWIG group

User Experience

Developers will have the benefit of using the latest SWIG version.

Dependencies

The list of packages which are using SWIG for build.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change)

Documentation

N/A (not a System Wide Change)

Release Notes

SWIG-4.1.0 summary:

  • Add Javascript Node v12-v18 support, remove support prior to v6.
  • Octave 6.0 to 6.4 support added.
  • Add PHP 8 support.
  • PHP wrapping is now done entirely via PHP's C API - no more .php wrapper.
  • Perl 5.8.0 is now the oldest version SWIG supports.
  • Python 3.3 is now the oldest Python 3 version SWIG supports.
  • Python 3.9-3.11 support added.
  • Various memory leak fixes in Python generated code.
  • Scilab 5.5-6.1 support improved.
  • Many improvements for each and every target language.
  • Various preprocessor expression handling improvements.
  • Improved C99, C++11, C++14, C++17 support. Start adding C++20 standard.
  • Make SWIG much more move semantics friendly.
  • Add C++ std::unique_ptr support.
  • Few minor C++ template handling improvements.
  • Various C++ using declaration fixes.
  • Few fixes for handling Doxygen comments.
  • Add building SWIG using CMake as a secondary build system.
  • Update optional SWIG build dependency for regex support from PCRE to PCRE2.