diff --git a/License-analysis.txt b/License-analysis.txt new file mode 100644 index 0000000..d5459fa --- /dev/null +++ b/License-analysis.txt @@ -0,0 +1,125 @@ +CC-BY-SA-4.0 +COPYING +FAQ +manal.pdf + +CC-BY-3.0 +src/frontend/get_phys_mem_size.c +src/frontend/get_resident_set_size.c + +GPL-2.0-or-later +src/xspice/icm/table/table2D/cfunc.mod +src/xspice/icm/table/table3D/cfunc.mod +src/spicelib/devices/adms/admst/COPYING +src/spicelib/devices/adms/admst/ngspice*.xml +src/xspice/icm/table/mada/alloc.c +src/xspice/icm/table/mada/eno.c +src/xspice/icm/table/mada/eno2.c +src/xspice/icm/table/mada/eno3.c + +GPL-2.0-only +src/xspice/icm/table/table2D/ifspec.ifs +src/xspice/icm/table/table3D/ifspec.ifs + +GPL-3.0-or-later +src/frontend/parse-bison.c +src/frontend/parse-bison.h +src/spicelib/parser/inpptree-parser.c +src/spicelib/parser/inpptree-parser.h +src/xspice/cmpp/ifs_yacc.c +src/xspice/cmpp/ifs_yacc.h +src/xspice/cmpp/mod_yacc.c +src/xspice/cmpp/mod_yacc.h + +LGPL-2.1-or-later +README.tcl +src/frontend/numparam/mystring.c +src/frontend/numparam/readme.txt +src/frontend/numparam/spicenum.c +src/frontend/numparam/xpressn.c +src/maths/KLU/colamd.c +src/spicelib/devices/adms/admst/COPYING + +LGPL-2.1-only +src/maths/KLU/colamd_global.c +src/tclspice.c + +MPL-2.0 +src/include/cppduals/duals/dual +src/osdi/ + +ECL-2.0 +examples/osdi/EKV2.6/ekv26_mod.va +src/spicelib/devices/bsim4/ + +HPND +src/maths/sparse/ + +BSD-4-Clause +src/misc/getopt_bsd.h + +BSD-3-Clause +src/frontend/com_wr_ic.c +src/frontend/com_wr_ic.h +src/frontend/get_avail_mem_size.c +src/frontend/inpcom.c + +src/frontend/inpcompat.c (BCD) +src/frontend/inpcompat.h (BCD) +src/frontend/inpc_probe.c +src/include/ngspice/sharedspice.h +src/misc/dstring.c +src/sharedspice.c +src/spicelib/analysis/optran.c +src/spicelib/devices/cpl/cpldelete.c +src/spicelib/devices/cpl/cplhash.c +src/spicelib/devices/cpl/cplhash.h +src/spicelib/devices/cpl/cplmdel.c +src/spicelib/devices/hicum2/ +src/spicelib/parser/inpgmod.c +src/winmain.c +src/xspice/icm/digital/d_process/cfunc.mod +src/xspice/icm/dlmain.c +src/xspice/icm/dlmain.h +src/xspice/icm/xtradev/pswitch/cfunc.mod +src/xspice/icm/xtradev/sidiode/cfunc.mod +src/xspice/icm/xtradev/sidiode/ifspec.ifs + + +BSD-2-Clause +src/misc/getopt_long_bsd.c + +??? +examples/p-to-n-examples/MCP6041.txt + +??? +examples/probe/TLC555.LIB + +NOT_IN_SPDX +src/frontend/commands.c +src/spicelib/devices/dev.c + +NOT_IN_SPDX +src/spicelib/devices/bsim3/B3TERMS_OF_USE +src/spicelib/devices/bsim3soi_dd/BsimTerms_use +src/spicelib/devices/bsim3soi_fd/BsimTerms_use +src/spicelib/devices/bsim3soi_pd/BsimTerms_use +src/spicelib/devices/bsim3v32/B3TERMS_OF_USE +src/spicelib/devices/bsim4/B4TERMS_OF_USEs +src/spicelib/devices/bsim4v5/B4TERMS_OF_USE +src/spicelib/devices/bsim4v6/B4TERMS_OF_USE +src/spicelib/devices/bsim4v7/B4TERMS_OF_USE +src/spicelib/devices/bsimsoi/BsimTerms_use + + +??? +src/spicelib/devices/hisim2/ +src/spicelib/devices/hisimhv2/ + +??? +src/spicelib/devices/hisimhv1/ + + +??? +src/spicelib/devices/soi3/README + diff --git a/ngspice.spec b/ngspice.spec index f976e1c..61b80f7 100644 --- a/ngspice.spec +++ b/ngspice.spec @@ -13,20 +13,22 @@ %global userelease 1 %endif -%global majorver 41 -#%%global minorver 3 -%global docver 41 +%global majorver 45 +%global minorver 2 +%global docver 45 %undefine prever %global prerpmver %(echo "%{?prever}" | sed -e 's|-||g') +%global baserelease 1 + %if 0%{?usegitbare} >= 1 -# master -%global gitcommit 2275fb85da31a8c802ebf9730935c8c00d6cdea0 -%global gitdate 20230814 +# pre-master-45 +%global gitcommit 1d0beb5e266420b1dd756913356a295ddb60fdce +%global gitdate 20250830 %global shortcommit %(c=%{gitcommit}; echo ${c:0:7}) -%global tarballdate 20230816 -%global tarballtime 0753 +%global tarballdate 20250831 +%global tarballtime 2034 %endif %if 0%{?userelease} >= 1 @@ -36,24 +38,37 @@ %global fedoraver %{majorver}%{?minorver:.%minorver}^%{gitdate}git%{shortcommit} %endif +%global use_gcc_strict_sanitize 0 + +%global flagrel %{nil} +%if 0%{?use_gcc_strict_sanitize} >= 1 +%global flagrel %{flagrel}.san +%endif + +%bcond_with adms + %undefine _changelog_trimtime Name: ngspice Version: %{fedoraver} -Release: 1%{?dist} +Release: %{baserelease}%{?dist}%{flagrel} Summary: A mixed level/signal circuit simulator -License: BSD +# ngspice-42-manual.pdf CC-BY-SA-4.0 AND BSD-3-Clause +# Automatically converted from old format: BSD - review is highly recommended. +License: LicenseRef-Callaway-BSD URL: http://ngspice.sourceforge.net %if 0%{?userelease} >= 1 -Source0: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{majorver}/ngspice-%{majorver}.tar.gz +Source0: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{majorver}%{?minorver:.%minorver}/ngspice-%{majorver}%{?minorver:.%minorver}.tar.gz %endif %if 0%{?usegitbare} >= 1 Source0: ngspice-%{tarballdate}T%{tarballtime}.tar.gz %endif Source1: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{majorver}/ngspice-%{docver}-manual.pdf +%if %{with adms} Source2: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{majorver}/ngspice-adms-va.7z +%endif Source10: create-ngspice-git-bare-tarball.sh @@ -61,9 +76,14 @@ Source10: create-ngspice-git-bare-tarball.sh # not (bug 1047056, debian bug 737279) Patch0: ngspice-37-blt-linkage-workaround.patch + BuildRequires: make BuildRequires: gcc BuildRequires: gcc-c++ +%if 0%{?use_gcc_strict_sanitize} +BuildRequires: libasan +BuildRequires: libubsan +%endif BuildRequires: p7zip BuildRequires: readline-devel @@ -88,6 +108,7 @@ BuildRequires: flex BuildRequires: ImageMagick BuildRequires: mot-adms +BuildRequires: xorg-x11-server-Xvfb BuildRequires: git Requires: %{name}-codemodel%{?_isa} = %{version}-%{release} @@ -120,7 +141,7 @@ It can be used for VLSI simulations as well. %package -n tclspice Summary: Tcl/Tk interface for ngspice -BuildRequires: tk-devel +BuildRequires: pkgconfig(tk) <= 8.999 BuildRequires: blt-devel %description -n tclspice @@ -152,7 +173,7 @@ developing applications that use libngspice. %prep %if 0%{?userelease} >= 1 -%setup -q -n %{name}-%{majorver} +%setup -q -n %{name}-%{majorver}%{?minorver:.%minorver} git init git config user.name "%{name} maintainer" git config user.email "%{name}-maintainers@fedoraproject.org" @@ -170,6 +191,7 @@ git config user.email "%{name}-maintainers@fedoraproject.org" git checkout -b %{name}-%{majorver}-fedora %{gitcommit} %endif +%if %{with adms} pushd src/spicelib/devices/adms %if 0%{?userelease} >= 1 7za x %{SOURCE2} @@ -185,7 +207,9 @@ do test -f $f || exit 1 done %endif + popd +%endif %patch -P0 -p2 -b .link git commit -m "Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or not" -a @@ -198,7 +222,7 @@ for nonUTF8 in \ ChangeLog \ %{nil} do - %{_bindir}/iconv -f ISO-8859-1 -t utf-8 $nonUTF8 > $nonUTF8.conv + iconv -f ISO-8859-1 -t utf-8 $nonUTF8 > $nonUTF8.conv %{__mv} -f $nonUTF8.conv $nonUTF8 done git commit -m "Change files to UTF8" -a @@ -213,6 +237,7 @@ git commit -m "Fix permission" -a || : # Move spinit directory to arch-dependent sed -i configure.ac -e '\@AC_DEFINE_UNQUOTED.*NGSPICEDATADIR@s|echo .dprefix/share/ngspice|echo %{_libdir}/ngspice|' +sed -i configure.ac -e '\@AC_DEFINE_UNQUOTED.*NGSPICELIBDIR@s|echo .dprefix/share/ngspice|echo %{_libdir}/ngspice|' sed -i src/misc/ivars.c -e 's|\(["/]\)share/ngspice|\1%_lib/ngspice|' sed -i src/misc/ivars.c -e 's|\(["/]\)lib/ngspice|\1%_lib/ngspice|' grep -rl "(pkgdatadir)/" . | xargs sed -i -e 's|(pkgdatadir)/|(pkglibdir)/|' @@ -237,19 +262,31 @@ sed -i \ git commit -m "Fix include path" -a export ACLOCAL_FLAGS=-Im4 -./autogen.sh --adms +./autogen.sh \ +%if %{with adms} + --adms \ +%endif + %{nil} git commit -m "Execute autogen" -a || : chmod +x configure %build +%set_build_flags +%if 0%{?use_gcc_strict_sanitize} +export CC="${CC} -fsanitize=address -fsanitize=undefined" +export CXX="${CXX} -fsanitize=address -fsanitize=undefined" + +export ASAN_OPTIONS=detect_leaks=0 +%endif + %if 0%{?usegitbare} >= 1 cd %{name} %endif # ---- Tclspice ---------------------------------------------------------------- # Adding BLT support -export CFLAGS="%{optflags} -I%{_includedir}/blt" +export CFLAGS="%{optflags} -I$(pkg-config --variable=includedir tcl)/blt" # Make builddir for tclspice %{__mkdir} -p tclspice @@ -273,8 +310,11 @@ export CPPFLAGS=-DUSE_INTERP_RESULT # by the request from the upstream %configure \ --disable-silent-rules \ +%if %{with adms} --enable-adms \ +%endif --enable-xspice \ + --enable-klu \ --enable-osdi \ --enable-maintainer-mode \ --enable-dependency-tracking \ @@ -286,11 +326,11 @@ export CPPFLAGS=-DUSE_INTERP_RESULT --enable-predictor \ --enable-shared \ --with-readline=yes \ - --with-tcl=%{_libdir}/ \ + --with-tcl=$(pkg-config --variable=libdir tcl) \ --libdir=%{_libdir}/tclspice \ %{nil} -%{__make} -k +%make_build -k # Once install to the temp dir rm -rf $(pwd)/../INST-TCLSPICE %{__make} INSTALL="install -p" install DESTDIR=$(pwd)/../INST-TCLSPICE @@ -312,9 +352,12 @@ do %configure \ --disable-silent-rules \ ${SHARED_OPT} \ +%if %{with adms} --enable-adms \ +%endif --enable-xspice \ --enable-osdi \ + --enable-klu \ --enable-maintainer-mode \ --enable-dependency-tracking \ --enable-cider \ @@ -329,8 +372,7 @@ do %{nil} %{__make} clean -# No parallel make -%{__make} -k +%make_build -k # Once install to the temp dir rm -rf $(pwd)/INST-NGSPICE-${opt} %{__make} INSTALL="install -p" install DESTDIR=$(pwd)/INST-NGSPICE-${opt} @@ -386,7 +428,7 @@ cp -pr ./src/spicelib/devices/adms/ %{buildroot}%{_libdir}/%{name} # Ensuring that all docs are under %%{_pkgdocdir} mkdir -p %{buildroot}%{_pkgdocdir} cp -pr examples/ %{buildroot}%{_pkgdocdir} -install -cpm 0644 %{SOURCE1} %{buildroot}%{_pkgdocdir}/%{name}-%{version}.pdf +install -cpm 0644 %{SOURCE1} %{buildroot}%{_pkgdocdir}/%{name}-%{majorver}.pdf cp -a \ Stuarts_Poly_Notes \ @@ -407,6 +449,8 @@ chmod +x %{buildroot}%{_libdir}/ngspice/*.cm chmod +x %{buildroot}%{_libdir}/tclspice/ngspice/*.cm %check +export ASAN_OPTIONS=detect_leaks=0 + %if 0%{?usegitbare} >= 1 cd %{name} %endif @@ -419,12 +463,15 @@ mkdir USERPROFILE echo "set ngbehavior=mc" > USERPROFILE/spice.rc export USERPROFILE=$(pwd)/USERPROFILE -make check +xvfb-run \ + -s "-screen 0 640x480x24" \ + make check popd %files %{_bindir}/* +%{_libdir}/%{name}/ivlng.* %{_mandir}/man1/* %doc %{_pkgdocdir} %license COPYING @@ -436,6 +483,7 @@ popd %{_libdir}/tclspice/libspice*.so* %{_libdir}/tclspice/%{name}/*.cm %{_libdir}/tclspice/%{name}/*.tcl +%{_libdir}/tclspice/%{name}/ivlng.* %{_libdir}/tclspice/%{name}/scripts/ %files codemodel @@ -452,6 +500,50 @@ popd %{_includedir}/ngspice/ %changelog +* Sun Sep 07 2025 Mamoru TASAKA - 45.2-1 +- Update to 45.2 + +* Tue Sep 02 2025 Mamoru TASAKA - 45-1 +- Update to 45 + +* Thu Jul 24 2025 Fedora Release Engineering - 44.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 31 2025 Mamoru TASAKA - 44.2-3 +- Use tk8 explicitly + +* Fri Jan 17 2025 Fedora Release Engineering - 44.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sun Jan 12 2025 Mamoru TASAKA - 44.2-1 +- Update to 44.2 + +* Mon Dec 30 2024 Mamoru TASAKA - 44-1 +- Update to 44 + +* Mon Sep 2 2024 Miroslav Suchý - 43-4 +- convert license to SPDX + +* Thu Jul 18 2024 Fedora Release Engineering - 43-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jul 16 2024 Mamoru TASAKA - 43-2 +- Apply upstream patch for fixing one byte ahead access in string manipulation + +* Sun Jul 14 2024 Mamoru TASAKA - 43-1 +- Update to 43 + +* Thu Jan 25 2024 Fedora Release Engineering - 42-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Mamoru TASAKA - 42-2 +- Fix compilation with -Werror=incompatible-pointer-types + +* Fri Dec 29 2023 Mamoru TASAKA - 42-1 +- Update to 42 +- Kill --with-adms +- Enable --with-klu + * Wed Aug 16 2023 Mamoru TASAKA - 41-1 - Update to 41 diff --git a/sources b/sources index 6630f0a..a6f3db9 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ -SHA512 (ngspice-41.tar.gz) = fb0960cc9fcde1871fad82571cacebb1f5cce09ee3297cc938a24b88173ed102a2cb3f246599cdfbde7275e45e3d551edd0368e3ba6e79c592937c4cc466325e -SHA512 (ngspice-41-manual.pdf) = 51569cc774e0d5dda8d6e24122050515d6eda7719488534fe0a32b43d6bb34655472455d62d83bcb6d3847878bd26c7e45976a1eec256b321547b768858f6d74 -SHA512 (ngspice-adms-va.7z) = e0bab0a275ad781ee29d2ac982075079af1d9a2d0acc7f901783cb873e1a471b2aa62c08e51448ef2e4e57623ba2e4ae3549eb882e2c625c20b8141b8109b26a +SHA512 (ngspice-45.2.tar.gz) = 4090e9433457c0b49dc1e7561bc630a5c6a340391f26be8142c6bd514ae13b72137589964fe9ae5a01069c9de7d8457bd41b0811a335b2c93a3c6e07044b35b1 +SHA512 (ngspice-45-manual.pdf) = 425d9320a01d409c7baab83d111f92643cae7df62a109e06d7e4fd366262441f4fdd62532db63fb4d4af4cb98e478b4f9fca5bd6c63fb89507dba685220f34ab