diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-python/pygobject |
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-python/pygobject')
13 files changed, 1142 insertions, 0 deletions
diff --git a/dev-python/pygobject/Manifest b/dev-python/pygobject/Manifest new file mode 100644 index 000000000000..4383bb5d74ad --- /dev/null +++ b/dev-python/pygobject/Manifest @@ -0,0 +1,17 @@ +AUX pygobject-2.28.3-fix-codegen-location.patch 1948 SHA256 eb16a71a8e3f45e965797ca99cc5d079b13a0f74dafc7976806d09ccd1f30476 SHA512 6f618d3826a505906669bbbe680a514e61884564f2c3025c438a97f192de6c9fd0e7f43c8e9bfff62776a51a56b0eead6ca54a0c157c071cf0f493b8f0d46506 WHIRLPOOL 5107e45f4596c12c92a4d208ce17ed0dc19811036d8acea5f6c393937eebb72de290b5ddc3b5e190edecbcfef2ad48c150e5c9bf53dc9839bc9dc0fcb3ec53d8 +AUX pygobject-2.28.3-make_check.patch 2705 SHA256 91ddf8f2d1d767f771b91568c1d669019cf4e302baf1dd2eeed4b41ff7cb75b6 SHA512 9829f92ce0ace9d1a6e84428dc16bd0a893a24e784273e79c849618ebf4749e3168e6b1f1b9a9ca7e114ec04612045985823ad34247891d8ba7609279c4c4af4 WHIRLPOOL c2d9f18347abd83b751f0deab38742380905e8be70478a9e13c580bb4a284b8d329ad47f2ddeb1bf65a183b962701b050755aa35d84e009d47057c5433a385bc +AUX pygobject-2.28.3-support_multiple_python_versions.patch 3938 SHA256 7269f232a9b4ffe1c920c610796cb8f1dc5bcdc5cd5d03ebc7045f45d5f5d089 SHA512 b835c503ea1baa831d1f258221998c5194ea58750e33564ff7b22870a8f47dfef37d986aa282d527dd2ea2b9e598ffede38ed7dd8f966788e32e8719ac94035f WHIRLPOOL e91084a146717ca5de9528a17e8a9e4d1b396704e6a5c4529695ca67f67b2b3f91d12472b846c3b076c24aac1b8fdea66b5e4591acaed1c5f621b372222babc0 +AUX pygobject-2.28.6-disable-failing-tests.patch 3549 SHA256 b75efed51ff82724eab61b08079feb59cdb6ed49bd63ddfcbdafbc89d40e39f6 SHA512 1ff3b9474c1fbf7e4fe7f2346f862f1ba1da0748d955ebcfd606d74b885c12daa2673c31aa594925c441bfaa29390d9324e56696e291d3f7e301cbf114491cb3 WHIRLPOOL b82d77e5ea445f9dee3b9c116a7cd666de6a047e260d1e1172b3fa658ee5b3be6414369ab77ed9a3b4748efe31aefa784087a47172c7e4ac44df99d160e5e061 +AUX pygobject-2.28.6-gio-types-2.32.patch 1231 SHA256 76b8636556b56143eac3afa002c5a8938d87e613668cfce0a73ce1f1e3d6c810 SHA512 86a34f73a4436ff77488743fc15c0cc901c27b55dad9bcfdc9c32ff184bccc277217d5a0e13bc36982e14e34ab5fee5224e055879a0036a1ccdf5dc26bc737d4 WHIRLPOOL 9b66b44a994970a11e75c7ede64403eed01e10bd0e5edda9c1d95771a07457da0fefea425e217633d1eae78c02c4e980a6cb5dbeac580b63e56fd8a962d8e0d1 +AUX pygobject-2.28.6-glib-2.36-class_init.patch 11038 SHA256 02d4ec14ecdea96ffb64c7c58abdea8e38b3076cec872525449823137f7dea63 SHA512 e8acc5970ac540dc01551759591ee693ae12dd1512130b135e397e528d920159f0f8866bb8a611e2c06cd96f899ef7239153b59a2ec0318e1fd08266acf95e04 WHIRLPOOL e18b3e24109c01b61c24f7be69d62f7eea415cf43b4b9683e539d8352b28a8a2b95fd89dbc29ec4978479ea3cb50f06785733d66897c0064f3c7c41027e06d5e +AUX pygobject-2.28.6-set_qdata.patch 847 SHA256 1dda085e0aadedf70eb8290e9c12fd27227173d3313a28d40ab923316b35bde3 SHA512 19025af51a8387061276ec9d6c8eb0ecadb5124bba2c4ab3755ab653df467896d19c366d80ce9313fd46e43b493b7c536f780014cf18a6ac47f4b1d2ad4bedb4 WHIRLPOOL 4d3be4952242d8b10b47fb3ee7d0d3e9716b6e358c3151e5c472580e3bc15c501040f7a6363b7fdef050c00bf68f65b8eacb918fd85483b0fa098af18ea34a62 +AUX pygobject-2.28.6-tests-no-introspection.patch 1257 SHA256 f10000ce8cf232240099fd319a046920eaa582fcb3f6eb20e3468145f89cd51e SHA512 7d57cb9bbd0b16f4fb0ed9d5eca310c47daf86b89daefa41fb0cf5dd470a6f6a31d0dad31dd261332c039d39bd778f9de8de7260c5856f1b718f72b9aabc01b4 WHIRLPOOL 02100886c5932114fa7ceaabcfceb6297e0bc2f3a12cd4b17e77e863fcfeebbbcab235f1d79c7cd65c201d628e818d58813c4f46b906dce4fa95c7aae8767935 +DIST pygobject-2.28.6.tar.xz 747248 SHA256 fb8a1d4f665130a125011659bd347c7339c944232163dbb9a34fd0686577adb8 SHA512 37544ea2377258758169b25a2969d5ee1c9ffb9b6e63e05bc7a0471a49ac9169c51ec587d4489172c7d256f53df878a81c1992a08059aa7e43dbbb69f799545c WHIRLPOOL 402f764d6ca73f238784738a1e09832858fd95af5a633e825412e9e6a21e89ab6b2090d3995902ed404fc4fde445cf970c76fcd93f8f64cf9def742452776c00 +DIST pygobject-3.22.0.tar.xz 756820 SHA256 08b29cfb08efc80f7a8630a2734dec65a99c1b59f1e5771c671d2e4ed8a5cbe7 SHA512 1f6f0ea8014b35d7828a6bebc0fe2cf6519016ca5ad3819dc6b7879154d8e27fdd2971620955c8fc4904625814833c8bc8ec0599152720649864262d3b6e33e4 WHIRLPOOL c285669e4d07a9b0cf79ba06528d3809d0c2807b2345dc6eeec011ed351cd45155119b2691cd10a498fb76d67486026e997d93c80b3a7ea60176e053d4452374 +DIST pygobject-3.24.1.tar.xz 758648 SHA256 a628a95aa0909e13fb08230b1b98fc48adef10b220932f76d62f6821b3fdbffd SHA512 f35968ab12b872c85af6b2410cadedcf9fa7e17352a40f3dc557c86203aa1c38753710aab9ce55e986ee2c98b64e14123c65083655445e993d0b53431db6dc93 WHIRLPOOL 998293b07796b4a5b7db475428f6aea46dbac93fc31e5b210307c1b68390341f92121741cec714dc3e7bc2f460dd1248d7eb37775baef51be9e6b9078ea3b332 +EBUILD pygobject-2.28.6-r55.ebuild 3541 SHA256 246d6c5bc96880bbeb5dc34b6d95748bac59a3e73f30078d45d01d3d65f6e6ed SHA512 d4c7e7a96b5151472b20bb1663b94383acaa526c5df4d545289ca9fe0cc18889238df8b1aeaddf19a1a46cd046b43c46268a65b0e820dc7ebe403d05d664b64b WHIRLPOOL a610f99275efc0a3613dcd6818eaa708bc9876b505a7b4f8fabdb22d1ffb3aaa5651a17b549dbfaa9723e94c322deef19cecbce7b6510a6c3531f70ef6b32483 +EBUILD pygobject-3.22.0.ebuild 2940 SHA256 813d09e3e4040ccf82cede0dd5f2b1cd522d8f8ef7711040d576cae5e9d1db63 SHA512 999d60141ed662a29b0a8f28c57b4bf3e2dbb2770cb82d573553ab18cc7e45587989b99d740bcba4908724f9c2095fc8665b3a24c1bc1185a20b334cb431bf48 WHIRLPOOL 935490fc60ce87d3080102fe8e38203bc93060e165ef12e6b823a97bc2c5e69876afe909c1847e0cd2042fc68ee7b878093c4bf4b6e8722c188f605549707290 +EBUILD pygobject-3.24.1.ebuild 3166 SHA256 b4c5e7c0791df6b3de541ae4bb5db083e9d79d09c9217bb6f260d68cb3a0a599 SHA512 3cc5402d1abd2280e103e32a0b03945ff9dbd5bdf6a8ce66cce9efb148eafc777a5b21bf1e5c61c85d1223936b3a5ab3eb3915a6211e959cbb8394b1017305e5 WHIRLPOOL 71921cad5c69300c82f1bfbaa91a182cbba9b87aa884b65821ab5a36cf5f7d3a120e47601cfbeb80b15ef4a2daf6d4ac5e1b4186b7a1a0b45f85ee12edd083b8 +MISC ChangeLog 8150 SHA256 a7b5d8e590c4ecc63af45b3ad49cbe2fb09cab834b6aff516d287bcf700d554f SHA512 98370efa494e4f087c638aff6d4618876b6d36391535a8c122124bfe6a73ed02e8c1e6fb0c3fb4c323be7aba4d270976c89c88a87cfaa7a600363bc21d70eb58 WHIRLPOOL 9872fb322864299e13e81eca6dc2bfb37874b6d21d5309e1e2d14ca7f389245db1615a54f4fe42ad1cc1a83a41a4d2e933bde52ef4d7122429796f35951cdeed +MISC ChangeLog-2015 44485 SHA256 582556de49ad97c65ea91b61e79669ac170a57b003d76e5470806e8c4b5428fb SHA512 b69c96788bd338e93ee16aff5144b768df3e574deef4d580c0bceca068f0767e6c5122771c83c1eafad8db91b66878bcd46e2dd7739be87580dea51cd5f27ea0 WHIRLPOOL fa6c5aef01f3d8e2203eb8613314361f0f9843978d936243146b7aca036579cc62cffe7255ee306046b853cdd2128ba0bdb87485ed73c4bc8c2c66f3915c6b87 +MISC metadata.xml 353 SHA256 6c3967e281629b8778beccb842568a41d665f9db5a9899a74a56dc6500bd4214 SHA512 abcb7bb015ebb246584f60f388837ed0638040f730111831b52716cbc5a9c4ab0c422397702e1d87e56b2947108d5cfa5aeac7489bcd6f89db480c68c572bcdc WHIRLPOOL 46c10a493c2d6a836b1de09d32c3d7012067e6935b2daa144f5bc27fe9d492706bfde9ce4f553d5453463ba152fb4f67155bcd5b220ef5426d04ca3abd625779 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..879666e93fee --- /dev/null +++ b/dev-python/pygobject/pygobject-3.24.1.ebuild @@ -0,0 +1,110 @@ +# 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 + + # 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 +} |