diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-07-14 21:03:06 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-07-14 21:03:06 +0100 |
commit | 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch) | |
tree | 7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-python/pygobject | |
parent | 30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff) |
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-python/pygobject')
13 files changed, 1140 insertions, 0 deletions
diff --git a/dev-python/pygobject/Manifest b/dev-python/pygobject/Manifest new file mode 100644 index 000000000000..5bb39ed5da2a --- /dev/null +++ b/dev-python/pygobject/Manifest @@ -0,0 +1,15 @@ +AUX pygobject-2.28.3-fix-codegen-location.patch 1948 BLAKE2B c3f4735c9a2fdd1cc9847766299fb6c6d0bd7e54a9920c1b2f2a82edaab9399906cd9504d361869494db93782d278c2a099efdd519571b6ca25d2b681295950c SHA512 6f618d3826a505906669bbbe680a514e61884564f2c3025c438a97f192de6c9fd0e7f43c8e9bfff62776a51a56b0eead6ca54a0c157c071cf0f493b8f0d46506 +AUX pygobject-2.28.3-make_check.patch 2705 BLAKE2B 42cf86c7b45d4d63831a0772ead400b083dd73c5f95f2a4fd8e7c0810b0ab6781218e65d0de1a031102a0f525a5c1f73426431c6561d412ced95c3e2f883f6d7 SHA512 9829f92ce0ace9d1a6e84428dc16bd0a893a24e784273e79c849618ebf4749e3168e6b1f1b9a9ca7e114ec04612045985823ad34247891d8ba7609279c4c4af4 +AUX pygobject-2.28.3-support_multiple_python_versions.patch 3938 BLAKE2B 5cc2d6cd8059a536d9198c08a2de36e538d6a36b4617a5c5254172716faf94dceedfa3204683e7ba71df8bbf3ba3140d3837a1b860a96ea856f8e3377aa56d5b SHA512 b835c503ea1baa831d1f258221998c5194ea58750e33564ff7b22870a8f47dfef37d986aa282d527dd2ea2b9e598ffede38ed7dd8f966788e32e8719ac94035f +AUX pygobject-2.28.6-disable-failing-tests.patch 3549 BLAKE2B fed363cb76f5115b44ef9ae8b96e863bd9d7c10b7fc1d5416745e6de0e85c2f85cf4ea3792fec36c2edab0a2592c1f63be0c996222d707e9231f92ba6d5bb4b9 SHA512 1ff3b9474c1fbf7e4fe7f2346f862f1ba1da0748d955ebcfd606d74b885c12daa2673c31aa594925c441bfaa29390d9324e56696e291d3f7e301cbf114491cb3 +AUX pygobject-2.28.6-gio-types-2.32.patch 1231 BLAKE2B 1649df8d58ee096a0746b5ca282f18f6cc64e66683ea9dd24343b4441d582eba9b1dec82eab6397397da1155ee3e8d872a1e261e04734aa88dccc2652ebc625d SHA512 86a34f73a4436ff77488743fc15c0cc901c27b55dad9bcfdc9c32ff184bccc277217d5a0e13bc36982e14e34ab5fee5224e055879a0036a1ccdf5dc26bc737d4 +AUX pygobject-2.28.6-glib-2.36-class_init.patch 11038 BLAKE2B d610454930cf4a568fc9800b3fc58440e2bbc08d91572e7263df42af9c20d2400f7c6d4f64a0cdd066be1469ff33e2ba01b452b5898fe1368add1bb947ca366f SHA512 e8acc5970ac540dc01551759591ee693ae12dd1512130b135e397e528d920159f0f8866bb8a611e2c06cd96f899ef7239153b59a2ec0318e1fd08266acf95e04 +AUX pygobject-2.28.6-set_qdata.patch 847 BLAKE2B 696aa6c48ee900db738f8a92265a625a3ab7b59afece84157bf0b9abd0aca5ae68b7ac8cc627a47a5b1a688029d592abcc38e403543a4144e055bcdac68285e4 SHA512 19025af51a8387061276ec9d6c8eb0ecadb5124bba2c4ab3755ab653df467896d19c366d80ce9313fd46e43b493b7c536f780014cf18a6ac47f4b1d2ad4bedb4 +AUX pygobject-2.28.6-tests-no-introspection.patch 1257 BLAKE2B 7ff0587b4b40a1519927f8837b5487847ad0d0aa25f57dbaa4b10eaed2eff79f52d6581ca29f1688ebdbe71db231aba56de06c3aa8b246fdd1799320d9a15cc3 SHA512 7d57cb9bbd0b16f4fb0ed9d5eca310c47daf86b89daefa41fb0cf5dd470a6f6a31d0dad31dd261332c039d39bd778f9de8de7260c5856f1b718f72b9aabc01b4 +DIST pygobject-2.28.6.tar.xz 747248 BLAKE2B 5f92794034b2d0559a623db4a7d273a7dc3f099cae87ede91b17e81acac085a9298c6b81b45b4b8540b6a75ced97e474a993437dbfcfc2133d3321d6a979b541 SHA512 37544ea2377258758169b25a2969d5ee1c9ffb9b6e63e05bc7a0471a49ac9169c51ec587d4489172c7d256f53df878a81c1992a08059aa7e43dbbb69f799545c +DIST pygobject-3.22.0.tar.xz 756820 BLAKE2B 2030b9106c082bbec4418c97945df68e20f49005341ad1d7c6d390b894ac88e13f2619215df4c02587b5ccce606083906609d89c559b790777092e991afbf367 SHA512 1f6f0ea8014b35d7828a6bebc0fe2cf6519016ca5ad3819dc6b7879154d8e27fdd2971620955c8fc4904625814833c8bc8ec0599152720649864262d3b6e33e4 +DIST pygobject-3.24.1.tar.xz 758648 BLAKE2B 95e3bc6d022b70053549f8a780aa372d8964477e881b825299ca82a7328bbdab58b037a92d36578915ac622b7c223d47cc1c35fccd3ea70d7840841eaec6860d SHA512 f35968ab12b872c85af6b2410cadedcf9fa7e17352a40f3dc557c86203aa1c38753710aab9ce55e986ee2c98b64e14123c65083655445e993d0b53431db6dc93 +EBUILD pygobject-2.28.6-r55.ebuild 3541 BLAKE2B 7d20bfad727c2f1e56b28a2d01ac354c3becd1529019eaaaeccb35083c74b8932ee14f061b249d8c02f601f880a8455c3064cd89e2be137e9eeb0bcd3f2a2799 SHA512 d4c7e7a96b5151472b20bb1663b94383acaa526c5df4d545289ca9fe0cc18889238df8b1aeaddf19a1a46cd046b43c46268a65b0e820dc7ebe403d05d664b64b +EBUILD pygobject-3.22.0.ebuild 2940 BLAKE2B 3a5281e9483d976dec0854b885695e6b612782a4f0c1766ce416b0d1ea8d0c27b00853e71d9ae87c7c96d4ee82f94e3d9c657932f1f87231b3768f5a1c9e28f9 SHA512 999d60141ed662a29b0a8f28c57b4bf3e2dbb2770cb82d573553ab18cc7e45587989b99d740bcba4908724f9c2095fc8665b3a24c1bc1185a20b334cb431bf48 +EBUILD pygobject-3.24.1.ebuild 3164 BLAKE2B f015df355bc0b6e9918c0a42964b539d213259a31540a335bf97620edaba6f4234867a1cb558c427782970f2360dc0090bfc2b8f0a4f70820eb80604178f6287 SHA512 d21334795c93a90bb32c4ebf67c4ffe9d14d2d30add10ab87f4feaaf661e21dbfd9eee1d4ad5d258ed41bd0e5fd8ba13e4c6764260b523594947ec5896f26e7d +MISC metadata.xml 353 BLAKE2B 20a18942138d7ceab468b01a639f92248bf94f0e6a015a0c6c34872cf60ab56ef91d9b36eebc74b3d3133ecbc6cfbf2aedbc24369165d0fe9a4e832394beb022 SHA512 abcb7bb015ebb246584f60f388837ed0638040f730111831b52716cbc5a9c4ab0c422397702e1d87e56b2947108d5cfa5aeac7489bcd6f89db480c68c572bcdc diff --git a/dev-python/pygobject/files/pygobject-2.28.3-fix-codegen-location.patch b/dev-python/pygobject/files/pygobject-2.28.3-fix-codegen-location.patch new file mode 100644 index 000000000000..44440a526b81 --- /dev/null +++ b/dev-python/pygobject/files/pygobject-2.28.3-fix-codegen-location.patch @@ -0,0 +1,64 @@ +From b3e852d29bfd1e90f7e0da409fd0ae36cc01675a Mon Sep 17 00:00:00 2001 +From: Gilles Dartiguelongue <eva@gentoo.org> +Date: Fri, 8 Apr 2011 15:36:35 +0200 +Subject: [PATCH 1/3] Move codegen to a non-private directory + +--- + codegen/Makefile.am | 2 +- + codegen/pygobject-codegen-2.0.in | 3 ++- + pygobject-2.0.pc.in | 3 ++- + 3 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/codegen/Makefile.am b/codegen/Makefile.am +index f9886eb..d714ff2 100644 +--- a/codegen/Makefile.am ++++ b/codegen/Makefile.am +@@ -2,7 +2,7 @@ PLATFORM_VERSION = 2.0 + + bin_SCRIPTS = pygobject-codegen-$(PLATFORM_VERSION) + +-codegendir = $(pkgdatadir)/$(PLATFORM_VERSION)/codegen ++codegendir = $(pyexecdir)/gtk-2.0/codegen + + codegen_SCRIPTS = \ + code-coverage.py \ +diff --git a/codegen/pygobject-codegen-2.0.in b/codegen/pygobject-codegen-2.0.in +index c5c912e..c04451b 100644 +--- a/codegen/pygobject-codegen-2.0.in ++++ b/codegen/pygobject-codegen-2.0.in +@@ -1,9 +1,10 @@ + #!/bin/sh + + prefix=@prefix@ ++exec_prefix=@exec_prefix@ + datarootdir=@datarootdir@ + datadir=@datadir@ +-codegendir=${datadir}/pygobject/2.0/codegen ++codegendir=@pyexecdir@/gtk-2.0/codegen + + PYTHONPATH=$codegendir + export PYTHONPATH +diff --git a/pygobject-2.0.pc.in b/pygobject-2.0.pc.in +index a47b685..0d1a811 100644 +--- a/pygobject-2.0.pc.in ++++ b/pygobject-2.0.pc.in +@@ -4,6 +4,7 @@ includedir=@includedir@ + datarootdir=@datarootdir@ + datadir=@datadir@ + libdir=@libdir@ ++pyexecdir=@pyexecdir@ + + # you can use the --variable=pygtkincludedir argument to + # pkg-config to get this value. You might want to use this to +@@ -12,7 +13,7 @@ pygtkincludedir=${includedir}/pygtk-2.0 + fixxref=${datadir}/pygobject/xsl/fixxref.py + pygdocs=${datadir}/gtk-doc/html/pygobject + defsdir=${datadir}/pygobject/2.0/defs +-codegendir=${datadir}/pygobject/2.0/codegen ++codegendir=${pyexecdir}/gtk-2.0/codegen + overridesdir=@pyexecdir@/gi/overrides + + Name: PyGObject +-- +1.7.4.1 + diff --git a/dev-python/pygobject/files/pygobject-2.28.3-make_check.patch b/dev-python/pygobject/files/pygobject-2.28.3-make_check.patch new file mode 100644 index 000000000000..45c04b96780e --- /dev/null +++ b/dev-python/pygobject/files/pygobject-2.28.3-make_check.patch @@ -0,0 +1,76 @@ +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 + +--- + tests/Makefile.am | 12 +++++------- + tests/runtests.py | 2 ++ + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index bad15f0..5b0859a 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -1,7 +1,7 @@ + CLEANFILES = +-noinst_LTLIBRARIES = ++check_LTLIBRARIES = + if ENABLE_INTROSPECTION +-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) +@@ -46,7 +46,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 + endif + +-noinst_LTLIBRARIES += testhelper.la ++check_LTLIBRARIES += testhelper.la + + testhelper_la_CFLAGS = -I$(top_srcdir)/gobject -I$(top_srcdir)/glib $(PYTHON_INCLUDES) $(GLIB_CFLAGS) + testhelper_la_LDFLAGS = -module -avoid-version +@@ -66,8 +66,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 \ +@@ -109,7 +107,7 @@ EXTRA_DIST = \ + EXTRA_DIST += $(TEST_FILES_STATIC) $(TEST_FILES_GI) $(TEST_FILES_GIO) + + 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= \ +@@ -121,7 +119,7 @@ RUN_TESTS_ENV_VARS= \ + RUN_TESTS_LAUNCH=$(RUN_TESTS_ENV_VARS) $(DBUS_LAUNCH) $(EXEC_NAME) $(PYTHON) $(srcdir)/runtests.py + + # run tests in separately to avoid loading static and introspection bindings in the same process +-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) + if BUILD_GIO +diff --git a/tests/runtests.py b/tests/runtests.py +index 2bb8637..4107bcf 100644 +--- a/tests/runtests.py ++++ b/tests/runtests.py +@@ -6,6 +6,8 @@ import sys + + import unittest + ++# Some tests fail with translated messages. ++os.environ["LC_ALL"] = "C" + + # force untranslated messages, as we check for them in some tests + os.environ['LC_MESSAGES'] = 'C' +-- +1.7.4.1 + diff --git a/dev-python/pygobject/files/pygobject-2.28.3-support_multiple_python_versions.patch b/dev-python/pygobject/files/pygobject-2.28.3-support_multiple_python_versions.patch new file mode 100644 index 000000000000..65d881a43d2a --- /dev/null +++ b/dev-python/pygobject/files/pygobject-2.28.3-support_multiple_python_versions.patch @@ -0,0 +1,103 @@ +From 2f75378f3c56f245cabdcd2c52b561dbb878db2d Mon Sep 17 00:00:00 2001 +From: Gilles Dartiguelongue <eva@gentoo.org> +Date: Fri, 8 Apr 2011 15:43:39 +0200 +Subject: [PATCH 3/3] Enable support to build against multiple version of python + +--- + codegen/pygobject-codegen-2.0.in | 2 +- + gi/Makefile.am | 2 +- + gio/Makefile.am | 2 +- + glib/Makefile.am | 10 +++++----- + gobject/Makefile.am | 2 +- + 5 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/codegen/pygobject-codegen-2.0.in b/codegen/pygobject-codegen-2.0.in +index c04451b..194e5ba 100644 +--- a/codegen/pygobject-codegen-2.0.in ++++ b/codegen/pygobject-codegen-2.0.in +@@ -4,7 +4,7 @@ prefix=@prefix@ + exec_prefix=@exec_prefix@ + datarootdir=@datarootdir@ + datadir=@datadir@ +-codegendir=@pyexecdir@/gtk-2.0/codegen ++codegendir=$(@PYTHON@ -c "from distutils import sysconfig; print sysconfig.get_python_lib(1, 0, prefix='@exec_prefix@')")/gtk-2.0/codegen + + PYTHONPATH=$codegendir + export PYTHONPATH +diff --git a/gi/Makefile.am b/gi/Makefile.am +index 31f6c79..8690522 100644 +--- a/gi/Makefile.am ++++ b/gi/Makefile.am +@@ -25,7 +25,7 @@ _gi_la_LDFLAGS = \ + -export-symbols-regex "init_gi|PyInit__gi" + _gi_la_LIBADD = \ + $(GI_LIBS) \ +- $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@.la ++ $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la + _gi_la_SOURCES = \ + pygi-repository.c \ + pygi-repository.h \ +diff --git a/gio/Makefile.am b/gio/Makefile.am +index 6b3eb57..00e1c54 100644 +--- a/gio/Makefile.am ++++ b/gio/Makefile.am +@@ -67,7 +67,7 @@ EXTRA_DIST += $(GIO_DEFS) $(GIO_OVERRIDES) + gio.c: $(GIO_DEFS) $(GIO_OVERRIDES) + _gio_la_CFLAGS = $(GIO_CFLAGS) + _gio_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gio +-_gio_la_LIBADD = $(GIO_LIBS) $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@.la ++_gio_la_LIBADD = $(GIO_LIBS) $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la + _gio_la_SOURCES = \ + giomodule.c \ + pygio-utils.c \ +diff --git a/glib/Makefile.am b/glib/Makefile.am +index e210318..df39687 100644 +--- a/glib/Makefile.am ++++ b/glib/Makefile.am +@@ -4,7 +4,7 @@ INCLUDES = $(PYTHON_INCLUDES) $(GLIB_CFLAGS) -DPY_SSIZE_T_CLEAN + pkgincludedir = $(includedir)/pygtk-2.0 + pkginclude_HEADERS = pyglib.h + +-lib_LTLIBRARIES = libpyglib-2.0-@PYTHON_BASENAME@.la ++lib_LTLIBRARIES = libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la + + pkgpyexecdir = $(pyexecdir) + +@@ -19,9 +19,9 @@ if PLATFORM_WIN32 + common_ldflags += -no-undefined + endif + +-libpyglib_2_0_@PYTHON_BASENAME@_la_CFLAGS = $(GLIB_CFLAGS) +-libpyglib_2_0_@PYTHON_BASENAME@_la_LIBADD = $(GLIB_LIBS) $(FFI_LIBS) +-libpyglib_2_0_@PYTHON_BASENAME@_la_SOURCES = \ ++libpyglib_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_CFLAGS = $(GLIB_CFLAGS) ++libpyglib_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_LIBADD = $(GLIB_LIBS) $(FFI_LIBS) ++libpyglib_2_0_@PYTHON_BASENAME@@PYTHON_VERSION@_la_SOURCES = \ + pyglib.c \ + pyglib.h \ + pyglib-private.h \ +@@ -29,7 +29,7 @@ libpyglib_2_0_@PYTHON_BASENAME@_la_SOURCES = \ + + _glib_la_CFLAGS = $(GLIB_CFLAGS) + _glib_la_LDFLAGS = $(common_ldflags) -export-symbols-regex "_glib|PyInit__glib" +-_glib_la_LIBADD = $(GLIB_LIBS) libpyglib-2.0-@PYTHON_BASENAME@.la ++_glib_la_LIBADD = $(GLIB_LIBS) libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la + _glib_la_SOURCES = \ + glibmodule.c \ + pygiochannel.c \ +diff --git a/gobject/Makefile.am b/gobject/Makefile.am +index 7208329..3f9ad8e 100644 +--- a/gobject/Makefile.am ++++ b/gobject/Makefile.am +@@ -35,7 +35,7 @@ _gobject_la_LDFLAGS = $(common_ldflags) -export-symbols-regex "_gobject|PyInit__ + _gobject_la_LIBADD = \ + $(GLIB_LIBS) \ + $(FFI_LIBS) \ +- $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@.la ++ $(top_builddir)/glib/libpyglib-2.0-@PYTHON_BASENAME@@PYTHON_VERSION@.la + _gobject_la_SOURCES = \ + gobjectmodule.c \ + pygboxed.c \ +-- +1.7.4.1 + diff --git a/dev-python/pygobject/files/pygobject-2.28.6-disable-failing-tests.patch b/dev-python/pygobject/files/pygobject-2.28.6-disable-failing-tests.patch new file mode 100644 index 000000000000..f9d396dc4b56 --- /dev/null +++ b/dev-python/pygobject/files/pygobject-2.28.6-disable-failing-tests.patch @@ -0,0 +1,98 @@ +From 9d8867a7c67a14d055a0dd8db5f6a9aae5762a04 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gentoo.org> +Date: Sun, 13 Jan 2013 19:50:14 -0500 +Subject: [PATCH] Disable failing tests + +--- + tests/test_gio.py | 13 ++++++++----- + tests/test_overrides.py | 4 ++-- + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/tests/test_gio.py b/tests/test_gio.py +index e14eddf..a4d1bc7 100644 +--- a/tests/test_gio.py ++++ b/tests/test_gio.py +@@ -650,10 +650,11 @@ class TestInputStream(unittest.TestCase): + else: + return read_data + ++ """ + def testReadAsync(self): + def callback(stream, result): +- self.assertEquals(result.get_op_res_gssize(), 7) + try: ++ self.assertEquals(result.get_op_res_gssize(), 7) + data = stream.read_finish(result) + self.assertEquals(data, "testing") + stream.close() +@@ -694,7 +695,7 @@ class TestInputStream(unittest.TestCase): + self.assertRaises(TypeError, self.stream.read_async, 1024, + priority=1, cancellable="bar") + self.assertRaises(TypeError, self.stream.read_async, 1024, 1, "bar") +- ++ """ + + # FIXME: this makes 'make check' freeze + def _testCloseAsync(self): +@@ -822,10 +823,11 @@ class TestOutputStream(unittest.TestCase): + + self.assertEquals(stream.get_contents(), some_data) + ++ """ + def testWriteAsync(self): + def callback(stream, result): +- self.assertEquals(result.get_op_res_gssize(), 7) + try: ++ self.assertEquals(result.get_op_res_gssize(), 7) + self.assertEquals(stream.write_finish(result), 7) + self.failUnless(os.path.exists("outputstream.txt")) + self.assertEquals(open("outputstream.txt").read(), "testing") +@@ -861,6 +863,7 @@ class TestOutputStream(unittest.TestCase): + self.assertRaises(TypeError, self.stream.write_async, "foo", + priority=1, cancellable="bar") + self.assertRaises(TypeError, self.stream.write_async, "foo", 1, "bar") ++ """ + + # FIXME: this makes 'make check' freeze + def _testCloseAsync(self): +@@ -1007,7 +1010,7 @@ class TestVfs(unittest.TestCase): + class TestVolume(unittest.TestCase): + def setUp(self): + self.monitor = gio.volume_monitor_get() +- ++""" + def testVolumeEnumerate(self): + volumes = self.monitor.get_volumes() + self.failUnless(isinstance(volumes, list)) +@@ -1018,7 +1021,7 @@ class TestVolume(unittest.TestCase): + for id in ids: + if id is not None: + self.failUnless(isinstance(id, str)) +- ++""" + class TestFileInputStream(unittest.TestCase): + def setUp(self): + self._f = open("file.txt", "w+") +diff --git a/tests/test_overrides.py b/tests/test_overrides.py +index 47f38a3..063792d 100644 +--- a/tests/test_overrides.py ++++ b/tests/test_overrides.py +@@ -337,13 +337,13 @@ class TestPango(unittest.TestCase): + desc = Pango.FontDescription('monospace') + self.assertEquals(desc.get_family(), 'monospace') + self.assertEquals(desc.get_variant(), Pango.Variant.NORMAL) +- ++""" + def test_layout(self): + self.assertRaises(TypeError, Pango.Layout) + context = Pango.Context() + layout = Pango.Layout(context) + self.assertEquals(layout.get_context(), context) +- ++""" + class TestGdk(unittest.TestCase): + + def test_constructor(self): +-- +1.8.1 + diff --git a/dev-python/pygobject/files/pygobject-2.28.6-gio-types-2.32.patch b/dev-python/pygobject/files/pygobject-2.28.6-gio-types-2.32.patch new file mode 100644 index 000000000000..fa0adf54ad04 --- /dev/null +++ b/dev-python/pygobject/files/pygobject-2.28.6-gio-types-2.32.patch @@ -0,0 +1,50 @@ +From 42d01f060c5d764baa881d13c103d68897163a49 Mon Sep 17 00:00:00 2001 +From: Ryan Lortie <desrt@desrt.ca> +Date: Mon, 12 Mar 2012 16:44:14 -0400 +Subject: [PATCH] gio-types.defs: change some enums to flags + +These flags types were originally incorrectly handled in glib as being +enums. That bug was fixed, but they're still enums here, leading to +warnings about the mismatch. + +Change them to flags. + +https://bugzilla.gnome.org/show_bug.cgi?id=668522 +--- + gio/gio-types.defs | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gio/gio-types.defs b/gio/gio-types.defs +index 331e0bc..7eee5c8 100644 +--- a/gio/gio-types.defs ++++ b/gio/gio-types.defs +@@ -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") +-- +1.7.8.5 + diff --git a/dev-python/pygobject/files/pygobject-2.28.6-glib-2.36-class_init.patch b/dev-python/pygobject/files/pygobject-2.28.6-glib-2.36-class_init.patch new file mode 100644 index 000000000000..b2f9b147f847 --- /dev/null +++ b/dev-python/pygobject/files/pygobject-2.28.6-glib-2.36-class_init.patch @@ -0,0 +1,315 @@ +From 9456ba70fdb98b3a4eb7ee2f630182387a54ca00 Mon Sep 17 00:00:00 2001 +From: Martin Pitt <martinpitt@gnome.org> +Date: Tue, 19 Feb 2013 15:39:56 +0100 +Subject: [PATCH] Move property and signal creation into _class_init() + +We must not add class interfaces after g_type_class_ref() has been called the +first time. Move signal and property creation from pyg_type_register() into +pyg_object_class_init(), and drop the hack of registering interfaces twice. + +This is a backport of commit efcb0f9fd for 2.28.x. This allows old pygtk +applications to work with pygobject 2.28.x and glib 2.35.x. + +https://bugzilla.gnome.org/show_bug.cgi?id=694108 +--- + gobject/gobjectmodule.c | 177 +++++++++++++++++++----------------------------- + 1 file changed, 70 insertions(+), 107 deletions(-) + +diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c +index 2a84606..91f7315 100644 +--- a/gobject/gobjectmodule.c ++++ b/gobject/gobjectmodule.c +@@ -312,13 +312,6 @@ pyg_object_get_property (GObject *object, guint property_id, + 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 @@ override_signal(GType instance_type, const gchar *signal_name) + } + + 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 @@ add_signals (GType instance_type, PyObject *signals) + if (!ret) + break; + } +- g_type_class_unref(oclass); + if (ret) + return overridden_signals; + else { +@@ -800,14 +791,12 @@ pyg_param_spec_from_object (PyObject *tuple) + } + + 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 @@ add_properties (GType instance_type, PyObject *properties) + 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 @@ add_properties (GType instance_type, PyObject *properties) + 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 @@ add_properties (GType instance_type, PyObject *properties) + } + } + +- 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 @@ pygobject__g_instance_init(GTypeInstance *instance, + */ + 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 @@ pyg_type_add_interfaces(PyTypeObject *class, GType instance_type, + 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 @@ pyg_type_add_interfaces(PyTypeObject *class, GType instance_type, + 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 @@ pyg_type_add_interfaces(PyTypeObject *class, GType instance_type, + 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 @@ pyg_type_register(PyTypeObject *class, const char *type_name) + } + + /* +- * 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 @@ pyg_type_register(PyTypeObject *class, const char *type_name) + 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; + } + +-- +1.8.3.2 + diff --git a/dev-python/pygobject/files/pygobject-2.28.6-set_qdata.patch b/dev-python/pygobject/files/pygobject-2.28.6-set_qdata.patch new file mode 100644 index 000000000000..55376b59d829 --- /dev/null +++ b/dev-python/pygobject/files/pygobject-2.28.6-set_qdata.patch @@ -0,0 +1,28 @@ +From 42d871eb0b08ee6d55e95cc7e4b90844919555b9 Mon Sep 17 00:00:00 2001 +From: Ivan Stankovic <ivan.stankovic@avl.com> +Date: Tue, 21 Feb 2012 12:24:58 +0100 +Subject: [PATCH] Fix set_qdata warning on accessing NULL gobject property + +https://bugzilla.gnome.org/show_bug.cgi?id=661155 +--- + gobject/pygobject.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/gobject/pygobject.c b/gobject/pygobject.c +index 6c2f06c..70dc89a 100644 +--- a/gobject/pygobject.c ++++ b/gobject/pygobject.c +@@ -991,7 +991,9 @@ pygobject_new(GObject *obj) + 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); + } + +-- +1.7.8.5 + diff --git a/dev-python/pygobject/files/pygobject-2.28.6-tests-no-introspection.patch b/dev-python/pygobject/files/pygobject-2.28.6-tests-no-introspection.patch new file mode 100644 index 000000000000..d7e0c68e0dca --- /dev/null +++ b/dev-python/pygobject/files/pygobject-2.28.6-tests-no-introspection.patch @@ -0,0 +1,33 @@ +From 9c8ec7495e9e73855dc284be293828572f408c92 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gentoo.org> +Date: Tue, 25 Dec 2012 00:26:05 -0500 +Subject: [PATCH] Do not run introspection tests when building with + introspection disabled + +--- + tests/Makefile.am | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index e60bad5..3a0d1b7 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -120,9 +120,14 @@ RUN_TESTS_ENV_VARS= \ + RUN_TESTS_LAUNCH=$(RUN_TESTS_ENV_VARS) $(DBUS_LAUNCH) $(EXEC_NAME) $(PYTHON) $(srcdir)/runtests.py + + # run tests in separately to avoid loading static and introspection bindings in the same process +-check-local: $(check_LTLIBRARIES:.la=.so) Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled ++if ENABLE_INTROSPECTION ++CHECK_LOCAL_INTROSPECTION_REQ = Regress-1.0.typelib GIMarshallingTests-1.0.typelib gschemas.compiled ++endif ++check-local: $(check_LTLIBRARIES:.la=.so) $(CHECK_LOCAL_INTROSPECTION_REQ) + TEST_FILES="$(TEST_FILES_STATIC)" $(RUN_TESTS_LAUNCH) ++if ENABLE_INTROSPECTION + TEST_FILES="$(TEST_FILES_GI)" $(RUN_TESTS_LAUNCH) ++endif + if BUILD_GIO + TEST_FILES="$(TEST_FILES_GIO)" $(RUN_TESTS_LAUNCH) + endif +-- +1.8.0.2 + diff --git a/dev-python/pygobject/metadata.xml b/dev-python/pygobject/metadata.xml new file mode 100644 index 000000000000..08a5bd43f9b9 --- /dev/null +++ b/dev-python/pygobject/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> +<maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> +</pkgmetadata> diff --git a/dev-python/pygobject/pygobject-2.28.6-r55.ebuild b/dev-python/pygobject/pygobject-2.28.6-r55.ebuild new file mode 100644 index 000000000000..df30d8f21b53 --- /dev/null +++ b/dev-python/pygobject/pygobject-2.28.6-r55.ebuild @@ -0,0 +1,131 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +GCONF_DEBUG="no" +GNOME2_LA_PUNT="yes" +PYTHON_COMPAT=( python2_7 ) + +inherit autotools eutils gnome2 python-r1 virtualx + +DESCRIPTION="GLib's GObject library bindings for Python" +HOMEPAGE="http://www.pygtk.org/" + +LICENSE="LGPL-2.1+" +SLOT="2" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="examples libffi test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +COMMON_DEPEND=">=dev-libs/glib-2.24.0:2 + dev-lang/python-exec:2 + libffi? ( virtual/libffi:= ) + ${PYTHON_DEPS} +" +DEPEND="${COMMON_DEPEND} + dev-util/gtk-doc-am + virtual/pkgconfig + test? ( + media-fonts/font-cursor-misc + media-fonts/font-misc-misc ) +" +RDEPEND="${COMMON_DEPEND} + !<dev-python/pygtk-2.23" + +src_prepare() { + # Fix FHS compliance, see upstream bug #535524 + epatch "${FILESDIR}/${PN}-2.28.3-fix-codegen-location.patch" + + # Do not build tests if unneeded, bug #226345 + epatch "${FILESDIR}/${PN}-2.28.3-make_check.patch" + + # Support installation for multiple Python versions, upstream bug #648292 + epatch "${FILESDIR}/${PN}-2.28.3-support_multiple_python_versions.patch" + + # Disable tests that fail + epatch "${FILESDIR}/${P}-disable-failing-tests.patch" + + # Disable introspection tests when we build with --disable-introspection + epatch "${FILESDIR}/${P}-tests-no-introspection.patch" + + # Fix warning spam + epatch "${FILESDIR}/${P}-set_qdata.patch" + epatch "${FILESDIR}/${P}-gio-types-2.32.patch" + + # Fix glib-2.36 compatibility, bug #486602 + epatch "${FILESDIR}/${P}-glib-2.36-class_init.patch" + + sed -i \ + -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' \ + -e 's:AM_PROG_CC_STDC:AC_PROG_CC:' \ + configure.ac || die + + eautoreconf + gnome2_src_prepare + + python_copy_sources + + prepare_shebangs() { + # Make a backup with unconverted shebangs to keep python_doscript happy + cp codegen/codegen.py pygobject-codegen-2.0 + sed -e "s%#! \?/usr/bin/env python%#!${PYTHON}%" \ + -i codegen/*.py || die "shebang convertion failed" + } + python_foreach_impl run_in_build_dir prepare_shebangs +} + +src_configure() { + DOCS="AUTHORS ChangeLog* NEWS README" + # --disable-introspection and --disable-cairo because we use pygobject:3 + # for introspection support + G2CONF="${G2CONF} + --disable-introspection + --disable-cairo + $(use_with libffi ffi)" + + python_foreach_impl run_in_build_dir gnome2_src_configure +} + +src_compile() { + python_foreach_impl run_in_build_dir gnome2_src_compile +} + +# FIXME: With python multiple ABI support, tests return 1 even when they pass +src_test() { + unset DBUS_SESSION_BUS_ADDRESS + export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs + + testing() { + export XDG_CACHE_HOME="${T}/${EPYTHON}" + run_in_build_dir Xemake -j1 check + unset XDG_CACHE_HOME + } + python_foreach_impl testing + unset GIO_USE_VFS +} + +src_install() { + installing() { + local f prefixed_sitedir + + gnome2_src_install + + python_doscript pygobject-codegen-2.0 + + # Don't keep multiple copies of pygobject-codegen-2.0 script + prefixed_sitedir=$(python_get_sitedir) + dosym "${prefixed_sitedir#${EPREFIX}}/gtk-2.0/codegen/codegen.py" "/usr/lib/python-exec/${EPYTHON}/pygobject-codegen-2.0" + } + python_foreach_impl run_in_build_dir installing + + if use examples; then + insinto /usr/share/doc/${PF} + doins -r examples + fi +} + +run_in_build_dir() { + pushd "${BUILD_DIR}" > /dev/null || die + "$@" + popd > /dev/null +} diff --git a/dev-python/pygobject/pygobject-3.22.0.ebuild b/dev-python/pygobject/pygobject-3.22.0.ebuild new file mode 100644 index 000000000000..0ad561ad3c44 --- /dev/null +++ b/dev-python/pygobject/pygobject-3.22.0.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GNOME2_LA_PUNT="yes" +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit eutils gnome2 python-r1 virtualx + +DESCRIPTION="GLib's GObject library bindings for Python" +HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject" + +LICENSE="LGPL-2.1+" +SLOT="3" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="+cairo examples test +threads" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + test? ( cairo ) +" + +COMMON_DEPEND="${PYTHON_DEPS} + >=dev-libs/glib-2.38:2 + >=dev-libs/gobject-introspection-1.46.0:= + virtual/libffi:= + cairo? ( + >=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}] + x11-libs/cairo ) +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig + cairo? ( x11-libs/cairo[glib] ) + test? ( + dev-libs/atk[introspection] + media-fonts/font-cursor-misc + media-fonts/font-misc-misc + x11-libs/cairo[glib] + x11-libs/gdk-pixbuf:2[introspection] + x11-libs/gtk+:3[introspection] + x11-libs/pango[introspection] + python_targets_python2_7? ( dev-python/pyflakes[$(python_gen_usedep python2_7)] ) ) +" +# gnome-base/gnome-common required by eautoreconf + +# We now disable introspection support in slot 2 per upstream recommendation +# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however, +# older versions of slot 2 installed their own site-packages/gi, and +# slot 3 will collide with them. +RDEPEND="${COMMON_DEPEND} + !<dev-python/pygtk-2.13 + !<dev-python/pygobject-2.28.6-r50:2[introspection] +" + +src_prepare() { + # Test fail with xvfb but not X + sed -e 's/^.*TEST_NAMES=compat_test_pygtk .*;/echo "Test disabled";/' \ + -i tests/Makefile.{am,in} || die + + gnome2_src_prepare + python_copy_sources +} + +src_configure() { + # Hard-enable libffi support since both gobject-introspection and + # glib-2.29.x rdepend on it anyway + # docs disabled by upstream default since they are very out of date + configuring() { + gnome2_src_configure \ + $(use_enable cairo) \ + $(use_enable threads thread) + + # Pyflakes tests work only in python2, bug #516744 + if use test && [[ ${EPYTHON} != python2.7 ]]; then + sed -e 's/if type pyflakes/if false/' \ + -i Makefile || die "sed failed" + fi + } + + python_foreach_impl run_in_build_dir configuring +} + +src_compile() { + python_foreach_impl run_in_build_dir gnome2_src_compile +} + +src_test() { + export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs + export GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484 + export SKIP_PEP8="yes" + + testing() { + export XDG_CACHE_HOME="${T}/${EPYTHON}" + run_in_build_dir virtx emake check + unset XDG_CACHE_HOME + } + python_foreach_impl testing + unset GIO_USE_VFS +} + +src_install() { + python_foreach_impl run_in_build_dir gnome2_src_install + + dodoc -r examples +} diff --git a/dev-python/pygobject/pygobject-3.24.1.ebuild b/dev-python/pygobject/pygobject-3.24.1.ebuild new file mode 100644 index 000000000000..0eae8c8d7504 --- /dev/null +++ b/dev-python/pygobject/pygobject-3.24.1.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GNOME2_LA_PUNT="yes" +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit eutils gnome2 python-r1 virtualx + +DESCRIPTION="GLib's GObject library bindings for Python" +HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject" + +LICENSE="LGPL-2.1+" +SLOT="3" +KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="+cairo examples test +threads" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + test? ( cairo ) +" + +COMMON_DEPEND="${PYTHON_DEPS} + >=dev-libs/glib-2.38:2 + >=dev-libs/gobject-introspection-1.46.0:= + virtual/libffi:= + cairo? ( + >=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}] + x11-libs/cairo ) +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig + cairo? ( x11-libs/cairo[glib] ) + test? ( + dev-libs/atk[introspection] + media-fonts/font-cursor-misc + media-fonts/font-misc-misc + x11-libs/cairo[glib] + x11-libs/gdk-pixbuf:2[introspection,jpeg] + x11-libs/gtk+:3[introspection] + x11-libs/pango[introspection] + python_targets_python2_7? ( dev-python/pyflakes[$(python_gen_usedep python2_7)] ) ) +" +# gnome-base/gnome-common required by eautoreconf + +# We now disable introspection support in slot 2 per upstream recommendation +# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however, +# older versions of slot 2 installed their own site-packages/gi, and +# slot 3 will collide with them. +RDEPEND="${COMMON_DEPEND} + !<dev-python/pygtk-2.13 + !<dev-python/pygobject-2.28.6-r50:2[introspection] +" + +src_prepare() { + # Test fail with xvfb but not X + sed -e 's/^.*TEST_NAMES=compat_test_pygtk .*;/echo "Test disabled";/' \ + -i tests/Makefile.{am,in} || die + + # FAIL: test_cairo_font_options (test_cairo.TestPango) + # AssertionError: <type 'cairo.SubpixelOrder'> != <type 'int'> + sed -e 's/^.*type(font_opts.get_subpixel_order()), int.*/#/' \ + -i tests/test_cairo.py || die + + gnome2_src_prepare + python_copy_sources +} + +src_configure() { + # Hard-enable libffi support since both gobject-introspection and + # glib-2.29.x rdepend on it anyway + # docs disabled by upstream default since they are very out of date + configuring() { + gnome2_src_configure \ + $(use_enable cairo) \ + $(use_enable threads thread) + + # Pyflakes tests work only in python2, bug #516744 + if use test && [[ ${EPYTHON} != python2.7 ]]; then + sed -e 's/if type pyflakes/if false/' \ + -i Makefile || die "sed failed" + fi + } + + python_foreach_impl run_in_build_dir configuring +} + +src_compile() { + python_foreach_impl run_in_build_dir gnome2_src_compile +} + +src_test() { + export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs + export GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484 + export SKIP_PEP8="yes" + + testing() { + export XDG_CACHE_HOME="${T}/${EPYTHON}" + run_in_build_dir virtx emake check + unset XDG_CACHE_HOME + } + python_foreach_impl testing + unset GIO_USE_VFS +} + +src_install() { + python_foreach_impl run_in_build_dir gnome2_src_install + + dodoc -r examples +} |