diff --git a/.gitignore b/.gitignore index 51906a4..c74ef8e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1 @@ -/xcircuit-3.7.57.tgz -/xcircuit-3.9.40.tgz -/xcircuit-3.9.48.tgz -/xcircuit-3.9.49.tgz -/xcircuit-3.9.50.tgz -/xcircuit-3.9.51.tgz -/xcircuit-3.9.54.tgz -/xcircuit-3.9.56.tgz -/xcircuit-3.9.57.tgz -/xcircuit-3.9.58.tgz -/xcircuit-3.9.59.tgz -/xcircuit-3.9.60.tgz -/xcircuit-3.9.61.tgz -/xcircuit-3.9.65.tgz -/xcircuit-3.9.66.tgz -/xcircuit-3.9.67.tgz -/xcircuit-3.9.68.tgz -/xcircuit-3.10.4.tgz -/xcircuit-3.10.8.tgz -/xcircuit-3.10.9.tgz -/xcircuit-3.10.10.tgz +/xcircuit-*.tgz diff --git a/sources b/sources index 63afb64..e2eb38b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xcircuit-3.10.10.tgz) = 821f8b317e4eac82d715f408abec965843069d643633e50e54999044933676b997c2e6b7df9a9166affca5440cbda8fe94a2098b645ae144566125da8e4bc93f +SHA512 (xcircuit-3.10.45.tgz) = c08eeba7d1a22c009cca33f68723cc24c5565f00f34ca29f043481b32cae2327a8bb1fd6cfb82bfdaf6c18973d3bbb6ada3668d74c48879166fe2a11da4bfa96 diff --git a/xcircuit-3.9.40-format-security.patch b/xcircuit-3.9.40-format-security.patch deleted file mode 100644 index 1a7b48d..0000000 --- a/xcircuit-3.9.40-format-security.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff -urp -x Makefile -x 'config.*' -x '*~' xcircuit-3.9.40.old/svg.c xcircuit-3.9.40.new/svg.c ---- xcircuit-3.9.40.old/svg.c 2015-10-07 00:04:49.000000000 +0900 -+++ xcircuit-3.9.40.new/svg.c 2016-06-25 00:13:28.468986578 +0900 -@@ -1108,12 +1108,12 @@ int xctcl_svg(ClientData clientData, Tcl - - if (locobjc >= 2) { - /* If there is a non-option argument, use it for the output filename */ -- sprintf(filename, Tcl_GetString(objv[1])); -+ sprintf(filename, "%s", Tcl_GetString(objv[1])); - } - else if (xobjs.pagelist[areawin->page]->pageinst->thisobject->name == NULL) -- sprintf(filename, xobjs.pagelist[areawin->page]->filename); -+ sprintf(filename, "%s", xobjs.pagelist[areawin->page]->filename); - else -- sprintf(filename, xobjs.pagelist[areawin->page]->pageinst->thisobject->name); -+ sprintf(filename, "%s", xobjs.pagelist[areawin->page]->pageinst->thisobject->name); - - pptr = strrchr(filename, '.'); - if (pptr != NULL) -diff -urp -x Makefile -x 'config.*' -x '*~' xcircuit-3.9.40.old/tclxcircuit.c xcircuit-3.9.40.new/tclxcircuit.c ---- xcircuit-3.9.40.old/tclxcircuit.c 2015-11-14 02:27:30.000000000 +0900 -+++ xcircuit-3.9.40.new/tclxcircuit.c 2016-06-25 00:15:07.012510579 +0900 -@@ -3876,7 +3876,7 @@ int xctcl_object(ClientData clientData, - case NameIdx: - if (nidx == 1 || areawin->selects == 0) { - if (objc == 3) { -- sprintf(thisinst->thisobject->name, Tcl_GetString(objv[nidx + 2])); -+ sprintf(thisinst->thisobject->name, "%s", Tcl_GetString(objv[nidx + 2])); - checkname(thisinst->thisobject); - } - Tcl_AppendElement(interp, thisinst->thisobject->name); -@@ -7294,7 +7294,7 @@ int xctcl_page(ClientData clientData, Tc - - case LoadIdx: - TechReplaceSave(); -- sprintf(_STR2, Tcl_GetString(objv[2 + nidx])); -+ sprintf(_STR2, "%s", Tcl_GetString(objv[2 + nidx])); - for (i = 3 + nidx; i < objc; i++) { - argv = Tcl_GetString(objv[i]); - if ((*argv == '-') && !strncmp(argv, "-repl", 5)) { -@@ -7380,7 +7380,7 @@ int xctcl_page(ClientData clientData, Tc - - switch (importtype) { - case XCircuitIdx: -- sprintf(_STR2, Tcl_GetString(objv[3 + nidx])); -+ sprintf(_STR2, "%s", Tcl_GetString(objv[3 + nidx])); - for (i = 4; i < objc; i++) { - strcat(_STR2, ","); - strcat(_STR2, Tcl_GetString(objv[i + nidx])); -@@ -7397,7 +7397,7 @@ int xctcl_page(ClientData clientData, Tc - Tcl_SetObjResult(interp, objPtr); - return XcTagCallback(interp, objc, objv); - } -- sprintf(_STR2, Tcl_GetString(objv[3 + nidx])); -+ sprintf(_STR2, "%s", Tcl_GetString(objv[3 + nidx])); - if (savepage != pageno) newpage(pageno); - loadbackground(); - if (savepage != pageno) newpage(savepage); diff --git a/xcircuit.spec b/xcircuit.spec index bc34bb0..eaf7417 100644 --- a/xcircuit.spec +++ b/xcircuit.spec @@ -1,18 +1,22 @@ %global short_version 3.10 -%if 0%{?fedora} >= 28 -%global ghostscript_devel libgs-devel -%else -%global ghostscript_devel ghostscript-devel -%endif +%undefine _changelog_trimtime +%undefine __brp_mangle_shebangs Name: xcircuit -Version: %{short_version}.10 +Version: %{short_version}.45 Release: 1%{?dist} Summary: Electronic circuit schematic drawing program -License: GPLv2+ -Group: Applications/Engineering +# Xw/ HPND unused +# asg/ non-free unused +# flate.c GPL-2.0-only from acroformtool +# lib/tcl/matgen.tcl GPL-2.0-or-later +# spiceparser/ GPL-2.0-or-later unused +# utf8encodings.c not-a-license https://gitlab.com/fedora/legal/fedora-license-data/-/issues/498 +# xcircuit.c GPL-2.0-or-later +# SPDX confirmed +License: GPL-2.0-or-later AND GPL-2.0-only URL: http://opencircuitdesign.com/xcircuit Source: http://opencircuitdesign.com/xcircuit/archive/%{name}-%{version}.tgz @@ -20,15 +24,14 @@ Source1: %{name}.desktop # http://opencircuitdesign.com/xcircuit/archive/xcircuit.xpm as 64x64 Source2: %{name}.png -Patch0: xcircuit-3.9.40-format-security.patch - +BuildRequires: make BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(fontconfig) -BuildRequires: %ghostscript_devel +BuildRequires: libgs-devel BuildRequires: libXpm-devel BuildRequires: libXt-devel -BuildRequires: tcl-devel -BuildRequires: tk-devel +BuildRequires: pkgconfig(tcl) <= 8.999 +BuildRequires: pkgconfig(tk) <= 8.999 BuildRequires: zlib-devel BuildRequires: desktop-file-utils BuildRequires: ngspice @@ -40,7 +43,7 @@ BuildRequires: libtool # Need check Requires: coreutils Requires: gtk2 -Requires: tk +Requires: tk8 # Special FEL Gnome/KDE menu structure Requires: electronics-menu @@ -51,29 +54,29 @@ CAD program for circuit schematic drawing and schematic capture. %prep %setup -q -%patch0 -p1 #439604: TCL 8.5.1 -sed -i lib/tcl/tkcon.tcl \ - -e "s|package require -exact|package require|" +sed -i Makefile.am \ + -e 's|/lib/|/%{_lib}/|' autoreconf sed -i Makefile.in -e 's|LD_RUN_PATH =|LD_RUN_PATH_DIE =|' sed -i examples/xc_remote.sh -e 's|/usr/local/bin|%{_bindir}|' +chmod ugo-x lib/tcl/console.tcl %build -export WISH=/usr/bin/wish +export WISH=/usr/bin/wish8 #01/08/09 Without --enable-asg \ because it's broken %configure \ --with-tcl=%{_libdir} \ --with-tk=%{_libdir} \ %{nil} -make %{?_smp_mflags} +%make_build %install -make INSTALL="install -p" DESTDIR=%{buildroot} install +%make_install make install-man mandir="%{buildroot}%{_mandir}" rm -rf examples/win32 @@ -108,6 +111,88 @@ desktop-file-install \ %{_mandir}/man1/%{name}.1.* %changelog +* Mon Aug 17 2026 Mamoru TASAKA - 3.10.45-1 +- 3.10.45 +- Still use Tcl/Tk 8: Not ready for Tk 9 + +* Fri Jul 17 2026 Fedora Release Engineering - 3.10.30-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jan 17 2026 Fedora Release Engineering - 3.10.30-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jul 25 2025 Fedora Release Engineering - 3.10.30-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 31 2025 Mamoru TASAKA - 3.10.30-14 +- Use tk8 explicitly + +* Sun Jan 19 2025 Mamoru TASAKA - 3.10.30-13 +- Fix for C23, include header properly + +* Sat Jul 20 2024 Fedora Release Engineering - 3.10.30-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Apr 12 2024 Mamoru TASAKA - 3.10.30-11 +- SPDX migration + +* Sat Jan 27 2024 Fedora Release Engineering - 3.10.30-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Mamoru TASAKA - 3.10.30-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Apr 11 2023 Florian Weimer - 3.10.30-8 +- Port to C99 + +* Tue Jan 24 2023 Mamoru TASAKA - 3.10.30-7 +- Rebuild for ghostscript 10 + +* Sat Jan 21 2023 Fedora Release Engineering - 3.10.30-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 3.10.30-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 3.10.30-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 3.10.30-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 3.10.30-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Dec 29 2020 Mamoru TASAKA - 3.10.30-1 +- 3.10.30 + +* Wed Sep 23 2020 Mamoru TASAKA - 3.10.29-1 +- 3.10.29 + +* Wed Jul 29 2020 Fedora Release Engineering - 3.10.28-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 2 2020 Mamoru TASAKA - 3.10.28-1 +- 3.10.28 + +* Tue May 5 2020 Mamoru TASAKA - 3.10.24-1 +- 3.10.24 + +* Fri Jan 31 2020 Fedora Release Engineering - 3.10.12-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jul 27 2019 Fedora Release Engineering - 3.10.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 03 2019 Fedora Release Engineering - 3.10.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Nov 12 2018 Mamoru TASAKA - 3.10.12-1 +- 3.10.12 + +* Sat Jul 14 2018 Fedora Release Engineering - 3.10.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Fri Jun 22 2018 Mamoru TASAKA - 3.10.10-1 - 3.10.10