Author: glen Date: Wed Dec 22 08:59:33 2010 GMT Module: packages Tag: HEAD ---- Log message: - add branch.diff (excluded cmake junk), builds now
---- Files affected: packages/libopensync-plugin-python: libopensync-plugin-python.spec (1.18 -> 1.19) , branch.diff (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/libopensync-plugin-python/libopensync-plugin-python.spec diff -u packages/libopensync-plugin-python/libopensync-plugin-python.spec:1.18 packages/libopensync-plugin-python/libopensync-plugin-python.spec:1.19 --- packages/libopensync-plugin-python/libopensync-plugin-python.spec:1.18 Fri Jul 9 09:26:04 2010 +++ packages/libopensync-plugin-python/libopensync-plugin-python.spec Wed Dec 22 09:59:27 2010 @@ -6,18 +6,20 @@ Summary(pl.UTF-8): Wtyczka Pythona do OpenSync Name: libopensync-plugin-python Version: 0.36 -Release: 4 +Release: 5 License: LGPL v2.1+ Group: Libraries Source0: http://www.opensync.org/download/releases/0.36/%{name}-%{version}.tar.gz # Source0-md5: b8a2d4632c88af3633453c668d2a7b11 Patch0: cmake.patch +Patch1: branch.diff URL: http://www.opensync.org/ BuildRequires: cmake BuildRequires: glib2-devel >= 2.0 BuildRequires: libopensync-devel >= 1:%{version} BuildRequires: pkgconfig BuildRequires: python-devel +BuildRequires: rpmbuild(macros) >= 1.577 BuildRequires: sed >= 4.0 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -42,19 +44,14 @@ %prep %setup -q %patch0 -p1 +%patch1 -p1 rm cmake/modules/FindPythonLibs.cmake %build install -d build cd build -%cmake \ - -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -%if "%{_lib}" != "lib" - -DLIB_SUFFIX=64 \ -%endif - .. - +%cmake .. %{__make} %install @@ -62,8 +59,7 @@ %{__make} -C build install \ DESTDIR=$RPM_BUILD_ROOT -rm -f $RPM_BUILD_ROOT%{_libdir}/opensync-1.0/plugins/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/opensync-1.0/python-plugins/sample.py +%{__rm} $RPM_BUILD_ROOT%{_libdir}/libopensync1/python-plugins/sample.py %clean rm -rf $RPM_BUILD_ROOT @@ -71,8 +67,8 @@ %files %defattr(644,root,root,755) %doc AUTHORS src/sample.py -%attr(755,root,root) %{_libdir}/opensync-1.0/plugins/python-module.so -%dir %{_libdir}/opensync-1.0/python-plugins +%attr(755,root,root) %{_libdir}/libopensync1/plugins/python-module.so +%dir %{_libdir}/libopensync1/python-plugins %define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`) %changelog @@ -80,6 +76,9 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.19 2010/12/22 08:59:27 glen +- add branch.diff (excluded cmake junk), builds now + Revision 1.18 2010/07/09 07:26:04 glen - try building ================================================================ Index: packages/libopensync-plugin-python/branch.diff diff -u /dev/null packages/libopensync-plugin-python/branch.diff:1.1 --- /dev/null Wed Dec 22 09:59:33 2010 +++ packages/libopensync-plugin-python/branch.diff Wed Dec 22 09:59:27 2010 @@ -0,0 +1,241 @@ +diff -ur -x .svn -x .git -x .bzr -x CVS -w -x '*.cmake' -x '*.txt' ../BUILD.i686-linux/libopensync-plugin-python-0.36//src/python_module.c python-module//src/python_module.c +--- ../BUILD.i686-linux/libopensync-plugin-python-0.36//src/python_module.c 2008-01-26 19:03:13.000000000 +0200 ++++ python-module//src/python_module.c 2010-12-22 11:53:33.671997210 +0200 +@@ -25,7 +25,6 @@ + #include <Python.h> + #include <opensync/opensync.h> + #include <opensync/opensync-plugin.h> +-#include <opensync/opensync-context.h> + #include <signal.h> + #include <glib.h> + +@@ -160,7 +159,7 @@ + * - function(info, context) + * - function(info, context, change) + */ +-static osync_bool pm_call_module_method(MemberData *data, char *name, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg) ++static osync_bool pm_call_module_method(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *userdata, char *name, OSyncChange *chg) + { + osync_trace(TRACE_ENTRY, "%s(%s, %p, %p, %p)", __func__, name, info, ctx, chg); + PyObject *ret = NULL; +@@ -169,21 +168,24 @@ + + PyGILState_STATE pystate = PyGILState_Ensure(); + +- PyObject *pyinfo = pm_make_info(data->osync_module, info, &error); ++ PyObject *osync_module = NULL; ++ if (!(osync_module = pm_load_opensync(&error))) ++ goto error; ++ ++ PyObject *pyinfo = pm_make_info(osync_module, info, &error); + if (!pyinfo) + goto error; + +- PyObject *pycontext = pm_make_context(data->osync_module, ctx, &error); ++ PyObject *pycontext = pm_make_context(osync_module, ctx, &error); + if (!pycontext) { + Py_DECREF(pyinfo); + goto error; + } + +- OSyncObjTypeSink *sink = osync_plugin_info_get_sink(info); +- PyObject *sink_pyobject = osync_objtype_sink_get_userdata(sink); ++ PyObject *sink_pyobject = userdata; + + if (chg) { +- PyObject *pychange = pm_make_change(data->osync_module, chg, &error); ++ PyObject *pychange = pm_make_change(osync_module, chg, &error); + if (!pychange) { + Py_DECREF(pyinfo); + Py_DECREF(pycontext); +@@ -202,6 +204,7 @@ + if (ret) { + Py_DECREF(pycontext); + Py_DECREF(ret); ++ Py_XDECREF(osync_module); + PyGILState_Release(pystate); + osync_context_report_success(ctx); + osync_trace(TRACE_EXIT, "%s", __func__); +@@ -213,7 +216,7 @@ + PyErr_Fetch(&pytype, &pyvalue, &pytraceback); + + PyObject *osyncerror = NULL; +- osyncerror = PyObject_GetAttrString(data->osync_module, "Error"); ++ osyncerror = PyObject_GetAttrString(osync_module, "Error"); + if (!osyncerror) { + PYERR_CLEAR(); + osync_error_set(&error, OSYNC_ERROR_GENERIC, "Failed to get OSyncError class object"); +@@ -257,6 +260,7 @@ + Py_XDECREF(osyncerror); + + error: ++ Py_XDECREF(osync_module); + PyGILState_Release(pystate); + if (report_error) + osync_context_report_osyncerror(ctx, error); +@@ -264,57 +268,46 @@ + return FALSE; + } + +-static void pm_connect(void *data, OSyncPluginInfo *info, OSyncContext *ctx) ++static void pm_connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *userdata) + { +- pm_call_module_method(data, "connect", info, ctx, NULL); ++ pm_call_module_method(sink, info, ctx, userdata, "connect", NULL); + } + +-static void pm_disconnect(void *data, OSyncPluginInfo *info, OSyncContext *ctx) ++static void pm_disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *userdata) + { +- pm_call_module_method(data, "disconnect", info, ctx, NULL); ++ pm_call_module_method(sink, info, ctx, userdata, "disconnect", NULL); + } + +-static void pm_get_changes(void *data, OSyncPluginInfo *info, OSyncContext *ctx) ++static void pm_get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync, void *userdata) + { +- pm_call_module_method(data, "get_changes", info, ctx, NULL); ++ pm_call_module_method(sink, info, ctx, userdata, "get_changes", NULL); + } + +-static void pm_commit(void *data, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change) ++static void pm_commit(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change, void *userdata) + { +- pm_call_module_method(data, "commit", info, ctx, change); ++ pm_call_module_method(sink, info, ctx, userdata, "commit", change); + } + +-static void pm_committed_all(void *data, OSyncPluginInfo *info, OSyncContext *ctx) ++static void pm_committed_all(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *userdata) + { +- pm_call_module_method(data, "committed_all", info, ctx, NULL); ++ pm_call_module_method(sink, info, ctx, userdata, "committed_all", NULL); + } + +-static osync_bool pm_write(void *data, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change) ++static void pm_read(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change, void *userdata) + { +- return pm_call_module_method(data, "write", info, ctx, change); ++ pm_call_module_method(sink, info, ctx, userdata, "read", change); + } + +-static osync_bool pm_read(void *data, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change) ++static void pm_sync_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *userdata) + { +- return pm_call_module_method(data, "read", info, ctx, change); ++ pm_call_module_method(sink, info, ctx, userdata, "sync_done", NULL); + } + +-static void pm_sync_done(void *data, OSyncPluginInfo *info, OSyncContext *ctx) ++static void pm_connect_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync, void *userdata) + { +- pm_call_module_method(data, "sync_done", info, ctx, NULL); ++ pm_call_module_method(sink, info, ctx, userdata, "sync_done", NULL); + } + +-static OSyncObjTypeSinkFunctions pm_sink_functions = { +- .connect = pm_connect, +- .disconnect = pm_disconnect, +- .get_changes = pm_get_changes, +- .commit = pm_commit, +- .write = pm_write, +- .committed_all = pm_committed_all, +- .read = pm_read, +- .batch_commit = NULL, /* not (yet) supported for python plugins */ +- .sync_done = pm_sync_done +-}; + + /** Calls the method initialize function + * +@@ -326,6 +319,8 @@ + osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, plugin, info, error); + MemberData *data = g_malloc0(sizeof(MemberData)); + char *modulename; ++ OSyncList *s, *sinks = NULL; ++ OSyncObjTypeSink *sink = NULL; + + if (!(modulename = osync_plugin_get_data(plugin))) + return NULL; +@@ -359,14 +354,22 @@ + Py_DECREF(ret); + + /* loop through all objtype sinks, set up function pointers */ +- int n, max = osync_plugin_info_num_objtypes(info); +- for (n = 0; n < max; n++) { +- OSyncObjTypeSink *sink = osync_plugin_info_nth_objtype(info, n); +- PyObject *sinkobj = osync_objtype_sink_get_userdata(sink); +- osync_objtype_sink_set_functions(sink, pm_sink_functions, sinkobj); +- Py_INCREF(sinkobj); +- data->sinks = g_slist_prepend(data->sinks, sinkobj); ++ ++ sinks = osync_plugin_info_get_objtype_sinks(info); ++ for (s = sinks; s; s = s->next) { ++ sink = (OSyncObjTypeSink *)s; ++ ++ osync_objtype_sink_set_connect_func(sink, pm_connect); ++ osync_objtype_sink_set_disconnect_func(sink, pm_disconnect); ++ osync_objtype_sink_set_get_changes_func(sink, pm_get_changes); ++ osync_objtype_sink_set_commit_func(sink, pm_commit); ++ osync_objtype_sink_set_committed_all_func(sink, pm_committed_all); ++ osync_objtype_sink_set_read_func(sink, pm_read); ++ osync_objtype_sink_set_sync_done_func(sink, pm_sync_done); ++ osync_objtype_sink_set_connect_done_func(sink, pm_connect_done); ++ + } ++ osync_list_free(sinks); + + PyGILState_Release(pystate); + osync_trace(TRACE_EXIT, "%s", __func__); +@@ -381,7 +384,7 @@ + return NULL; + } + +-static osync_bool pm_discover(void *data_in, OSyncPluginInfo *info, OSyncError **error) ++static osync_bool pm_discover(OSyncPluginInfo *info, void *data_in, OSyncError **error) + { + osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data_in, info, error); + +@@ -481,7 +484,10 @@ + osync_plugin_set_discover(plugin, pm_discover); + osync_plugin_set_finalize(plugin, pm_finalize); + osync_plugin_set_data(plugin, g_strdup(modulename)); +- osync_plugin_env_register_plugin(env, plugin); ++ ++ if (!osync_plugin_env_register_plugin(env, plugin, error)) ++ return FALSE; ++ + osync_plugin_unref(plugin); + + osync_trace(TRACE_EXIT, "%s", __func__); +diff -ur -x .svn -x .git -x .bzr -x CVS -w -x '*.cmake' -x '*.txt' ../BUILD.i686-linux/libopensync-plugin-python-0.36//src/sample.py python-module//src/sample.py +--- ../BUILD.i686-linux/libopensync-plugin-python-0.36//src/sample.py 2008-01-26 19:03:13.000000000 +0200 ++++ python-module//src/sample.py 2010-12-22 11:53:33.671997210 +0200 +@@ -3,7 +3,7 @@ + class DummySink(opensync.ObjTypeSinkCallbacks): + def __init__(self, objtype): + opensync.ObjTypeSinkCallbacks.__init__(self, objtype) +- self.sink.add_objformat("file") ++ self.sink.add_objformat(opensync.ObjFormatSink("file")) + + def connect(self, info, ctx): + print "Connect called!" +@@ -23,7 +23,7 @@ + + def commit(self, info, ctx, chg): + print "commit called!" +- print "Opensync wants me to write data for UID", chg.uid ++ print "Opensync wants me to commit data for UID", chg.uid + + def committed_all(self, info, ctx): + print "committed_all called!" +@@ -32,10 +32,6 @@ + print "read called!" + print "OpenSync wants me to read the data for UID", chg.uid + +- def write(self, info, ctx, chg): +- print "write called!" +- print "Opensync wants me to write data for UID", chg.uid +- + def disconnect(self, info, ctx): + print "disconnect called!" + ================================================================ ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/libopensync-plugin-python/libopensync-plugin-python.spec?r1=1.18&r2=1.19&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
