mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-tcltk/tclpython: remove old version
Package-Manager: Portage-3.0.4, Repoman-2.3.23 Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
This commit is contained in:
@@ -1,2 +1 @@
|
||||
DIST tclpython-4.1.tar.bz2 10580 BLAKE2B 98d4783cc52bc907c21d50ee393e25ee084b449db7c393c16b0b1f0420469bd0904d16dc2a6806b776dad7dabd521e5f2e8cc942c720d9e69750385302355608 SHA512 5f08e7129a7d9afeb1ac6bf1ab1c83ad3bb481593c9516c0653c7b4ba0dfb1b3129a336e64b998cec8ef2d2377a6a366b73c640d25839ab280d5079c0b220d54
|
||||
DIST tclpython-5.0.tar.gz 19327 BLAKE2B bad25a6eb04dbcd9ca3e9bc81d44f098f31f2acf367ecc32307596d5da3ed95752b3c60d9ee74fc04e21669e0361f0790edad3ad5793c78ece4904beacd92900 SHA512 fe15218fe00e921384dbd9611685b86cb6dfacb515a95545079550aeadaaafc3964e6ef0594a268a3fd900f40d178659e8b7f6f2a6d9aa507b59a8be0bd116af
|
||||
|
||||
@@ -1,229 +0,0 @@
|
||||
--- a/tclpython.c 2006-03-07 16:28:03.000000000 +0300
|
||||
+++ b/tclpython.c 2014-05-06 23:33:41.713623943 +0400
|
||||
@@ -19,13 +19,83 @@
|
||||
$ cc -fpic -I/usr/local/include/tcltk/tcl8.3 -c tclthread.c
|
||||
$ ld -o tclpython.so -Bshareable -L/usr/X11R6/lib -L/usr/local/lib -L/usr/local/share/python/config tclpython.o tclthread.o -lpython -lutil -lreadline -ltermcap -lcrypt -lgmp -lgdbm -lpq -lz -ltcl83 -ltk83 -lX11
|
||||
|
||||
+Patched for Python 3 with respect to https://github.com/facebook/fbthrift/blob/master/thrift/lib/py/protocol/fastbinary.c
|
||||
+
|
||||
*/
|
||||
|
||||
#include <Python.h>
|
||||
#include <tcl.h>
|
||||
-#include <cStringIO.h>
|
||||
+
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ #define PyInt_FromLong PyLong_FromLong
|
||||
+ #define PyInt_AsLong PyLong_AsLong
|
||||
+ #define PyString_FromStringAndSize PyBytes_FromStringAndSize
|
||||
+#else
|
||||
+ #include <cStringIO.h>
|
||||
+#endif
|
||||
+
|
||||
#include "tclpython.h"
|
||||
|
||||
+// Mostly copied from cStringIO.c
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+
|
||||
+/** io module in python3. */
|
||||
+static PyObject* Python3IO;
|
||||
+
|
||||
+typedef struct {
|
||||
+ PyObject_HEAD
|
||||
+ char *buf;
|
||||
+ Py_ssize_t pos, string_size;
|
||||
+} IOobject;
|
||||
+
|
||||
+#define IOOOBJECT(O) ((IOobject*)(O))
|
||||
+
|
||||
+static int
|
||||
+IO__opencheck(IOobject *self) {
|
||||
+ if (!self->buf) {
|
||||
+ PyErr_SetString(PyExc_ValueError,
|
||||
+ "I/O operation on closed file");
|
||||
+ return 0;
|
||||
+ }
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static PyObject *
|
||||
+IO_cgetval(PyObject *self) {
|
||||
+ if (!IO__opencheck(IOOOBJECT(self))) return NULL;
|
||||
+ assert(IOOOBJECT(self)->pos >= 0);
|
||||
+ return PyBytes_FromStringAndSize(((IOobject*)self)->buf,
|
||||
+ ((IOobject*)self)->pos);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+/* -- PYTHON MODULE SETUP STUFF --- */
|
||||
+
|
||||
+static PyObject *pythonTclEvaluate(PyObject *self, PyObject *args);
|
||||
+
|
||||
+static PyMethodDef tclMethods[] = {
|
||||
+ {"eval", pythonTclEvaluate, METH_VARARGS, "Evaluate a Tcl script."},
|
||||
+ {0, 0, 0, 0} /* sentinel */
|
||||
+};
|
||||
+
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+struct module_state {
|
||||
+ PyObject *error;
|
||||
+};
|
||||
+
|
||||
+static struct PyModuleDef TclModuleDef = {
|
||||
+ PyModuleDef_HEAD_INIT,
|
||||
+ "tcl",
|
||||
+ NULL,
|
||||
+ sizeof(struct module_state),
|
||||
+ tclMethods,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
#ifndef WIN32
|
||||
/* George Petasis, 21 Feb 2006:
|
||||
* The following check cannot be handled correctly
|
||||
@@ -66,13 +136,13 @@
|
||||
|
||||
static int pythonInterpreter(ClientData clientData, Tcl_Interp *interpreter, int numberOfArguments, Tcl_Obj * CONST arguments[])
|
||||
{
|
||||
- int identifier;
|
||||
+ intptr_t identifier;
|
||||
PyObject *output;
|
||||
PyObject *message;
|
||||
PyObject *result;
|
||||
PyObject *globals;
|
||||
char *string = 0;
|
||||
- int length;
|
||||
+ Py_ssize_t length;
|
||||
Tcl_Obj *object;
|
||||
struct Tcl_HashEntry *entry;
|
||||
unsigned evaluate;
|
||||
@@ -111,12 +181,22 @@
|
||||
/* choose start token depending on whether this is an evaluation or an execution: */
|
||||
result = PyRun_String(Tcl_GetString(arguments[2]), (evaluate? Py_eval_input: Py_file_input), globals, globals);
|
||||
if (result == 0) { /* an error occured */
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ output = PyObject_CallMethod(Python3IO, "BytesIO", "()");
|
||||
+#else
|
||||
output = PycStringIO->NewOutput(1024); /* use a reasonable initial size but big enough to handle most cases */
|
||||
- PySys_SetObject("stderr", output); /* capture all interpreter error output */
|
||||
+#endif
|
||||
+ PySys_SetObject("sys.stderr", output); /* capture all interpreter error output */
|
||||
PyErr_Print(); /* so that error is printed on standard error, redirected above */
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ message = IO_cgetval(output);
|
||||
+ string = PyBytes_AsString(message);
|
||||
+ length = (string == NULL) ? 0 : strlen(string);
|
||||
+#else
|
||||
message = PycStringIO->cgetvalue(output);
|
||||
string = PyString_AsString(message);
|
||||
length = PyString_Size(message);
|
||||
+#endif
|
||||
if ((length > 0) && (string[length - 1] == '\n')) length--; /* eventually remove trailing new line character */
|
||||
object = Tcl_NewObj();
|
||||
Tcl_AppendStringsToObj(object, Tcl_GetString(arguments[0]), ": ", 0); /* identify interpreter in error */
|
||||
@@ -124,7 +204,11 @@
|
||||
Py_DECREF(output);
|
||||
} else {
|
||||
if (evaluate) {
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ string = PyUnicode_AsUTF8(PyObject_Str(result));
|
||||
+#else
|
||||
string = PyString_AsString(PyObject_Str(result));
|
||||
+#endif
|
||||
object = Tcl_NewStringObj(string, -1); /* return evaluation result */
|
||||
} else /* execute */
|
||||
object = Tcl_NewObj(); /* always return an empty result or an error */
|
||||
@@ -139,9 +223,9 @@
|
||||
|
||||
Tcl_Interp *tclInterpreter(CONST char *name) /* public function for use in extensions to this extension */
|
||||
{
|
||||
- int identifier;
|
||||
+ intptr_t identifier;
|
||||
|
||||
- if ((sscanf(name, "tcl%u", &identifier) == 0) || (identifier != 0)) {
|
||||
+ if ((sscanf(name, "tcl%lu", &identifier) == 0) || (identifier != 0)) {
|
||||
return 0; /* invalid name */
|
||||
} else {
|
||||
return mainInterpreter; /* sole available interpreter */
|
||||
@@ -188,14 +272,9 @@
|
||||
return Py_BuildValue("s", result);
|
||||
}
|
||||
|
||||
-static PyMethodDef tclMethods[] = {
|
||||
- {"eval", pythonTclEvaluate, METH_VARARGS, "Evaluate a Tcl script."},
|
||||
- {0, 0, 0, 0} /* sentinel */
|
||||
-};
|
||||
-
|
||||
static int newInterpreter(Tcl_Interp *interpreter)
|
||||
{
|
||||
- int identifier;
|
||||
+ intptr_t identifier;
|
||||
Tcl_Obj *object;
|
||||
int created;
|
||||
#ifdef WITH_THREAD
|
||||
@@ -214,19 +293,31 @@
|
||||
return TCL_ERROR;
|
||||
} else {
|
||||
Py_Initialize(); /* initialize main interpreter */
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ Python3IO = PyImport_ImportModule("io");
|
||||
+#else
|
||||
PycString_IMPORT;
|
||||
+#endif
|
||||
}
|
||||
Tcl_SetHashValue(Tcl_CreateHashEntry(&threadStates, (ClientData)identifier, &created), 0);
|
||||
#else
|
||||
if (existingInterpreters == 0) {
|
||||
Py_Initialize(); /* initialize main interpreter */
|
||||
PyEval_InitThreads(); /* initialize and acquire the global interpreter lock */
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ Python3IO = PyImport_ImportModule("io");
|
||||
+#else
|
||||
PycString_IMPORT;
|
||||
+#endif
|
||||
globalState = PyThreadState_Swap(0); /* save the global thread */
|
||||
} else {
|
||||
PyEval_AcquireLock(); /* needed in order to be able to create a new interpreter */
|
||||
}
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ if (Python3IO == 0) { /* make sure string input/output is properly initialized */
|
||||
+#else
|
||||
if (PycStringIO == 0) { /* make sure string input/output is properly initialized */
|
||||
+#endif
|
||||
Tcl_SetResult(interpreter, "fatal error: could not initialize Python string input/output module", TCL_STATIC);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
@@ -250,7 +341,11 @@
|
||||
newIdentifier++;
|
||||
#endif
|
||||
existingInterpreters++;
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ tcl = PyModule_Create(&TclModuleDef);
|
||||
+#else
|
||||
tcl = Py_InitModule("tcl", tclMethods); /* add a new 'tcl' module to the python interpreter */
|
||||
+#endif
|
||||
Py_INCREF(tcl);
|
||||
PyModule_AddObject(PyImport_AddModule("__builtin__"), "tcl", tcl);
|
||||
return TCL_OK;
|
||||
@@ -260,7 +355,7 @@
|
||||
{
|
||||
int index;
|
||||
char *name;
|
||||
- int identifier;
|
||||
+ intptr_t identifier;
|
||||
struct Tcl_HashEntry *entry;
|
||||
Tcl_Obj *object;
|
||||
#ifdef WITH_THREAD
|
||||
@@ -270,7 +365,7 @@
|
||||
for (index = 0; index < numberOfArguments; index++) {
|
||||
name = Tcl_GetString(arguments[index]); /* interpreter name is "pythonN" */
|
||||
entry = 0;
|
||||
- if (sscanf(name, "python%u", &identifier) == 1) {
|
||||
+ if (sscanf(name, "python%lu", &identifier) == 1) {
|
||||
identifier = atoi(name + 6);
|
||||
entry = Tcl_FindHashEntry(&threadStates, (ClientData)identifier);
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python3_6 )
|
||||
|
||||
inherit eutils multilib python-single-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="Python package for Tcl"
|
||||
HOMEPAGE="http://jfontain.free.fr/tclpython.htm"
|
||||
SRC_URI="http://jfontain.free.fr/${P}.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ppc x86"
|
||||
IUSE=""
|
||||
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DEPEND="${PYTHON_DEPS}
|
||||
dev-lang/tcl:0=
|
||||
sys-libs/binutils-libs"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-python-3.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
epatch "${PATCHES[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local cfile="tclpython tclthread"
|
||||
for src in ${cfile}; do
|
||||
compile="$(tc-getCC) -shared -fPIC ${CFLAGS} -I$(python_get_includedir) -c ${src}.c"
|
||||
einfo "${compile}"
|
||||
eval "${compile}" || die
|
||||
done
|
||||
|
||||
link="$(tc-getCC) -fPIC -shared ${LDFLAGS} -o tclpython.so.${PV} tclpython.o tclthread.o -lpthread -lutil $(python_get_LIBS) -ltcl"
|
||||
einfo "${link}"
|
||||
eval "${link}" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
insinto /usr/$(get_libdir)/tclpython
|
||||
doins tclpython.so.${PV} pkgIndex.tcl
|
||||
fperms 775 /usr/$(get_libdir)/tclpython/tclpython.so.${PV}
|
||||
dosym tclpython.so.${PV} /usr/$(get_libdir)/tclpython/tclpython.so
|
||||
|
||||
dodoc CHANGES INSTALL README
|
||||
dohtml tclpython.htm
|
||||
}
|
||||
Reference in New Issue
Block a user