Le jeudi 15 août 2024 à 07:33, Rafael Sadowski <raf...@sizeofvoid.org> a écrit :
> Here is an update diff for ngspice 43. It is required to update kicad.
> There is nothing special I would say. To be honest I don't know how to
> test it but kicad8 is built with this version and runs fine.
>
> OK?
ok benoit@
>
> diff --git a/cad/ngspice/Makefile.inc b/cad/ngspice/Makefile.inc
> index 361bcfad180..e5560fc89f4 100644
> --- a/cad/ngspice/Makefile.inc
> +++ b/cad/ngspice/Makefile.inc
> @@ -1,4 +1,4 @@
> -V ?= 31
> +V ?= 43
>
> DISTNAME ?= ngspice-${V}
>
> @@ -9,7 +9,21 @@ HOMEPAGE ?= https://ngspice.sourceforge.net/
> # BSD
> PERMIT_PACKAGE ?= Yes
>
> +SITES ?= ${SITE_SOURCEFORGE:=ngspice/}
> +
> USE_GMAKE ?= yes
> -CONFIGURE_STYLE ?= gnu
>
> -SITES ?= ${SITE_SOURCEFORGE:=ngspice/}
> +AUTOCONF_VERSION = 2.69
> +AUTOMAKE_VERSION = 1.16
> +
> +CONFIGURE_STYLE = autoreconf
> +
> +TAR = ${LOCALBASE}/bin/gtar
> +
> +BUILD_DEPENDS += archivers/gtar
> +
> +CONFIGURE_ARGS += --enable-cider \
> + --enable-xspice \
> + --with-readline=yes
> +
> +CONFIGURE_ARGS += --disable-openmp
> diff --git a/cad/ngspice/libngspice/Makefile b/cad/ngspice/libngspice/Makefile
> index 8c9ce525616..c7a5109489a 100644
> --- a/cad/ngspice/libngspice/Makefile
> +++ b/cad/ngspice/libngspice/Makefile
> @@ -1,18 +1,18 @@
> -COMMENT = ngspice shared library, based on Berkeley SPICE
> +COMMENT = ngspice shared library, based on Berkeley SPICE
>
> -PKGNAME = libngspice-${V}
> -REVISION = 1
> +PKGNAME = libngspice-${V}
>
> -SHARED_LIBS += ngspice 0.0 # 0.0
> +SHARED_LIBS += ngspice 0.0 # 0.0
>
> WANTLIB += m pthread
>
> -CONFIGURE_ARGS += --with-ngshared
> +CONFIGURE_ARGS += --with-ngshared \
> + --enable-shared
>
> # same tests as cad/ngspice/ngspice, but they assume you've built a binary
> -NO_TEST = Yes
> +NO_TEST = Yes
>
> post-install:
> - @rm -r ${PREFIX}/share/ngspice/
> + @rm -r ${PREFIX}/{lib,share}/ngspice/
>
> .include <bsd.port.mk>
>
> diff --git a/cad/ngspice/libngspice/distinfo b/cad/ngspice/libngspice/distinfo
> index b1e9757d344..10768caaa9a 100644
> --- a/cad/ngspice/libngspice/distinfo
> +++ b/cad/ngspice/libngspice/distinfo
> @@ -1,2 +1,2 @@
> -SHA256 (ngspice-31.tar.gz) = hF87DJYuR97QUd+8E0w8HkrJJcnwzhyz32Trm52lwoI=
> -SIZE (ngspice-31.tar.gz) = 7250057
> +SHA256 (ngspice-43.tar.gz) = FN1qbwhTHyBRwTrmN5CkVwi9Q/PneIamqEiYwpexNpk=
> +SIZE (ngspice-43.tar.gz) = 10279606
> diff --git a/cad/ngspice/libngspice/patches/patch-configure_ac
> b/cad/ngspice/libngspice/patches/patch-configure_ac
> new file mode 100644
> index 00000000000..a744ce340de
> --- /dev/null
> +++ b/cad/ngspice/libngspice/patches/patch-configure_ac
> @@ -0,0 +1,82 @@
> +Index: configure.ac
> +--- configure.ac.orig
> ++++ configure.ac
> +@@ -820,7 +820,6 @@ fi
> + # Xft is optional, allows text rotation in plots
> +
> + if test "x$no_x" != xyes ; then
> +- X_CFLAGS="$X_CFLAGS -I/usr/include/freetype2"
> + AC_CHECK_LIB([Xaw], [main], [X_LIBS="$X_LIBS -lXaw"],
> + [AC_MSG_ERROR([Couldn't find Xaw library])], [$X_LIBS $X_EXTRA_LIBS])
> + AC_CHECK_LIB([Xmu], [main], [X_LIBS="$X_LIBS -lXmu"],
> +@@ -829,21 +828,9 @@ if test "x$no_x" != xyes ; then
> + AC_CHECK_LIB([Xext], [XShmAttach], [X_LIBS="$X_LIBS -lXext"],
> + [AC_MSG_ERROR([Couldn't find Xext library])], [$X_LIBS $X_EXTRA_LIBS])
> + X_LIBS="$X_LIBS -lX11"
> +- AC_CHECK_LIB([Xft], [main],
> +- [AC_DEFINE([HAVE_LIBXFT], [1], [Have xft routines in libxft])]
> +- X_LIBS="$X_LIBS -lXft -lfontconfig -lXrender -lfreetype"
> +- has_xft=yes,
> +- [has_xft=no], [$X_LIBS $X_EXTRA_LIBS])
> ++ PKG_CHECK_MODULES([XFT], [xft], [X_CFLAGS="$X_CFLAGS $XFT_CFLAGS";
> X_LIBS="$X_LIBS $XFT_LIBS"],
> ++ [AC_MSG_ERROR([Couldn't find freetype library])])
> +
> +- if test "x$has_xft" = xyes ; then
> +- AC_CHECK_LIB([fontconfig], [main], [],
> +- [AC_MSG_ERROR([Couldn't find fontconfig library])], [$X_LIBS
> $X_EXTRA_LIBS])
> +-# AC_CHECK_LIB([Xrender], [main], [],
> +-# [AC_MSG_ERROR([Couldn't find Xrender library])], [$X_LIBS $X_EXTRA_LIBS])
> +- AC_CHECK_LIB([freetype], [main], [],
> +- [AC_MSG_ERROR([Couldn't find freetype library])], [$X_LIBS $X_EXTRA_LIBS])
> +- fi
> +-
> + has_no_x=false
> + else
> + AC_DEFINE([X_DISPLAY_MISSING])
> +@@ -864,9 +851,27 @@ AM_CONDITIONAL([NO_X], [test "x$has_no_x" = xtrue])
> + AM_CONDITIONAL([NO_HELP], [test "x$has_no_help" = xtrue])
> +
> + # Additional libs of hicum group
> +-AC_CHECK_LIB(stdc++, main, XTRALIBS="$XTRALIBS -lstdc++",,)
> +-AC_SUBST(XTRALIBS, $XTRALIBS)
> ++#AC_CHECK_LIB(stdc++, main, XTRALIBS="$XTRALIBS -lstdc++",,)
> ++#AC_SUBST(XTRALIBS, $XTRALIBS)
> ++# Determine which C++ standard library to use based on the compiler
> ++AC_MSG_CHECKING([which C++ standard library to use])
> ++case `$CXX --version` in
> ++ clang)
> ++ AC_CHECK_LIB(c++, main, XTRALIBS="$XTRALIBS -lc++ -pthread",,)
> ++ AC_SUBST(XTRALIBS, $XTRALIBS)
> ++ ;;
> ++ g++)
> ++ AC_CHECK_LIB(stdc++, main, XTRALIBS="$XTRALIBS -lestdc++",,)
> ++ AC_SUBST(XTRALIBS, $XTRALIBS)
> ++ ;;
> ++ *)
> ++ AC_MSG_ERROR([Unknown C++ compiler])
> ++ ;;
> ++esac
> +
> ++#AC_SUBST(XTRALIBS, $XTRALIBS)
> ++
> ++
> + LIBS="$LIBS $XTRALIBS"
> +
> + # enabling making of the old and outdated applications
> +@@ -1112,7 +1117,7 @@ if test "x$enable_xspice" = xno; then
> + XSPICEDLLIBS=""
> + ;;
> + * )
> +- XSPICEDLLIBS="-ldl"
> ++ XSPICEDLLIBS=""
> + ;;
> + esac
> + fi
> +@@ -1135,7 +1140,6 @@ else
> + ;;
> + openbsd )
> + AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
> +- XSPICEDLLIBS="-ldl"
> + ;;
> + solaris )
> + AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
> diff --git a/cad/ngspice/libngspice/pkg/PLIST
> b/cad/ngspice/libngspice/pkg/PLIST
> index 5a97a6ea02c..79614cb4d61 100644
> --- a/cad/ngspice/libngspice/pkg/PLIST
> +++ b/cad/ngspice/libngspice/pkg/PLIST
> @@ -1,130 +1,7 @@
> @conflict ngspice-<30p0
> include/ngspice/
> -include/ngspice/1-f-code.h
> -include/ngspice/FastNorm3.h
> -include/ngspice/acdefs.h
> -include/ngspice/bdrydefs.h
> -include/ngspice/bool.h
> -include/ngspice/carddefs.h
> -include/ngspice/ciderinp.h
> -include/ngspice/cidersupt.h
> -include/ngspice/cktdefs.h
> -include/ngspice/cluster.h
> -include/ngspice/cm.h
> -include/ngspice/cmconstants.h
> -include/ngspice/cmproto.h
> -include/ngspice/cmtypes.h
> -include/ngspice/compatmode.h
> -include/ngspice/complex.h
> -include/ngspice/config.h
> -include/ngspice/const.h
> -include/ngspice/contdefs.h
> -include/ngspice/cpdefs.h
> -include/ngspice/cpextern.h
> -include/ngspice/cpstd.h
> -include/ngspice/defines.h
> -include/ngspice/devdefs.h
> -include/ngspice/dgen.h
> -include/ngspice/distodef.h
> -include/ngspice/dllitf.h
> -include/ngspice/domndefs.h
> -include/ngspice/dopdefs.h
> -include/ngspice/dstring.h
> -include/ngspice/dvec.h
> -include/ngspice/elctdefs.h
> -include/ngspice/enh.h
> -include/ngspice/enhtypes.h
> -include/ngspice/evt.h
> -include/ngspice/evtproto.h
> -include/ngspice/evtshared.h
> -include/ngspice/evttypes.h
> -include/ngspice/evtudn.h
> -include/ngspice/fftext.h
> -include/ngspice/ftedbgra.h
> -include/ngspice/ftedebug.h
> -include/ngspice/ftedefs.h
> -include/ngspice/ftedev.h
> -include/ngspice/fteext.h
> -include/ngspice/fteinp.h
> -include/ngspice/fteinput.h
> -include/ngspice/fteoptdefs.h
> -include/ngspice/fteparse.h
> -include/ngspice/gendefs.h
> -include/ngspice/gendev.h
> -include/ngspice/graph.h
> -include/ngspice/grid.h
> -include/ngspice/hash.h
> -include/ngspice/hlpdefs.h
> -include/ngspice/iferrmsg.h
> -include/ngspice/ifsim.h
> -include/ngspice/inpdefs.h
> -include/ngspice/inpmacs.h
> -include/ngspice/inpptree.h
> -include/ngspice/ipc.h
> -include/ngspice/ipcproto.h
> -include/ngspice/ipctiein.h
> -include/ngspice/jobdefs.h
> -include/ngspice/lsort.h
> -include/ngspice/macros.h
> -include/ngspice/material.h
> -include/ngspice/matldefs.h
> -include/ngspice/memory.h
> -include/ngspice/meshdefs.h
> -include/ngspice/meshext.h
> -include/ngspice/methdefs.h
> -include/ngspice/mif.h
> -include/ngspice/mifcmdat.h
> -include/ngspice/mifdefs.h
> -include/ngspice/mifparse.h
> -include/ngspice/mifproto.h
> -include/ngspice/miftypes.h
> -include/ngspice/missing_math.h
> -include/ngspice/mobdefs.h
> -include/ngspice/modldefs.h
> -include/ngspice/multi_line.h
> -include/ngspice/ngspice.h
> -include/ngspice/noisedef.h
> -include/ngspice/numcards.h
> -include/ngspice/numconst.h
> -include/ngspice/numenum.h
> -include/ngspice/numgen.h
> -include/ngspice/numglobs.h
> -include/ngspice/onedev.h
> -include/ngspice/onemesh.h
> -include/ngspice/opdefs.h
> -include/ngspice/optdefs.h
> -include/ngspice/optndefs.h
> -include/ngspice/outpdefs.h
> -include/ngspice/plot.h
> -include/ngspice/pnode.h
> -include/ngspice/profile.h
> -include/ngspice/pssdefs.h
> -include/ngspice/pzdefs.h
> -include/ngspice/randnumb.h
> -include/ngspice/sen2defs.h
> -include/ngspice/sensdefs.h
> -include/ngspice/sensgen.h
> include/ngspice/sharedspice.h
> -include/ngspice/sim.h
> -include/ngspice/smpdefs.h
> -include/ngspice/sperror.h
> -include/ngspice/spmatrix.h
> -include/ngspice/stringskip.h
> -include/ngspice/stringutil.h
> -include/ngspice/suffix.h
> -include/ngspice/swec.h
> -include/ngspice/tclspice.h
> -include/ngspice/tfdefs.h
> -include/ngspice/trandefs.h
> -include/ngspice/trcvdefs.h
> -include/ngspice/tskdefs.h
> -include/ngspice/twodev.h
> -include/ngspice/twomesh.h
> -include/ngspice/typedefs.h
> -include/ngspice/wallace.h
> -include/ngspice/wordlist.h
> -include/ngspice/wstdio.h
> -lib/libngspice.a
> +@static-lib lib/libngspice.a
> lib/libngspice.la
> @lib lib/libngspice.so.${LIBngspice_VERSION}
> lib/pkgconfig/ngspice.pc
> diff --git a/cad/ngspice/ngspice/Makefile b/cad/ngspice/ngspice/Makefile
> index 58b44781237..dfa098a3717 100644
> --- a/cad/ngspice/ngspice/Makefile
> +++ b/cad/ngspice/ngspice/Makefile
> @@ -1,10 +1,9 @@
> -COMMENT = circuit simulator, based on Berkeley SPICE
> +COMMENT = circuit simulator, based on Berkeley SPICE
>
> -REVISION = 1
> +WANTLIB += ${COMPILER_LIBCXX} ICE SM X11 Xau Xaw Xdmcp Xext Xft
> +WANTLIB += Xmu Xpm Xrender Xt c curses expat fontconfig freetype
> +WANTLIB += m readline xcb z
>
> -WANTLIB += ICE SM X11 Xau Xaw Xdmcp Xext Xmu Xpm Xt c m xcb
> -
> -post-install:
> - @rm -r ${PREFIX}/include/ngspice
> +CONFIGURE_ARGS += --with-x
>
> .include <bsd.port.mk>
>
> diff --git a/cad/ngspice/ngspice/distinfo b/cad/ngspice/ngspice/distinfo
> index b1e9757d344..10768caaa9a 100644
> --- a/cad/ngspice/ngspice/distinfo
> +++ b/cad/ngspice/ngspice/distinfo
> @@ -1,2 +1,2 @@
> -SHA256 (ngspice-31.tar.gz) = hF87DJYuR97QUd+8E0w8HkrJJcnwzhyz32Trm52lwoI=
> -SIZE (ngspice-31.tar.gz) = 7250057
> +SHA256 (ngspice-43.tar.gz) = FN1qbwhTHyBRwTrmN5CkVwi9Q/PneIamqEiYwpexNpk=
> +SIZE (ngspice-43.tar.gz) = 10279606
> diff --git a/cad/ngspice/ngspice/patches/patch-configure_ac
> b/cad/ngspice/ngspice/patches/patch-configure_ac
> new file mode 100644
> index 00000000000..a744ce340de
> --- /dev/null
> +++ b/cad/ngspice/ngspice/patches/patch-configure_ac
> @@ -0,0 +1,82 @@
> +Index: configure.ac
> +--- configure.ac.orig
> ++++ configure.ac
> +@@ -820,7 +820,6 @@ fi
> + # Xft is optional, allows text rotation in plots
> +
> + if test "x$no_x" != xyes ; then
> +- X_CFLAGS="$X_CFLAGS -I/usr/include/freetype2"
> + AC_CHECK_LIB([Xaw], [main], [X_LIBS="$X_LIBS -lXaw"],
> + [AC_MSG_ERROR([Couldn't find Xaw library])], [$X_LIBS $X_EXTRA_LIBS])
> + AC_CHECK_LIB([Xmu], [main], [X_LIBS="$X_LIBS -lXmu"],
> +@@ -829,21 +828,9 @@ if test "x$no_x" != xyes ; then
> + AC_CHECK_LIB([Xext], [XShmAttach], [X_LIBS="$X_LIBS -lXext"],
> + [AC_MSG_ERROR([Couldn't find Xext library])], [$X_LIBS $X_EXTRA_LIBS])
> + X_LIBS="$X_LIBS -lX11"
> +- AC_CHECK_LIB([Xft], [main],
> +- [AC_DEFINE([HAVE_LIBXFT], [1], [Have xft routines in libxft])]
> +- X_LIBS="$X_LIBS -lXft -lfontconfig -lXrender -lfreetype"
> +- has_xft=yes,
> +- [has_xft=no], [$X_LIBS $X_EXTRA_LIBS])
> ++ PKG_CHECK_MODULES([XFT], [xft], [X_CFLAGS="$X_CFLAGS $XFT_CFLAGS";
> X_LIBS="$X_LIBS $XFT_LIBS"],
> ++ [AC_MSG_ERROR([Couldn't find freetype library])])
> +
> +- if test "x$has_xft" = xyes ; then
> +- AC_CHECK_LIB([fontconfig], [main], [],
> +- [AC_MSG_ERROR([Couldn't find fontconfig library])], [$X_LIBS
> $X_EXTRA_LIBS])
> +-# AC_CHECK_LIB([Xrender], [main], [],
> +-# [AC_MSG_ERROR([Couldn't find Xrender library])], [$X_LIBS $X_EXTRA_LIBS])
> +- AC_CHECK_LIB([freetype], [main], [],
> +- [AC_MSG_ERROR([Couldn't find freetype library])], [$X_LIBS $X_EXTRA_LIBS])
> +- fi
> +-
> + has_no_x=false
> + else
> + AC_DEFINE([X_DISPLAY_MISSING])
> +@@ -864,9 +851,27 @@ AM_CONDITIONAL([NO_X], [test "x$has_no_x" = xtrue])
> + AM_CONDITIONAL([NO_HELP], [test "x$has_no_help" = xtrue])
> +
> + # Additional libs of hicum group
> +-AC_CHECK_LIB(stdc++, main, XTRALIBS="$XTRALIBS -lstdc++",,)
> +-AC_SUBST(XTRALIBS, $XTRALIBS)
> ++#AC_CHECK_LIB(stdc++, main, XTRALIBS="$XTRALIBS -lstdc++",,)
> ++#AC_SUBST(XTRALIBS, $XTRALIBS)
> ++# Determine which C++ standard library to use based on the compiler
> ++AC_MSG_CHECKING([which C++ standard library to use])
> ++case `$CXX --version` in
> ++ clang)
> ++ AC_CHECK_LIB(c++, main, XTRALIBS="$XTRALIBS -lc++ -pthread",,)
> ++ AC_SUBST(XTRALIBS, $XTRALIBS)
> ++ ;;
> ++ g++)
> ++ AC_CHECK_LIB(stdc++, main, XTRALIBS="$XTRALIBS -lestdc++",,)
> ++ AC_SUBST(XTRALIBS, $XTRALIBS)
> ++ ;;
> ++ *)
> ++ AC_MSG_ERROR([Unknown C++ compiler])
> ++ ;;
> ++esac
> +
> ++#AC_SUBST(XTRALIBS, $XTRALIBS)
> ++
> ++
> + LIBS="$LIBS $XTRALIBS"
> +
> + # enabling making of the old and outdated applications
> +@@ -1112,7 +1117,7 @@ if test "x$enable_xspice" = xno; then
> + XSPICEDLLIBS=""
> + ;;
> + * )
> +- XSPICEDLLIBS="-ldl"
> ++ XSPICEDLLIBS=""
> + ;;
> + esac
> + fi
> +@@ -1135,7 +1140,6 @@ else
> + ;;
> + openbsd )
> + AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
> +- XSPICEDLLIBS="-ldl"
> + ;;
> + solaris )
> + AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
> diff --git
> a/cad/ngspice/ngspice/patches/patch-src_spicelib_analysis_cktsetup_c
> b/cad/ngspice/ngspice/patches/patch-src_spicelib_analysis_cktsetup_c
> new file mode 100644
> index 00000000000..1c461d1b69f
> --- /dev/null
> +++ b/cad/ngspice/ngspice/patches/patch-src_spicelib_analysis_cktsetup_c
> @@ -0,0 +1,11 @@
> +Index: src/spicelib/analysis/cktsetup.c
> +--- src/spicelib/analysis/cktsetup.c.orig
> ++++ src/spicelib/analysis/cktsetup.c
> +@@ -21,7 +21,6 @@ Author: 1985 Thomas L. Quarles
> + #endif
> +
> + #ifdef USE_OMP
> +-#include <omp.h>
>
> + #include "ngspice/cpextern.h"
> + int nthreads;
> + #endif
> diff --git a/cad/ngspice/ngspice/patches/patch-tests_bin_check_sh
> b/cad/ngspice/ngspice/patches/patch-tests_bin_check_sh
> deleted file mode 100644
> index 1f52147b68e..00000000000
> --- a/cad/ngspice/ngspice/patches/patch-tests_bin_check_sh
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -Index: tests/bin/check.sh
> ---- tests/bin/check.sh.orig
> -+++ tests/bin/check.sh
> -@@ -40,8 +40,8 @@ case $HOST_TYPE in
> - rm -f $testname.test_tmp $testname.out_tmp
> - ;;
> - FreeBSD*|SunOS*|OpenBSD*)
> -- $SPICE --batch $testdir/$testname.cir >$testname.test &&\
>
> -- sed -e '/^$/d' $testname.test | egrep -v "$FILTER" > $testname.test_tmp &&\
>
> -+ $SPICE --batch $testdir/$testname.cir >$testname.test
>
> -+ sed -e '/^$/d' $testname.test | egrep -v "$FILTER" > $testname.test_tmp
>
> - sed -e '/^$/d' $testdir/$testname.out | egrep -v "$FILTER" >
> $testname.out_tmp
>
> - if diff -b -w $testname.out_tmp $testname.test_tmp; then
> - rm $testname.test $testname.test_tmp $testname.out_tmp
> diff --git a/cad/ngspice/ngspice/pkg/PLIST b/cad/ngspice/ngspice/pkg/PLIST
> index ce24003f488..1912adcc2c9 100644
> --- a/cad/ngspice/ngspice/pkg/PLIST
> +++ b/cad/ngspice/ngspice/pkg/PLIST
> @@ -1,8 +1,26 @@
> @pkgpath cad/ngspice
> @bin bin/ngspice
> +lib/ngspice/
> +@bin lib/ngspice/analog.cm
> +@bin lib/ngspice/digital.cm
> +@bin lib/ngspice/spice2poly.cm
> +@bin lib/ngspice/table.cm
> +@bin lib/ngspice/xtradev.cm
> +@bin lib/ngspice/xtraevt.cm
> @man man/man1/ngspice.1
> share/ngspice/
> share/ngspice/scripts/
> +share/ngspice/scripts/ciderinit
> +share/ngspice/scripts/devaxis
> +share/ngspice/scripts/devload
> share/ngspice/scripts/setplot
> share/ngspice/scripts/spectrum
> share/ngspice/scripts/spinit
> +share/ngspice/scripts/src/
> +share/ngspice/scripts/src/ngspice/
> +share/ngspice/scripts/src/ngspice/cmtypes.h
> +share/ngspice/scripts/src/ngspice/cosim.h
> +share/ngspice/scripts/src/ngspice/miftypes.h
> +share/ngspice/scripts/src/verilator_main.cpp
> +share/ngspice/scripts/src/verilator_shim.cpp
> +share/ngspice/scripts/vlnggen