freebsd-ports/sysutils/bareos17-server/files/patch-src-plugins-stored_python-sd.c
Jose Alonso Cardenas Marquez d71653bc5e - Update to 17.2.8
- Fix build with python3
- Fix linking with jansson library
2019-12-29 20:16:22 +00:00

61 lines
1.4 KiB
C

--- src/plugins/stored/python-sd.c 2019-12-29 01:43:28.821366000 -0500
+++ src/plugins/stored/python-sd.c 2019-12-29 01:45:39.796709000 -0500
@@ -34,6 +34,13 @@
#error "Need at least Python version 2.6 or newer"
#endif
+#if (PY_VERSION_HEX > 0x03050000)
+#define PyInt_AsLong PyLong_AsLong
+#define PyInt_FromLong PyLong_FromLong
+#define PyString_AsString PyUnicode_AsUTF8
+#define PyString_FromString PyUnicode_FromString
+#endif
+
static const int dbglvl = 150;
#define PLUGIN_LICENSE "Bareos AGPLv3"
@@ -114,6 +121,20 @@
*/
static PyThreadState *mainThreadState;
+#if (PY_VERSION_HEX > 0x03050000)
+static struct PyModuleDef BareosSDModuleDef = {
+ PyModuleDef_HEAD_INIT,
+ "bareossd",
+ NULL,
+ -1,
+ BareosSDMethods,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -695,7 +716,11 @@
/*
* Make our callback methods available for Python.
*/
+#if (PY_VERSION_HEX > 0x03050000)
+ p_ctx->pInstance = PyModule_Create(&BareosSDModuleDef);
+#else
p_ctx->pInstance = Py_InitModule("bareossd", BareosSDMethods);
+#endif
}
/*
@@ -976,7 +1001,11 @@
char *value;
ctx = PyGetbpContext(pyCtx);
+#if (PY_VERSION_HEX > 0x03050000)
+ value = bstrdup(PyString_AsString(pyValue));
+#else
value = PyString_AsString(pyValue);
+#endif
if (value) {
bfuncs->setBareosValue(ctx, (bsdwVariable)var, value);
}