push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
This is duplicated code from Tk.
It causes errors during build since XLowerWindow is not only a function but also "defined" in tkIntXlibDecls.h.
See
https://github.com/tcltk/tk/blob/71dcaddc69769cbd3e2c4b5edb5810f974579527/generic/tkIntXlibDecls.h#L396
and
https://github.com/tcltk/tk/blob/71dcaddc69769cbd3e2c4b5edb5810f974579527/generic/tkIntXlibDecls.h#L1487
--- a/unix/tixUnixWm.c 2005-03-25 13:15:53.000000000 -0700
+++ b/unix/tixUnixWm.c 2021-03-20 07:31:52.000000000 -0700
@@ -24,38 +24,3 @@
{
return TCL_OK;
}
-
-#ifdef MAC_OSX_TK
-#include "tkInt.h"
-/*
- *----------------------------------------------------------------------
- *
- * XLowerWindow --
- *
- * Change the stacking order of a window.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Changes the stacking order of the specified window.
- *
- *----------------------------------------------------------------------
- */
-
-int
-XLowerWindow(
- Display* display, /* Display. */
- Window window) /* Window. */
-{
- TkWindow *winPtr = *((TkWindow **) window);
-
- display->request++;
- if (Tk_IsTopLevel(winPtr) && !Tk_IsEmbedded(winPtr)) {
- TkWmRestackToplevel(winPtr, Below, NULL);
- } else {
- /* TODO: this should generate damage */
- }
- return 0;
-}
-#endif

View File

@@ -0,0 +1,215 @@
diff -ur a/generic/tixDItem.c b/generic/tixDItem.c
--- a/generic/tixDItem.c 2004-03-27 19:44:56.000000000 -0700
+++ b/generic/tixDItem.c 2023-07-11 14:49:51.583894242 -0600
@@ -30,7 +30,7 @@
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 @@
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 -ur a/generic/tixDiStyle.c b/generic/tixDiStyle.c
--- a/generic/tixDiStyle.c 2004-03-27 19:44:56.000000000 -0700
+++ b/generic/tixDiStyle.c 2023-07-11 15:02:45.245210252 -0600
@@ -31,7 +31,7 @@
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));
@@ -785,7 +785,7 @@
hashPtr = Tcl_CreateHashEntry(&stylePtr->base.items, (char*)iPtr, &isNew);
if (!isNew) {
- panic("DItem is already associated with style");
+ Tcl_Panic("DItem is already associated with style");
} else {
Tcl_SetHashValue(hashPtr, (char*)iPtr);
}
@@ -801,7 +801,7 @@
hashPtr = Tcl_FindHashEntry(&stylePtr->base.items, (char*)iPtr);
if (hashPtr == NULL) {
- panic("DItem is not associated with style");
+ Tcl_Panic("DItem is not associated with style");
}
Tcl_DeleteHashEntry(hashPtr);
stylePtr->base.refCount--;
@@ -998,7 +998,7 @@
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 -ur a/generic/tixForm.c b/generic/tixForm.c
--- a/generic/tixForm.c 2004-03-27 19:44:56.000000000 -0700
+++ b/generic/tixForm.c 2023-07-11 14:53:45.695753419 -0600
@@ -802,7 +802,7 @@
* Now set all the client's geometry
*/
if (PlaceAllClients(masterPtr) != TCL_OK) {
- panic("circular dependency");
+ Tcl_Panic("circular dependency");
}
for (clientPtr = masterPtr->client; clientPtr; clientPtr=clientPtr->next) {
diff -ur a/generic/tixGrData.c b/generic/tixGrData.c
--- a/generic/tixGrData.c 2004-03-27 19:44:56.000000000 -0700
+++ b/generic/tixGrData.c 2023-07-11 14:54:19.644741199 -0600
@@ -296,7 +296,7 @@
Tcl_DeleteHashEntry(cy);
}
else {
- panic("Inconsistent grid dataset: (%d,%d) : %x %x", x, y, cx, cy);
+ Tcl_Panic("Inconsistent grid dataset: (%d,%d) : %x %x", x, y, cx, cy);
}
return 1;
diff -ur a/generic/tixGrid.c b/generic/tixGrid.c
--- a/generic/tixGrid.c 2008-02-27 21:10:43.000000000 -0700
+++ b/generic/tixGrid.c 2023-07-11 14:53:59.283841038 -0600
@@ -831,7 +831,7 @@
* All mapped windows should have been unmapped when the
* the entries were deleted
*/
- panic("tixGrid: mappedWindows not NULL");
+ Tcl_Panic("tixGrid: mappedWindows not NULL");
}
Tk_FreeOptions(configSpecs, (char *) wPtr, wPtr->dispData.display, 0);
diff -ur a/generic/tixHList.c b/generic/tixHList.c
--- a/generic/tixHList.c 2008-02-27 21:05:29.000000000 -0700
+++ b/generic/tixHList.c 2023-07-11 14:55:20.699375202 -0600
@@ -2036,7 +2036,7 @@
break;
}
if (wPtr->headerWin != NULL) {
- panic("HList: header subwindow deleted illegally\n");
+ Tcl_Panic("HList: header subwindow deleted illegally\n");
}
#endif
break;
@@ -2117,7 +2117,7 @@
* All mapped windows should have been unmapped when the
* the entries were deleted
*/
- panic("tixHList: mappedWindows not NULL");
+ Tcl_Panic("tixHList: mappedWindows not NULL");
}
if (wPtr->headerWin) {
wPtr->headerWin = NULL;
diff -ur a/generic/tixImgCmp.c b/generic/tixImgCmp.c
--- a/generic/tixImgCmp.c 2008-02-27 21:05:29.000000000 -0700
+++ b/generic/tixImgCmp.c 2023-07-11 14:59:16.429640785 -0600
@@ -142,8 +142,8 @@
* 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 @@
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 -ur a/generic/tixImgXpm.c b/generic/tixImgXpm.c
--- a/generic/tixImgXpm.c 2023-07-11 15:01:05.887387236 -0600
+++ b/generic/tixImgXpm.c 2023-07-11 15:00:37.209042328 -0600
@@ -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));
@@ -115,11 +115,11 @@
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;
@@ -1213,7 +1213,7 @@
PixmapMaster *masterPtr = (PixmapMaster *) masterData;
if (masterPtr->instancePtr != NULL) {
- panic("tried to delete pixmap image when instances still exist");
+ Tcl_Panic("tried to delete pixmap image when instances still exist");
}
masterPtr->tkMaster = NULL;
if (masterPtr->imageCmd != NULL) {
diff -ur a/generic/tixTList.c b/generic/tixTList.c
--- a/generic/tixTList.c 2008-02-27 21:05:29.000000000 -0700
+++ b/generic/tixTList.c 2023-07-11 14:55:35.960761327 -0600
@@ -1208,7 +1208,7 @@
sprintf(buff, "%d", i);
Tcl_AppendResult(interp, buff, NULL);
} else {
- panic("TList list entry is invalid");
+ Tcl_Panic("TList list entry is invalid");
}
} else {
Tcl_ResetResult(interp);
diff -ur a/generic/tixUtils.c b/generic/tixUtils.c
--- a/generic/tixUtils.c 2008-02-27 21:29:17.000000000 -0700
+++ b/generic/tixUtils.c 2023-07-11 15:01:43.718202631 -0600
@@ -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 @@
return TCL_ERROR;
}
-static char *
+static const char *
ReliefPrintProc(clientData, tkwin, widRec,offset, freeProcPtr)
ClientData clientData;
Tk_Window tkwin;

View File

@@ -0,0 +1,64 @@
{
lib,
fetchurl,
fetchpatch,
tcl,
tk,
}:
tcl.mkTclDerivation {
version = "8.4.3";
pname = "tix";
src = fetchurl {
url = "mirror://sourceforge/tix/tix/8.4.3/Tix8.4.3-src.tar.gz";
sha256 = "1jq3dkyk9mqkj4cg7mdk5r0cclqsby9l2b7wrysi0zk5yw7h8bsn";
};
patches = [
(fetchpatch {
name = "tix-8.4.3-tcl8.5.patch";
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-tcltk/tix/files/tix-8.4.3-tcl8.5.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d";
sha256 = "0wzqmcxxq0rqpnjgxz10spw92yhfygnlwv0h8pcx2ycnqiljz6vj";
})
# Remove duplicated definition of XLowerWindow
./duplicated-xlowerwindow.patch
# Fix incompatible function pointer conversions and implicit definition of `panic`.
# `panic` is just `Tcl_Panic`, but it is not defined on Darwin due to a conflict with `mach/mach.h`.
./fix-clang16.patch
]
++ lib.optional (tcl.release == "8.6") (fetchpatch {
name = "tix-8.4.3-tcl8.6.patch";
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-tcltk/tix/files/tix-8.4.3-tcl8.6.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d";
sha256 = "1jaz0l22xj7x1k4rb9ia6i1psnbwk4pblgq4gfvya7gg7fbb7r36";
});
buildInputs = [ tk ];
# the configure script expects to find the location of the sources of
# tcl and tk in {tcl,tk}Config.sh
# In fact, it only needs some private headers. We copy them in
# the private_headers folders and trick the configure script into believing
# the sources are here.
preConfigure = ''
mkdir -p private_headers/generic
< ${tcl}/lib/tclConfig.sh sed "s@TCL_SRC_DIR=.*@TCL_SRC_DIR=private_headers@" > tclConfig.sh
< ${tk}/lib/tkConfig.sh sed "s@TK_SRC_DIR=.*@TK_SRC_DIR=private_headers@" > tkConfig.sh
for i in ${tcl}/include/* ${tk.dev}/include/*; do
ln -s $i private_headers/generic;
done;
'';
addTclConfigureFlags = false;
configureFlags = [
"--with-tclconfig=."
"--with-tkinclude=${tk.dev}/include"
"--with-tkconfig=."
"--libdir=\${prefix}/lib"
];
meta = with lib; {
description = "Widget library for Tcl/Tk";
homepage = "https://tix.sourceforge.net/";
platforms = platforms.all;
license = with licenses; [
bsd2 # tix
gpl2 # patches from portage
];
};
}