Init at LinuxCNC 2.9-pre-f77537cd4d

This commit is contained in:
Matty Willoughby
2022-06-16 11:47:00 +08:00
commit 0f4aac93fa
19 changed files with 2154 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
{ lib, fetchzip, tcl, tk, xorg }:
tcl.mkTclDerivation rec {
pname = "tkblt";
version = "2.5.3";
src = fetchzip {
url = "http://deb.debian.org/debian/pool/main/b/blt/blt_2.5.3+dfsg.orig.tar.xz";
sha256 = "3a9zfTTzOo7HRxAl/6RW8cAxaW/YtnsDb5aV1lyKMVw=";
};
patches = [
./tcl8.6.patch
./tk8.6.patch
./install.patch
./ldflags.patch
];
meta = {
homepage = "https://sourceforge.net/projects/wize/";
description = "BLT for Tcl/Tk with patches from Debian";
license = lib.licenses.tcltk;
platforms = lib.platforms.unix;
};
buildInputs = [ tcl tk.dev tk xorg.libX11 xorg.libXext ];
configureFlags = [
"--with-tcl=${tcl}/lib"
"--with-tk=${tk}/lib"
"--with-tkincls=${tk.dev}/include"
"--with-tclincls=${tcl}/include"
"--x-includes=${xorg.libXext}/include"
"--x-libraries=${xorg.libX11}/lib"
];
preFixup = ''
substituteInPlace $out/lib/blt2.5/pkgIndex.tcl --replace 'package ifneeded BLT $version' 'package ifneeded BLT ${version}'
'';
}

View File

@@ -0,0 +1,180 @@
Description: Patch fixes installing directories and copying files under
INSTALL_ROOT. Also, it adds bltOldConfig.h to the installable headers
list and fixes it to include tk.h.
Author: Chris Waters and Sergei Golovan
Author: Steve Langasek <vorlon@debian.org>
Last-Modified: Mon, 31 Aug 2015 12:37:00 -0700
Index: blt-2.5.3+dfsg/Makefile.in
===================================================================
--- blt-2.5.3+dfsg.orig/Makefile.in
+++ blt-2.5.3+dfsg/Makefile.in
@@ -47,9 +47,9 @@
(cd library; $(MAKE) install)
(cd man; $(MAKE) install)
(cd demos; $(MAKE) install)
- $(INSTALL_DATA) $(srcdir)/README $(INSTALL_DIR)$(scriptdir)
- $(INSTALL_DATA) $(srcdir)/PROBLEMS $(INSTALL_DIR)$(scriptdir)
- $(INSTALL_DATA) $(srcdir)/NEWS $(INSTALL_DIR)$(scriptdir)
+ $(INSTALL_DATA) $(srcdir)/README $(INSTALL_ROOT)$(scriptdir)
+ $(INSTALL_DATA) $(srcdir)/PROBLEMS $(INSTALL_ROOT)$(scriptdir)
+ $(INSTALL_DATA) $(srcdir)/NEWS $(INSTALL_ROOT)$(scriptdir)
mkdirs:
@for i in $(instdirs) ; do \
@@ -57,7 +57,7 @@
: ; \
else \
echo " mkdir $(INSTALL_ROOT)$$i" ; \
- mkdir $(INSTALL_ROOT)$$i ; \
+ mkdir -p $(INSTALL_ROOT)$$i ; \
fi ; \
done
@@ -66,10 +66,14 @@
(cd library; $(MAKE) clean)
(cd man; $(MAKE) clean)
(cd demos; $(MAKE) clean)
- $(RM) *.bak *\~ "#"* *pure* .pure*
+ $(RM) *.bak *\~ "#"* .pure*
GENERATED_FILES = \
config.status config.cache config.log Makefile
distclean: clean
+ (cd generic; $(MAKE) distclean)
+ (cd library; $(MAKE) distclean)
+ (cd man; $(MAKE) distclean)
+ (cd demos; $(MAKE) distclean)
$(RM) $(GENERATED_FILES)
Index: blt-2.5.3+dfsg/generic/Makefile.in
===================================================================
--- blt-2.5.3+dfsg.orig/generic/Makefile.in
+++ blt-2.5.3+dfsg/generic/Makefile.in
@@ -152,6 +152,7 @@
$(srcdir)/bltChain.h \
bltHash.h \
$(srcdir)/bltList.h \
+ $(srcdir)/bltOldConfig.h \
$(srcdir)/bltPool.h \
$(srcdir)/bltTree.h \
$(srcdir)/bltDecls.h \
@@ -230,7 +231,7 @@
: ; \
else \
echo " mkdir $(INSTALL_ROOT)$$i" ; \
- mkdir $(INSTALL_ROOT)$$i ; \
+ mkdir -p $(INSTALL_ROOT)$$i ; \
fi ; \
done
@@ -262,7 +263,8 @@
distclean: clean
$(RM) $(srcdir)/*.bak $(srcdir)/*\~ $(srcdir)/"#"* Makefile
- $(RM) bltConfig.h Makefile TAGS
+ $(RM) bltConfig.h bltHash.h Makefile TAGS
+ (cd shared; $(MAKE) distclean)
.c.o:
$(CC) -c $(CC_SWITCHES) $<
Index: blt-2.5.3+dfsg/generic/shared/Makefile.in
===================================================================
--- blt-2.5.3+dfsg.orig/generic/shared/Makefile.in
+++ blt-2.5.3+dfsg/generic/shared/Makefile.in
@@ -145,14 +145,20 @@
$(srcdir)/bltInit.c
$(RM) $@
$(SHLIB_LD) $(SHLIB_LD_FLAGS) -o $@ bltInit.o $(OBJS) \
- $(SHLIB_LIB_SPECS)
+ $(LIBS)
+
+# Line above changed for complete dependency listings - gordon
+# $(SHLIB_LIB_SPECS)
$(tcl_only_lib_so): $(TCL_ONLY_OBJS)
$(CC) -c $(CC_SWITCHES) -DTCL_ONLY -DBLT_LIBRARY=\"$(scriptdir)\" \
$(srcdir)/bltInit.c
$(RM) $@
$(SHLIB_LD) $(SHLIB_LD_FLAGS) -o $@ bltInit.o $(TCL_ONLY_OBJS) \
- $(SHLIB_TCL_ONLY_LIB_SPECS)
+ $(TCL_ONLY_LIB_SPECS)
+
+# Line above changed for complete dependency listings - gordon
+# $(SHLIB_TCL_ONLY_LIB_SPECS)
install: mkdirs install-lib install-demo
@@ -175,10 +181,10 @@
done
clean:
$(RM) $(OBJS) $(lib_so) $(tcl_only_lib_so) $(bltwish) $(bltsh) \
- *pure* .pure*
+ *pure* .pure* bltInit.o
distclean: clean
- $(RM) $(srcdir)/*.bak $(srcdir)/*\~ $(srcdir)/"#"*
+ $(RM) $(srcdir)/*.bak $(srcdir)/*\~ $(srcdir)/"#"* Makefile
# ------------------------------------------------------------------------
# in lieu of viewpath-ing...
Index: blt-2.5.3+dfsg/demos/Makefile.in
===================================================================
--- blt-2.5.3+dfsg.orig/demos/Makefile.in
+++ blt-2.5.3+dfsg/demos/Makefile.in
@@ -79,7 +79,7 @@
: ; \
else \
echo " mkdir $(INSTALL_ROOT)$$i" ; \
- mkdir $(INSTALL_ROOT)"$$i" ; \
+ mkdir -p $(INSTALL_ROOT)"$$i" ; \
fi ; \
done
Index: blt-2.5.3+dfsg/man/Makefile.in
===================================================================
--- blt-2.5.3+dfsg.orig/man/Makefile.in
+++ blt-2.5.3+dfsg/man/Makefile.in
@@ -52,7 +52,7 @@
: ; \
else \
echo " mkdir $(INSTALL_ROOT)$$i" ; \
- mkdir $(INSTALL_ROOT)$$i ; \
+ mkdir -p $(INSTALL_ROOT)$$i ; \
fi ; \
done
Index: blt-2.5.3+dfsg/library/Makefile.in
===================================================================
--- blt-2.5.3+dfsg.orig/library/Makefile.in
+++ blt-2.5.3+dfsg/library/Makefile.in
@@ -61,7 +61,7 @@
for i in $(miscFiles) ; do \
$(INSTALL_DATA) $(srcdir)/$$i $(INSTALL_ROOT)$(scriptdir) ; \
done
- $(INSTALL_DATA) pkgIndex.tcl $(scriptdir)
+ $(INSTALL_DATA) pkgIndex.tcl $(INSTALL_ROOT)$(scriptdir)
mkdirs:
@for i in $(instdirs) ; do \
@@ -69,7 +69,7 @@
: ; \
else \
echo " mkdir $(INSTALL_ROOT)$$i" ; \
- mkdir $(INSTALL_ROOT)$$i ; \
+ mkdir -p $(INSTALL_ROOT)$$i ; \
fi ; \
done
Index: blt-2.5.3+dfsg/generic/bltOldConfig.h
===================================================================
--- blt-2.5.3+dfsg.orig/generic/bltOldConfig.h
+++ blt-2.5.3+dfsg/generic/bltOldConfig.h
@@ -1,5 +1,7 @@
/* Old config headers. */
+#include <tk.h>
+
EXTERN int Blt_ConfigureInfo _ANSI_ARGS_((Tcl_Interp * interp,
Tk_Window tkwin, Tk_ConfigSpec * specs,
char * widgRec, CONST char * argvName,

View File

@@ -0,0 +1,54 @@
Description: Patch adds support for externally set LDFLAGS. It lets
passing hardening flags from debian/rules. Also, the rpath
definition is removed.
Author: Sergei Golovan
Last-Modified: Fri, 04 Jul 2014 09:29:39 +0400
--- a/configure.in
+++ b/configure.in
@@ -1061,7 +1061,7 @@
SHLIB_LIB_SPECS="${JPEG_LIB_SPEC}"
SHLIB_TCL_ONLY_LIB_SPECS="${TCL_ONLY_LIB_SPECS}"
SHLIB_TCL_ONLY_LIB_SPECS=""
-LDFLAGS=""
+LDFLAGS="${LDFLAGS}"
LD_RUN_PATH=""
EXTRA_LIB_SPECS=""
@@ -1197,13 +1197,13 @@
fi
;;
- *-linux*)
+ *-linux*|*-gnu*)
SHLIB_CFLAGS="-fPIC"
SHLIB_LD="${CC}"
SHLIB_LD_FLAGS='-rdynamic -shared -Wl,-E -Wl,-soname,$@'
- LD_RUN_PATH="-Wl,-rpath,${loader_run_path}"
+ LD_RUN_PATH=""
- LDFLAGS=""
+ LDFLAGS="${LDFLAGS}"
EXTRA_LIB_SPECS="-ldl"
;;
--- a/generic/shared/Makefile.in
+++ b/generic/shared/Makefile.in
@@ -144,7 +144,7 @@
$(CC) -c $(CC_SWITCHES) -DBLT_LIBRARY=\"$(scriptdir)\" \
$(srcdir)/bltInit.c
$(RM) $@
- $(SHLIB_LD) $(SHLIB_LD_FLAGS) -o $@ bltInit.o $(OBJS) \
+ $(SHLIB_LD) $(SHLIB_LD_FLAGS) $(LDFLAGS) -o $@ bltInit.o $(OBJS) \
$(LIBS)
# Line above changed for complete dependency listings - gordon
@@ -154,7 +154,7 @@
$(CC) -c $(CC_SWITCHES) -DTCL_ONLY -DBLT_LIBRARY=\"$(scriptdir)\" \
$(srcdir)/bltInit.c
$(RM) $@
- $(SHLIB_LD) $(SHLIB_LD_FLAGS) -o $@ bltInit.o $(TCL_ONLY_OBJS) \
+ $(SHLIB_LD) $(SHLIB_LD_FLAGS) $(LDFLAGS) -o $@ bltInit.o $(TCL_ONLY_OBJS) \
$(TCL_ONLY_LIB_SPECS)
# Line above changed for complete dependency listings - gordon

View File

@@ -0,0 +1,91 @@
Description: Patch replaces the direct usage of deprecated interp->result
by Tcl_SetResult() and Tcl_GetStringResult() calls making it possible
to build using Tcl/Tk 8.6.
Last-Modified: Fri, 04 Jul 2014 09:20:48 +0400
--- a/generic/bltScrollbar.c
+++ b/generic/bltScrollbar.c
@@ -588,7 +588,7 @@
} else {
fraction = ((double)pixels / (double)barWidth);
}
- sprintf(interp->result, "%g", fraction);
+ sprintf(Tcl_GetStringResult(interp), "%g", fraction);
} else if ((c == 'f') && (strncmp(argv[1], "fraction", length) == 0)) {
int x, y, pos, barWidth;
double fraction;
--- a/generic/bltTed.c
+++ b/generic/bltTed.c
@@ -1504,7 +1504,7 @@
tablePtr->flags |= ARRANGE_PENDING;
Tcl_DoWhenIdle(tablePtr->arrangeProc, tablePtr);
}
- interp->result = Tk_PathName(tedPtr->tkwin);
+ Tcl_SetResult(interp, (char*)Tk_PathName(tedPtr->tkwin), TCL_VOLATILE);
tedPtr->flags |= LAYOUT_PENDING;
EventuallyRedraw(tedPtr);
return TCL_OK;
@@ -1678,7 +1678,7 @@
tedPtr->activeRectArr[4].width = grip - 1;
tedPtr->activeRectArr[4].height = grip - 1;
- interp->result = Tk_PathName(entryPtr->tkwin);
+ Tcl_SetResult(interp, (char*)Tk_PathName(entryPtr->tkwin), TCL_VOLATILE);
active = 1;
break;
}
@@ -1751,7 +1751,7 @@
tablePtr->flags |= ARRANGE_PENDING;
Tcl_DoWhenIdle(tablePtr->arrangeProc, tablePtr);
}
- interp->result = Tk_PathName(tedPtr->tkwin);
+ Tcl_SetResult(interp, (char*)Tk_PathName(tedPtr->tkwin), TCL_VOLATILE);
tedPtr->flags |= LAYOUT_PENDING;
EventuallyRedraw(tedPtr);
return TCL_OK;
--- a/generic/bltVecMath.c
+++ b/generic/bltVecMath.c
@@ -834,20 +834,20 @@
if ((errno == EDOM) || (value != value)) {
Tcl_AppendResult(interp, "domain error: argument not in valid range",
(char *)NULL);
- Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", interp->result,
+ Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", Tcl_GetStringResult(interp),
(char *)NULL);
} else if ((errno == ERANGE) || IS_INF(value)) {
if (value == 0.0) {
Tcl_AppendResult(interp,
"floating-point value too small to represent",
(char *)NULL);
- Tcl_SetErrorCode(interp, "ARITH", "UNDERFLOW", interp->result,
+ Tcl_SetErrorCode(interp, "ARITH", "UNDERFLOW", Tcl_GetStringResult(interp),
(char *)NULL);
} else {
Tcl_AppendResult(interp,
"floating-point value too large to represent",
(char *)NULL);
- Tcl_SetErrorCode(interp, "ARITH", "OVERFLOW", interp->result,
+ Tcl_SetErrorCode(interp, "ARITH", "OVERFLOW", Tcl_GetStringResult(interp),
(char *)NULL);
}
} else {
@@ -856,7 +856,7 @@
sprintf(buf, "%d", errno);
Tcl_AppendResult(interp, "unknown floating-point error, ",
"errno = ", buf, (char *)NULL);
- Tcl_SetErrorCode(interp, "ARITH", "UNKNOWN", interp->result,
+ Tcl_SetErrorCode(interp, "ARITH", "UNKNOWN", Tcl_GetStringResult(interp),
(char *)NULL);
}
}
--- a/generic/bltTreeCmd.c
+++ b/generic/bltTreeCmd.c
@@ -8560,7 +8560,7 @@
if (result == TCL_CONTINUE ) continue;
if (result == TCL_ERROR) {
Tcl_AppendResult(interp,
- "\n (\"tree foreach\" body line ", Blt_Itoa(interp->errorLine), ")\n", 0);
+ "\n (\"tree foreach\" body line ", Blt_Itoa(Tcl_GetErrorLine(interp)), ")\n", 0);
break;
}
if (result != TCL_OK) {

View File

@@ -0,0 +1,29 @@
Description: Patch replaces call to TkCopyAndGlobalEval by a call to
Tcl_EvalObjEx because the former function has been dropped in Tk 8.6.
Last-Modified: Fri, 04 Jul 2014 09:18:32 +0400
--- a/generic/tkButton.c
+++ b/generic/tkButton.c
@@ -864,8 +864,6 @@
static Blt_TileChangedProc TileChangedProc;
static Tcl_CmdProc ButtonCmd, LabelCmd, CheckbuttonCmd, RadiobuttonCmd;
-EXTERN int TkCopyAndGlobalEval _ANSI_ARGS_((Tcl_Interp *interp, char *script));
-
#if (TK_MAJOR_VERSION > 4)
EXTERN void TkComputeAnchor _ANSI_ARGS_((Tk_Anchor anchor, Tk_Window tkwin,
int padX, int padY, int innerWidth, int innerHeight, int *xPtr,
@@ -3292,7 +3290,12 @@
}
}
if ((butPtr->type > TYPE_LABEL) && (butPtr->command != NULL)) {
- return TkCopyAndGlobalEval(butPtr->interp, butPtr->command);
+ Tcl_DString buf;
+ Tcl_DStringInit(&buf);
+ Tcl_DStringAppend(&buf, butPtr->command, -1);
+ int code = Tcl_EvalEx(butPtr->interp, Tcl_DStringValue(&buf), Tcl_DStringLength(&buf), TCL_EVAL_GLOBAL);
+ Tcl_DStringFree(&buf);
+ return code;
}
return TCL_OK;
}