File gcc14.patch of Package python-dmidecode
Index: python-dmidecode-3.12.3/src/dmidecodemodule.c
===================================================================
--- python-dmidecode-3.12.3.orig/src/dmidecodemodule.c
+++ python-dmidecode-3.12.3/src/dmidecodemodule.c
@@ -54,13 +54,13 @@
#include <mcheck.h>
#if (PY_VERSION_HEX < 0x03030000)
-char *PyUnicode_AsUTF8(PyObject *unicode) {
+const char *PyUnicode_AsUTF8(PyObject *unicode) {
PyObject *as_bytes = PyUnicode_AsUTF8String(unicode);
if (!as_bytes) {
return NULL;
}
- return PyBytes_AsString(as_bytes);
+ return (const char*)PyBytes_AsString(as_bytes);
}
#endif
@@ -479,7 +479,7 @@ xmlNode *__dmidecode_xml_getsection(opti
if(opt->type == -1) {
char *err = log_retrieve(opt->logdata, LOG_ERR);
log_clear_partial(opt->logdata, LOG_ERR, 0);
- _pyReturnError(PyExc_RuntimeError, "Invalid type id '%s' -- %s", typeid, err);
+ PyReturnError(PyExc_RuntimeError, "Invalid type id '%s' -- %s", typeid, err);
free(err);
return NULL;
}
@@ -657,7 +657,7 @@ static PyObject *dmidecode_get_slot(PyOb
static PyObject *dmidecode_get_section(PyObject *self, PyObject *args)
{
- char *section = NULL;
+ const char *section = NULL;
if (PyUnicode_Check(args)) {
section = PyUnicode_AsUTF8(args);
} else if (PyBytes_Check(args)) {
@@ -788,7 +788,7 @@ static PyObject *dmidecode_get_dev(PyObj
static PyObject *dmidecode_set_dev(PyObject * self, PyObject * arg)
{
- char *f = NULL;
+ const char *f = NULL;
if(PyUnicode_Check(arg)) {
f = PyUnicode_AsUTF8(arg);
} else if(PyBytes_Check(arg)) {
@@ -835,7 +835,7 @@ static PyObject *dmidecode_set_dev(PyObj
static PyObject *dmidecode_set_pythonxmlmap(PyObject * self, PyObject * arg)
{
- char *fname = NULL;
+ const char *fname = NULL;
if (PyUnicode_Check(arg)) {
fname = PyUnicode_AsUTF8(arg);
@@ -913,7 +913,7 @@ static PyMethodDef DMIDataMethods[] = {
{(char *)"pythonmap", dmidecode_set_pythonxmlmap, METH_O,
(char *) "Use another python dict map definition. The default file is " PYTHON_XML_MAP},
- {(char *)"xmlapi", dmidecode_xmlapi, METH_VARARGS | METH_KEYWORDS,
+ {(char *)"xmlapi", (PyCFunction)dmidecode_xmlapi, METH_VARARGS | METH_KEYWORDS,
(char *) "Internal API for retrieving data as raw XML data"},
@@ -1024,7 +1024,7 @@ initdmidecodemod(void)
// Assign this options struct to the module as well with a destructor, that way it will
// clean up the memory for us.
// TODO: destructor has wrong type under py3?
- PyModule_AddObject(module, "options", PyCapsule_New(opt, NULL, destruct_options));
+ PyModule_AddObject(module, "options", PyCapsule_New(opt, NULL, (PyCapsule_Destructor)destruct_options));
global_options = opt;
#ifdef IS_PY3K
return module;