Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package tcl for openSUSE:Factory checked in at 2022-11-30 14:58:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tcl (Old) and /work/SRC/openSUSE:Factory/.tcl.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tcl" Wed Nov 30 14:58:51 2022 rev:65 rq:1038691 version:8.6.13 Changes: -------- --- /work/SRC/openSUSE:Factory/tcl/tcl.changes 2022-09-28 17:51:13.483168493 +0200 +++ /work/SRC/openSUSE:Factory/.tcl.new.1597/tcl.changes 2022-11-30 14:58:53.309020584 +0100 @@ -1,0 +2,20 @@ +Wed Nov 23 16:05:02 UTC 2022 - Reinhard Max <m...@suse.com> + +- New version 8.6.13: + * (bug)[26f132] Crash when sizeof(int) < sizeof(void *) + * (TIP 623)[e9a271] Tcl_GetRange index args < 0 + * (bug)[e5ed1b] numeric IPv6 in URLs + * (bug)[8eb64b] http package tolerant again invalid reply header + * (bug)[6898f9] http package failed detection of shiftjis charset + * (bug)[55bf73] Avoid connection reuse after response code 101. + * (bug)[713653] FP rounding exposed by x86 musl + * (bug)[b3977d] Process CR-LF split across packets + * (bug)[4eb3a1] crash due to undetected bytecode invalidity + * (bug)[55a02f] Fallback init env(HOME) from USERPROFILE + * (bug)[1073da] crash writing invalid utf-8 + * (new) Update to Unicode-15 + * Many code fixes to avoid overflow or undefined behavior. +- Add tcl-refchan-mode-needed.patch to allow refchans to be opened + for neither reading nor writing, but still handle events. + +------------------------------------------------------------------- Old: ---- tcl8.6.12-src.tar.gz New: ---- tcl-refchan-mode-needed.patch tcl8.6.13-src.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tcl.spec ++++++ --- /var/tmp/diff_new_pack.G7e2Qi/_old 2022-11-30 14:58:54.209025537 +0100 +++ /var/tmp/diff_new_pack.G7e2Qi/_new 2022-11-30 14:58:54.213025558 +0100 @@ -22,11 +22,11 @@ Name: tcl URL: http://www.tcl.tk -Version: 8.6.12 +Version: 8.6.13 Release: 0 %define rrc %{nil} %define TCL_MINOR %(echo %version | cut -c1-3) -%define itclver 4.2.2 +%define itclver 4.2.3 BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: The Tcl Programming Language License: TCL @@ -48,6 +48,7 @@ Source1: tcl-rpmlintrc Source2: baselibs.conf Source3: macros.tcl +Patch0: tcl-refchan-mode-needed.patch BuildRequires: autoconf BuildRequires: pkg-config BuildRequires: zlib-devel @@ -91,6 +92,7 @@ : Version mismatch in itcl, please chek the %%itclver macro! exit 1 fi +%patch0 # The SQLite extension is provided by the sqlite3 package, # so don't build it here. ++++++ tcl-refchan-mode-needed.patch ++++++ --- doc/refchan.n.orig +++ doc/refchan.n @@ -53,8 +53,8 @@ here, then the \fBfinalize\fR subcommand .PP The \fImode\fR argument tells the handler whether the channel was opened for reading, writing, or both. It is a list containing any of -the strings \fBread\fR or \fBwrite\fR. The list will always -contain at least one element. +the strings \fBread\fR or \fBwrite\fR. The list may be empty, but +will usually contain at least one element. .PP The subcommand must throw an error if the chosen mode is not supported by the \fIcmdPrefix\fR. --- generic/tclIORChan.c.orig +++ generic/tclIORChan.c @@ -425,7 +425,7 @@ static void UnmarshallErrorResult(Tcl_I */ static int EncodeEventMask(Tcl_Interp *interp, - const char *objName, Tcl_Obj *obj, int *mask); + const char *objName, Tcl_Obj *obj, int *mask, int needed); static Tcl_Obj * DecodeEventMask(int mask); static ReflectedChannel * NewReflectedChannel(Tcl_Interp *interp, Tcl_Obj *cmdpfxObj, int mode, Tcl_Obj *handleObj); @@ -532,11 +532,11 @@ TclChanCreateObjCmd( /* * First argument is a list of modes. Allowed entries are "read", "write". - * Expect at least one list element. Abbreviations are ok. + * Empty list is uncommon, but allowed. Abbreviations are ok. */ modeObj = objv[MODE]; - if (EncodeEventMask(interp, "mode", objv[MODE], &mode) != TCL_OK) { + if (EncodeEventMask(interp, "mode", objv[MODE], &mode, 0) != TCL_OK) { return TCL_ERROR; } @@ -902,7 +902,7 @@ TclChanPostEventObjCmd( * "write". Expect at least one list element. Abbreviations are ok. */ - if (EncodeEventMask(interp, "event", objv[EVENT], &events) != TCL_OK) { + if (EncodeEventMask(interp, "event", objv[EVENT], &events, 1) != TCL_OK) { return TCL_ERROR; } @@ -2007,8 +2007,9 @@ ReflectGetOption( * EncodeEventMask -- * * This function takes a list of event items and constructs the - * equivalent internal bitmask. The list must contain at least one - * element. Elements are "read", "write", or any unique abbreviation of + * equivalent internal bitmask. The list may be empty if the last + * argument is 0, otherwise it must contain at least one element. + * Elements are "read", "write", or any unique abbreviation of * them. Note that the bitmask is not changed if problems are * encountered. * @@ -2028,7 +2029,8 @@ EncodeEventMask( Tcl_Interp *interp, const char *objName, Tcl_Obj *obj, - int *mask) + int *mask, + int needed) { int events; /* Mask of events to post */ int listc; /* #elements in eventspec list */ @@ -2040,7 +2042,7 @@ EncodeEventMask( return TCL_ERROR; } - if (listc < 1) { + if (needed && listc < 1) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "bad %s list: is empty", objName)); return TCL_ERROR; --- tests/ioCmd.test.orig +++ tests/ioCmd.test @@ -670,12 +670,12 @@ test iocmd-21.1 {chan create, wrong#args catch {chan create a b c} msg set msg } {wrong # args: should be "chan create mode cmdprefix"} -test iocmd-21.2 {chan create, invalid r/w mode, empty} { - proc foo {} {} - catch {chan create {} foo} msg +test iocmd-21.2 {chan create, r/w mode empty} { + proc foo {cmd args} { return "initialize finalize watch" } + set chan [chan create {} foo] + close $chan rename foo {} - set msg -} {bad mode list: is empty} +} {} test iocmd-21.3 {chan create, invalid r/w mode, bad string} { proc foo {} {} catch {chan create {c} foo} msg ++++++ tcl8.6.12-src.tar.gz -> tcl8.6.13-src.tar.gz ++++++ /work/SRC/openSUSE:Factory/tcl/tcl8.6.12-src.tar.gz /work/SRC/openSUSE:Factory/.tcl.new.1597/tcl8.6.13-src.tar.gz differ: char 5, line 1