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
- Name: Jitka Plesníková
- Email: <jplesnik@redhat.com>
Current status
- Targeted release: Fedora Linux 38
- Last updated: 2022-11-09
- devel thread
- FESCo issue: #2877
- Tracker bug: #2132828
- Release notes tracker: #889
- Copr repository with the latest version of SWIG 4.1.0
- Current status of SWIG's dependencies
- I checked the errors and reported them to SWIG upstream/package upstream/fedora maintainers.
- Issues related to SWIG 4.1.0
- COPASI BZ - DONE - upstream fix
- graphviz BZ - DONE - related to PHP wrapper change
- kicad BZ - DONE - upstream fix
- libCombine BZ - DONE - upstream fix
- libkolabxml BZ - DONE -related to PHP wrapper change
- libnuml BZ - DONE - upstream fix
- libsbml BZ - DONE - patch attached
- libsedml BZ - DONE -upstream fix
- lldb BZ - DONE - patch attached
- mapserver BZ - DONE - related to PHP wrapper change
- mlt BZ - DONE - related to PHP wrapper change
- nordugrid-arc BZ - DONE - patch attached
- openwsman BZ - DONE - caused because SWIGVERSION macro is no longer defined.
- subversion BZ - DONE - upstream fix
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.