diff --git a/talimatname/genel/isodumper/header.png b/talimatname/genel/isodumper/header.png new file mode 100644 index 000000000..e80cb783a Binary files /dev/null and b/talimatname/genel/isodumper/header.png differ diff --git a/talimatname/genel/isodumper/header.svg b/talimatname/genel/isodumper/header.svg new file mode 100644 index 000000000..958308603 --- /dev/null +++ b/talimatname/genel/isodumper/header.svg @@ -0,0 +1,435 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/talimatname/genel/isodumper/talimat b/talimatname/genel/isodumper/talimat new file mode 100644 index 000000000..5a3956406 --- /dev/null +++ b/talimatname/genel/isodumper/talimat @@ -0,0 +1,20 @@ +# Description: A tool for writing ISO images on a USB stick. It's a fork of usb-imagewriter. +# URL: https://github.com/papoteur-mga/isodumper +# Packager: alihan-ozturk28@hotmail.com +# Depends on: intltool imagemagick coreutils pango polkit procps-ng python-gtk python-cairo python-gobject2 libglade python dbus-python python-parted udisks2 xorg-term + +name=isodumper +version=0.48 +release=1 + +source=( http://gitweb.mageia.org/software/isodumper/snapshot/$name-$version.tar.gz + header.png + header.svg) + +build() { +cd $name-$version +make +make DESTDIR=$PKG install +cp $SRC/header.png $PKG/usr/share/isodumper +cp $SRC/header.svg $PKG/usr/share/isodumper +} diff --git a/talimatname/genel/python-gobject2/pygobject-2.28.6-fixes-1.patch b/talimatname/genel/python-gobject2/pygobject-2.28.6-fixes-1.patch new file mode 100644 index 000000000..58845c399 --- /dev/null +++ b/talimatname/genel/python-gobject2/pygobject-2.28.6-fixes-1.patch @@ -0,0 +1,720 @@ +Submitted By: Andrew Benton (gobject-introspection) and Armin K. , after thomas kaedin (git) +Date: 2012-03-29 (gobject-introspection) and 2014-03-04 (git) +Initial Package Version: 2.28.6 +Upstream Status: not submitted (gobject-introspection) and committed (git) +Origin: Andrew Benton (gobject-introspection) and upstream (git) +Description: Fixes compiling with recent versions of gobject-introspection; and upstream fixes + +diff -Naur pygobject-2.28.6.orig/configure.ac pygobject-2.28.6/configure.ac +--- pygobject-2.28.6.orig/configure.ac 2011-06-13 13:33:56.000000000 -0300 ++++ pygobject-2.28.6/configure.ac 2014-03-04 18:36:07.947079909 -0300 +@@ -85,7 +85,7 @@ + AM_PROG_CC_STDC + AM_PROG_CC_C_O + +-# check that we have the minimum version of python necisary to build ++# check that we have the minimum version of python necessary to build + JD_PATH_PYTHON(python_min_ver) + + # check if we are building for python 3 +@@ -236,7 +236,7 @@ + AC_ARG_ENABLE(introspection, + AC_HELP_STRING([--enable-introspection], [Use introspection information]), + enable_introspection=$enableval, +- enable_introspection=yes) ++ enable_introspection=no) + if test "$enable_introspection" != no; then + AC_DEFINE(ENABLE_INTROSPECTION,1,Use introspection information) + PKG_CHECK_MODULES(GI, +@@ -262,6 +262,9 @@ + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + ++dnl Do not install codegen for Python 3. ++AM_CONDITIONAL(ENABLE_CODEGEN, test $build_py3k = false) ++ + dnl add required cflags ... + if test "x$GCC" = "xyes"; then + JH_ADD_CFLAG([-Wall]) +@@ -281,8 +284,6 @@ + Makefile + pygobject-2.0.pc + pygobject-2.0-uninstalled.pc +- codegen/Makefile +- codegen/pygobject-codegen-2.0 + docs/Makefile + docs/reference/entities.docbook + docs/xsl/fixxref.py +@@ -295,6 +296,13 @@ + examples/Makefile + tests/Makefile + PKG-INFO) ++ ++if test $build_py3k = false; then ++ AC_CONFIG_FILES( ++ codegen/Makefile ++ codegen/pygobject-codegen-2.0) ++fi ++ + AC_OUTPUT + + echo +diff -Naur pygobject-2.28.6.orig/gi/module.py pygobject-2.28.6/gi/module.py +--- pygobject-2.28.6.orig/gi/module.py 2011-06-13 13:30:25.000000000 -0300 ++++ pygobject-2.28.6/gi/module.py 2014-03-04 18:36:07.947079909 -0300 +@@ -24,7 +24,11 @@ + + import os + import gobject +-import string ++try: ++ maketrans = ''.maketrans ++except AttributeError: ++ # fallback for Python 2 ++ from string import maketrans + + import gi + from .overrides import registry +@@ -124,7 +128,7 @@ + # Don't use upper() here to avoid locale specific + # identifier conversion (e. g. in Turkish 'i'.upper() == 'i') + # see https://bugzilla.gnome.org/show_bug.cgi?id=649165 +- ascii_upper_trans = string.maketrans( ++ ascii_upper_trans = maketrans( + 'abcdefgjhijklmnopqrstuvwxyz', + 'ABCDEFGJHIJKLMNOPQRSTUVWXYZ') + for value_info in info.get_values(): +diff -Naur pygobject-2.28.6.orig/gi/overrides/Gtk.py pygobject-2.28.6/gi/overrides/Gtk.py +--- pygobject-2.28.6.orig/gi/overrides/Gtk.py 2011-06-13 13:33:49.000000000 -0300 ++++ pygobject-2.28.6/gi/overrides/Gtk.py 2014-03-04 18:36:07.949079863 -0300 +@@ -35,6 +35,18 @@ + Gtk = modules['Gtk']._introspection_module + __all__ = [] + ++if Gtk._version == '2.0': ++ import warnings ++ warn_msg = "You have imported the Gtk 2.0 module. Because Gtk 2.0 \ ++was not designed for use with introspection some of the \ ++interfaces and API will fail. As such this is not supported \ ++by the pygobject development team and we encourage you to \ ++port your app to Gtk 3 or greater. PyGTK is the recomended \ ++python module to use with Gtk 2.0" ++ ++ warnings.warn(warn_msg, RuntimeWarning) ++ ++ + class Widget(Gtk.Widget): + + def translate_coordinates(self, dest_widget, src_x, src_y): +@@ -401,16 +413,22 @@ + def __init__(self, + parent=None, + flags=0, +- type=Gtk.MessageType.INFO, ++ message_type=Gtk.MessageType.INFO, + buttons=Gtk.ButtonsType.NONE, + message_format=None, + **kwds): + + if message_format != None: + kwds['text'] = message_format ++ ++ if 'type' in kwds: ++ import warnings ++ warnings.warn("The use of the keyword type as a parameter of the Gtk.MessageDialog constructor has been depricated. Please use message_type instead.", DeprecationWarning) ++ message_type = kwds['type'] ++ + Gtk.MessageDialog.__init__(self, + _buttons_property=buttons, +- message_type=type, ++ message_type=message_type, + **kwds) + Dialog.__init__(self, parent=parent, flags=flags) + +@@ -619,12 +637,18 @@ + def forward_search(self, string, flags, limit): + success, match_start, match_end = super(TextIter, self).forward_search(string, + flags, limit) +- return (match_start, match_end,) ++ if success: ++ return (match_start, match_end) ++ else: ++ return None + + def backward_search(self, string, flags, limit): + success, match_start, match_end = super(TextIter, self).backward_search(string, + flags, limit) +- return (match_start, match_end,) ++ if success: ++ return (match_start, match_end) ++ else: ++ return None + + def begins_tag(self, tag=None): + return super(TextIter, self).begins_tag(tag) +diff -Naur pygobject-2.28.6.orig/gi/pygi-foreign-cairo.c pygobject-2.28.6/gi/pygi-foreign-cairo.c +--- pygobject-2.28.6.orig/gi/pygi-foreign-cairo.c 2011-06-13 13:33:49.000000000 -0300 ++++ pygobject-2.28.6/gi/pygi-foreign-cairo.c 2014-03-04 18:36:07.949079863 -0300 +@@ -30,7 +30,7 @@ + #include + #endif + +-Pycairo_CAPI_t *Pycairo_CAPI; ++static Pycairo_CAPI_t *Pycairo_CAPI; + + #include "pygi-foreign.h" + +@@ -114,10 +114,15 @@ + Py_RETURN_NONE; + } + +-static PyMethodDef _gi_cairo_functions[] = {}; ++static PyMethodDef _gi_cairo_functions[] = {0,}; + PYGLIB_MODULE_START(_gi_cairo, "_gi_cairo") + { ++#if PY_VERSION_HEX < 0x03000000 + Pycairo_IMPORT; ++#else ++ Pycairo_CAPI = (Pycairo_CAPI_t*) PyCObject_Import("cairo", "CAPI"); ++#endif ++ + if (Pycairo_CAPI == NULL) + return PYGLIB_MODULE_ERROR_RETURN; + +diff -Naur pygobject-2.28.6.orig/gi/pygi-info.c pygobject-2.28.6/gi/pygi-info.c +--- pygobject-2.28.6.orig/gi/pygi-info.c 2011-06-13 13:30:25.000000000 -0300 ++++ pygobject-2.28.6/gi/pygi-info.c 2014-03-04 18:35:32.473899924 -0300 +@@ -162,9 +162,6 @@ + case GI_INFO_TYPE_CONSTANT: + type = &PyGIConstantInfo_Type; + break; +- case GI_INFO_TYPE_ERROR_DOMAIN: +- type = &PyGIErrorDomainInfo_Type; +- break; + case GI_INFO_TYPE_UNION: + type = &PyGIUnionInfo_Type; + break; +@@ -481,7 +478,6 @@ + case GI_INFO_TYPE_INVALID: + case GI_INFO_TYPE_FUNCTION: + case GI_INFO_TYPE_CONSTANT: +- case GI_INFO_TYPE_ERROR_DOMAIN: + case GI_INFO_TYPE_VALUE: + case GI_INFO_TYPE_SIGNAL: + case GI_INFO_TYPE_PROPERTY: +@@ -860,7 +856,6 @@ + case GI_INFO_TYPE_INVALID: + case GI_INFO_TYPE_FUNCTION: + case GI_INFO_TYPE_CONSTANT: +- case GI_INFO_TYPE_ERROR_DOMAIN: + case GI_INFO_TYPE_VALUE: + case GI_INFO_TYPE_SIGNAL: + case GI_INFO_TYPE_PROPERTY: +diff -Naur pygobject-2.28.6.orig/gio/gio-types.defs pygobject-2.28.6/gio/gio-types.defs +--- pygobject-2.28.6.orig/gio/gio-types.defs 2011-06-13 13:33:49.000000000 -0300 ++++ pygobject-2.28.6/gio/gio-types.defs 2014-03-04 18:36:07.950079840 -0300 +@@ -526,7 +526,7 @@ + ) + ) + +-(define-enum MountMountFlags ++(define-flags MountMountFlags + (in-module "gio") + (c-name "GMountMountFlags") + (gtype-id "G_TYPE_MOUNT_MOUNT_FLAGS") +@@ -545,7 +545,7 @@ + ) + ) + +-(define-enum DriveStartFlags ++(define-flags DriveStartFlags + (in-module "gio") + (c-name "GDriveStartFlags") + (gtype-id "G_TYPE_DRIVE_START_FLAGS") +@@ -770,7 +770,7 @@ + ) + ) + +-(define-enum SocketMsgFlags ++(define-flags SocketMsgFlags + (in-module "gio") + (c-name "GSocketMsgFlags") + (gtype-id "G_TYPE_SOCKET_MSG_FLAGS") +diff -Naur pygobject-2.28.6.orig/gobject/gobjectmodule.c pygobject-2.28.6/gobject/gobjectmodule.c +--- pygobject-2.28.6.orig/gobject/gobjectmodule.c 2011-06-13 13:33:49.000000000 -0300 ++++ pygobject-2.28.6/gobject/gobjectmodule.c 2014-03-04 18:36:07.952079793 -0300 +@@ -312,13 +312,6 @@ + pyglib_gil_state_release(state); + } + +-static void +-pyg_object_class_init(GObjectClass *class, PyObject *py_class) +-{ +- class->set_property = pyg_object_set_property; +- class->get_property = pyg_object_get_property; +-} +- + typedef struct _PyGSignalAccumulatorData { + PyObject *callable; + PyObject *user_data; +@@ -484,15 +477,14 @@ + } + + static PyObject * +-add_signals (GType instance_type, PyObject *signals) ++add_signals (GObjectClass *klass, PyObject *signals) + { + gboolean ret = TRUE; +- GObjectClass *oclass; + Py_ssize_t pos = 0; + PyObject *key, *value, *overridden_signals = NULL; ++ GType instance_type = G_OBJECT_CLASS_TYPE (klass); + + overridden_signals = PyDict_New(); +- oclass = g_type_class_ref(instance_type); + while (PyDict_Next(signals, &pos, &key, &value)) { + const gchar *signal_name; + gchar *signal_name_canon, *c; +@@ -530,7 +522,6 @@ + if (!ret) + break; + } +- g_type_class_unref(oclass); + if (ret) + return overridden_signals; + else { +@@ -800,14 +791,12 @@ + } + + static gboolean +-add_properties (GType instance_type, PyObject *properties) ++add_properties (GObjectClass *klass, PyObject *properties) + { + gboolean ret = TRUE; +- GObjectClass *oclass; + Py_ssize_t pos = 0; + PyObject *key, *value; + +- oclass = g_type_class_ref(instance_type); + while (PyDict_Next(properties, &pos, &key, &value)) { + const gchar *prop_name; + GType prop_type; +@@ -873,7 +862,7 @@ + Py_DECREF(slice); + + if (pspec) { +- g_object_class_install_property(oclass, 1, pspec); ++ g_object_class_install_property(klass, 1, pspec); + } else { + PyObject *type, *value, *traceback; + ret = FALSE; +@@ -883,7 +872,7 @@ + g_snprintf(msg, 256, + "%s (while registering property '%s' for GType '%s')", + PYGLIB_PyUnicode_AsString(value), +- prop_name, g_type_name(instance_type)); ++ prop_name, G_OBJECT_CLASS_NAME(klass)); + Py_DECREF(value); + value = PYGLIB_PyUnicode_FromString(msg); + } +@@ -892,11 +881,63 @@ + } + } + +- g_type_class_unref(oclass); + return ret; + } + + static void ++pyg_object_class_init(GObjectClass *class, PyObject *py_class) ++{ ++ PyObject *gproperties, *gsignals, *overridden_signals; ++ PyObject *class_dict = ((PyTypeObject*) py_class)->tp_dict; ++ ++ class->set_property = pyg_object_set_property; ++ class->get_property = pyg_object_get_property; ++ ++ /* install signals */ ++ /* we look this up in the instance dictionary, so we don't ++ * accidentally get a parent type's __gsignals__ attribute. */ ++ gsignals = PyDict_GetItemString(class_dict, "__gsignals__"); ++ if (gsignals) { ++ if (!PyDict_Check(gsignals)) { ++ PyErr_SetString(PyExc_TypeError, ++ "__gsignals__ attribute not a dict!"); ++ return; ++ } ++ if (!(overridden_signals = add_signals(class, gsignals))) { ++ return; ++ } ++ if (PyDict_SetItemString(class_dict, "__gsignals__", ++ overridden_signals)) { ++ return; ++ } ++ Py_DECREF(overridden_signals); ++ ++ PyDict_DelItemString(class_dict, "__gsignals__"); ++ } else { ++ PyErr_Clear(); ++ } ++ ++ /* install properties */ ++ /* we look this up in the instance dictionary, so we don't ++ * accidentally get a parent type's __gproperties__ attribute. */ ++ gproperties = PyDict_GetItemString(class_dict, "__gproperties__"); ++ if (gproperties) { ++ if (!PyDict_Check(gproperties)) { ++ PyErr_SetString(PyExc_TypeError, ++ "__gproperties__ attribute not a dict!"); ++ return; ++ } ++ if (!add_properties(class, gproperties)) { ++ return; ++ } ++ PyDict_DelItemString(class_dict, "__gproperties__"); ++ /* Borrowed reference. Py_DECREF(gproperties); */ ++ } else { ++ PyErr_Clear(); ++ } ++} ++ ++static void + pyg_register_class_init(GType gtype, PyGClassInitFunc class_init) + { + GSList *list; +@@ -1068,7 +1109,7 @@ + */ + static void + pyg_type_add_interfaces(PyTypeObject *class, GType instance_type, +- PyObject *bases, gboolean new_interfaces, ++ PyObject *bases, + GType *parent_interfaces, guint n_parent_interfaces) + { + int i; +@@ -1082,7 +1123,6 @@ + guint k; + PyObject *base = PyTuple_GET_ITEM(bases, i); + GType itype; +- gboolean is_new = TRUE; + const GInterfaceInfo *iinfo; + GInterfaceInfo iinfo_copy; + +@@ -1099,16 +1139,6 @@ + if (!G_TYPE_IS_INTERFACE(itype)) + continue; + +- for (k = 0; k < n_parent_interfaces; ++k) { +- if (parent_interfaces[k] == itype) { +- is_new = FALSE; +- break; +- } +- } +- +- if ((new_interfaces && !is_new) || (!new_interfaces && is_new)) +- continue; +- + iinfo = pyg_lookup_interface_info(itype); + if (!iinfo) { + gchar *error; +@@ -1129,7 +1159,7 @@ + int + pyg_type_register(PyTypeObject *class, const char *type_name) + { +- PyObject *gtype, *gsignals, *gproperties, *overridden_signals; ++ PyObject *gtype; + GType parent_type, instance_type; + GType *parent_interfaces; + guint n_parent_interfaces; +@@ -1216,88 +1246,22 @@ + } + + /* +- * Note: Interfaces to be implemented are searched twice. First +- * we register interfaces that are already implemented by a parent +- * type. The second time, the remaining interfaces are +- * registered, i.e. the ones that are not implemented by a parent +- * type. In between these two loops, properties and signals are +- * registered. It has to be done this way, in two steps, +- * otherwise glib will complain. If registering all interfaces +- * always before properties, you get an error like: +- * +- * ../gobject:121: Warning: Object class +- * test_interface+MyObject doesn't implement property +- * 'some-property' from interface 'TestInterface' +- * +- * If, on the other hand, you register interfaces after +- * registering the properties, you get something like: +- * +- * ../gobject:121: Warning: cannot add interface type +- * `TestInterface' to type `test_interface+MyUnknown', since +- * type `test_interface+MyUnknown' already conforms to +- * interface +- * +- * This looks like a GLib quirk, but no bug has been filed +- * upstream. However we have a unit test for this particular +- * problem, which can be found in test_interfaces.py, class +- * TestInterfaceImpl. ++ * Note, all interfaces need to be registered before the first ++ * g_type_class_ref(), see bug #686149. + * + * See also comment above pyg_type_add_interfaces(). + */ +- pyg_type_add_interfaces(class, instance_type, class->tp_bases, FALSE, ++ pyg_type_add_interfaces(class, instance_type, class->tp_bases, + parent_interfaces, n_parent_interfaces); + +- /* we look this up in the instance dictionary, so we don't +- * accidentally get a parent type's __gsignals__ attribute. */ +- gsignals = PyDict_GetItemString(class->tp_dict, "__gsignals__"); +- if (gsignals) { +- if (!PyDict_Check(gsignals)) { +- PyErr_SetString(PyExc_TypeError, +- "__gsignals__ attribute not a dict!"); +- g_free(parent_interfaces); +- return -1; +- } +- if (!(overridden_signals = add_signals(instance_type, gsignals))) { +- g_free(parent_interfaces); +- return -1; +- } +- if (PyDict_SetItemString(class->tp_dict, "__gsignals__", +- overridden_signals)) { +- g_free(parent_interfaces); +- return -1; +- } +- Py_DECREF(overridden_signals); +- } else { +- PyErr_Clear(); +- } + +- /* we look this up in the instance dictionary, so we don't +- * accidentally get a parent type's __gsignals__ attribute. */ +- gproperties = PyDict_GetItemString(class->tp_dict, "__gproperties__"); +- if (gproperties) { +- if (!PyDict_Check(gproperties)) { +- PyErr_SetString(PyExc_TypeError, +- "__gproperties__ attribute not a dict!"); +- g_free(parent_interfaces); +- return -1; +- } +- if (!add_properties(instance_type, gproperties)) { +- g_free(parent_interfaces); +- return -1; +- } +- PyDict_DelItemString(class->tp_dict, "__gproperties__"); +- /* Borrowed reference. Py_DECREF(gproperties); */ +- } else { +- PyErr_Clear(); ++ gclass = g_type_class_ref(instance_type); ++ if (PyErr_Occurred() != NULL) { ++ g_type_class_unref(gclass); ++ g_free(parent_interfaces); ++ return -1; + } + +- /* Register new interfaces, that are _not_ already defined by +- * the parent type. FIXME: See above. +- */ +- pyg_type_add_interfaces(class, instance_type, class->tp_bases, TRUE, +- parent_interfaces, n_parent_interfaces); +- +- gclass = g_type_class_ref(instance_type); + if (pyg_run_class_init(instance_type, gclass, class)) { + g_type_class_unref(gclass); + g_free(parent_interfaces); +@@ -1306,9 +1270,8 @@ + g_type_class_unref(gclass); + g_free(parent_interfaces); + +- if (gsignals) +- PyDict_DelItemString(class->tp_dict, "__gsignals__"); +- ++ if (PyErr_Occurred() != NULL) ++ return -1; + return 0; + } + +diff -Naur pygobject-2.28.6.orig/gobject/propertyhelper.py pygobject-2.28.6/gobject/propertyhelper.py +--- pygobject-2.28.6.orig/gobject/propertyhelper.py 2011-06-13 13:30:25.000000000 -0300 ++++ pygobject-2.28.6/gobject/propertyhelper.py 2014-03-04 18:36:07.953079770 -0300 +@@ -188,14 +188,16 @@ + return TYPE_STRING + elif type_ == object: + return TYPE_PYOBJECT +- elif isinstance(type_, type) and issubclass(type_, _gobject.GObject): ++ elif (isinstance(type_, type) and ++ issubclass(type_, (_gobject.GObject, ++ _gobject.GEnum))): + return type_.__gtype__ + elif type_ in [TYPE_NONE, TYPE_INTERFACE, TYPE_CHAR, TYPE_UCHAR, +- TYPE_INT, TYPE_UINT, TYPE_BOOLEAN, TYPE_LONG, +- TYPE_ULONG, TYPE_INT64, TYPE_UINT64, TYPE_ENUM, +- TYPE_FLAGS, TYPE_FLOAT, TYPE_DOUBLE, TYPE_POINTER, +- TYPE_BOXED, TYPE_PARAM, TYPE_OBJECT, TYPE_STRING, +- TYPE_PYOBJECT]: ++ TYPE_INT, TYPE_UINT, TYPE_BOOLEAN, TYPE_LONG, ++ TYPE_ULONG, TYPE_INT64, TYPE_UINT64, ++ TYPE_FLOAT, TYPE_DOUBLE, TYPE_POINTER, ++ TYPE_BOXED, TYPE_PARAM, TYPE_OBJECT, TYPE_STRING, ++ TYPE_PYOBJECT]: + return type_ + else: + raise TypeError("Unsupported type: %r" % (type_,)) +@@ -224,6 +226,12 @@ + elif ptype == TYPE_PYOBJECT: + if default is not None: + raise TypeError("object types does not have default values") ++ elif gobject.type_is_a(ptype, TYPE_ENUM): ++ if default is None: ++ raise TypeError("enum properties needs a default value") ++ elif not gobject.type_is_a(default, ptype): ++ raise TypeError("enum value %s must be an instance of %r" % ++ (default, ptype)) + + def _get_minimum(self): + ptype = self.type +@@ -291,7 +299,8 @@ + if ptype in [TYPE_INT, TYPE_UINT, TYPE_LONG, TYPE_ULONG, + TYPE_INT64, TYPE_UINT64, TYPE_FLOAT, TYPE_DOUBLE]: + args = self._get_minimum(), self._get_maximum(), self.default +- elif ptype == TYPE_STRING or ptype == TYPE_BOOLEAN: ++ elif (ptype == TYPE_STRING or ptype == TYPE_BOOLEAN or ++ ptype.is_a(TYPE_ENUM)): + args = (self.default,) + elif ptype == TYPE_PYOBJECT: + args = () +diff -Naur pygobject-2.28.6.orig/gobject/pygobject.c pygobject-2.28.6/gobject/pygobject.c +--- pygobject-2.28.6.orig/gobject/pygobject.c 2011-06-13 13:33:49.000000000 -0300 ++++ pygobject-2.28.6/gobject/pygobject.c 2014-03-04 18:36:07.954079747 -0300 +@@ -991,7 +991,9 @@ + PyObject * + pygobject_new_sunk(GObject *obj) + { +- g_object_set_qdata (obj, pygobject_ref_sunk_key, GINT_TO_POINTER (1)); ++ if (obj) ++ g_object_set_qdata (obj, pygobject_ref_sunk_key, GINT_TO_POINTER (1)); ++ + return pygobject_new_full(obj, TRUE, NULL); + } + +diff -Naur pygobject-2.28.6.orig/Makefile.am pygobject-2.28.6/Makefile.am +--- pygobject-2.28.6.orig/Makefile.am 2011-06-13 13:33:49.000000000 -0300 ++++ pygobject-2.28.6/Makefile.am 2014-03-04 18:36:07.954079747 -0300 +@@ -1,7 +1,11 @@ + ACLOCAL_AMFLAGS = -I m4 + AUTOMAKE_OPTIONS = 1.7 + +-SUBDIRS = docs codegen glib gobject gio examples ++SUBDIRS = docs glib gobject gio examples ++ ++if ENABLE_CODEGEN ++SUBDIRS += codegen ++endif + + if ENABLE_INTROSPECTION + SUBDIRS += gi +diff -Naur pygobject-2.28.6.orig/tests/Makefile.am pygobject-2.28.6/tests/Makefile.am +--- pygobject-2.28.6.orig/tests/Makefile.am 2011-06-13 13:33:49.000000000 -0300 ++++ pygobject-2.28.6/tests/Makefile.am 2014-03-04 18:36:07.955079724 -0300 +@@ -104,6 +104,7 @@ + test-floating.h \ + test-thread.h \ + test-unknown.h \ ++ te_ST@nouppera \ + org.gnome.test.gschema.xml + + EXTRA_DIST += $(TEST_FILES_STATIC) $(TEST_FILES_GI) $(TEST_FILES_GIO) +diff -Naur pygobject-2.28.6.orig/tests/test_gdbus.py pygobject-2.28.6/tests/test_gdbus.py +--- pygobject-2.28.6.orig/tests/test_gdbus.py 2011-06-13 13:33:49.000000000 -0300 ++++ pygobject-2.28.6/tests/test_gdbus.py 2014-03-04 18:36:07.956079701 -0300 +@@ -67,8 +67,10 @@ + + def test_native_calls_async(self): + def call_done(obj, result, user_data): +- user_data['result'] = obj.call_finish(result) +- user_data['main_loop'].quit() ++ try: ++ user_data['result'] = obj.call_finish(result) ++ finally: ++ user_data['main_loop'].quit() + + main_loop = gobject.MainLoop() + data = {'main_loop': main_loop} +diff -Naur pygobject-2.28.6.orig/tests/test_properties.py pygobject-2.28.6/tests/test_properties.py +--- pygobject-2.28.6.orig/tests/test_properties.py 2011-06-13 13:30:25.000000000 -0300 ++++ pygobject-2.28.6/tests/test_properties.py 2014-03-04 18:36:07.956079701 -0300 +@@ -14,6 +14,8 @@ + G_MININT, G_MAXINT, G_MAXUINT, G_MINLONG, G_MAXLONG, \ + G_MAXULONG + ++from gi.repository import Gio ++ + if sys.version_info < (3, 0): + TEST_UTF8 = "\xe2\x99\xa5" + UNICODE_UTF8 = unicode(TEST_UTF8, 'UTF-8') +@@ -34,6 +36,9 @@ + uint64 = gobject.property( + type=TYPE_UINT64, flags=PARAM_READWRITE|PARAM_CONSTRUCT) + ++ enum = gobject.property( ++ type=Gio.SocketType, default=Gio.SocketType.STREAM) ++ + class TestProperties(unittest.TestCase): + def testGetSet(self): + obj = PropertyObject() +@@ -61,8 +66,9 @@ + self.failUnless(pspec.name in ['normal', + 'construct', + 'construct-only', +- 'uint64']) +- self.assertEqual(len(obj), 4) ++ 'uint64', ++ 'enum']) ++ self.assertEqual(len(obj), 5) + + def testNormal(self): + obj = new(PropertyObject, normal="123") +@@ -127,6 +133,34 @@ + (etype, ex) = sys.exc_info()[2:] + self.fail(str(ex)) + ++ def testEnum(self): ++ obj = new(PropertyObject) ++ self.assertEqual(obj.props.enum, Gio.SocketType.STREAM) ++ self.assertEqual(obj.enum, Gio.SocketType.STREAM) ++ obj.enum = Gio.SocketType.DATAGRAM ++ self.assertEqual(obj.props.enum, Gio.SocketType.DATAGRAM) ++ self.assertEqual(obj.enum, Gio.SocketType.DATAGRAM) ++ obj.props.enum = Gio.SocketType.STREAM ++ self.assertEqual(obj.props.enum, Gio.SocketType.STREAM) ++ self.assertEqual(obj.enum, Gio.SocketType.STREAM) ++ obj.props.enum = 2 ++ self.assertEqual(obj.props.enum, Gio.SocketType.DATAGRAM) ++ self.assertEqual(obj.enum, Gio.SocketType.DATAGRAM) ++ obj.enum = 1 ++ self.assertEqual(obj.props.enum, Gio.SocketType.STREAM) ++ self.assertEqual(obj.enum, Gio.SocketType.STREAM) ++ ++ self.assertRaises(TypeError, setattr, obj, 'enum', 'foo') ++ self.assertRaises(TypeError, setattr, obj, 'enum', object()) ++ ++ self.assertRaises(TypeError, gobject.property, type=Gio.SocketType) ++ self.assertRaises(TypeError, gobject.property, type=Gio.SocketType, ++ default=Gio.SocketProtocol.TCP) ++ self.assertRaises(TypeError, gobject.property, type=Gio.SocketType, ++ default=object()) ++ self.assertRaises(TypeError, gobject.property, type=Gio.SocketType, ++ default=1) ++ + def testRange(self): + # kiwi code + def max(c): +@@ -270,8 +304,6 @@ + # self.assertRaises(TypeError, gobject.property, type=bool, default=0) + self.assertRaises(TypeError, gobject.property, type=bool, default='ciao mamma') + self.assertRaises(TypeError, gobject.property, type=bool) +- self.assertRaises(TypeError, gobject.property, type=GEnum) +- self.assertRaises(TypeError, gobject.property, type=GEnum, default=0) + self.assertRaises(TypeError, gobject.property, type=object, default=0) + self.assertRaises(TypeError, gobject.property, type=complex) + self.assertRaises(TypeError, gobject.property, flags=-10) diff --git a/talimatname/genel/python-gobject2/talimat b/talimatname/genel/python-gobject2/talimat index b0317f674..9484d42a9 100644 --- a/talimatname/genel/python-gobject2/talimat +++ b/talimatname/genel/python-gobject2/talimat @@ -1,17 +1,19 @@ # Description: provides the links of Python 2 for the class GObject of GLib. # URL: http://www.gnome.org/ # Packager: pierre at nutyx dot org -# Depends on: python-cairo xorg-libxxf86vm +# Depends on: python-cairo xorg-libxxf86vm gobject-introspection name=python-gobject2 version=2.28.6 release=1 -source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/${version%.*}/pygobject-$version.tar.xz) +source=( http://ftp.gnome.org/pub/gnome/sources/pygobject/${version%.*}/pygobject-$version.tar.xz + pygobject-2.28.6-fixes-1.patch) build() { cd pygobject-$version -./configure --prefix=/usr --disable-introspection +patch -Np1 -i $SRC/pygobject-2.28.6-fixes-1.patch +./configure --prefix=/usr make make DESTDIR=$PKG install }