[packages/tix] Rel 6
arekm
arekm at pld-linux.org
Sat Apr 11 14:00:22 CEST 2026
commit e1faa21ed746d5cd489d701d95ba23897c518b58
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Sat Apr 11 13:59:52 2026 +0200
Rel 6
tix-c89.patch | 230 ++++++++++++++++++++++++++++++++++++++++++++++++
tix-covscan-fixes.patch | 52 +++++++++++
tix-implicit-int.patch | 56 ++++++++++++
tix-tcl86.patch | 27 ++++++
tix.spec | 3 +-
5 files changed, 367 insertions(+), 1 deletion(-)
---
diff --git a/tix.spec b/tix.spec
index e728403..fcbca0b 100644
--- a/tix.spec
+++ b/tix.spec
@@ -6,7 +6,7 @@ Summary(pl.UTF-8): Wiele widgetów (takich jak notepad) dla Tk
Summary(tr.UTF-8): Tk için ek arayüz elemanları (not defterleri v.b.)
Name: tix
Version: %{major}.3
-Release: 5
+Release: 6
Epoch: 1
License: BSD
Group: Development/Languages/Tcl
@@ -117,6 +117,7 @@ install man/man.macros $RPM_BUILD_ROOT%{_datadir}/groff/%{groff_version}/tmac/ti
cp -af demos $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
rm -f $RPM_BUILD_ROOT%{_libdir}/Tix%{major}/bitmaps/mktransgif.tcl*
+rm -f $RPM_BUILD_ROOT%{_libdir}/Tix%{version}/{README.txt,license.terms}
%clean
rm -rf $RPM_BUILD_ROOT
diff --git a/tix-c89.patch b/tix-c89.patch
new file mode 100644
index 0000000..4a1ac9a
--- /dev/null
+++ b/tix-c89.patch
@@ -0,0 +1,230 @@
+Fix various incompatible pointers by switching to correct
+const-qualified types.
+
+Several problematic casts can be removed, except for the one in the
+masterPtr->data in ImgXpmGetData.
+
+Submitted upstream: <https://sourceforge.net/p/tix/bugs/113/>
+
+diff --git a/generic/tixDItem.c b/generic/tixDItem.c
+index 602c506d158d8a98..d23a4eb036aa8997 100644
+--- a/generic/tixDItem.c
++++ b/generic/tixDItem.c
+@@ -30,7 +30,7 @@ static int DItemParseProc _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, Tk_Window tkwin, CONST84 char *value,
+ char *widRec, int offset));
+
+-static char *DItemPrintProc _ANSI_ARGS_((
++static const char *DItemPrintProc _ANSI_ARGS_((
+ ClientData clientData, Tk_Window tkwin, char *widRec,
+ int offset, Tcl_FreeProc **freeProcPtr));
+
+@@ -548,7 +548,7 @@ static int DItemParseProc(clientData, interp, tkwin, value, widRec,offset)
+ return TCL_OK;
+ }
+
+-static char *DItemPrintProc(clientData, tkwin, widRec,offset, freeProcPtr)
++static const char *DItemPrintProc(clientData, tkwin, widRec,offset, freeProcPtr)
+ ClientData clientData;
+ Tk_Window tkwin;
+ char *widRec;
+diff --git a/generic/tixDiStyle.c b/generic/tixDiStyle.c
+index 3c450cf001d075ba..fba76706afcd16f0 100644
+--- a/generic/tixDiStyle.c
++++ b/generic/tixDiStyle.c
+@@ -31,7 +31,7 @@ typedef struct StyleInfo {
+ static int DItemStyleParseProc _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, Tk_Window tkwin,
+ CONST84 char *value,char *widRec, int offset));
+-static char * DItemStylePrintProc _ANSI_ARGS_((
++static const char * DItemStylePrintProc _ANSI_ARGS_((
+ ClientData clientData, Tk_Window tkwin,
+ char *widRec, int offset,
+ Tcl_FreeProc **freeProcPtr));
+@@ -998,7 +998,7 @@ not_found:
+ return TCL_ERROR;
+ }
+
+-static char *DItemStylePrintProc(clientData, tkwin, widRec,offset, freeProcPtr)
++static const char *DItemStylePrintProc(clientData, tkwin, widRec,offset, freeProcPtr)
+ ClientData clientData;
+ Tk_Window tkwin;
+ char *widRec;
+diff --git a/generic/tixImgCmp.c b/generic/tixImgCmp.c
+index 4ba60ca06541156e..5df05c4eb32a4611 100644
+--- a/generic/tixImgCmp.c
++++ b/generic/tixImgCmp.c
+@@ -142,8 +142,8 @@ typedef union CmpItemPtr {
+ * The type record for bitmap images:
+ */
+ static int ImgCmpCreate _ANSI_ARGS_((Tcl_Interp *interp,
+- char *name, int argc, Tcl_Obj *CONST objv[],
+- Tk_ImageType *typePtr, Tk_ImageMaster master,
++ const char *name, int argc, Tcl_Obj *CONST objv[],
++ const Tk_ImageType *typePtr, Tk_ImageMaster master,
+ ClientData *clientDataPtr));
+ static ClientData ImgCmpGet _ANSI_ARGS_((Tk_Window tkwin,
+ ClientData clientData));
+@@ -378,11 +378,11 @@ static int
+ ImgCmpCreate(interp, name, argc, objv, typePtr, master, clientDataPtr)
+ Tcl_Interp *interp; /* Interpreter for application containing
+ * image. */
+- char *name; /* Name to use for image. */
++ const char *name; /* Name to use for image. */
+ int argc; /* Number of arguments. */
+ Tcl_Obj *CONST objv[]; /* Argument strings for options (doesn't
+ * include image name or type). */
+- Tk_ImageType *typePtr; /* Pointer to our type record (not used). */
++ const Tk_ImageType *typePtr;/* Pointer to our type record (not used). */
+ Tk_ImageMaster master; /* Token for image, to be used by us in
+ * later callbacks. */
+ ClientData *clientDataPtr; /* Store manager's token for image here;
+diff --git a/generic/tixImgXpm.c b/generic/tixImgXpm.c
+index 23c3981c6ea29fe8..16afe3b2318cf6e2 100644
+--- a/generic/tixImgXpm.c
++++ b/generic/tixImgXpm.c
+@@ -22,8 +22,8 @@
+ */
+
+ static int ImgXpmCreate _ANSI_ARGS_((Tcl_Interp *interp,
+- char *name, int argc, Tcl_Obj *CONST objv[],
+- Tk_ImageType *typePtr, Tk_ImageMaster master,
++ const char *name, int argc, Tcl_Obj *CONST objv[],
++ const Tk_ImageType *typePtr, Tk_ImageMaster master,
+ ClientData *clientDataPtr));
+ static ClientData ImgXpmGet _ANSI_ARGS_((Tk_Window tkwin,
+ ClientData clientData));
+@@ -45,11 +45,11 @@ static int ImgXpmConfigureMaster _ANSI_ARGS_((
+ int flags));
+ static int ImgXpmGetData _ANSI_ARGS_((Tcl_Interp *interp,
+ PixmapMaster *masterPtr));
+-static char ** ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp,
++static const char ** ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp,
+ char * string, int * numLines_return));
+-static char ** ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp,
++static const char ** ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp,
+ CONST84 char * id));
+-static char ** ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp,
++static const char ** ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp,
+ char * string, int * numLines_return));
+ static void ImgXpmGetPixmapFromData _ANSI_ARGS_((
+ Tcl_Interp * interp,
+@@ -115,11 +115,11 @@ static int
+ ImgXpmCreate(interp, name, argc, objv, typePtr, master, clientDataPtr)
+ Tcl_Interp *interp; /* Interpreter for application containing
+ * image. */
+- char *name; /* Name to use for image. */
++ const char *name; /* Name to use for image. */
+ int argc; /* Number of arguments. */
+ Tcl_Obj *CONST objv[]; /* Argument strings for options (doesn't
+ * include image name or type). */
+- Tk_ImageType *typePtr; /* Pointer to our type record (not used). */
++ const Tk_ImageType *typePtr;/* Pointer to our type record (not used). */
+ Tk_ImageMaster master; /* Token for image, to be used by us in
+ * later callbacks. */
+ ClientData *clientDataPtr; /* Store manager's token for image here;
+@@ -286,7 +286,7 @@ ImgXpmGetData(interp, masterPtr)
+ Tcl_Interp *interp; /* For reporting errors. */
+ PixmapMaster *masterPtr;
+ {
+- char ** data = NULL;
++ const char ** data = NULL;
+ int isAllocated = 0; /* do we need to free "data"? */
+ int listArgc;
+ CONST84 char ** listArgv = NULL;
+@@ -342,7 +342,7 @@ ImgXpmGetData(interp, masterPtr)
+ ckfree((char*)masterPtr->data);
+ }
+ masterPtr->isDataAlloced = isAllocated;
+- masterPtr->data = data;
++ masterPtr->data = (char **)data;
+ masterPtr->size[0] = size[0];
+ masterPtr->size[1] = size[1];
+ masterPtr->cpp = cpp;
+@@ -363,7 +363,7 @@ ImgXpmGetData(interp, masterPtr)
+ return code;
+ }
+
+-static char ** ImgXpmGetDataFromId(interp, id)
++static const char ** ImgXpmGetDataFromId(interp, id)
+ Tcl_Interp * interp;
+ CONST84 char * id;
+ {
+@@ -378,13 +378,13 @@ static char ** ImgXpmGetDataFromId(interp, id)
+ if (hashPtr == NULL) {
+ Tcl_AppendResult(interp, "unknown pixmap ID \"", id,
+ "\"", NULL);
+- return (char**)NULL;
++ return NULL;
+ } else {
+- return (char**)Tcl_GetHashValue(hashPtr);
++ return Tcl_GetHashValue(hashPtr);
+ }
+ }
+
+-static char ** ImgXpmGetDataFromString(interp, string, numLines_return)
++static const char ** ImgXpmGetDataFromString(interp, string, numLines_return)
+ Tcl_Interp * interp;
+ char * string;
+ int * numLines_return;
+@@ -392,7 +392,7 @@ static char ** ImgXpmGetDataFromString(interp, string, numLines_return)
+ int quoted;
+ char * p, * list;
+ int numLines;
+- char ** data;
++ const char ** data;
+
+ /* skip the leading blanks (leading blanks are not defined in the
+ * the XPM definition, but skipping them shouldn't hurt. Also, the ability
+@@ -510,17 +510,17 @@ static char ** ImgXpmGetDataFromString(interp, string, numLines_return)
+
+ error:
+ Tcl_AppendResult(interp, "File format error", NULL);
+- return (char**) NULL;
++ return NULL;
+ }
+
+-static char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return)
++static const char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return)
+ Tcl_Interp * interp;
+ char * fileName;
+ int * numLines_return;
+ {
+ FILE * fd = NULL;
+ int size, n;
+- char ** data;
++ const char ** data;
+ char *cmdBuffer = NULL;
+ Tcl_DString buffer; /* initialized by Tcl_TildeSubst */
+
+@@ -588,7 +588,7 @@ static char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return)
+ ckfree(cmdBuffer);
+ }
+ Tcl_DStringFree(&buffer);
+- return (char**)NULL;
++ return NULL;
+ }
+
+
+diff --git a/generic/tixUtils.c b/generic/tixUtils.c
+index 998acb84e3f8c79c..e7967b51ecd3a1e4 100644
+--- a/generic/tixUtils.c
++++ b/generic/tixUtils.c
+@@ -24,7 +24,7 @@
+ static int ReliefParseProc(ClientData clientData,
+ Tcl_Interp *interp, Tk_Window tkwin, CONST84 char *value,
+ char *widRec, int offset);
+-static char * ReliefPrintProc(ClientData clientData,
++static const char * ReliefPrintProc(ClientData clientData,
+ Tk_Window tkwin, char *widRec, int offset,
+ Tix_FreeProc **freeProcPtr);
+
+@@ -637,7 +637,7 @@ ReliefParseProc(clientData, interp, tkwin, value, widRec,offset)
+ return TCL_ERROR;
+ }
+
+-static char *
++static const char *
+ ReliefPrintProc(clientData, tkwin, widRec,offset, freeProcPtr)
+ ClientData clientData;
+ Tk_Window tkwin;
diff --git a/tix-covscan-fixes.patch b/tix-covscan-fixes.patch
new file mode 100644
index 0000000..9afa215
--- /dev/null
+++ b/tix-covscan-fixes.patch
@@ -0,0 +1,52 @@
+Fix issues found by Coverity scan (from Fedora):
+- add missing #include <ctype.h>
+- fix comparison bug in tixGrUtl.c
+- fix logic errors in Python demo files
+
+diff -up Tix8.4.3/generic/tixGrUtl.c.orig Tix8.4.3/generic/tixGrUtl.c
+--- Tix8.4.3/generic/tixGrUtl.c.orig 2004-03-28 04:44:56.000000000 +0200
++++ Tix8.4.3/generic/tixGrUtl.c 2018-08-01 14:49:18.839262337 +0200
+@@ -191,7 +191,7 @@ int Tix_GrConfigSize(interp, wPtr, argc,
+ if (sizePtr->charValue != newSize.charValue) {
+ changed = 1;
+ }
+- if (sizePtr->pad1 != newSize.pad0) {
++ if (sizePtr->pad0 != newSize.pad0) {
+ changed = 1;
+ }
+ if (sizePtr->pad1 != newSize.pad1) {
+diff -up Tix8.4.3/generic/tix.h.orig Tix8.4.3/generic/tix.h
+--- Tix8.4.3/generic/tix.h.orig 2008-02-28 05:35:16.000000000 +0100
++++ Tix8.4.3/generic/tix.h 2018-08-01 14:45:03.306004016 +0200
+@@ -39,6 +39,7 @@ extern "C" {
+ #endif
+ #ifdef HAVE_STDLIB_H
+ #include <stdlib.h>
++#include <ctype.h>
+ #endif
+
+ #ifndef CONST84
+diff -up Tix8.4.3/Python/Demo/tix/samples/CmpImg.py.orig Tix8.4.3/Python/Demo/tix/samples/CmpImg.py
+--- Tix8.4.3/Python/Demo/tix/samples/CmpImg.py.orig 2001-12-10 00:29:43.000000000 +0100
++++ Tix8.4.3/Python/Demo/tix/samples/CmpImg.py 2018-08-01 14:49:57.959301881 +0200
+@@ -148,7 +148,7 @@ def RunSample(w):
+ if not w.img0:
+ w.img0 = Tix.Image('bitmap', data=network_bitmap)
+ w.img1 = Tix.Image('pixmap', data=hard_disk_pixmap)
+- if not w.img0:
++ if not w.img1:
+ w.img1 = Tix.Image('bitmap', data=hard_disk_bitmap)
+
+ hdd = Tix.Button(w, padx=4, pady=1, width=120)
+diff -up Tix8.4.3/PyTix-2.0/demos/samples/CmpImg.py.orig Tix8.4.3/PyTix-2.0/demos/samples/CmpImg.py
+--- Tix8.4.3/PyTix-2.0/demos/samples/CmpImg.py.orig 2000-11-05 20:57:44.000000000 +0100
++++ Tix8.4.3/PyTix-2.0/demos/samples/CmpImg.py 2018-08-01 14:50:14.934319043 +0200
+@@ -148,7 +148,7 @@ def RunSample(w):
+ if not w.img0:
+ w.img0 = Tix.Image('bitmap', data=network_bitmap)
+ w.img1 = Tix.Image('pixmap', data=hard_disk_pixmap)
+- if not w.img0:
++ if not w.img1:
+ w.img1 = Tix.Image('bitmap', data=hard_disk_bitmap)
+
+ hdd = Tix.Button(w, padx=4, pady=1, width=120)
diff --git a/tix-implicit-int.patch b/tix-implicit-int.patch
new file mode 100644
index 0000000..0725a61
--- /dev/null
+++ b/tix-implicit-int.patch
@@ -0,0 +1,56 @@
+Avoid implicit int declarations, a feature removed from C language with C99.
+
+Submitted upstream: <https://sourceforge.net/p/tix/bugs/112/>
+
+diff --git a/generic/tixDiImg.c b/generic/tixDiImg.c
+index da20d53c16cca3c7..3fb9f800fcd9e52a 100644
+--- a/generic/tixDiImg.c
++++ b/generic/tixDiImg.c
+@@ -352,6 +352,8 @@ Tix_ImageItemDisplay(drawable, iPtr, x, y, width, height, xOffset, yOffset,
+ int y;
+ int width;
+ int height;
++ int xOffset;
++ int yOffset;
+ int flags;
+ {
+ TixImageItem *itPtr = (TixImageItem *)iPtr;
+diff --git a/generic/tixDiWin.c b/generic/tixDiWin.c
+index e62529ecd19a9790..a96cd287e11c34e3 100644
+--- a/generic/tixDiWin.c
++++ b/generic/tixDiWin.c
+@@ -458,6 +458,8 @@ Tix_WindowItemDisplay(drawable, iPtr, x, y, width, height, xOffset, yOffset,
+ int y;
+ int width;
+ int height;
++ int xOffset;
++ int yOffset;
+ int flags;
+ {
+ TixWindowItem *itPtr = (TixWindowItem *)iPtr;
+diff --git a/generic/tixForm.c b/generic/tixForm.c
+index 5ab21f15a99bfde9..ba56617e436f748b 100644
+--- a/generic/tixForm.c
++++ b/generic/tixForm.c
+@@ -150,7 +150,7 @@ static Tcl_HashTable masterInfoHashTable;
+ /*
+ * Have static variables in this module been initialized?
+ */
+-static initialized = 0;
++static int initialized = 0;
+
+ static int ReqSize(tkwin, axis)
+ Tk_Window tkwin;
+diff --git a/unix/tixUnixMwm.c b/unix/tixUnixMwm.c
+index 3c4ac4d83bc51c80..02b58c16311b2c54 100644
+--- a/unix/tixUnixMwm.c
++++ b/unix/tixUnixMwm.c
+@@ -768,7 +768,7 @@ GetMwmInfo(interp, tkwin)
+ Tcl_Interp * interp;
+ Tk_Window tkwin;
+ {
+- static inited = 0;
++ static int inited = 0;
+ Tcl_HashEntry *hashPtr;
+ int isNew;
+
diff --git a/tix-tcl86.patch b/tix-tcl86.patch
new file mode 100644
index 0000000..61ad391
--- /dev/null
+++ b/tix-tcl86.patch
@@ -0,0 +1,27 @@
+Use Tcl_GetStringResult() instead of directly accessing interp->result
+for Tcl 8.6 compatibility (from Fedora).
+
+diff --git a/generic/tixGrSort.c b/generic/tixGrSort.c
+index 7dee30f..d45f51d 100644
+--- a/generic/tixGrSort.c
++++ b/generic/tixGrSort.c
+@@ -425,7 +425,7 @@ SortCompareProc(first, second)
+ }
+ } else {
+ int oldLength;
+- char *end;
++ char *end, *result;
+
+ /*
+ * Generate and evaluate a command to determine which string comes
+@@ -447,8 +447,8 @@ SortCompareProc(first, second)
+ * Parse the result of the command.
+ */
+
+- order = strtol(sortInterp->result, &end, 0);
+- if ((end == sortInterp->result) || (*end != 0)) {
++ order = strtol(result = Tcl_GetStringResult(sortInterp), &end, 0);
++ if ((end == result) || (*end != 0)) {
+ Tcl_ResetResult(sortInterp);
+ Tcl_AppendResult(sortInterp,
+ "comparison command returned non-numeric result",
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/tix.git/commitdiff/e1faa21ed746d5cd489d701d95ba23897c518b58
More information about the pld-cvs-commit
mailing list