diff --git a/27b682284974d0cd-command-file-delete-avoid-possible-.patch b/27b682284974d0cd-command-file-delete-avoid-possible-.patch deleted file mode 100644 index 0737d473b1557ddf6eff1f6f93a58ce9055f8ce0..0000000000000000000000000000000000000000 --- a/27b682284974d0cd-command-file-delete-avoid-possible-.patch +++ /dev/null @@ -1,56 +0,0 @@ -From a1e20681a032f9f3ce4c47922ee8509891401691 Mon Sep 17 00:00:00 2001 -From: sebres -Date: Fri, 6 Apr 2018 17:28:56 +0000 -Subject: [PATCH 1079/1800] =?UTF-8?q?[27b682284974d0cd]=20command=20"file?= - =?UTF-8?q?=20delete":=20avoid=20possible=20race=20condition=20if=20file/d?= - =?UTF-8?q?irectory=20deleted=20after=20call=20of=20lstat,=20so=20bypass?= - =?UTF-8?q?=20ENOENT=20error=20code.=20Thanks=20to=20Rainer=20M=C3=BCller?= - =?UTF-8?q?=20(aka=20raimue)?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - generic/tclFCmd.c | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/generic/tclFCmd.c b/generic/tclFCmd.c -index c52cd1e7e..5b2fbe1fa 100644 ---- a/generic/tclFCmd.c -+++ b/generic/tclFCmd.c -@@ -373,14 +373,7 @@ TclFileDeleteCmd( - */ - - if (Tcl_FSLstat(objv[i], &statBuf) != 0) { -- /* -- * Trying to delete a file that does not exist is not considered -- * an error, just a no-op -- */ -- -- if (errno != ENOENT) { -- result = TCL_ERROR; -- } -+ result = TCL_ERROR; - } else if (S_ISDIR(statBuf.st_mode)) { - /* - * We own a reference count on errorBuffer, if it was set as a -@@ -416,8 +409,15 @@ TclFileDeleteCmd( - } - - if (result != TCL_OK) { -- result = TCL_ERROR; - -+ /* -+ * Avoid possible race condition (file/directory deleted after call -+ * of lstat), so bypass ENOENT because not an error, just a no-op -+ */ -+ if (errno == ENOENT) { -+ result = TCL_OK; -+ continue; -+ } - /* - * It is important that we break on error, otherwise we might end - * up owning reference counts on numerous errorBuffers. --- -2.19.1 - diff --git a/Bug-fix-in-Tcl_UtfAtIndex-for-TCL_UTF_MAX-4-only-.-W.patch b/Bug-fix-in-Tcl_UtfAtIndex-for-TCL_UTF_MAX-4-only-.-W.patch deleted file mode 100644 index d2de16f4215bc4c465a3849aaead321b066ade27..0000000000000000000000000000000000000000 --- a/Bug-fix-in-Tcl_UtfAtIndex-for-TCL_UTF_MAX-4-only-.-W.patch +++ /dev/null @@ -1,80 +0,0 @@ -From f2343ead74b78173ed8b13543107a689c408e908 Mon Sep 17 00:00:00 2001 -From: "jan.nijtmans" -Date: Mon, 23 Apr 2018 23:23:00 +0000 -Subject: [PATCH 1121/1800] Bug-fix in Tcl_UtfAtIndex (for TCL_UTF_MAX=4 only). - With test-case (in "string totitle") demonstrating the bug. - ---- - generic/tclUtf.c | 8 ++++++++ - tests/string.test | 11 +++++++++-- - 2 files changed, 17 insertions(+), 2 deletions(-) - -diff --git a/generic/tclUtf.c b/generic/tclUtf.c -index 0d88d36b3..c08464b9d 100644 ---- a/generic/tclUtf.c -+++ b/generic/tclUtf.c -@@ -762,10 +762,18 @@ Tcl_UtfAtIndex( - register int index) /* The position of the desired character. */ - { - Tcl_UniChar ch = 0; -+ int len = 1; - - while (index-- > 0) { -+ len = TclUtfToUniChar(src, &ch); -+ src += len; -+ } -+#if TCL_UTF_MAX == 4 -+ if (!len) { -+ /* Index points at character following High Surrogate */ - src += TclUtfToUniChar(src, &ch); - } -+#endif - return src; - } - -diff --git a/tests/string.test b/tests/string.test -index d69fda44d..868fc25fc 100644 ---- a/tests/string.test -+++ b/tests/string.test -@@ -24,7 +24,7 @@ catch [list package require -exact Tcltest [info patchlevel]] - - testConstraint testobj [expr {[info commands testobj] != {}}] - testConstraint testindexobj [expr {[info commands testindexobj] != {}}] --testConstraint fullutf [expr {[format %c 0x010000] != "\ufffd"}] -+testConstraint tip389 [expr {[string length \U010000] == 2}] - - # Used for constraining memory leak tests - testConstraint memory [llength [info commands memory]] -@@ -291,6 +291,9 @@ test string-5.19 {string index, bytearray object out of bounds} { - test string-5.20 {string index, bytearray object out of bounds} { - string index [binary format I* {0x50515253 0x52}] 20 - } {} -+test string-5.21 {string index, surrogates, bug [11ae2be95dac9417]} tip389 { -+ list [string index a\U100000b 1] [string index a\U100000b 2] [string index a\U100000b 3] -+} [list \U100000 {} b] - - - proc largest_int {} { -@@ -1280,7 +1283,7 @@ test string-12.22 {string range, shimmering binary/index} { - binary scan $s a* x - string range $s $s end - } 000000001 --test string-12.23 {string range, surrogates, bug [11ae2be95dac9417]} fullutf { -+test string-12.23 {string range, surrogates, bug [11ae2be95dac9417]} tip389 { - list [string range a\U100000b 1 1] [string range a\U100000b 2 2] [string range a\U100000b 3 3] - } [list \U100000 {} b] - -@@ -1477,6 +1480,10 @@ test string-17.7 {string totitle, unicode} { - test string-17.8 {string totitle, compiled} { - lindex [string totitle [list aa bb [list cc]]] 0 - } Aa -+test string-17.9 {string totitle, surrogates, bug [11ae2be95dac9417]} tip389 { -+ list [string totitle a\U118c0c 1 1] [string totitle a\U118c0c 2 2] \ -+ [string totitle a\U118c0c 3 3] -+} [list a\U118a0c a\U118c0C a\U118c0C] - - test string-18.1 {string trim} { - list [catch {string trim} msg] $msg --- -2.19.1 - diff --git a/Fix-11ae2be95d-tip-389-branch-string-range-errors-wi.patch b/Fix-11ae2be95d-tip-389-branch-string-range-errors-wi.patch index d16da42f377b4ed06e96dc83f7b4418ad6bc3c6a..bdc2bfb1c4f0dfb3613946af7b8577e947777bfa 100644 --- a/Fix-11ae2be95d-tip-389-branch-string-range-errors-wi.patch +++ b/Fix-11ae2be95d-tip-389-branch-string-range-errors-wi.patch @@ -15,7 +15,7 @@ index f2cda0ca8..63281a85e 100644 @@ -5445,7 +5445,7 @@ TEBCresume( valuePtr->bytes+index, 1); } else { - char buf[TCL_UTF_MAX]; + char buf[TCL_UTF_MAX] = ""; - Tcl_UniChar ch = Tcl_GetUniChar(valuePtr, index); + int ch = Tcl_GetUniChar(valuePtr, index); diff --git a/Fix-behavior-of-Tcl_GetRange-and-string-range-regard.patch b/Fix-behavior-of-Tcl_GetRange-and-string-range-regard.patch deleted file mode 100644 index bd435fabcc8df71a18e7130a683baab5504554a6..0000000000000000000000000000000000000000 --- a/Fix-behavior-of-Tcl_GetRange-and-string-range-regard.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 4199a703dccda415778cc3431696a6bed57ab15c Mon Sep 17 00:00:00 2001 -From: "jan.nijtmans" -Date: Thu, 11 Jan 2018 15:44:05 +0000 -Subject: [PATCH 0834/1800] Fix behavior of Tcl_GetRange() and "string range" - regarding surrogates, when Tcl is compiled with -DTCL_UTF_MAX=4. Partial fix - for bug [11ae2be95dac9417]. Also, fix typo. - ---- - generic/tclStringObj.c | 13 ++++++++++++- - tests/string.test | 4 ++++ - 2 files changed, 16 insertions(+), 1 deletion(-) - -diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c -index 0f238cfb1..1b35c567b 100644 ---- a/generic/tclStringObj.c -+++ b/generic/tclStringObj.c -@@ -533,7 +533,7 @@ Tcl_GetUniChar( - * - * Get the Unicode form of the String object. If the object is not - * already a String object, it will be converted to one. If the String -- * object does not have a Unicode rep, then one is create from the UTF -+ * object does not have a Unicode rep, then one is created from the UTF - * string format. - * - * Results: -@@ -667,6 +667,17 @@ Tcl_GetRange( - stringPtr = GET_STRING(objPtr); - } - -+#if TCL_UTF_MAX == 4 -+ /* See: bug [11ae2be95dac9417] */ -+ if ((first>0) && ((stringPtr->unicode[first]&0xFC00) == 0xDC00) -+ && ((stringPtr->unicode[first-1]&0xFC00) == 0xD800)) { -+ ++first; -+ } -+ if ((last+1numChars) && ((stringPtr->unicode[last+1]&0xFC00) == 0xDC00) -+ && ((stringPtr->unicode[last]&0xFC00) == 0xD800)) { -+ ++last; -+ } -+#endif - return Tcl_NewUnicodeObj(stringPtr->unicode + first, last-first+1); - } - -diff --git a/tests/string.test b/tests/string.test -index bbba5ebec..53f1cfb73 100644 ---- a/tests/string.test -+++ b/tests/string.test -@@ -24,6 +24,7 @@ catch [list package require -exact Tcltest [info patchlevel]] - - testConstraint testobj [expr {[info commands testobj] != {}}] - testConstraint testindexobj [expr {[info commands testindexobj] != {}}] -+testConstraint fullutf [expr {[format %c 0x010000] != "\ufffd"}] - - # Used for constraining memory leak tests - testConstraint memory [llength [info commands memory]] -@@ -1276,6 +1277,9 @@ test string-12.22 {string range, shimmering binary/index} { - binary scan $s a* x - string range $s $s end - } 000000001 -+test string-12.23 {string range, surrogates, bug [11ae2be95dac9417]} fullutf { -+ list [string range a\U100000b 1 1] [string range a\U100000b 2 2] [string range a\U100000b 3 3] -+} [list \U100000 {} b] - - test string-13.1 {string repeat} { - list [catch {string repeat} msg] $msg --- -2.19.1 - diff --git a/Fix-bug-3c32a3f8bd-segmentation-fault-in-TclOO.c-Rel.patch b/Fix-bug-3c32a3f8bd-segmentation-fault-in-TclOO.c-Rel.patch deleted file mode 100644 index 941ba1f48fafe283d9074bf945d0aebd7b5d4d5c..0000000000000000000000000000000000000000 --- a/Fix-bug-3c32a3f8bd-segmentation-fault-in-TclOO.c-Rel.patch +++ /dev/null @@ -1,47 +0,0 @@ -From c8e3d65affc560d3053066d562920223e1780d89 Mon Sep 17 00:00:00 2001 -From: pooryorick -Date: Wed, 1 Nov 2017 21:05:32 +0000 -Subject: [PATCH 0652/1800] Fix bug 3c32a3f8bd, segmentation fault in - TclOO.c/ReleaseClassContents() for a class mixed into one of its instances. - ---- - generic/tclOO.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/generic/tclOO.c b/generic/tclOO.c -index e9ef2ce29..51731d3d1 100644 ---- a/generic/tclOO.c -+++ b/generic/tclOO.c -@@ -1006,8 +1006,18 @@ ReleaseClassContents( - } - for(j=0 ; jmixins.num ; j++) { - Class *mixin = instancePtr->mixins.list[j]; -+ Class *nextMixin = NULL; - if (mixin == clsPtr) { -- instancePtr->mixins.list[j] = NULL; -+ if (j < instancePtr->mixins.num - 1) { -+ nextMixin = instancePtr->mixins.list[j+1]; -+ } -+ if (j == 0) { -+ instancePtr->mixins.num = 0; -+ instancePtr->mixins.list = NULL; -+ } else { -+ instancePtr->mixins.list[j-1] = nextMixin; -+ } -+ instancePtr->mixins.num -= 1; - } - } - if (instancePtr != NULL && !IsRoot(instancePtr)) { -@@ -1181,7 +1191,8 @@ ObjectNamespaceDeleted( - if ((((Command *)oPtr->command)->flags && CMD_IS_DELETED)) { - /* - * Namespace deletion must have been triggered by a trace on command -- * deletion , meaning that -+ * deletion , meaning that ObjectRenamedTrace() is eventually going -+ * to be called . - */ - deleteAlreadyInProgress = 1; - } --- -2.19.1 - diff --git a/Fix-for-issue-9fd5c629c1-TclOO-aborts-when-a-trace-o.patch b/Fix-for-issue-9fd5c629c1-TclOO-aborts-when-a-trace-o.patch deleted file mode 100644 index 608d50a1fe8ef4cb3cfa774e0d6cfe019293dd0a..0000000000000000000000000000000000000000 --- a/Fix-for-issue-9fd5c629c1-TclOO-aborts-when-a-trace-o.patch +++ /dev/null @@ -1,294 +0,0 @@ -From cb0d0668227042f07802ebd4e713577cdf85a116 Mon Sep 17 00:00:00 2001 -From: pooryorick -Date: Mon, 30 Oct 2017 05:19:55 +0000 -Subject: [PATCH 0634/1800] Fix for issue 9fd5c629c1, TclOO - aborts when a - trace on command deletion deletes the object's namespace. - ---- - generic/tclBasic.c | 8 ++++---- - generic/tclFileName.c | 2 +- - generic/tclOO.c | 35 ++++++++++++++++++++++++++--------- - generic/tclOOCall.c | 8 ++++---- - generic/tclOOInt.h | 16 ++++++++-------- - tests/oo.test | 12 ++++++++++++ - 6 files changed, 55 insertions(+), 26 deletions(-) - -diff --git a/generic/tclBasic.c b/generic/tclBasic.c -index d4fa8330b..e6022ac6b 100644 ---- a/generic/tclBasic.c -+++ b/generic/tclBasic.c -@@ -3112,7 +3112,7 @@ Tcl_DeleteCommandFromToken( - /* - * We must delete this command, even though both traces and delete procs - * may try to avoid this (renaming the command etc). Also traces and -- * delete procs may try to delete the command themsevles. This flag -+ * delete procs may try to delete the command themselves. This flag - * declares that a delete is in progress and that recursive deletes should - * be ignored. - */ -@@ -7722,8 +7722,8 @@ ExprRandFunc( - iPtr->flags |= RAND_SEED_INITIALIZED; - - /* -- * Take into consideration the thread this interp is running in order -- * to insure different seeds in different threads (bug #416643) -+ * To ensure different seeds in different threads (bug #416643), -+ * take into consideration the thread this interp is running in. - */ - - iPtr->randSeed = TclpGetClicks() + (PTR2INT(Tcl_GetCurrentThread())<<12); -@@ -9091,7 +9091,7 @@ TclNRCoroutineObjCmd( - TclNRAddCallback(interp, NRCoroutineExitCallback, corPtr, - NULL, NULL, NULL); - -- /* insure that the command is looked up in the correct namespace */ -+ /* ensure that the command is looked up in the correct namespace */ - iPtr->lookupNsPtr = lookupNsPtr; - Tcl_NREvalObj(interp, Tcl_NewListObj(objc-2, objv+2), 0); - iPtr->numLevels--; -diff --git a/generic/tclFileName.c b/generic/tclFileName.c -index 150fb8c4d..15fcde74a 100644 ---- a/generic/tclFileName.c -+++ b/generic/tclFileName.c -@@ -1904,7 +1904,7 @@ TclGlob( - } - - /* -- * To process a [glob] invokation, this function may be called multiple -+ * To process a [glob] invocation, this function may be called multiple - * times. Each time, the previously discovered filenames are in the - * interpreter result. We stash that away here so the result is free for - * error messsages. -diff --git a/generic/tclOO.c b/generic/tclOO.c -index 73acce844..e9ef2ce29 100644 ---- a/generic/tclOO.c -+++ b/generic/tclOO.c -@@ -880,7 +880,7 @@ ObjectRenamedTrace( - * 2950259] - */ - -- if (((Namespace *) oPtr->namespacePtr)->earlyDeleteProc != NULL) { -+ if (oPtr->namespacePtr && ((Namespace *) oPtr->namespacePtr)->earlyDeleteProc != NULL) { - Tcl_DeleteNamespace(oPtr->namespacePtr); - } - if (oPtr->classPtr) { -@@ -1168,7 +1168,7 @@ ObjectNamespaceDeleted( - Class *clsPtr = oPtr->classPtr, *mixinPtr; - Method *mPtr; - Tcl_Obj *filterObj, *variableObj; -- int i; -+ int deleteAlreadyInProgress = 0, i; - - /* - * Instruct everyone to no longer use any allocated fields of the object. -@@ -1178,6 +1178,14 @@ ObjectNamespaceDeleted( - */ - - if (oPtr->command) { -+ if ((((Command *)oPtr->command)->flags && CMD_IS_DELETED)) { -+ /* -+ * Namespace deletion must have been triggered by a trace on command -+ * deletion , meaning that -+ */ -+ deleteAlreadyInProgress = 1; -+ } -+ - Tcl_DeleteCommandFromToken(oPtr->fPtr->interp, oPtr->command); - } - if (oPtr->myCommand) { -@@ -1273,14 +1281,17 @@ ObjectNamespaceDeleted( - - if (clsPtr->subclasses.list) { - ckfree(clsPtr->subclasses.list); -+ clsPtr->subclasses.list = NULL; - clsPtr->subclasses.num = 0; - } - if (clsPtr->instances.list) { - ckfree(clsPtr->instances.list); -+ clsPtr->instances.list = NULL; - clsPtr->instances.num = 0; - } - if (clsPtr->mixinSubs.list) { - ckfree(clsPtr->mixinSubs.list); -+ clsPtr->mixinSubs.list = NULL; - clsPtr->mixinSubs.num = 0; - } - -@@ -1305,7 +1316,13 @@ ObjectNamespaceDeleted( - * Delete the object structure itself. - */ - -- DelRef(oPtr); -+ if (deleteAlreadyInProgress) { -+ oPtr->classPtr = NULL; -+ oPtr->namespacePtr = NULL; -+ } else { -+ DelRef(oPtr); -+ } -+ - } - - /* -@@ -2433,7 +2450,7 @@ Tcl_ObjectSetMetadata( - * - * PublicObjectCmd, PrivateObjectCmd, TclOOInvokeObject -- - * -- * Main entry point for object invokations. The Public* and Private* -+ * Main entry point for object invocations. The Public* and Private* - * wrapper functions (implementations of both object instance commands - * and [my]) are just thin wrappers round the main TclOOObjectCmdCore - * function. Note that the core is function is NRE-aware. -@@ -2518,8 +2535,8 @@ TclOOInvokeObject( - * - * TclOOObjectCmdCore, FinalizeObjectCall -- - * -- * Main function for object invokations. Does call chain creation, -- * management and invokation. The function FinalizeObjectCall exists to -+ * Main function for object invocations. Does call chain creation, -+ * management and invocation. The function FinalizeObjectCall exists to - * clean up after the non-recursive processing of TclOOObjectCmdCore. - * - * ---------------------------------------------------------------------- -@@ -2531,7 +2548,7 @@ TclOOObjectCmdCore( - Tcl_Interp *interp, /* The interpreter containing the object. */ - int objc, /* How many arguments are being passed in. */ - Tcl_Obj *const *objv, /* The array of arguments. */ -- int flags, /* Whether this is an invokation through the -+ int flags, /* Whether this is an invocation through the - * public or the private command interface. */ - Class *startCls) /* Where to start in the call chain, or NULL - * if we are to start at the front with -@@ -2720,7 +2737,7 @@ Tcl_ObjectContextInvokeNext( - * call context while we process the body. However, need to adjust the - * argument-skip control because we're guaranteed to have a single prefix - * arg (i.e., 'next') and not the variable amount that can happen because -- * method invokations (i.e., '$obj meth' and 'my meth'), constructors -+ * method invocations (i.e., '$obj meth' and 'my meth'), constructors - * (i.e., '$cls new' and '$cls create obj') and destructors (no args at - * all) come through the same code. - */ -@@ -2789,7 +2806,7 @@ TclNRObjectContextInvokeNext( - * call context while we process the body. However, need to adjust the - * argument-skip control because we're guaranteed to have a single prefix - * arg (i.e., 'next') and not the variable amount that can happen because -- * method invokations (i.e., '$obj meth' and 'my meth'), constructors -+ * method invocations (i.e., '$obj meth' and 'my meth'), constructors - * (i.e., '$cls new' and '$cls create obj') and destructors (no args at - * all) come through the same code. - */ -diff --git a/generic/tclOOCall.c b/generic/tclOOCall.c -index 3e4f561d2..d4e1e34d5 100644 ---- a/generic/tclOOCall.c -+++ b/generic/tclOOCall.c -@@ -233,7 +233,7 @@ FreeMethodNameRep( - * TclOOInvokeContext -- - * - * Invokes a single step along a method call-chain context. Note that the -- * invokation of a step along the chain can cause further steps along the -+ * invocation of a step along the chain can cause further steps along the - * chain to be invoked. Note that this function is written to be as light - * in stack usage as possible. - * -@@ -830,7 +830,7 @@ AddMethodToCallChain( - * Call chain semantics states that methods come as *late* in the - * call chain as possible. This is done by copying down the - * following methods. Note that this does not change the number of -- * method invokations in the call chain; it just rearranges them. -+ * method invocations in the call chain; it just rearranges them. - */ - - Class *declCls = callPtr->chain[i].filterDeclarer; -@@ -935,7 +935,7 @@ IsStillValid( - * TclOOGetCallContext -- - * - * Responsible for constructing the call context, an ordered list of all -- * method implementations to be called as part of a method invokation. -+ * method implementations to be called as part of a method invocation. - * This method is central to the whole operation of the OO system. - * - * ---------------------------------------------------------------------- -@@ -1517,7 +1517,7 @@ TclOORenderCallChain( - /* - * Do the actual construction of the descriptions. They consist of a list - * of triples that describe the details of how a method is understood. For -- * each triple, the first word is the type of invokation ("method" is -+ * each triple, the first word is the type of invocation ("method" is - * normal, "unknown" is special because it adds the method name as an - * extra argument when handled by some method types, and "filter" is - * special because it's a filter method). The second word is the name of -diff --git a/generic/tclOOInt.h b/generic/tclOOInt.h -index 476446dbb..11ba698a3 100644 ---- a/generic/tclOOInt.h -+++ b/generic/tclOOInt.h -@@ -149,8 +149,8 @@ typedef struct Object { - struct Foundation *fPtr; /* The basis for the object system. Putting - * this here allows the avoidance of quite a - * lot of hash lookups on the critical path -- * for object invokation and creation. */ -- Tcl_Namespace *namespacePtr;/* This object's tame namespace. */ -+ * for object invocation and creation. */ -+ Tcl_Namespace *namespacePtr;/* This object's namespace. */ - Tcl_Command command; /* Reference to this object's public - * command. */ - Tcl_Command myCommand; /* Reference to this object's internal -@@ -162,12 +162,12 @@ typedef struct Object { - /* Classes mixed into this object. */ - LIST_STATIC(Tcl_Obj *) filters; - /* List of filter names. */ -- struct Class *classPtr; /* All classes have this non-NULL; it points -- * to the class structure. Everything else has -- * this NULL. */ -+ struct Class *classPtr; /* This is non-NULL for all classes, and NULL -+ * for everything else. It points to the class -+ * structure. */ - int refCount; /* Number of strong references to this object. - * Note that there may be many more weak -- * references; this mechanism is there to -+ * references; this mechanism exists to - * avoid Tcl_Preserve. */ - int flags; - int creationEpoch; /* Unique value to make comparisons of objects -@@ -323,7 +323,7 @@ typedef struct Foundation { - } Foundation; - - /* -- * A call context structure is built when a method is called. They contain the -+ * A call context structure is built when a method is called. It contains the - * chain of method implementations that are to be invoked by a particular - * call, and the process of calling walks the chain, with the [next] command - * proceeding to the next entry in the chain. -@@ -334,7 +334,7 @@ typedef struct Foundation { - struct MInvoke { - Method *mPtr; /* Reference to the method implementation - * record. */ -- int isFilter; /* Whether this is a filter invokation. */ -+ int isFilter; /* Whether this is a filter invocation. */ - Class *filterDeclarer; /* What class decided to add the filter; if - * NULL, it was added by the object. */ - }; -diff --git a/tests/oo.test b/tests/oo.test -index 2a6eb8003..6268dc6e0 100644 ---- a/tests/oo.test -+++ b/tests/oo.test -@@ -1482,6 +1482,18 @@ test oo-11.4 {OO: cleanup} { - lappend result [bar0 destroy] [oo::object create foo] [foo destroy] \ - [oo::object create bar2] [bar2 destroy] - } {1 {can't create object "foo": command already exists with that name} destroyed {} ::foo {} ::bar2 {}} -+test oo-11.5 {OO: cleanup} { -+ oo::class create obj1 -+ -+ trace add command obj1 delete {apply {{name1 name2 action} { -+ set namespace [info object namespace $name1] -+ namespace delete $namespace -+ }}} -+ -+ rename obj1 {} -+ # No segmentation fault -+ return done -+} done - - test oo-12.1 {OO: filters} { - oo::class create Aclass --- -2.19.1 - diff --git a/Fix-handling-of-surrogates-when-TCL_UTF_MAX-3-in-Tcl.patch b/Fix-handling-of-surrogates-when-TCL_UTF_MAX-3-in-Tcl.patch deleted file mode 100644 index 37776f504f39dc8b779901c7221fa181cc86bf95..0000000000000000000000000000000000000000 --- a/Fix-handling-of-surrogates-when-TCL_UTF_MAX-3-in-Tcl.patch +++ /dev/null @@ -1,148 +0,0 @@ -From ad342ab381c2c25e3b9fb35f7d989c1da6dbc0bc Mon Sep 17 00:00:00 2001 -From: "jan.nijtmans" -Date: Thu, 28 Dec 2017 18:49:24 +0000 -Subject: [PATCH 0807/1800] Fix handling of surrogates (when TCL_UTF_MAX > 3) - in Tcl_UtfNcmp()/Tcl_UtfNcasecmp()/TclUtfCasecmp(). Backported from - core-8-branch, where this was fixed already. - ---- - generic/tclPkg.c | 6 ++--- - generic/tclUtf.c | 57 ++++++++++++++++++++++++------------------------ - 2 files changed, 32 insertions(+), 31 deletions(-) - -diff --git a/generic/tclPkg.c b/generic/tclPkg.c -index 4f6faa87c..6d826a96d 100644 ---- a/generic/tclPkg.c -+++ b/generic/tclPkg.c -@@ -414,7 +414,7 @@ PkgRequireCore( - - continue; - } -- -+ - /* Check satisfaction of requirements before considering the current version further. */ - if (reqc > 0) { - satisfies = SomeRequirementSatisfied(availVersion, reqc, reqv); -@@ -424,7 +424,7 @@ PkgRequireCore( - continue; - } - } -- -+ - if (bestPtr != NULL) { - int res = CompareVersions(availVersion, bestVersion, NULL); - -@@ -485,7 +485,7 @@ PkgRequireCore( - /* - * Clean up memorized internal reps, if any. - */ -- -+ - if (bestVersion != NULL) { - ckfree(bestVersion); - bestVersion = NULL; -diff --git a/generic/tclUtf.c b/generic/tclUtf.c -index c60e99ed8..6255a4e24 100644 ---- a/generic/tclUtf.c -+++ b/generic/tclUtf.c -@@ -726,8 +726,7 @@ Tcl_UniCharAtIndex( - { - Tcl_UniChar ch = 0; - -- while (index >= 0) { -- index--; -+ while (index-- >= 0) { - src += TclUtfToUniChar(src, &ch); - } - return ch; -@@ -757,8 +756,7 @@ Tcl_UtfAtIndex( - { - Tcl_UniChar ch = 0; - -- while (index > 0) { -- index--; -+ while (index-- > 0) { - src += TclUtfToUniChar(src, &ch); - } - return src; -@@ -1072,16 +1070,17 @@ Tcl_UtfNcmp( - - cs += TclUtfToUniChar(cs, &ch1); - ct += TclUtfToUniChar(ct, &ch2); -+ if (ch1 != ch2) { - #if TCL_UTF_MAX == 4 -- /* map high surrogate characters to values > 0xffff */ -- if ((ch1 & 0xFC00) == 0xD800) { -- ch1 += 0x4000; -- } -- if ((ch2 & 0xFC00) == 0xD800) { -- ch2 += 0x4000; -- } -+ /* Surrogates always report higher than non-surrogates */ -+ if (((ch1 & 0xFC00) == 0xD800)) { -+ if ((ch2 & 0xFC00) != 0xD800) { -+ return ch1; -+ } -+ } else if ((ch2 & 0xFC00) == 0xD800) { -+ return -ch2; -+ } - #endif -- if (ch1 != ch2) { - return (ch1 - ch2); - } - } -@@ -1122,16 +1121,17 @@ Tcl_UtfNcasecmp( - */ - cs += TclUtfToUniChar(cs, &ch1); - ct += TclUtfToUniChar(ct, &ch2); -+ if (ch1 != ch2) { - #if TCL_UTF_MAX == 4 -- /* map high surrogate characters to values > 0xffff */ -- if ((ch1 & 0xFC00) == 0xD800) { -- ch1 += 0x4000; -- } -- if ((ch2 & 0xFC00) == 0xD800) { -- ch2 += 0x4000; -- } -+ /* Surrogates always report higher than non-surrogates */ -+ if (((ch1 & 0xFC00) == 0xD800)) { -+ if ((ch2 & 0xFC00) != 0xD800) { -+ return ch1; -+ } -+ } else if ((ch2 & 0xFC00) == 0xD800) { -+ return -ch2; -+ } - #endif -- if (ch1 != ch2) { - ch1 = Tcl_UniCharToLower(ch1); - ch2 = Tcl_UniCharToLower(ch2); - if (ch1 != ch2) { -@@ -1170,16 +1170,17 @@ TclUtfCasecmp( - while (*cs && *ct) { - cs += TclUtfToUniChar(cs, &ch1); - ct += TclUtfToUniChar(ct, &ch2); -+ if (ch1 != ch2) { - #if TCL_UTF_MAX == 4 -- /* map high surrogate characters to values > 0xffff */ -- if ((ch1 & 0xFC00) == 0xD800) { -- ch1 += 0x4000; -- } -- if ((ch2 & 0xFC00) == 0xD800) { -- ch2 += 0x4000; -- } -+ /* Surrogates always report higher than non-surrogates */ -+ if (((ch1 & 0xFC00) == 0xD800)) { -+ if ((ch2 & 0xFC00) != 0xD800) { -+ return ch1; -+ } -+ } else if ((ch2 & 0xFC00) == 0xD800) { -+ return -ch2; -+ } - #endif -- if (ch1 != ch2) { - ch1 = Tcl_UniCharToLower(ch1); - ch2 = Tcl_UniCharToLower(ch2); - if (ch1 != ch2) { --- -2.19.1 - diff --git a/In-registry-protect-keyName-from-being-NULL-This-act.patch b/In-registry-protect-keyName-from-being-NULL-This-act.patch deleted file mode 100644 index 121e24e37e43e54b3ed37d08da6981cf5176da1e..0000000000000000000000000000000000000000 --- a/In-registry-protect-keyName-from-being-NULL-This-act.patch +++ /dev/null @@ -1,150 +0,0 @@ -From eb3a1a3eaa3b789fc4cf34746a29245ccb1f57ea Mon Sep 17 00:00:00 2001 -From: "jan.nijtmans" -Date: Thu, 4 Oct 2018 19:22:37 +0000 -Subject: [PATCH 1432/1800] In registry, protect "keyName" from being NULL: - This actually can lead to crashed (I experienced this ...). Update version to - 1.3.3, and align implementation in all branches (core-8-6-branch and higher) - ---- - library/reg/pkgIndex.tcl | 4 ++-- - win/tclWinReg.c | 34 +++++++++++++++------------------- - 2 files changed, 17 insertions(+), 21 deletions(-) - -diff --git a/library/reg/pkgIndex.tcl b/library/reg/pkgIndex.tcl -index b1fe234c4..ee559b5a8 100755 ---- a/library/reg/pkgIndex.tcl -+++ b/library/reg/pkgIndex.tcl -@@ -1,9 +1,9 @@ - if {([info commands ::tcl::pkgconfig] eq "") - || ([info sharedlibextension] ne ".dll")} return - if {[::tcl::pkgconfig get debug]} { -- package ifneeded registry 1.3.2 \ -+ package ifneeded registry 1.3.3 \ - [list load [file join $dir tclreg13g.dll] registry] - } else { -- package ifneeded registry 1.3.2 \ -+ package ifneeded registry 1.3.3 \ - [list load [file join $dir tclreg13.dll] registry] - } -diff --git a/win/tclWinReg.c b/win/tclWinReg.c -index de48b9b4b..f3d7a07c8 100644 ---- a/win/tclWinReg.c -+++ b/win/tclWinReg.c -@@ -22,13 +22,6 @@ - #endif - #include - --#ifndef UNICODE --# undef Tcl_WinTCharToUtf --# define Tcl_WinTCharToUtf(a,b,c) Tcl_ExternalToUtfDString(NULL,a,b,c) --# undef Tcl_WinUtfToTChar --# define Tcl_WinUtfToTChar(a,b,c) Tcl_UtfToExternalDString(NULL,a,b,c) --#endif /* !UNICODE */ -- - /* - * Ensure that we can say which registry is being accessed. - */ -@@ -163,7 +156,7 @@ Registry_Init( - cmd = Tcl_CreateObjCommand(interp, "registry", RegistryObjCmd, - interp, DeleteCmd); - Tcl_SetAssocData(interp, REGISTRY_ASSOC_KEY, NULL, cmd); -- return Tcl_PkgProvide(interp, "registry", "1.3.2"); -+ return Tcl_PkgProvide(interp, "registry", "1.3.3"); - } - - /* -@@ -414,12 +407,12 @@ DeleteKey( - */ - - keyName = Tcl_GetString(keyNameObj); -- buffer = ckalloc(keyNameObj->length + 1); -+ buffer = Tcl_Alloc(keyNameObj->length + 1); - strcpy(buffer, keyName); - - if (ParseKeyName(interp, buffer, &hostName, &rootKey, - &keyName) != TCL_OK) { -- ckfree(buffer); -+ Tcl_Free(buffer); - return TCL_ERROR; - } - -@@ -427,7 +420,7 @@ DeleteKey( - Tcl_SetObjResult(interp, - Tcl_NewStringObj("bad key: cannot delete root keys", -1)); - Tcl_SetErrorCode(interp, "WIN_REG", "DEL_ROOT_KEY", NULL); -- ckfree(buffer); -+ Tcl_Free(buffer); - return TCL_ERROR; - } - -@@ -442,7 +435,7 @@ DeleteKey( - mode |= KEY_ENUMERATE_SUB_KEYS | DELETE; - result = OpenSubKey(hostName, rootKey, keyName, mode, 0, &subkey); - if (result != ERROR_SUCCESS) { -- ckfree(buffer); -+ Tcl_Free(buffer); - if (result == ERROR_FILE_NOT_FOUND) { - return TCL_OK; - } -@@ -470,7 +463,7 @@ DeleteKey( - } - - RegCloseKey(subkey); -- ckfree(buffer); -+ Tcl_Free(buffer); - return result; - } - -@@ -603,8 +596,7 @@ GetKeyNames( - } - break; - } -- Tcl_WinTCharToUtf(buffer, bufSize * sizeof(TCHAR), &ds); -- name = Tcl_DStringValue(&ds); -+ name = Tcl_WinTCharToUtf(buffer, bufSize * sizeof(TCHAR), &ds); - if (pattern && !Tcl_StringMatch(name, pattern)) { - Tcl_DStringFree(&ds); - continue; -@@ -950,7 +942,7 @@ OpenKey( - - keyName = Tcl_GetString(keyNameObj); - length = keyNameObj->length; -- buffer = ckalloc(length + 1); -+ buffer = Tcl_Alloc(length + 1); - strcpy(buffer, keyName); - - result = ParseKeyName(interp, buffer, &hostName, &rootKey, &keyName); -@@ -966,7 +958,7 @@ OpenKey( - } - } - -- ckfree(buffer); -+ Tcl_Free(buffer); - return result; - } - -@@ -1019,7 +1011,9 @@ OpenSubKey( - * this key must be closed by the caller. - */ - -- keyName = (char *) Tcl_WinUtfToTChar(keyName, -1, &buf); -+ if (keyName) { -+ keyName = (char *) Tcl_WinUtfToTChar(keyName, -1, &buf); -+ } - if (flags & REG_CREATE) { - DWORD create; - -@@ -1037,7 +1031,9 @@ OpenSubKey( - result = RegOpenKeyEx(rootKey, (TCHAR *)keyName, 0, mode, - keyPtr); - } -- Tcl_DStringFree(&buf); -+ if (keyName) { -+ Tcl_DStringFree(&buf); -+ } - - /* - * Be sure to close the root key since we are done with it now. --- -2.19.1 - diff --git a/Plug-leak-in-TclSetEnv.patch b/Plug-leak-in-TclSetEnv.patch deleted file mode 100644 index 4024c3f3a4c19ec4efb5b3b038f0799ab128a3c7..0000000000000000000000000000000000000000 --- a/Plug-leak-in-TclSetEnv.patch +++ /dev/null @@ -1,43 +0,0 @@ -From fdc88b9a1be8cdd3d3e98406f244edfec6050771 Mon Sep 17 00:00:00 2001 -From: pooryorick -Date: Mon, 18 Jun 2018 05:59:22 +0000 -Subject: [PATCH 1260/1800] Plug leak in TclSetEnv. - ---- - generic/tclEnv.c | 4 ++++ - tests/pkgIndex.tcl | 8 ++++---- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/generic/tclEnv.c b/generic/tclEnv.c -index 8cc4b746a..c559c69b8 100644 ---- a/generic/tclEnv.c -+++ b/generic/tclEnv.c -@@ -730,6 +730,10 @@ TclFinalizeEnvironment(void) - ckfree(env.cache); - env.cache = NULL; - env.cacheSize = 0; -+ if ((env.ourEnviron != NULL)) { -+ ckfree(env.ourEnviron); -+ env.ourEnviron = NULL; -+ } - #ifndef USE_PUTENV - env.ourEnvironSize = 0; - #endif -diff --git a/tests/pkgIndex.tcl b/tests/pkgIndex.tcl -index 48ab71b73..0feb0eb38 100644 ---- a/tests/pkgIndex.tcl -+++ b/tests/pkgIndex.tcl -@@ -1,6 +1,6 @@ - #! /usr/bin/env tclsh - --package ifneeded tcltests 0.1 { -- source [file dirname [file dirname [file normalize [info script]/...]]]/tcltests.tcl -- package provide tcltests 0.1 --} -+package ifneeded tcltests 0.1 " -+ source [list $dir]/tcltests.tcl -+ package provide tcltests 0.1 -+" --- -2.19.1 - diff --git a/amend-after-merge-8.6th-provide-additionally-an-erro.patch b/amend-after-merge-8.6th-provide-additionally-an-erro.patch deleted file mode 100644 index ddc4c0fe3378125631aaa7d58a80ecff0c066ab2..0000000000000000000000000000000000000000 --- a/amend-after-merge-8.6th-provide-additionally-an-erro.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d72e2b37fd678418e2ee74b681501337a4c2be4d Mon Sep 17 00:00:00 2001 -From: sebres -Date: Thu, 26 Jul 2018 18:56:41 +0000 -Subject: [PATCH 1332/1800] amend after merge: 8.6th provide additionally an - error-code (so missing `errCode = "OVERFLOW"`) - ---- - generic/tclStringObj.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c -index 3139be44d..493378c38 100644 ---- a/generic/tclStringObj.c -+++ b/generic/tclStringObj.c -@@ -1878,6 +1878,7 @@ Tcl_AppendFormatToObj( - width = strtoul(format, &end, 10); - if (width < 0) { - msg = overflow; -+ errCode = "OVERFLOW"; - goto errorMsg; - } - format = end; --- -2.19.1 - diff --git a/closes-d051b77fc18d7340-fixed-segfault-by-integer-ov.patch b/closes-d051b77fc18d7340-fixed-segfault-by-integer-ov.patch deleted file mode 100644 index 1a4507ed98200506f9f32557ef8a9ddb0c09401d..0000000000000000000000000000000000000000 --- a/closes-d051b77fc18d7340-fixed-segfault-by-integer-ov.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 20c0ed50e35e6075f82eb87fdeb7a13e522b710a Mon Sep 17 00:00:00 2001 -From: sebres -Date: Thu, 26 Jul 2018 15:57:38 +0000 -Subject: [PATCH 1329/1800] closes [d051b77fc18d7340]: fixed segfault by - integer overflow (if width by format like "%4000000000g" overflows to - negative values by scan of length) - ---- - generic/tclStringObj.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c -index 996be77ee..462ef0424 100644 ---- a/generic/tclStringObj.c -+++ b/generic/tclStringObj.c -@@ -1938,6 +1938,10 @@ Tcl_AppendFormatToObj( - width = 0; - if (isdigit(UCHAR(ch))) { - width = strtoul(format, &end, 10); -+ if (width < 0) { -+ msg = overflow; -+ goto errorMsg; -+ } - format = end; - step = TclUtfToUniChar(format, &ch); - } else if (ch == '*') { --- -2.19.1 - diff --git a/fixes-4ee9b4f3e965a7da5133-result-of-command-time-ov.patch b/fixes-4ee9b4f3e965a7da5133-result-of-command-time-ov.patch deleted file mode 100644 index 3811d47f454ba45d48b21e8483e731bfdb21566c..0000000000000000000000000000000000000000 --- a/fixes-4ee9b4f3e965a7da5133-result-of-command-time-ov.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b985529f9905b326d7da711ffbe28d80418c7ef8 Mon Sep 17 00:00:00 2001 -From: sebres -Date: Mon, 28 Jan 2019 16:12:56 +0000 -Subject: [PATCH 1693/1800] fixes [4ee9b4f3e965a7da5133]: result of command - `time` overflows by single iteration longer as 35 minutes (uses wide-int - instead of int as result now). - ---- - generic/tclCmdMZ.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c -index db4e57b1e..b1ba3ae01 100644 ---- a/generic/tclCmdMZ.c -+++ b/generic/tclCmdMZ.c -@@ -3931,7 +3931,7 @@ Tcl_TimeObjCmd( - * Use int obj since we know time is not fractional. [Bug 1202178] - */ - -- objs[0] = Tcl_NewIntObj((count <= 0) ? 0 : (int) totalMicroSec); -+ objs[0] = Tcl_NewWideIntObj((count <= 0) ? 0 : (Tcl_WideInt)totalMicroSec); - } else { - objs[0] = Tcl_NewDoubleObj(totalMicroSec/count); - } --- -2.19.1 - diff --git a/fixes-segfault-00d04c4f12-unfulfilled-base64-strict-.patch b/fixes-segfault-00d04c4f12-unfulfilled-base64-strict-.patch deleted file mode 100644 index 476970e7be1d926a111e5103db98f0acea08f48c..0000000000000000000000000000000000000000 --- a/fixes-segfault-00d04c4f12-unfulfilled-base64-strict-.patch +++ /dev/null @@ -1,43 +0,0 @@ -From a6ff061087eaf644eb30f0e8334059c5cbb0dbc1 Mon Sep 17 00:00:00 2001 -From: sebres -Date: Thu, 15 Nov 2018 22:31:39 +0000 -Subject: [PATCH 1592/1800] fixes segfault [00d04c4f12], unfulfilled base64 - (strict and non-strict mode, etc). - ---- - generic/tclBinary.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/generic/tclBinary.c b/generic/tclBinary.c -index bb918f27f..571eb07b1 100644 ---- a/generic/tclBinary.c -+++ b/generic/tclBinary.c -@@ -2914,6 +2914,11 @@ BinaryDecode64( - } else if (i > 1) { - c = '='; - } else { -+ if (strict && i <= 1) { -+ /* single resp. unfulfilled char (each 4th next single char) -+ * is rather bad64 error case in strict mode */ -+ goto bad64; -+ } - cut += 3; - break; - } -@@ -2944,9 +2949,11 @@ BinaryDecode64( - value = (value << 6) | 0x3e; - } else if (c == '/') { - value = (value << 6) | 0x3f; -- } else if (c == '=') { -+ } else if (c == '=' && ( -+ !strict || i > 1) /* "=" and "a=" is rather bad64 error case in strict mode */ -+ ) { - value <<= 6; -- cut++; -+ if (i) cut++; - } else if (strict || !isspace(c)) { - goto bad64; - } else { --- -2.19.1 - diff --git a/new-package.patch b/new-package.patch deleted file mode 100644 index 2a943fdbd3605078c2a6570ab792f7cbba9d0771..0000000000000000000000000000000000000000 --- a/new-package.patch +++ /dev/null @@ -1,155 +0,0 @@ -From 07fa7f623c1efa576128d3710689efed2bc427a0 Mon Sep 17 00:00:00 2001 -From: pooryorick -Date: Sat, 16 Jun 2018 17:55:31 +0000 -Subject: [PATCH 1251/1800] new package tcltests exclude some exec.test - tests when running under valgrind - ---- - tests/all.tcl | 9 +++++++++ - tests/exec.test | 25 +++++++++++++++---------- - tests/ioCmd.test | 1 - - tests/pkgIndex.tcl | 6 ++++++ - 4 files changed, 30 insertions(+), 11 deletions(-) - create mode 100644 tests/pkgIndex.tcl - -diff --git a/tests/all.tcl b/tests/all.tcl -index 69a16ba0c..ad372dbb4 100644 ---- a/tests/all.tcl -+++ b/tests/all.tcl -@@ -18,5 +18,14 @@ configure {*}$argv -testdir [file dir [info script]] - if {[singleProcess]} { - interp debug {} -frame 1 - } -+ -+set testsdir [file dirname [file dirname [file normalize [info script]/...]]] -+lappend auto_path $testsdir {*}[apply {{testsdir args} { -+ lmap x $args { -+ if {$x eq $testsdir} continue -+ lindex $x -+ } -+}} $testsdir {*}$auto_path] -+ - runAllTests - proc exit args {} -diff --git a/tests/exec.test b/tests/exec.test -index 5542f3d8d..6570e5723 100644 ---- a/tests/exec.test -+++ b/tests/exec.test -@@ -11,9 +11,14 @@ - # See the file "license.terms" for information on usage and redistribution of - # this file, and for a DISCLAIMER OF ALL WARRANTIES. - -+# There is no point in running Valgrind on cases where [exec] forks but then -+# fails and the child process doesn't go through full cleanup. -+ - package require tcltest 2 - namespace import -force ::tcltest::* - -+package require tcltests -+ - # All tests require the "exec" command. - # Skip them if exec is not defined. - testConstraint exec [llength [info commands exec]] -@@ -325,11 +330,11 @@ test exec-8.2 {long input and output} {exec} { - - # Commands that return errors. - --test exec-9.1 {commands returning errors} {exec} { -+test exec-9.1 {commands returning errors} {exec notValgrind} { - set x [catch {exec gorp456} msg] - list $x [string tolower $msg] [string tolower $errorCode] - } {1 {couldn't execute "gorp456": no such file or directory} {posix enoent {no such file or directory}}} --test exec-9.2 {commands returning errors} {exec} { -+test exec-9.2 {commands returning errors} {exec notValgrind} { - string tolower [list [catch {exec [interpreter] echo foo | foo123} msg] $msg $errorCode] - } {1 {couldn't execute "foo123": no such file or directory} {posix enoent {no such file or directory}}} - test exec-9.3 {commands returning errors} -constraints {exec stdio} -body { -@@ -339,7 +344,7 @@ test exec-9.4 {commands returning errors} -constraints {exec stdio} -body { - exec [interpreter] $path(exit) 43 | [interpreter] $path(echo) "foo bar" - } -returnCodes error -result {foo bar - child process exited abnormally} --test exec-9.5 {commands returning errors} -constraints {exec stdio} -body { -+test exec-9.5 {commands returning errors} -constraints {exec stdio notValgrind} -body { - exec gorp456 | [interpreter] echo a b c - } -returnCodes error -result {couldn't execute "gorp456": no such file or directory} - test exec-9.6 {commands returning errors} -constraints {exec} -body { -@@ -428,13 +433,13 @@ test exec-10.19 {errors in exec invocation} -constraints {exec} -body { - exec cat >@ $f - } -returnCodes error -result "channel \"$f\" wasn't opened for writing" - close $f --test exec-10.20 {errors in exec invocation} -constraints {exec} -body { -+test exec-10.20 {errors in exec invocation} -constraints {exec notValgrind} -body { - exec ~non_existent_user/foo/bar - } -returnCodes error -result {user "non_existent_user" doesn't exist} --test exec-10.21 {errors in exec invocation} -constraints {exec} -body { -+test exec-10.21 {errors in exec invocation} -constraints {exec notValgrind} -body { - exec [interpreter] true | ~xyzzy_bad_user/x | false - } -returnCodes error -result {user "xyzzy_bad_user" doesn't exist} --test exec-10.22 {errors in exec invocation} -constraints exec -body { -+test exec-10.22 {errors in exec invocation} -constraints {exec notValgrind} -body { - exec echo test > ~non_existent_user/foo/bar - } -returnCodes error -result {user "non_existent_user" doesn't exist} - # Commands in background. -@@ -510,7 +515,7 @@ test exec-13.1 {setting errorCode variable} {exec} { - test exec-13.2 {setting errorCode variable} {exec} { - list [catch {exec [interpreter] $path(cat) > a/b/c} msg] [string tolower $errorCode] - } {1 {posix enoent {no such file or directory}}} --test exec-13.3 {setting errorCode variable} {exec} { -+test exec-13.3 {setting errorCode variable} {exec notValgrind} { - set x [catch {exec _weird_cmd_} msg] - list $x [string tolower $msg] [lindex $errorCode 0] \ - [string tolower [lrange $errorCode 2 end]] -@@ -548,7 +553,7 @@ test exec-14.2 {-keepnewline switch} -constraints {exec} -body { - test exec-14.3 {unknown switch} -constraints {exec} -body { - exec -gorp - } -returnCodes error -result {bad option "-gorp": must be -ignorestderr, -keepnewline, or --} --test exec-14.4 {-- switch} -constraints {exec} -body { -+test exec-14.4 {-- switch} -constraints {exec notValgrind} -body { - exec -- -gorp - } -returnCodes error -result {couldn't execute "-gorp": no such file or directory} - test exec-14.5 {-ignorestderr switch} {exec} { -@@ -662,7 +667,7 @@ test exec-18.2 {exec cat deals with weird file names} -body { - # Note that this test cannot be adapted to work on Windows; that platform has - # no kernel support for an analog of O_APPEND. OTOH, that means we can assume - # that there is a POSIX shell... --test exec-19.1 {exec >> uses O_APPEND} -constraints {exec unix} -setup { -+test exec-19.1 {exec >> uses O_APPEND} -constraints {exec unix notValgrind} -setup { - set tmpfile [makeFile {0} tmpfile.exec-19.1] - } -body { - # Note that we have to allow for the current contents of the temporary -@@ -675,7 +680,7 @@ test exec-19.1 {exec >> uses O_APPEND} -constraints {exec unix} -setup { - {for a in a b c; do sleep 1; echo $a; done} >>$tmpfile & - exec /bin/sh -c \ - {for a in d e f; do sleep 1; echo $a >&2; done} 2>>$tmpfile & -- # The above four shell invokations take about 3 seconds to finish, so allow -+ # The above four shell invocations take about 3 seconds to finish, so allow - # 5s (in case the machine is busy) - after 5000 - # Check that no bytes have got lost through mixups with overlapping -diff --git a/tests/ioCmd.test b/tests/ioCmd.test -index cab4e9734..ae58025d9 100644 ---- a/tests/ioCmd.test -+++ b/tests/ioCmd.test -@@ -3781,7 +3781,6 @@ test iocmd.tf-32.0 {origin thread of moved channel gone} -match glob -body { - # Use constraints to skip this test while valgrinding so this expected leak - # doesn't prevent a finding of "leak-free". - # --testConstraint notValgrind [expr {![testConstraint valgrind]}] - test iocmd.tf-32.1 {origin thread of moved channel destroyed during access} -match glob -body { - - #puts <<$tcltest::mainThread>>main -diff --git a/tests/pkgIndex.tcl b/tests/pkgIndex.tcl -new file mode 100644 -index 000000000..48ab71b73 ---- /dev/null -+++ b/tests/pkgIndex.tcl -@@ -0,0 +1,6 @@ -+#! /usr/bin/env tclsh -+ -+package ifneeded tcltests 0.1 { -+ source [file dirname [file dirname [file normalize [info script]/...]]]/tcltests.tcl -+ package provide tcltests 0.1 -+} --- -2.19.1 - diff --git a/tcl-8.6.3-autopath.patch b/tcl-8.6.10-autopath.patch similarity index 69% rename from tcl-8.6.3-autopath.patch rename to tcl-8.6.10-autopath.patch index 98e5a19a5d2620a886d3d50eb3720b288c34aa0c..f5ac0ba94489fdfcba9abd29acfc468a91c40816 100644 --- a/tcl-8.6.3-autopath.patch +++ b/tcl-8.6.10-autopath.patch @@ -1,5 +1,5 @@ diff --git a/library/auto.tcl b/library/auto.tcl -index 02edcc4..cd3b587 100644 +index a7a8979..892c2c4 100644 --- a/library/auto.tcl +++ b/library/auto.tcl @@ -81,6 +81,13 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} { @@ -17,7 +17,7 @@ index 02edcc4..cd3b587 100644 # 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 +index 5cda0d9..ffeb301 100644 --- a/library/init.tcl +++ b/library/init.tcl @@ -47,16 +47,11 @@ if {![info exists auto_path]} { @@ -39,18 +39,18 @@ index f1f7704..03ede56 100644 foreach Dir $::tcl_pkgPath { if {$Dir ni $::auto_path} { diff --git a/unix/configure.in b/unix/configure.in -index e44d554..c017eaa 100755 +index 0d3f426..13ce9db 100755 --- a/unix/configure.in +++ b/unix/configure.in -@@ -886,9 +886,9 @@ if test "$FRAMEWORK_BUILD" = "1" ; then +@@ -866,9 +866,9 @@ if test "$FRAMEWORK_BUILD" = "1" ; then test -z "$TCL_MODULE_PATH" && \ - TCL_MODULE_PATH="~/Library/Tcl /Library/Tcl /System/Library/Tcl" + TCL_MODULE_PATH="~/Library/Tcl /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}" +- test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}" ++ test -z "$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}" +- test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}" ++ test -z "$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.10-conf.patch similarity index 88% rename from tcl-8.6.8-conf.patch rename to tcl-8.6.10-conf.patch index 2ec2c90f800c948f8123532a18d84d4dac4a0e32..6dfa386edd27939310c4e98379e30af423d7068d 100644 --- a/tcl-8.6.8-conf.patch +++ b/tcl-8.6.10-conf.patch @@ -1,8 +1,8 @@ diff --git a/unix/tcl.m4 b/unix/tcl.m4 -index 8a802fb..0df92fd 100644 +index 0e146e4..180fff1 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 -@@ -1402,12 +1402,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ +@@ -1410,12 +1410,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ # get rid of the warnings. #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" diff --git a/tcl-8.6.8-hidden.patch b/tcl-8.6.10-hidden.patch similarity index 85% rename from tcl-8.6.8-hidden.patch rename to tcl-8.6.10-hidden.patch index 8a4e4a192614d0a3ab8a2cb8c73669f9ebb13bf0..00c20468c224cddc403665b7c7ec23344ce214fd 100644 --- a/tcl-8.6.8-hidden.patch +++ b/tcl-8.6.10-hidden.patch @@ -1,8 +1,8 @@ diff --git a/generic/tclInt.h b/generic/tclInt.h -index 91c8b96..623a598 100644 +index 39fb740..bbe342b 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h -@@ -3215,7 +3215,7 @@ MODULE_SCOPE void TclClockInit(Tcl_Interp *interp); +@@ -3277,7 +3277,7 @@ MODULE_SCOPE void TclClockInit(Tcl_Interp *interp); MODULE_SCOPE int TclClockOldscanObjCmd( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); @@ -11,7 +11,7 @@ index 91c8b96..623a598 100644 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, +@@ -3458,7 +3458,7 @@ MODULE_SCOPE int Tcl_RenameObjCmd(ClientData clientData, MODULE_SCOPE int Tcl_RepresentationCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); @@ -21,7 +21,7 @@ index 91c8b96..623a598 100644 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 +index 9485567..f329cde 100644 --- a/generic/tclPort.h +++ b/generic/tclPort.h @@ -20,7 +20,7 @@ diff --git a/tcl-8.6.10-tcltests-path-fix.patch b/tcl-8.6.10-tcltests-path-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..62c55e9cc6d74b38a92e7341c0301eded7121030 --- /dev/null +++ b/tcl-8.6.10-tcltests-path-fix.patch @@ -0,0 +1,13 @@ +diff --git a/unix/Makefile.in b/unix/Makefile.in +index 99bdf05..0b2f660 100644 +--- a/unix/Makefile.in ++++ b/unix/Makefile.in +@@ -788,7 +788,7 @@ topDirName: + # This keeps tcltest from picking up an already installed version of the Tcl + # library. + SHELL_ENV = @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@} \ +- TCLLIBPATH="@abs_builddir@/pkgs" \ ++ TCLLIBPATH="@abs_builddir@/pkgs @abs_builddir@/../tests" \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}" + + ${TCLTEST_EXE}: ${TCLTEST_OBJS} ${TCL_LIB_FILE} ${TCL_STUB_LIB_FILE} ${BUILD_DLTEST} diff --git a/tcl-8.6.5-parallel-make-fix.patch b/tcl-8.6.5-parallel-make-fix.patch deleted file mode 100644 index d3ac913461fb728095dd37bcc1b650bc2d7114e7..0000000000000000000000000000000000000000 --- a/tcl-8.6.5-parallel-make-fix.patch +++ /dev/null @@ -1,265 +0,0 @@ -diff --git a/unix/Makefile.in b/unix/Makefile.in -index bc73118..cc438a4 100644 ---- a/unix/Makefile.in -+++ b/unix/Makefile.in -@@ -1351,196 +1351,196 @@ tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c - tclTomMathInterface.o: $(GENERIC_DIR)/tclTomMathInterface.c $(MATHHDRS) - $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTomMathInterface.c - --bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) -+bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bncore.c - --bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) -+bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_reverse.c - --bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) -+bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c - --bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) -+bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c - --bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) -+bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add.c - --bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) -+bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add_d.c - --bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) -+bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_and.c - --bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) -+bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clamp.c - --bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) -+bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear.c - --bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) -+bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear_multi.c - --bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) -+bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp.c - --bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) -+bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_d.c - --bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) -+bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_mag.c - --bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) -+bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cnt_lsb.c - --bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) -+bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_copy.c - --bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) -+bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_count_bits.c - --bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) -+bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div.c - --bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) -+bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_d.c - --bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) -+bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2.c - --bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) -+bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2d.c - --bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) -+bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_3.c - --bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) -+bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_exch.c - --bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) -+bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_expt_d.c - --bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) -+bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_grow.c - --bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) -+bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init.c - --bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) -+bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_copy.c - --bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) -+bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_multi.c - --bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) -+bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set.c - --bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) -+bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set_int.c - --bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) -+bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_size.c - --bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) -+bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c - --bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) -+bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c - --bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) -+bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_lshd.c - --bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) -+bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod.c - --bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) -+bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod_2d.c - --bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) -+bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul.c - --bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) -+bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2.c - --bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) -+bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2d.c - --bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) -+bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_d.c - --bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) -+bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_neg.c - --bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) -+bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_or.c - --bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) -+bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_size.c - --bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) -+bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_smap.c - --bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) -+bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_read_radix.c - --bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) -+bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_rshd.c - --bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) -+bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set.c - --bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) -+bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set_int.c - --bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) -+bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_shrink.c - --bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) -+bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqr.c - --bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) -+bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqrt.c - --bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) -+bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub.c - --bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) -+bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub_d.c - --bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) -+bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c - --bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) -+bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c - --bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) -+bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_mul.c - --bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) -+bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_sqr.c - --bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) -+bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toradix_n.c - --bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) -+bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c - --bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) -+bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_xor.c - --bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) -+bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_zero.c - --bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) -+bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_add.c - --bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) -+bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_mul_digs.c - --bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) -+bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sqr.c - --bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) -+bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) - $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sub.c - - tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c $(IOHDR) diff --git a/tcl-core8.6.8-src.tar.gz b/tcl-core8.6.10-src.tar.gz similarity index 44% rename from tcl-core8.6.8-src.tar.gz rename to tcl-core8.6.10-src.tar.gz index 2d190c79c0d59a57f28b799dfe6ad5284fe09b06..1c32f7d9db9380ec329fc4f20f839cb3202b1493 100644 Binary files a/tcl-core8.6.8-src.tar.gz and b/tcl-core8.6.10-src.tar.gz differ diff --git a/tcl.spec b/tcl.spec index cdcd17b219fbc652b8742d8d673243e7eb66435f..75900bf40cce0795e0737ecf094d1a5ba0757d0e 100644 --- a/tcl.spec +++ b/tcl.spec @@ -1,8 +1,8 @@ %define MAJOR 8.6 Name: tcl -Version: 8.6.8 -Release: 8 +Version: 8.6.10 +Release: 1 Epoch: 1 Summary: The Tool Command Language implementation License: BSD @@ -14,31 +14,17 @@ Provides: tcl(abi) = %{MAJOR} Obsoletes: tcl-tcldict <= %{version} Provides: tcl-tcldict = %{version} -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 +Patch0: tcl-8.6.10-autopath.patch +Patch1: tcl-8.6.10-conf.patch +Patch2: tcl-8.6.10-hidden.patch +Patch3: tcl-8.6.10-tcltests-path-fix.patch +Patch4: stay-out-of-internals-when-nice-interfaces-are-avail.patch +Patch5: oops.patch +Patch6: Fix-error-message-for-min-math-functions-to-for-for-.patch +Patch7: Fix-11ae2be95d-tip-389-branch-string-range-errors-wi.patch +Patch8: Improved-overflow-prevention-1.patch +Patch9: Improved-overflow-prevention-2.patch +Patch10: fix-exec-test-error.patch %description Tcl(Tool Command Language) provides a powerful platform for creating integration applications @@ -76,6 +62,7 @@ autoconf %install cd unix make INSTALL_ROOT=$RPM_BUILD_ROOT TCL_LIBRARY=%{_datadir}/%{name}%{MAJOR} install + cd .. ln -s tclsh%{MAJOR} %{buildroot}%{_bindir}/tclsh ln -s lib%{name}%{MAJOR}.so $RPM_BUILD_ROOT%{_libdir}/lib%{name}.so @@ -115,7 +102,7 @@ make test %files %defattr(-,root,root) -%doc README changes COPYING +%doc README.md changes COPYING %{_bindir}/tclsh* %dir %{_libdir}/%{name}%{MAJOR} %{_datadir}/%{name}%{MAJOR} @@ -139,6 +126,12 @@ make test %{_mandir}/mann/* %changelog +* Wed Aug 26 2020 zhangrui - 1:8.6.10.1 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:update tcl from 8.6.8 to 8.6.10 + * Tue Mar 17 2020 chengquan - 1:8.6.8.8 - Type:bugfix - ID:NA diff --git a/tcl.yaml b/tcl.yaml new file mode 100644 index 0000000000000000000000000000000000000000..af2f65b90a2680c92a9a04ad698073850c2cae8a --- /dev/null +++ b/tcl.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: tcltk/tcl +tag_prefix: ^core- +seperator: "-"