[arch-commits] Commit in libieee1284/trunk (4 files)

Anatol Pomozov anatolik at archlinux.org
Mon Dec 23 17:58:15 UTC 2019


    Date: Monday, December 23, 2019 @ 17:58:14
  Author: anatolik
Revision: 372168

Switch to python3 extension

Added:
  libieee1284/trunk/python3.patch
  libieee1284/trunk/upstream_python_fix1.patch
  libieee1284/trunk/upstream_python_fix2.patch
Modified:
  libieee1284/trunk/PKGBUILD

----------------------------+
 PKGBUILD                   |   36 ++++-
 python3.patch              |  266 +++++++++++++++++++++++++++++++++++++++++++
 upstream_python_fix1.patch |  104 ++++++++++++++++
 upstream_python_fix2.patch |   63 ++++++++++
 4 files changed, 460 insertions(+), 9 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-12-23 17:12:52 UTC (rev 372167)
+++ PKGBUILD	2019-12-23 17:58:14 UTC (rev 372168)
@@ -3,23 +3,41 @@
 
 pkgname=libieee1284
 pkgver=0.2.11
-pkgrel=7
+_tag=${pkgver//\./_}
+pkgrel=8
 pkgdesc="A library to query devices connected in parallel port"
 arch=('x86_64')
 license=('GPL2')
-url="http://cyberelk.net/tim/libieee1284"
-optdepends=('python2: for python module')
-makedepends=('python2')
-source=("https://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2")
-md5sums=('b8fff9f3d121531bc17430e3f4ea6ed0')
+url="https://github.com/twaugh/libieee1284"
+optdepends=('python: for python module')
+makedepends=('python' 'xmlto' 'docbook-xml' 'docbook-xsl')
+source=(libieee1284-$pkgver.zip::https://github.com/twaugh/libieee1284/archive/V$_tag.zip
+        upstream_python_fix1.patch
+        upstream_python_fix2.patch
+        python3.patch)
+sha1sums=('5e24fb4e69652e2460e24af0b7ef6ca960c78965'
+          '8492a99b3350d0201c8720acda8ef442c36c651d'
+          '01dc3aed6266db00e1d0b9c3f6c15aabfdcdcf14'
+          '55f92727e761afd3640edae01b6087eb4779ea0b')
 
+prepare() {
+  cd $pkgname-$_tag
+
+  patch -p1 < ../upstream_python_fix1.patch # https://github.com/twaugh/libieee1284/commit/c48855528beee1397d883f9c8a5df7aed5c917a6
+  patch -p1 < ../upstream_python_fix2.patch # https://github.com/twaugh/libieee1284/commit/b4d63327dfef8dbf12aabf4bba0f6818a3519995
+
+  patch -p1 < ../python3.patch # https://github.com/twaugh/libieee1284/issues/4
+}
+
 build() {
-  cd $pkgname-$pkgver
-  ./configure --prefix=/usr --mandir=/usr/share/man
+  cd $pkgname-$_tag
+
+  ./bootstrap
+  ./configure --prefix=/usr --mandir=/usr/share/man --with-python
   make
 }
 
 package() {
-  cd $pkgname-$pkgver
+  cd $pkgname-$_tag
   make DESTDIR="$pkgdir"/ install
 }

Added: python3.patch
===================================================================
--- python3.patch	                        (rev 0)
+++ python3.patch	2019-12-23 17:58:14 UTC (rev 372168)
@@ -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;
+ }

Added: upstream_python_fix1.patch
===================================================================
--- upstream_python_fix1.patch	                        (rev 0)
+++ upstream_python_fix1.patch	2019-12-23 17:58:14 UTC (rev 372168)
@@ -0,0 +1,104 @@
+From c48855528beee1397d883f9c8a5df7aed5c917a6 Mon Sep 17 00:00:00 2001
+From: Tim Waugh <twaugh at redhat.com>
+Date: Wed, 23 Jun 2010 11:58:04 +0000
+Subject: [PATCH] 2010-06-23  Tim Waugh  <twaugh at redhat.com>
+
+* src/ieee1284module.c: Fixed warnings.
+---
+ ChangeLog            |  1 +
+ 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);

Added: upstream_python_fix2.patch
===================================================================
--- upstream_python_fix2.patch	                        (rev 0)
+++ upstream_python_fix2.patch	2019-12-23 17:58:14 UTC (rev 372168)
@@ -0,0 +1,63 @@
+From b4d63327dfef8dbf12aabf4bba0f6818a3519995 Mon Sep 17 00:00:00 2001
+From: Tim Waugh <twaugh at redhat.com>
+Date: Tue, 8 Mar 2011 15:07:04 +0000
+Subject: [PATCH] 2011-03-08  Tim Waugh  <twaugh at redhat.com>
+
+* src/ieee1284module.c: Added bindings for get_irq_fd and
+clear_irq.  Patch by Sergey Temerkhanov.
+---
+ ChangeLog            |  5 +++++
+ 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." },


More information about the arch-commits mailing list