Init at LinuxCNC 2.9-pre-f77537cd4d
This commit is contained in:
40
packages/tkblt/default.nix
Normal file
40
packages/tkblt/default.nix
Normal 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}'
|
||||
'';
|
||||
|
||||
}
|
||||
180
packages/tkblt/install.patch
Normal file
180
packages/tkblt/install.patch
Normal 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,
|
||||
54
packages/tkblt/ldflags.patch
Normal file
54
packages/tkblt/ldflags.patch
Normal 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
|
||||
91
packages/tkblt/tcl8.6.patch
Normal file
91
packages/tkblt/tcl8.6.patch
Normal 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) {
|
||||
29
packages/tkblt/tk8.6.patch
Normal file
29
packages/tkblt/tk8.6.patch
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user