summaryrefslogtreecommitdiffstats
path: root/source/l/libieee1284
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2023-03-09 20:28:23 +0000
committer Eric Hameleers <alien@slackware.com>2023-03-09 22:34:46 +0100
commit821601d7cba5012a437b87753ccee562d94540ca (patch)
treea24a2fe4ffd50c76c0359961eadb86e746698d1b /source/l/libieee1284
parenta24031248459c107553c13f30fd4bd94a44758e1 (diff)
downloadcurrent-821601d7cba5012a437b87753ccee562d94540ca.tar.gz
current-821601d7cba5012a437b87753ccee562d94540ca.tar.xz
Thu Mar 9 20:28:23 UTC 202320230309202823
a/openssl-solibs-3.0.8-x86_64-2.txz: Rebuilt. ap/dc3dd-7.3.0-x86_64-1.txz: Upgraded. ap/mariadb-10.11.2-x86_64-1.txz: Upgraded. d/cmake-3.25.3-x86_64-1.txz: Upgraded. l/imagemagick-7.1.1_1-x86_64-1.txz: Upgraded. l/libieee1284-0.2.11-x86_64-7.txz: Rebuilt. Rebuilt for python3. Thanks to Heinz Wiesinger. l/libplist-2.2.0-x86_64-4.txz: Rebuilt. Rebuilt for python3. Thanks to Heinz Wiesinger. l/pipewire-0.3.67-x86_64-1.txz: Upgraded. n/ModemManager-1.20.6-x86_64-1.txz: Upgraded. n/NetworkManager-1.42.4-x86_64-1.txz: Upgraded. n/openssl-3.0.8-x86_64-2.txz: Rebuilt. Fixed man pages. Thanks to marav. Add example for enabling the legacy algorithms to /etc/ssl/openssl.cnf. Thanks to ctrlaltca. n/openvpn-2.6.1-x86_64-1.txz: Upgraded. x/ibus-libpinyin-1.15.2-x86_64-1.txz: Upgraded. x/mesa-22.3.7-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/l/libieee1284')
-rw-r--r--source/l/libieee1284/libieee1284-add-more-python-bindings.patch62
-rw-r--r--source/l/libieee1284/libieee1284-fix-warnings.patch103
-rw-r--r--source/l/libieee1284/libieee1284-python3.patch266
-rwxr-xr-xsource/l/libieee1284/libieee1284.SlackBuild16
-rw-r--r--source/l/libieee1284/libieee1284.url1
5 files changed, 446 insertions, 2 deletions
diff --git a/source/l/libieee1284/libieee1284-add-more-python-bindings.patch b/source/l/libieee1284/libieee1284-add-more-python-bindings.patch
new file mode 100644
index 000000000..eea4cb4fc
--- /dev/null
+++ b/source/l/libieee1284/libieee1284-add-more-python-bindings.patch
@@ -0,0 +1,62 @@
+From b4d63327dfef8dbf12aabf4bba0f6818a3519995 Mon Sep 17 00:00:00 2001
+From: Tim Waugh <twaugh@redhat.com>
+Date: Tue, 8 Mar 2011 15:07:04 +0000
+Subject: [PATCH] 2011-03-08 Tim Waugh <twaugh@redhat.com>
+
+* src/ieee1284module.c: Added bindings for get_irq_fd and
+clear_irq. Patch by Sergey Temerkhanov.
+---
+ src/ieee1284module.c | 33 +++++++++++++++++++++++++++++++++
+ 2 files changed, 38 insertions(+)
+
+diff --git a/src/ieee1284module.c b/src/ieee1284module.c
+index 0093d6f..23c1f29 100644
+--- a/src/ieee1284module.c
++++ b/src/ieee1284module.c
+@@ -189,6 +189,33 @@ Parport_open (ParportObject *self, PyObject *args)
+ return PyInt_FromLong (capabilities);
+ }
+
++static PyObject *
++Parport_get_irq_fd (ParportObject *self)
++{
++ int fd = ieee1284_get_irq_fd (self->port);
++ if (fd < 0) {
++ handle_error (fd);
++ return NULL;
++ }
++
++ return PyInt_FromLong (fd);
++}
++
++static PyObject *
++Parport_clear_irq (ParportObject *self)
++{
++ int portcount = 0;
++ int r;
++
++ int fd = ieee1284_clear_irq (self->port, &portcount);
++ if (r < 0) {
++ handle_error (r);
++ return NULL;
++ }
++
++ return PyInt_FromLong (portcount);
++}
++
+ static PyObject *
+ Parport_close (ParportObject *self)
+ {
+@@ -484,6 +511,12 @@ PyMethodDef Parport_methods[] = {
+ { "close", (PyCFunction) Parport_close, METH_NOARGS,
+ "close() -> None\n"
+ "Closes a port." },
++ { "get_irq_fd", (PyCFunction) Parport_get_irq_fd, METH_VARARGS,
++ "get_irq_fd() -> int\n"
++ "Returns a pollable IRQ file descriptor." },
++ { "clear_irq", (PyCFunction) Parport_clear_irq, METH_NOARGS,
++ "clear_irq(portcount) -> int\n"
++ "Clears IRQ and returns number of IRQs raised." },
+ { "claim", (PyCFunction) Parport_claim, METH_NOARGS,
+ "claim() -> None\n"
+ "Claims a port." },
diff --git a/source/l/libieee1284/libieee1284-fix-warnings.patch b/source/l/libieee1284/libieee1284-fix-warnings.patch
new file mode 100644
index 000000000..b65824c8a
--- /dev/null
+++ b/source/l/libieee1284/libieee1284-fix-warnings.patch
@@ -0,0 +1,103 @@
+From c48855528beee1397d883f9c8a5df7aed5c917a6 Mon Sep 17 00:00:00 2001
+From: Tim Waugh <twaugh@redhat.com>
+Date: Wed, 23 Jun 2010 11:58:04 +0000
+Subject: [PATCH] 2010-06-23 Tim Waugh <twaugh@redhat.com>
+
+* src/ieee1284module.c: Fixed warnings.
+---
+ src/ieee1284module.c | 37 ++++++++++++++++++++++++++++---------
+ 2 files changed, 29 insertions(+), 9 deletions(-)
+
+diff --git a/src/ieee1284module.c b/src/ieee1284module.c
+index 30972f8..0093d6f 100644
+--- a/src/ieee1284module.c
++++ b/src/ieee1284module.c
+@@ -28,6 +28,17 @@ typedef struct {
+ struct parport *port;
+ } ParportObject;
+
++static PyObject *
++Parport_new (PyTypeObject *type, PyObject *args, PyObject *kwds)
++{
++ ParportObject *self;
++ self = (ParportObject *) type->tp_alloc (type, 0);
++ if (self != NULL)
++ self->port = NULL;
++
++ return (PyObject *) self;
++}
++
+ static int
+ Parport_init (ParportObject *self, PyObject *args, PyObject *kwds)
+ {
+@@ -215,7 +226,6 @@ Parport_release (ParportObject *self)
+ static PyObject *
+ Parport_read_data (ParportObject *self)
+ {
+- unsigned char b[2];
+ int r = ieee1284_read_data (self->port);
+ if (r < 0) {
+ handle_error (r);
+@@ -258,7 +268,6 @@ Parport_data_dir (ParportObject *self, PyObject *args)
+ static PyObject *
+ Parport_read_status (ParportObject *self)
+ {
+- unsigned char b[2];
+ int r = ieee1284_read_status (self->port);
+ if (r < 0) {
+ handle_error (r);
+@@ -293,7 +302,6 @@ Parport_wait_status (ParportObject *self, PyObject *args)
+ static PyObject *
+ Parport_read_control (ParportObject *self)
+ {
+- unsigned char b[2];
+ int r = ieee1284_read_control (self->port);
+ if (r < 0) {
+ handle_error (r);
+@@ -435,7 +443,6 @@ Parport_##x (ParportObject *self, PyObject *args) \
+ int len; \
+ char *buffer; \
+ ssize_t wrote; \
+- PyObject *ret; \
+ \
+ if (!PyArg_ParseTuple (args, "s#|i", &buffer, &len, &flags)) \
+ return NULL; \
+@@ -562,6 +569,23 @@ static PyTypeObject ParportType = {
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ "parallel port object", /* tp_doc */
++ 0, /* tp_traverse */
++ 0, /* tp_clear */
++ 0, /* tp_richcompare */
++ 0, /* tp_weaklistoffset */
++ 0, /* tp_iter */
++ 0, /* tp_iternext */
++ Parport_methods, /* tp_methods */
++ 0, /* tp_members */
++ Parport_getseters, /* tp_getset */
++ 0, /* tp_base */
++ 0, /* tp_dict */
++ 0, /* tp_descr_get */
++ 0, /* tp_descr_set */
++ 0, /* tp_dictoffset */
++ (initproc)Parport_init, /* tp_init */
++ 0, /* tp_alloc */
++ Parport_new, /* tp_new */
+ };
+
+ static PyObject *
+@@ -625,14 +649,9 @@ initieee1284 (void)
+ PyObject *d = PyModule_GetDict (m);
+ PyObject *c;
+
+- ParportType.tp_new = PyType_GenericNew;
+- ParportType.tp_init = (initproc) Parport_init;
+- ParportType.tp_getset = Parport_getseters;
+- ParportType.tp_methods = Parport_methods;
+ if (PyType_Ready (&ParportType) < 0)
+ return;
+
+- Py_INCREF (&ParportType);
+ PyModule_AddObject (m, "Parport", (PyObject *) &ParportType);
+
+ pyieee1284_error = PyErr_NewException("ieee1284.error", NULL, NULL);
diff --git a/source/l/libieee1284/libieee1284-python3.patch b/source/l/libieee1284/libieee1284-python3.patch
new file mode 100644
index 000000000..bed2be230
--- /dev/null
+++ b/source/l/libieee1284/libieee1284-python3.patch
@@ -0,0 +1,266 @@
+diff --git a/src/ieee1284module.c b/src/ieee1284module.c
+index 23c1f29..c6d6928 100644
+--- a/src/ieee1284module.c
++++ b/src/ieee1284module.c
+@@ -52,33 +52,32 @@ Parport_dealloc (ParportObject *self)
+ {
+ if (self->port)
+ ieee1284_unref (self->port);
+-
+- self->ob_type->tp_free ((PyObject *) self);
++ Py_TYPE(self)->tp_free((PyObject *) self);
+ }
+
+ static PyObject *
+ Parport_getname (ParportObject *self, void *closure)
+ {
+- return PyString_FromString (self->port->name);
++ return PyBytes_FromString (self->port->name);
+ }
+
+ static PyObject *
+ Parport_getbase_addr (ParportObject *self, void *closure)
+ {
+- return PyInt_FromLong (self->port->base_addr);
++ return PyLong_FromLong (self->port->base_addr);
+ }
+
+ static PyObject *
+ Parport_gethibase_addr (ParportObject *self, void *closure)
+ {
+- return PyInt_FromLong (self->port->hibase_addr);
++ return PyLong_FromLong (self->port->hibase_addr);
+ }
+
+ static PyObject *
+ Parport_getfilename (ParportObject *self, void *closure)
+ {
+ if (self->port->filename)
+- return PyString_FromString (self->port->filename);
++ return PyBytes_FromString (self->port->filename);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+@@ -168,7 +167,7 @@ Parport_get_deviceid (ParportObject *self, PyObject *args)
+ return NULL;
+ }
+
+- return PyString_FromStringAndSize (buffer, r);
++ return PyBytes_FromStringAndSize (buffer, r);
+ }
+
+ static PyObject *
+@@ -186,7 +185,7 @@ Parport_open (ParportObject *self, PyObject *args)
+ return NULL;
+ }
+
+- return PyInt_FromLong (capabilities);
++ return PyLong_FromLong (capabilities);
+ }
+
+ static PyObject *
+@@ -198,7 +197,7 @@ Parport_get_irq_fd (ParportObject *self)
+ return NULL;
+ }
+
+- return PyInt_FromLong (fd);
++ return PyLong_FromLong (fd);
+ }
+
+ static PyObject *
+@@ -213,7 +212,7 @@ Parport_clear_irq (ParportObject *self)
+ return NULL;
+ }
+
+- return PyInt_FromLong (portcount);
++ return PyLong_FromLong (portcount);
+ }
+
+ static PyObject *
+@@ -259,7 +258,7 @@ Parport_read_data (ParportObject *self)
+ return NULL;
+ }
+
+- return PyInt_FromLong (r);
++ return PyLong_FromLong (r);
+ }
+
+ static PyObject *
+@@ -301,7 +300,7 @@ Parport_read_status (ParportObject *self)
+ return NULL;
+ }
+
+- return PyInt_FromLong (r);
++ return PyLong_FromLong (r);
+ }
+
+ static PyObject *
+@@ -335,7 +334,7 @@ Parport_read_control (ParportObject *self)
+ return NULL;
+ }
+
+- return PyInt_FromLong (r);
++ return PyLong_FromLong (r);
+ }
+
+ static PyObject *
+@@ -452,7 +451,7 @@ Parport_##x (ParportObject *self, PyObject *args) \
+ return NULL; \
+ } \
+ \
+- ret = PyString_FromStringAndSize (buffer, got); \
++ ret = PyBytes_FromStringAndSize (buffer, got); \
+ free (buffer); \
+ return ret; \
+ }
+@@ -480,7 +479,7 @@ Parport_##x (ParportObject *self, PyObject *args) \
+ return NULL; \
+ } \
+ \
+- return PyInt_FromLong (wrote); \
++ return PyLong_FromLong (wrote); \
+ }
+
+ #define WRITE_METHOD(x) \
+@@ -581,44 +580,53 @@ WRITE_METHOD(ecp_write_addr)
+
+ static PyTypeObject ParportType = {
+ PyObject_HEAD_INIT(NULL)
+- 0, /* ob_size */
+- "ieee1284.Parport", /* tp_name */
+- sizeof (ParportObject), /* tp_basicsize */
+- 0, /* tp_itemsize */
+- (destructor)Parport_dealloc, /* tp_dealloc */
+- 0, /* tp_print */
+- 0, /* tp_getattr */
+- 0, /* tp_setattr */
+- 0, /* tp_compare */
+- 0, /* tp_repr */
+- 0, /* tp_as_number */
+- 0, /* tp_as_sequence */
+- 0, /* tp_as_mapping */
+- 0, /* tp_hash */
+- 0, /* tp_call */
+- 0, /* tp_str */
+- 0, /* tp_getattro */
+- 0, /* tp_setattro */
+- 0, /* tp_as_buffer */
+- Py_TPFLAGS_DEFAULT, /* tp_flags */
+- "parallel port object", /* tp_doc */
+- 0, /* tp_traverse */
+- 0, /* tp_clear */
+- 0, /* tp_richcompare */
+- 0, /* tp_weaklistoffset */
+- 0, /* tp_iter */
+- 0, /* tp_iternext */
+- Parport_methods, /* tp_methods */
+- 0, /* tp_members */
+- Parport_getseters, /* tp_getset */
+- 0, /* tp_base */
+- 0, /* tp_dict */
+- 0, /* tp_descr_get */
+- 0, /* tp_descr_set */
+- 0, /* tp_dictoffset */
+- (initproc)Parport_init, /* tp_init */
+- 0, /* tp_alloc */
+- Parport_new, /* tp_new */
++ "ieee1284.Parport", /* const char *tp_name; */
++ sizeof (ParportObject), /* Py_ssize_t tp_basicsize */
++ 0, /* Py_ssize_t tp_itemsize; */
++ (destructor)Parport_dealloc, /* destructor tp_dealloc; */
++ 0, /* printfunc tp_print; */
++ 0, /* getattrfunc tp_getattr; */
++ 0, /* setattrfunc tp_setattr; */
++ 0, /* PyAsyncMethods *tp_as_async; */
++ 0, /* reprfunc tp_repr; */
++ 0, /* PyNumberMethods *tp_as_number; */
++ 0, /* PySequenceMethods *tp_as_sequence; */
++ 0, /* PyMappingMethods *tp_as_mapping; */
++ 0, /* hashfunc tp_hash; */
++ 0, /* ternaryfunc tp_call; */
++ 0, /* reprfunc tp_str; */
++ 0, /* getattrofunc tp_getattro; */
++ 0, /* setattrofunc tp_setattro; */
++ 0, /* PyBufferProcs *tp_as_buffer; */
++ Py_TPFLAGS_DEFAULT, /* unsigned long tp_flags; */
++ "parallel port object", /* const char *tp_doc; */
++ 0, /* traverseproc tp_traverse; */
++ 0, /* inquiry tp_clear; */
++ 0, /* richcmpfunc tp_richcompare; */
++ 0, /* Py_ssize_t tp_weaklistoffset; */
++ 0, /* getiterfunc tp_iter; */
++ 0, /* iternextfunc tp_iternext; */
++ Parport_methods, /* struct PyMethodDef *tp_methods; */
++ 0, /* struct PyMemberDef *tp_members; */
++ Parport_getseters, /* struct PyGetSetDef *tp_getset; */
++ 0, /* struct _typeobject *tp_base; */
++ 0, /* PyObject *tp_dict; */
++ 0, /* descrgetfunc tp_descr_get; */
++ 0, /* descrsetfunc tp_descr_set; */
++ 0, /* Py_ssize_t tp_dictoffset; */
++ (initproc)Parport_init, /* initproc tp_init; */
++ 0, /* allocfunc tp_alloc; */
++ Parport_new, /* newfunc tp_new; */
++ 0, /* freefunc tp_free; */
++ 0, /* inquiry tp_is_gc; */
++ 0, /* PyObject *tp_bases; */
++ 0, /* PyObject *tp_mro; */
++ 0, /* PyObject *tp_cache; */
++ 0, /* PyObject *tp_subclasses; */
++ 0, /* PyObject *tp_weaklist; */
++ 0, /* destructor tp_del; */
++ 0, /* unsigned int tp_version_tag; */
++ 0 /* destructor tp_finalize; */
+ };
+
+ static PyObject *
+@@ -672,18 +680,30 @@ static PyMethodDef Ieee1284Methods[] = {
+ {NULL, NULL, 0, NULL}
+ };
+
++static struct PyModuleDef Ieee1284Module = {
++ PyModuleDef_HEAD_INIT,
++ "ieee1284",
++ NULL, /* documentation */
++ -1,
++ Ieee1284Methods,
++ NULL,
++ NULL,
++ NULL,
++ NULL
++};
++
+ #ifndef PyMODINIT_FUNC
+ #define PyMODINIT_FUNC void
+ #endif
+ PyMODINIT_FUNC
+-initieee1284 (void)
++PyInit_ieee1284module (void)
+ {
+- PyObject *m = Py_InitModule ("ieee1284", Ieee1284Methods);
++ PyObject *m = PyModule_Create (&Ieee1284Module);
+ PyObject *d = PyModule_GetDict (m);
+ PyObject *c;
+
+ if (PyType_Ready (&ParportType) < 0)
+- return;
++ return NULL;
+
+ PyModule_AddObject (m, "Parport", (PyObject *) &ParportType);
+
+@@ -693,7 +713,7 @@ initieee1284 (void)
+
+ #define CONSTANT(x) \
+ do { \
+- c = PyInt_FromLong (x); \
++ c = PyLong_FromLong (x); \
+ PyDict_SetItemString (d, #x, c); \
+ Py_DECREF (c); \
+ } while (0)
+@@ -740,4 +760,6 @@ initieee1284 (void)
+ CONSTANT (F1284_SWE);
+ CONSTANT (F1284_RLE);
+ CONSTANT (F1284_FASTEPP);
++
++ return m;
+ }
diff --git a/source/l/libieee1284/libieee1284.SlackBuild b/source/l/libieee1284/libieee1284.SlackBuild
index 326b6573e..1827ffda3 100755
--- a/source/l/libieee1284/libieee1284.SlackBuild
+++ b/source/l/libieee1284/libieee1284.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2006, 2007, 2008, 2009, 2010, 2018 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2018, 2023 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libieee1284
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-6}
+BUILD=${BUILD:-7}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -78,8 +78,20 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+# Upstream commits around better python bindings support
+zcat $CWD/libieee1284-fix-warnings.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/libieee1284-add-more-python-bindings.patch.gz | patch -p1 --verbose || exit 1
+
+# Arch patch to update python bindings to python3
+zcat $CWD/libieee1284-python3.patch.gz | patch -p1 --verbose || exit 1
+
+sed -i "s|print sys.version\[:3\]|print(sys.version\[:3\])|" ./configure
+sed -i "s|print sys.platform|print(sys.platform)|" ./configure
+sed -i "s|lib/python|lib$LIBDIRSUFFIX/python|" ./configure
+
# Configure:
CFLAGS="$SLKCFLAGS" \
+PYTHON="/usr/bin/python3" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/source/l/libieee1284/libieee1284.url b/source/l/libieee1284/libieee1284.url
new file mode 100644
index 000000000..3e23f17bb
--- /dev/null
+++ b/source/l/libieee1284/libieee1284.url
@@ -0,0 +1 @@
+https://github.com/twaugh/libieee1284