From f12deed38db659c0748b27b9d065092501c9dfd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=B3=E7=A2=A7=E6=B9=96=E7=9A=84=E7=A0=8D=E6=9F=B4?= =?UTF-8?q?=E4=BA=BA?= Date: Tue, 17 Mar 2020 15:22:58 +0800 Subject: [PATCH] Rollback some patches & add /usr/lib64/tcl* --- tcl-8.6.3-autopath.patch | 56 ++++++++++++++++++++++++++++++++++++++ tcl-8.6.8-conf.patch | 19 +++++++++++++ tcl-8.6.8-hidden.patch | 35 ++++++++++++++++++++++++ tcl.spec | 58 +++++++++++++++++++++++----------------- 4 files changed, 143 insertions(+), 25 deletions(-) create mode 100644 tcl-8.6.3-autopath.patch create mode 100644 tcl-8.6.8-conf.patch create mode 100644 tcl-8.6.8-hidden.patch diff --git a/tcl-8.6.3-autopath.patch b/tcl-8.6.3-autopath.patch new file mode 100644 index 0000000..98e5a19 --- /dev/null +++ b/tcl-8.6.3-autopath.patch @@ -0,0 +1,56 @@ +diff --git a/library/auto.tcl b/library/auto.tcl +index 02edcc4..cd3b587 100644 +--- a/library/auto.tcl ++++ b/library/auto.tcl +@@ -81,6 +81,13 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} { + lappend dirs [::${basename}::pkgconfig get scriptdir,runtime] + } + ++ # 2a. As a sibling of Tcl's script directory ++ if {[catch { ++ ::tcl::pkgconfig get scriptdir,runtime ++ } value] == 0} { ++ lappend dirs [file join [file dirname $value] $basename$version] ++ } ++ + # 3. Relative to auto_path directories. This checks relative to the + # Tcl library as well as allowing loading of libraries added to the + # auto_path that is not relative to the core library or binary paths. +diff --git a/library/init.tcl b/library/init.tcl +index f1f7704..03ede56 100644 +--- a/library/init.tcl ++++ b/library/init.tcl +@@ -47,16 +47,11 @@ if {![info exists auto_path]} { + } + namespace eval tcl { + variable Dir +- foreach Dir [list $::tcl_library [file dirname $::tcl_library]] { ++ foreach Dir [list $::tcl_library] { + if {$Dir ni $::auto_path} { + lappend ::auto_path $Dir + } + } +- set Dir [file join [file dirname [file dirname \ +- [info nameofexecutable]]] lib] +- if {$Dir ni $::auto_path} { +- lappend ::auto_path $Dir +- } + catch { + foreach Dir $::tcl_pkgPath { + if {$Dir ni $::auto_path} { +diff --git a/unix/configure.in b/unix/configure.in +index e44d554..c017eaa 100755 +--- a/unix/configure.in ++++ b/unix/configure.in +@@ -886,9 +886,9 @@ if test "$FRAMEWORK_BUILD" = "1" ; then + test -z "$TCL_MODULE_PATH" && \ + TCL_MODULE_PATH="~/Library/Tcl /Library/Tcl /System/Library/Tcl" + elif test "$prefix/lib" != "$libdir"; then +- TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}" ++ TCL_PACKAGE_PATH="${libdir}/tcl8.6 ${prefix}/share/tcl8.6 ${libdir}/tk8.6 ${prefix}/share/tk8.6 ${TCL_PACKAGE_PATH}" + else +- TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}" ++ TCL_PACKAGE_PATH="${libdir}/tcl8.6 ${prefix}/share/tcl8.6 ${libdir}/tk8.6 ${prefix}/share/tk8.6 ${TCL_PACKAGE_PATH}" + fi + + #-------------------------------------------------------------------- diff --git a/tcl-8.6.8-conf.patch b/tcl-8.6.8-conf.patch new file mode 100644 index 0000000..2ec2c90 --- /dev/null +++ b/tcl-8.6.8-conf.patch @@ -0,0 +1,19 @@ +diff --git a/unix/tcl.m4 b/unix/tcl.m4 +index 8a802fb..0df92fd 100644 +--- a/unix/tcl.m4 ++++ b/unix/tcl.m4 +@@ -1402,12 +1402,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + +- SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' ++ SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared -fPIC -Wl,-soname,${@}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + AS_IF([test $doRpath = yes], [ +- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) ++ CC_SEARCH_FLAGS='']) + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"]) + AS_IF([test $do64bit = yes], [ diff --git a/tcl-8.6.8-hidden.patch b/tcl-8.6.8-hidden.patch new file mode 100644 index 0000000..8a4e4a1 --- /dev/null +++ b/tcl-8.6.8-hidden.patch @@ -0,0 +1,35 @@ +diff --git a/generic/tclInt.h b/generic/tclInt.h +index 91c8b96..623a598 100644 +--- a/generic/tclInt.h ++++ b/generic/tclInt.h +@@ -3215,7 +3215,7 @@ MODULE_SCOPE void TclClockInit(Tcl_Interp *interp); + MODULE_SCOPE int TclClockOldscanObjCmd( + ClientData clientData, Tcl_Interp *interp, + int objc, Tcl_Obj *const objv[]); +-MODULE_SCOPE int Tcl_CloseObjCmd(ClientData clientData, ++extern int Tcl_CloseObjCmd(ClientData clientData, + Tcl_Interp *interp, int objc, + Tcl_Obj *const objv[]); + MODULE_SCOPE int Tcl_ConcatObjCmd(ClientData clientData, +@@ -3396,7 +3396,7 @@ MODULE_SCOPE int Tcl_RenameObjCmd(ClientData clientData, + MODULE_SCOPE int Tcl_RepresentationCmd(ClientData clientData, + Tcl_Interp *interp, int objc, + Tcl_Obj *const objv[]); +-MODULE_SCOPE int Tcl_ReturnObjCmd(ClientData clientData, ++extern int Tcl_ReturnObjCmd(ClientData clientData, + Tcl_Interp *interp, int objc, + Tcl_Obj *const objv[]); + MODULE_SCOPE int Tcl_ScanObjCmd(ClientData clientData, +diff --git a/generic/tclPort.h b/generic/tclPort.h +index 12a60db..d817154 100644 +--- a/generic/tclPort.h ++++ b/generic/tclPort.h +@@ -20,7 +20,7 @@ + #if defined(_WIN32) + # include "tclWinPort.h" + #else +-# include "tclUnixPort.h" ++# include "../unix/tclUnixPort.h" + #endif + #include "tcl.h" + diff --git a/tcl.spec b/tcl.spec index a6d975f..cdcd17b 100644 --- a/tcl.spec +++ b/tcl.spec @@ -2,7 +2,7 @@ Name: tcl Version: 8.6.8 -Release: 7 +Release: 8 Epoch: 1 Summary: The Tool Command Language implementation License: BSD @@ -14,30 +14,31 @@ Provides: tcl(abi) = %{MAJOR} Obsoletes: tcl-tcldict <= %{version} Provides: tcl-tcldict = %{version} -#patch0000 backport from https://core.tcl.tk/tcl/tktview/7d0db7c388f52de81faf12da332bc97a24f7b9e5 -Patch0000: tcl-8.6.5-parallel-make-fix.patch - -Patch6000: stay-out-of-internals-when-nice-interfaces-are-avail.patch -Patch6001: oops.patch -Patch6002: Fix-for-issue-9fd5c629c1-TclOO-aborts-when-a-trace-o.patch -Patch6003: Fix-bug-3c32a3f8bd-segmentation-fault-in-TclOO.c-Rel.patch -Patch6004: Fix-error-message-for-min-math-functions-to-for-for-.patch -Patch6005: Fix-behavior-of-Tcl_GetRange-and-string-range-regard.patch -Patch6006: Fix-11ae2be95d-tip-389-branch-string-range-errors-wi.patch -Patch6007: Improved-overflow-prevention-1.patch -Patch6008: Improved-overflow-prevention-2.patch -Patch6009: 27b682284974d0cd-command-file-delete-avoid-possible-.patch -Patch6010: Fix-handling-of-surrogates-when-TCL_UTF_MAX-3-in-Tcl.patch -Patch6011: Bug-fix-in-Tcl_UtfAtIndex-for-TCL_UTF_MAX-4-only-.-W.patch -Patch6012: new-package.patch -Patch6013: Plug-leak-in-TclSetEnv.patch -Patch6014: closes-d051b77fc18d7340-fixed-segfault-by-integer-ov.patch -Patch6015: amend-after-merge-8.6th-provide-additionally-an-erro.patch -Patch6016: In-registry-protect-keyName-from-being-NULL-This-act.patch -Patch6017: fixes-segfault-00d04c4f12-unfulfilled-base64-strict-.patch -Patch6018: fixes-4ee9b4f3e965a7da5133-result-of-command-time-ov.patch - -Patch9000: fix-exec-test-error.patch +Patch0000: tcl-8.6.3-autopath.patch +Patch0001: tcl-8.6.8-conf.patch +Patch0002: tcl-8.6.8-hidden.patch +Patch0003: tcl-8.6.5-parallel-make-fix.patch + +Patch0004: stay-out-of-internals-when-nice-interfaces-are-avail.patch +Patch0005: oops.patch +Patch0006: Fix-for-issue-9fd5c629c1-TclOO-aborts-when-a-trace-o.patch +Patch0007: Fix-bug-3c32a3f8bd-segmentation-fault-in-TclOO.c-Rel.patch +Patch0008: Fix-error-message-for-min-math-functions-to-for-for-.patch +Patch0009: Fix-behavior-of-Tcl_GetRange-and-string-range-regard.patch +Patch0010: Fix-11ae2be95d-tip-389-branch-string-range-errors-wi.patch +Patch0011: Improved-overflow-prevention-1.patch +Patch0012: Improved-overflow-prevention-2.patch +Patch0013: 27b682284974d0cd-command-file-delete-avoid-possible-.patch +Patch0014: Fix-handling-of-surrogates-when-TCL_UTF_MAX-3-in-Tcl.patch +Patch0015: Bug-fix-in-Tcl_UtfAtIndex-for-TCL_UTF_MAX-4-only-.-W.patch +Patch0016: new-package.patch +Patch0017: Plug-leak-in-TclSetEnv.patch +Patch0018: closes-d051b77fc18d7340-fixed-segfault-by-integer-ov.patch +Patch0020: amend-after-merge-8.6th-provide-additionally-an-erro.patch +Patch0021: In-registry-protect-keyName-from-being-NULL-This-act.patch +Patch0022: fixes-segfault-00d04c4f12-unfulfilled-base64-strict-.patch +Patch0023: fixes-4ee9b4f3e965a7da5133-result-of-command-time-ov.patch +Patch0024: fix-exec-test-error.patch %description Tcl(Tool Command Language) provides a powerful platform for creating integration applications @@ -116,6 +117,7 @@ make test %defattr(-,root,root) %doc README changes COPYING %{_bindir}/tclsh* +%dir %{_libdir}/%{name}%{MAJOR} %{_datadir}/%{name}%{MAJOR} %{_datadir}/%{name}8 %{_libdir}/lib%{name}%{MAJOR}.so @@ -137,6 +139,12 @@ make test %{_mandir}/mann/* %changelog +* Tue Mar 17 2020 chengquan - 1:8.6.8.8 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:Rollback some patches & add /usr/lib64/tcl* + * Sat Jan 11 2020 zhangguangzhi - 1:8.6.8.7 - Type:bugfix - ID:NA -- Gitee