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;
openSUSE Build Service is sponsored by