[dev-python/pygobject*] provide split ebuilds version of pygobject

dev-python/pygobject[cairo] is starting to be required for several
graphical application that otherwise fail to run at runtime. The
list of apps includes the in-development Entropy Rigo Browser.
Unfortunately, dev-python/pygobject[cairo] pulls in a shitload
of deps: half X -> mesa -> llvm/clang. This is unwanted on
X-less images we have (SpinBase) due to the big amount of extra
software we would have to ship with.
We cannot remove dev-python/pygobject from ISO images because
Anaconda requires it.
This commit is contained in:
Fabio Erculiani
2012-02-12 08:33:22 +01:00
parent 67b3a5a878
commit 45194bb5db
19 changed files with 921 additions and 0 deletions
@@ -0,0 +1,72 @@
From b5c4b8b97a1ccb9a4c63ab726ea9c84d81ef51ca Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Fri, 5 Nov 2010 23:39:08 +0100
Subject: [PATCH 2/3] Do not build tests unless needed
[Alexandre Rostovtsev <tetromino@gmail.com>: port to 2.90.1]
---
tests/Makefile.am | 10 ++++------
tests/runtests.py | 3 +++
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4ec6477..c52cb9d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,5 +1,5 @@
CLEANFILES =
-noinst_LTLIBRARIES = libregress.la libgimarshallingtests.la
+check_LTLIBRARIES = libregress.la libgimarshallingtests.la
nodist_libregress_la_SOURCES = $(GI_DATADIR)/tests/regress.c $(GI_DATADIR)/tests/regress.h
libregress_la_CFLAGS = $(GIO_CFLAGS) $(PYCAIRO_CFLAGS)
@@ -43,7 +43,7 @@ gschemas.compiled: org.gnome.test.gschema.xml
CLEANFILES += Regress-1.0.gir Regress-1.0.typelib GIMarshallingTests-1.0.gir GIMarshallingTests-1.0.typelib gschemas.compiled
-noinst_LTLIBRARIES += testhelper.la
+check_LTLIBRARIES += testhelper.la
testhelper_la_CFLAGS = -I$(top_srcdir)/gi/_gobject -I$(top_srcdir)/gi/_glib $(PYTHON_INCLUDES) $(GLIB_CFLAGS)
testhelper_la_LDFLAGS = -module -avoid-version
@@ -63,8 +63,6 @@ testhelper.la: $(testhelper_la_OBJECTS) $(testhelper_la_DEPENDENCIES)
test -L $@ || $(LN_S) .libs/$@ $@
-all: $(LTLIBRARIES:.la=.so)
-
TEST_FILES_STATIC = \
test_gobject.py \
test_interface.py \
@@ -97,7 +95,7 @@ EXTRA_DIST = \
EXTRA_DIST += $(TEST_FILES_STATIC) $(TEST_FILES_GI)
clean-local:
- rm -f $(LTLIBRARIES:.la=.so) file.txt~
+ rm -f $(check_LTLIBRARIES:.la=.so) file.txt~
DBUS_LAUNCH=$(shell which dbus-launch)
RUN_TESTS_ENV_VARS= \
@@ -108,7 +106,7 @@ RUN_TESTS_ENV_VARS= \
TESTS_BUILDDIR=$(builddir)
RUN_TESTS_LAUNCH=$(RUN_TESTS_ENV_VARS) $(DBUS_LAUNCH) $(EXEC_NAME) $(PYTHON) $(srcdir)/runtests.py
-check-local: $(LTLIBRARIES:.la=.so) Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled
+check-local: $(check_LTLIBRARIES:.la=.so) Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled
TEST_FILES="$(TEST_FILES_STATIC)" $(RUN_TESTS_LAUNCH)
TEST_FILES="$(TEST_FILES_GI)" $(RUN_TESTS_LAUNCH)
diff --git a/tests/runtests.py b/tests/runtests.py
index 2a8ecf4..dc9fb03 100755
--- a/tests/runtests.py
+++ b/tests/runtests.py
@@ -7,6 +7,9 @@ import sys
import unittest
+# Some tests fail with translated messages.
+os.environ["LC_ALL"] = "C"
+
if '--help' in sys.argv:
print("Usage: ./runtests.py <testfiles>")
sys.exit(0)
@@ -0,0 +1,85 @@
From 228ce7f0f99d2f5fa7d4ac86784d4e81032f9a3a Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Fri, 8 Apr 2011 15:43:39 +0200
Subject: [PATCH 2/3] Enable support to build against multiple version of
python
---
gi/Makefile.am | 2 +-
gi/_glib/Makefile.am | 14 +++++++-------
gi/_gobject/Makefile.am | 2 +-
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/gi/Makefile.am b/gi/Makefile.am
index 0584cc9..9abb61d 100644
--- a/gi/Makefile.am
+++ b/gi/Makefile.am
@@ -83,7 +83,7 @@ _gi_la_CPPFLAGS = \
_gi_la_LIBADD = \
$(extension_libadd) \
$(GI_LIBS) \
- $(top_builddir)/gi/_glib/libpyglib-gi-2.0-@PYTHON_BASENAME@.la
+ $(top_builddir)/gi/_glib/libpyglib-gi-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
_gi_la_LDFLAGS = \
$(extension_ldflags) \
-export-symbols-regex "init_gi|PyInit__gi"
diff --git a/gi/_glib/Makefile.am b/gi/_glib/Makefile.am
index 3cf2593..eaa0ce9 100644
--- a/gi/_glib/Makefile.am
+++ b/gi/_glib/Makefile.am
@@ -27,24 +27,24 @@ pyglib_PYTHON = \
__init__.py \
option.py
-lib_LTLIBRARIES = libpyglib-gi-2.0-@PYTHON_BASENAME@.la
+lib_LTLIBRARIES = libpyglib-gi-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
-libpyglib_gi_2_0_@PYTHON_BASENAME@_la_SOURCES = \
+libpyglib_gi_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_SOURCES = \
pyglib.c \
pyglib.h \
pyglib-private.h \
pyglib-python-compat.h
-libpyglib_gi_2_0_@PYTHON_BASENAME@_la_CPPFLAGS = \
+libpyglib_gi_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_CPPFLAGS = \
$(extension_cppflags)
-libpyglib_gi_2_0_@PYTHON_BASENAME@_la_CFLAGS = \
+libpyglib_gi_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_CFLAGS = \
$(GLIB_CFLAGS)
-libpyglib_gi_2_0_@PYTHON_BASENAME@_la_LIBADD = \
+libpyglib_gi_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_LIBADD = \
$(extension_libadd) \
$(FFI_LIBS) \
$(GLIB_LIBS)
if OS_WIN32
-libpyglib_gi_2_0_@PYTHON_BASENAME@_la_LDFLAGS = \
+libpyglib_gi_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_LDFLAGS = \
-no-undefined
endif
@@ -73,7 +73,7 @@ _glib_la_CPPFLAGS = \
_glib_la_LIBADD = \
$(extension_libadd) \
$(GLIB_LIBS) \
- libpyglib-gi-2.0-@PYTHON_BASENAME@.la
+ libpyglib-gi-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
_glib_la_LDFLAGS = \
$(extension_ldflags) \
-export-symbols-regex "_glib|PyInit__glib"
diff --git a/gi/_gobject/Makefile.am b/gi/_gobject/Makefile.am
index 6bddcf7..023907f 100644
--- a/gi/_gobject/Makefile.am
+++ b/gi/_gobject/Makefile.am
@@ -65,7 +65,7 @@ _gobject_la_LIBADD = \
$(extension_libadd) \
$(GLIB_LIBS) \
$(FFI_LIBS) \
- $(top_builddir)/gi/_glib/libpyglib-gi-2.0-@PYTHON_BASENAME@.la
+ $(top_builddir)/gi/_glib/libpyglib-gi-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la
_gobject_la_LDFLAGS = \
$(extension_ldflags) \
-export-symbols-regex "_gobject|PyInit__gobject"
--
1.7.6.1
@@ -0,0 +1,69 @@
Disable tests requiring >=gobject-introspection-1.31
diff --git a/tests/test_everything.py b/tests/test_everything.py
index 43735e5..ecfdef4 100644
--- a/tests/test_everything.py
+++ b/tests/test_everything.py
@@ -507,22 +507,3 @@ class TestAdvancedInterfaces(unittest.TestCase):
self.assertEquals(ret[0], 51);
self.assertEquals(ret[1], 61);
self.assertEquals(ret[2], 32);
-
- def test_obj_skip_return_val_no_out(self):
- obj = Everything.TestObj();
- # raises an error for 0, succeeds for any other value
- self.assertRaises(GLib.GError, obj.skip_return_val_no_out, 0)
-
- ret = obj.skip_return_val_no_out(1)
- self.assertEquals(ret, None)
-
-class TestSignals(unittest.TestCase):
- def test_object_param_signal(self):
- obj = Everything.TestObj();
-
- def callback (obj_param):
- self.assertEquals(obj_param.props.int, 3)
- self.assertEquals(obj_param.__grefcount__, 2)
-
- obj.connect('sig-with-obj', callback)
- obj.emit_sig_with_obj()
diff --git a/tests/test_gi.py b/tests/test_gi.py
index 0a9b1b2..7e24778 100644
--- a/tests/test_gi.py
+++ b/tests/test_gi.py
@@ -770,18 +770,6 @@ class TestArray(unittest.TestCase):
def test_gstrv_inout(self):
self.assertEquals(['-1', '0', '1', '2'], GIMarshallingTests.gstrv_inout(['0', '1', '2']))
- def test_array_gvariant_none_in(self):
- v = [GLib.Variant("i", 27), GLib.Variant("s", "Hello")]
- self.assertEquals([27, "Hello"], map(GLib.Variant.unpack, GIMarshallingTests.array_gvariant_none_in(v)))
-
- def test_array_gvariant_container_in(self):
- v = [GLib.Variant("i", 27), GLib.Variant("s", "Hello")]
- self.assertEquals([27, "Hello"], map(GLib.Variant.unpack, GIMarshallingTests.array_gvariant_none_in(v)))
-
- def test_array_gvariant_full_in(self):
- v = [GLib.Variant("i", 27), GLib.Variant("s", "Hello")]
- self.assertEquals([27, "Hello"], map(GLib.Variant.unpack, GIMarshallingTests.array_gvariant_none_in(v)))
-
def test_bytearray_gvariant(self):
v = GLib.Variant.new_bytestring("foo")
self.assertEquals(v.get_bytestring(), "foo")
@@ -1651,16 +1639,6 @@ class TestPythonGObject(unittest.TestCase):
def do_method_not_a_vfunc(self):
pass
- def test_subsubobject(self):
- class SubSubSubObject(GIMarshallingTests.SubSubObject):
- def do_method_deep_hierarchy(self, num):
- self.props.int = num * 2
-
- sub_sub_sub_object = SubSubSubObject()
- GIMarshallingTests.SubSubObject.do_method_deep_hierarchy(sub_sub_sub_object, 5)
- self.assertEqual(sub_sub_sub_object.props.int, 5)
-
-
class TestMultiOutputArgs(unittest.TestCase):
def test_int_out_out(self):
@@ -0,0 +1,70 @@
From 00030bc6f0fb961c716ed692144cd8e4bb9be7d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20P=C3=B6lsterl?= <sebp@k-d-w.org>
Date: Sat, 10 Dec 2011 12:51:45 +0100
Subject: [PATCH] Fixed bug where GObject.property did not respect minimum and
maximum values
https://bugzilla.gnome.org/show_bug.cgi?id=664864
---
gi/_gobject/propertyhelper.py | 2 +-
tests/test_properties.py | 31 +++++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 1 deletions(-)
diff --git a/gi/_gobject/propertyhelper.py b/gi/_gobject/propertyhelper.py
index 4635350..9208a0b 100644
--- a/gi/_gobject/propertyhelper.py
+++ b/gi/_gobject/propertyhelper.py
@@ -298,7 +298,7 @@ class property(object):
ptype = self.type
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
+ args = self.minimum, self.maximum, self.default
elif (ptype == TYPE_STRING or ptype == TYPE_BOOLEAN or
ptype.is_a(TYPE_ENUM)):
args = (self.default,)
diff --git a/tests/test_properties.py b/tests/test_properties.py
index 3521647..75aacff 100644
--- a/tests/test_properties.py
+++ b/tests/test_properties.py
@@ -367,6 +367,37 @@ class TestProperty(unittest.TestCase):
GObject.property, type=gtype, minimum=min,
maximum=max+1)
+ def testMinMax(self):
+ class C(GObject.GObject):
+ prop_int = GObject.property(type=int, minimum=1, maximum=100, default=1)
+ prop_float = GObject.property(type=float, minimum=0.1, maximum=10.5, default=1.1)
+
+ def __init__(self):
+ GObject.GObject.__init__(self)
+
+ o = C()
+ self.assertEqual(o.prop_int, 1)
+
+ o.prop_int = 5
+ self.assertEqual(o.prop_int, 5)
+
+ o.prop_int = 0
+ self.assertEqual(o.prop_int, 5)
+
+ o.prop_int = 101
+ self.assertEqual(o.prop_int, 5)
+
+ self.assertEqual(o.prop_float, 1.1)
+
+ o.prop_float = 7.75
+ self.assertEqual(o.prop_float, 7.75)
+
+ o.prop_float = 0.09
+ self.assertEqual(o.prop_float, 7.75)
+
+ o.prop_float = 10.51
+ self.assertEqual(o.prop_float, 7.75)
+
def testMultipleInstances(self):
class C(GObject.GObject):
prop = GObject.property(type=str, default='default')
--
1.7.8.1
@@ -0,0 +1,28 @@
From 8d88283688797b8fc70a7cbccd42a71b8518098d Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Mon, 26 Dec 2011 00:44:56 -0500
Subject: [PATCH] Fix bytearray test compatibility with python3
https://bugs.gentoo.org/show_bug.cgi?id=321879
---
tests/test_gi.py | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/test_gi.py b/tests/test_gi.py
index 0a9b1b2..8726187 100644
--- a/tests/test_gi.py
+++ b/tests/test_gi.py
@@ -783,8 +783,8 @@ class TestArray(unittest.TestCase):
self.assertEquals([27, "Hello"], map(GLib.Variant.unpack, GIMarshallingTests.array_gvariant_none_in(v)))
def test_bytearray_gvariant(self):
- v = GLib.Variant.new_bytestring("foo")
- self.assertEquals(v.get_bytestring(), "foo")
+ v = GLib.Variant.new_bytestring(b"foo")
+ self.assertEquals(v.get_bytestring(), b"foo")
class TestGArray(unittest.TestCase):
--
1.7.8.1