Swig:
New: Experimental support for C as a target language.
Gone: MzScheme/Racket support.


Port:
Update to 4.4.1.
Tests ok on amd64 and i386.
port-lib-depends-check:
Extra:  c++.12 c++abi.9 c.102 m.10 pcre2-8.0 pthread.28 z.7
(due to tests?)

The change to the configure patch is more conformant and
corresponds to the upstream issue but isn't necessary.

Extra stuff at the end of the Makefile not for commit.


Other ports:
Evaluated ports having an immediate dependency on swig on i386/amd64.
Tarball with more info, logs and patches at:
https://chiselapp.com/user/stwo/repository/tarballia/uv/swig421to441.tar.gz

Two and one half ports not done:
Out of time for evaluating kicad on amd64. Should be ok (i386 ok).
Not enough time or resources for the two llvm ports.

Consumers of these ports not evaluated.
Most patches can go in now, in advance of a swig update, fwiw.


Stu



diff -Nurp /usr/ports/devel/swig/Makefile ./Makefile
--- /usr/ports/devel/swig/Makefile      Wed Dec 17 07:51:24 2025
+++ ./Makefile  Tue Jan 20 15:33:39 2026
@@ -1,8 +1,7 @@
 COMMENT =      simplified wrapper and interface generator
 
 SUBST_VARS =   VERSION
-VERSION =      4.2.1
-REVISION =     0
+VERSION =      4.4.1
 
 DISTNAME =     swig-${VERSION}
 CATEGORIES =   devel
@@ -10,7 +9,7 @@ CATEGORIES =   devel
 HOMEPAGE =     https://www.swig.org/
 
 # BSD
-PERMIT_PACKAGE =       Yes
+PERMIT_PACKAGE =Yes
 
 WANTLIB =      c m pcre2-8 ${COMPILER_LIBCXX} z
 
@@ -32,6 +31,11 @@ LIB_DEPENDS =        devel/pcre2
 # don't run update-plist after make test
 TEST_DEPENDS = devel/boost
 
+TEST_FLAGS =   TCLSH=${MODTCL_BIN}
+
+# https://github.com/swig/swig/issues/3296
+TEST_FLAGS +=  ENGINE=Thomas
+
 USE_GMAKE =    Yes
 CONFIGURE_STYLE = gnu
 # We can't configure --with-ruby because of a dependency circle,
@@ -47,13 +51,13 @@ CONFIGURE_ARGS += --with-tclincl=${MODTCL_INCDIR} \
                 --without-java \
                 --without-javascript \
                 --without-lua \
-                --without-mzscheme \
                 --without-ocaml \
                 --without-octave \
                 --without-php \
                 --without-r \
                 --without-ruby \
                 --without-scilab
+
 MODGNU_CONFIG_GUESS_DIRS = ${WRKSRC}/Tools/config
 
 ALL_TARGET =   swig
@@ -62,12 +66,18 @@ SWIG_DOCS = ${PREFIX}/share/doc/swig
 
 PORTHOME =     ${WRKDIR}
 
-pre-test:
-       ln -sf ${MODTCL_BIN} ${WRKDIR}/bin/tclsh
-
 post-install:
        ${INSTALL_DATA_DIR} ${SWIG_DOCS}
        cp -R ${WRKSRC}/Doc/* ${SWIG_DOCS}
-       chmod 0644 ${SWIG_DOCS}/Manual/CCache.html
 
 .include <bsd.port.mk>
+
+
+# guile tests will crash, use --without-guile to run all the other tests.
+
+# ENGINE is "" so target "check-javascript-prepare" will be run, despite 
--without-javascript.
+# Set ENGINE to anything except "", "jsc", or "v8".
+
+# Noise reduction
+TEST_FLAGS +=    EXTRA_CFLAGS='-Wno-deprecated-volatile 
-Wno-implicit-const-int-float-conversion' \
+               EXTRA_CXXFLAGS='-Wno-deprecated-volatile 
-Wno-implicit-const-int-float-conversion'
diff -Nurp /usr/ports/devel/swig/distinfo ./distinfo
--- /usr/ports/devel/swig/distinfo      Sat May 11 14:59:55 2024
+++ ./distinfo  Wed Dec 10 00:44:36 2025
@@ -1,2 +1,2 @@
-SHA256 (swig-4.2.1.tar.gz) = +gRTVOLQSLLN3GlXnkJWJF1GdolIWPzwurIpDs9Zt9g=
-SIZE (swig-4.2.1.tar.gz) = 8364050
+SHA256 (swig-4.4.1.tar.gz) = QBYqcGxW91ktCP1S71URy3rBkfNZPPBzBqClVMYoH88=
+SIZE (swig-4.4.1.tar.gz) = 8658358
diff -Nurp /usr/ports/devel/swig/patches/patch-configure 
./patches/patch-configure
--- /usr/ports/devel/swig/patches/patch-configure       Sat May 11 14:59:55 2024
+++ ./patches/patch-configure   Mon Dec 29 10:07:07 2025
@@ -1,3 +1,5 @@
+https://github.com/swig/swig/issues/3304
+
 fix Examples/guile/multivalue & multimap regress tests
 
 ld: error: unknown argument '-I/usr/local/include'
@@ -8,12 +10,13 @@ ld: error: unable to find library -lm
 Index: configure
 --- configure.orig
 +++ configure
-@@ -6549,7 +6549,7 @@ then
+@@ -6619,7 +6619,8 @@ then
        *-*-linux*) LDSHARED="\$(CC) -shared";;
        *-*-dgux*) LDSHARED="ld -G";;
        *-*-freebsd3*) LDSHARED="\$(CC) -shared";;
 -      *-*-freebsd* | *-*-openbsd*) LDSHARED="ld -Bshareable";;
-+      *-*-freebsd* | *-*-openbsd*) LDSHARED="cc -shared";;
++      *-*-freebsd*) LDSHARED="ld -Bshareable";;
++      *-*-openbsd*) LDSHARED="\$(CC) -shared";;
        *-*-netbsd*)
                if [ "`\$(CC) -dM -E - </dev/null | grep __ELF__`" != "" ]
                then
diff -Nurp /usr/ports/devel/swig/pkg/DESCR ./pkg/DESCR
--- /usr/ports/devel/swig/pkg/DESCR     Thu Jun  9 03:34:33 2011
+++ ./pkg/DESCR Fri Jan 23 11:07:03 2026
@@ -2,11 +2,11 @@ SWIG is a tool for automatically generating the wrappe
 to link collections of functions written in C/C++ with interpreted
 scripting languages.    Currently, SWIG supports :
 
+       - C
        - Guile
        - Java
-       - Mzscheme
-       - PHP
        - Perl
+       - PHP
        - Python
        - Ruby
        - Tcl
diff -Nurp /usr/ports/devel/swig/pkg/PLIST ./pkg/PLIST
--- /usr/ports/devel/swig/pkg/PLIST     Sat May 11 14:59:55 2024
+++ ./pkg/PLIST Thu Dec  4 21:08:32 2025
@@ -19,6 +19,7 @@ share/doc/swig/Devel/wrapobj.html
 share/doc/swig/Manual/
 share/doc/swig/Manual/Android.html
 share/doc/swig/Manual/Arguments.html
+share/doc/swig/Manual/C.html
 share/doc/swig/Manual/CCache.html
 share/doc/swig/Manual/CPlusPlus11.html
 share/doc/swig/Manual/CPlusPlus14.html
@@ -40,7 +41,6 @@ share/doc/swig/Manual/Library.html
 share/doc/swig/Manual/Lua.html
 share/doc/swig/Manual/Makefile
 share/doc/swig/Manual/Modules.html
-share/doc/swig/Manual/Mzscheme.html
 share/doc/swig/Manual/Ocaml.html
 share/doc/swig/Manual/Octave.html
 share/doc/swig/Manual/Perl5.html
@@ -80,6 +80,23 @@ share/swig/
 share/swig/${VERSION}/
 share/swig/${VERSION}/allkw.swg
 share/swig/${VERSION}/attribute.i
+share/swig/${VERSION}/c/
+share/swig/${VERSION}/c/boost_shared_ptr.i
+share/swig/${VERSION}/c/c.swg
+share/swig/${VERSION}/c/cdata.i
+share/swig/${VERSION}/c/cexcept.swg
+share/swig/${VERSION}/c/cheader.swg
+share/swig/${VERSION}/c/clabels.swg
+share/swig/${VERSION}/c/std_common.i
+share/swig/${VERSION}/c/std_except.i
+share/swig/${VERSION}/c/std_map.i
+share/swig/${VERSION}/c/std_pair.i
+share/swig/${VERSION}/c/std_set.i
+share/swig/${VERSION}/c/std_shared_ptr.i
+share/swig/${VERSION}/c/std_string.i
+share/swig/${VERSION}/c/std_vector.i
+share/swig/${VERSION}/c/stl.i
+share/swig/${VERSION}/c/typemaps.i
 share/swig/${VERSION}/carrays.i
 share/swig/${VERSION}/cdata.i
 share/swig/${VERSION}/cmalloc.i
@@ -90,6 +107,7 @@ share/swig/${VERSION}/csharp/argcargv.i
 share/swig/${VERSION}/csharp/arrays_csharp.i
 share/swig/${VERSION}/csharp/boost_intrusive_ptr.i
 share/swig/${VERSION}/csharp/boost_shared_ptr.i
+share/swig/${VERSION}/csharp/cdata.i
 share/swig/${VERSION}/csharp/complex.i
 share/swig/${VERSION}/csharp/csharp.swg
 share/swig/${VERSION}/csharp/csharphead.swg
@@ -128,6 +146,7 @@ share/swig/${VERSION}/d/
 share/swig/${VERSION}/d/argcargv.i
 share/swig/${VERSION}/d/boost_shared_ptr.i
 share/swig/${VERSION}/d/carrays.i
+share/swig/${VERSION}/d/cdata.i
 share/swig/${VERSION}/d/cpointer.i
 share/swig/${VERSION}/d/d.swg
 share/swig/${VERSION}/d/dclassgen.swg
@@ -158,6 +177,7 @@ share/swig/${VERSION}/d/swigmove.i
 share/swig/${VERSION}/d/typemaps.i
 share/swig/${VERSION}/d/wrapperloader.swg
 share/swig/${VERSION}/director_common.swg
+share/swig/${VERSION}/director_guard.swg
 share/swig/${VERSION}/exception.i
 share/swig/${VERSION}/go/
 share/swig/${VERSION}/go/argcargv.i
@@ -182,6 +202,7 @@ share/swig/${VERSION}/go/swigmove.i
 share/swig/${VERSION}/go/typemaps.i
 share/swig/${VERSION}/guile/
 share/swig/${VERSION}/guile/argcargv.i
+share/swig/${VERSION}/guile/cdata.i
 share/swig/${VERSION}/guile/common.scm
 share/swig/${VERSION}/guile/cplusplus.i
 share/swig/${VERSION}/guile/guile.i
@@ -212,6 +233,7 @@ share/swig/${VERSION}/java/argcargv.i
 share/swig/${VERSION}/java/arrays_java.i
 share/swig/${VERSION}/java/boost_intrusive_ptr.i
 share/swig/${VERSION}/java/boost_shared_ptr.i
+share/swig/${VERSION}/java/cdata.i
 share/swig/${VERSION}/java/director.swg
 share/swig/${VERSION}/java/enums.swg
 share/swig/${VERSION}/java/enumsimple.swg
@@ -243,11 +265,11 @@ share/swig/${VERSION}/java/swigmove.i
 share/swig/${VERSION}/java/typemaps.i
 share/swig/${VERSION}/java/various.i
 share/swig/${VERSION}/javascript/
+share/swig/${VERSION}/javascript/javascriptkw.swg
 share/swig/${VERSION}/javascript/jsc/
 share/swig/${VERSION}/javascript/jsc/argcargv.i
 share/swig/${VERSION}/javascript/jsc/arrays_javascript.i
 share/swig/${VERSION}/javascript/jsc/ccomplex.i
-share/swig/${VERSION}/javascript/jsc/cdata.i
 share/swig/${VERSION}/javascript/jsc/cmalloc.i
 share/swig/${VERSION}/javascript/jsc/complex.i
 share/swig/${VERSION}/javascript/jsc/exception.i
@@ -280,7 +302,6 @@ share/swig/${VERSION}/javascript/napi/
 share/swig/${VERSION}/javascript/napi/argcargv.i
 share/swig/${VERSION}/javascript/napi/arrays_javascript.i
 share/swig/${VERSION}/javascript/napi/ccomplex.i
-share/swig/${VERSION}/javascript/napi/cdata.i
 share/swig/${VERSION}/javascript/napi/cmalloc.i
 share/swig/${VERSION}/javascript/napi/complex.i
 share/swig/${VERSION}/javascript/napi/exception.i
@@ -313,7 +334,6 @@ share/swig/${VERSION}/javascript/v8/
 share/swig/${VERSION}/javascript/v8/argcargv.i
 share/swig/${VERSION}/javascript/v8/arrays_javascript.i
 share/swig/${VERSION}/javascript/v8/ccomplex.i
-share/swig/${VERSION}/javascript/v8/cdata.i
 share/swig/${VERSION}/javascript/v8/cmalloc.i
 share/swig/${VERSION}/javascript/v8/complex.i
 share/swig/${VERSION}/javascript/v8/exception.i
@@ -342,11 +362,11 @@ share/swig/${VERSION}/javascript/v8/std_vector.i
 share/swig/${VERSION}/javascript/v8/stl.i
 share/swig/${VERSION}/javascript/v8/swigmove.i
 share/swig/${VERSION}/javascript/v8/typemaps.i
-share/swig/${VERSION}/javascriptkw.swg
 share/swig/${VERSION}/lua/
 share/swig/${VERSION}/lua/_std_common.i
 share/swig/${VERSION}/lua/argcargv.i
 share/swig/${VERSION}/lua/carrays.i
+share/swig/${VERSION}/lua/cdata.i
 share/swig/${VERSION}/lua/factory.i
 share/swig/${VERSION}/lua/lua.swg
 share/swig/${VERSION}/lua/lua_fnptr.i
@@ -369,23 +389,9 @@ share/swig/${VERSION}/lua/swigmove.i
 share/swig/${VERSION}/lua/typemaps.i
 share/swig/${VERSION}/lua/wchar.i
 share/swig/${VERSION}/math.i
-share/swig/${VERSION}/mzscheme/
-share/swig/${VERSION}/mzscheme/argcargv.i
-share/swig/${VERSION}/mzscheme/mzrun.swg
-share/swig/${VERSION}/mzscheme/mzscheme.swg
-share/swig/${VERSION}/mzscheme/std_auto_ptr.i
-share/swig/${VERSION}/mzscheme/std_common.i
-share/swig/${VERSION}/mzscheme/std_deque.i
-share/swig/${VERSION}/mzscheme/std_map.i
-share/swig/${VERSION}/mzscheme/std_pair.i
-share/swig/${VERSION}/mzscheme/std_string.i
-share/swig/${VERSION}/mzscheme/std_unique_ptr.i
-share/swig/${VERSION}/mzscheme/std_vector.i
-share/swig/${VERSION}/mzscheme/stl.i
-share/swig/${VERSION}/mzscheme/swigmove.i
-share/swig/${VERSION}/mzscheme/typemaps.i
 share/swig/${VERSION}/ocaml/
 share/swig/${VERSION}/ocaml/carray.i
+share/swig/${VERSION}/ocaml/cdata.i
 share/swig/${VERSION}/ocaml/class.swg
 share/swig/${VERSION}/ocaml/cstring.i
 share/swig/${VERSION}/ocaml/director.swg
@@ -417,7 +423,6 @@ share/swig/${VERSION}/octave/argcargv.i
 share/swig/${VERSION}/octave/attribute.i
 share/swig/${VERSION}/octave/boost_shared_ptr.i
 share/swig/${VERSION}/octave/carrays.i
-share/swig/${VERSION}/octave/cdata.i
 share/swig/${VERSION}/octave/cmalloc.i
 share/swig/${VERSION}/octave/director.swg
 share/swig/${VERSION}/octave/exception.i
@@ -461,7 +466,6 @@ share/swig/${VERSION}/perl5/Makefile.pl
 share/swig/${VERSION}/perl5/argcargv.i
 share/swig/${VERSION}/perl5/attribute.i
 share/swig/${VERSION}/perl5/carrays.i
-share/swig/${VERSION}/perl5/cdata.i
 share/swig/${VERSION}/perl5/cmalloc.i
 share/swig/${VERSION}/perl5/cpointer.i
 share/swig/${VERSION}/perl5/cstring.i
@@ -501,6 +505,7 @@ share/swig/${VERSION}/perl5/swigmove.i
 share/swig/${VERSION}/perl5/typemaps.i
 share/swig/${VERSION}/php/
 share/swig/${VERSION}/php/argcargv.i
+share/swig/${VERSION}/php/cdata.i
 share/swig/${VERSION}/php/const.i
 share/swig/${VERSION}/php/director.swg
 share/swig/${VERSION}/php/factory.i
@@ -530,13 +535,13 @@ share/swig/${VERSION}/python/boost_shared_ptr.i
 share/swig/${VERSION}/python/builtin.swg
 share/swig/${VERSION}/python/carrays.i
 share/swig/${VERSION}/python/ccomplex.i
-share/swig/${VERSION}/python/cdata.i
 share/swig/${VERSION}/python/cmalloc.i
 share/swig/${VERSION}/python/complex.i
 share/swig/${VERSION}/python/cpointer.i
 share/swig/${VERSION}/python/cstring.i
 share/swig/${VERSION}/python/cwstring.i
 share/swig/${VERSION}/python/director.swg
+share/swig/${VERSION}/python/director_py_mutex.swg
 share/swig/${VERSION}/python/embed.i
 share/swig/${VERSION}/python/exception.i
 share/swig/${VERSION}/python/factory.i
@@ -556,7 +561,6 @@ share/swig/${VERSION}/python/pyhead.swg
 share/swig/${VERSION}/python/pyinit.swg
 share/swig/${VERSION}/python/pyiterators.swg
 share/swig/${VERSION}/python/pymacros.swg
-share/swig/${VERSION}/python/pyname_compat.i
 share/swig/${VERSION}/python/pyopers.swg
 share/swig/${VERSION}/python/pyprimtypes.swg
 share/swig/${VERSION}/python/pyrun.swg
@@ -566,7 +570,6 @@ share/swig/${VERSION}/python/pystrings.swg
 share/swig/${VERSION}/python/python.swg
 share/swig/${VERSION}/python/pythonkw.swg
 share/swig/${VERSION}/python/pythreads.swg
-share/swig/${VERSION}/python/pytuplehlp.swg
 share/swig/${VERSION}/python/pytypemaps.swg
 share/swig/${VERSION}/python/pyuserdir.swg
 share/swig/${VERSION}/python/pywstrings.swg
@@ -613,7 +616,6 @@ share/swig/${VERSION}/python/wchar.i
 share/swig/${VERSION}/r/
 share/swig/${VERSION}/r/argcargv.i
 share/swig/${VERSION}/r/boost_shared_ptr.i
-share/swig/${VERSION}/r/cdata.i
 share/swig/${VERSION}/r/exception.i
 share/swig/${VERSION}/r/r.swg
 share/swig/${VERSION}/r/rcontainer.swg
@@ -644,7 +646,6 @@ share/swig/${VERSION}/ruby/argcargv.i
 share/swig/${VERSION}/ruby/attribute.i
 share/swig/${VERSION}/ruby/boost_shared_ptr.i
 share/swig/${VERSION}/ruby/carrays.i
-share/swig/${VERSION}/ruby/cdata.i
 share/swig/${VERSION}/ruby/cmalloc.i
 share/swig/${VERSION}/ruby/cpointer.i
 share/swig/${VERSION}/ruby/cstring.i
@@ -840,7 +841,6 @@ share/swig/${VERSION}/tcl/
 share/swig/${VERSION}/tcl/argcargv.i
 share/swig/${VERSION}/tcl/attribute.i
 share/swig/${VERSION}/tcl/carrays.i
-share/swig/${VERSION}/tcl/cdata.i
 share/swig/${VERSION}/tcl/cmalloc.i
 share/swig/${VERSION}/tcl/cpointer.i
 share/swig/${VERSION}/tcl/cstring.i
@@ -864,6 +864,7 @@ share/swig/${VERSION}/tcl/tcl8.swg
 share/swig/${VERSION}/tcl/tclapi.swg
 share/swig/${VERSION}/tcl/tclerrors.swg
 share/swig/${VERSION}/tcl/tclfragments.swg
+share/swig/${VERSION}/tcl/tclincludes.swg
 share/swig/${VERSION}/tcl/tclinit.swg
 share/swig/${VERSION}/tcl/tclinterp.i
 share/swig/${VERSION}/tcl/tclkw.swg
@@ -883,7 +884,8 @@ share/swig/${VERSION}/tcl/wish.i
 share/swig/${VERSION}/typemaps/
 share/swig/${VERSION}/typemaps/attribute.swg
 share/swig/${VERSION}/typemaps/carrays.swg
-share/swig/${VERSION}/typemaps/cdata.swg
+share/swig/${VERSION}/typemaps/cdata_begin.swg
+share/swig/${VERSION}/typemaps/cdata_end.swg
 share/swig/${VERSION}/typemaps/cmalloc.swg
 share/swig/${VERSION}/typemaps/cpointer.swg
 share/swig/${VERSION}/typemaps/cstring.swg
@@ -914,6 +916,7 @@ share/swig/${VERSION}/typemaps/typemaps.swg
 share/swig/${VERSION}/typemaps/valtypes.swg
 share/swig/${VERSION}/typemaps/void.swg
 share/swig/${VERSION}/typemaps/wstring.swg
+share/swig/${VERSION}/unique_ptr.swg
 share/swig/${VERSION}/wchar.i
 share/swig/${VERSION}/windows.i
 share/swig/${VERSION}/xml/

Reply via email to