summaryrefslogtreecommitdiff
path: root/dev-python/wxpython
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/wxpython')
-rw-r--r--dev-python/wxpython/Manifest19
-rw-r--r--dev-python/wxpython/files/wxpython-2.8-cache-writable.patch20
-rw-r--r--dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch16
-rw-r--r--dev-python/wxpython/files/wxpython-2.8-wxversion-demo.patch10
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch48
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.12-drop-categories.patch37
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.12-drop-editra.patch55
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch34
-rw-r--r--dev-python/wxpython/files/wxpython-2.8.9-wxversion-scripts.patch191
-rw-r--r--dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch10
-rw-r--r--dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch211
-rw-r--r--dev-python/wxpython/metadata.xml19
-rw-r--r--dev-python/wxpython/wxpython-2.8.12.1-r2.ebuild194
-rw-r--r--dev-python/wxpython/wxpython-3.0.2.0.ebuild162
14 files changed, 1026 insertions, 0 deletions
diff --git a/dev-python/wxpython/Manifest b/dev-python/wxpython/Manifest
new file mode 100644
index 000000000000..fc892e10e4be
--- /dev/null
+++ b/dev-python/wxpython/Manifest
@@ -0,0 +1,19 @@
+AUX wxpython-2.8-cache-writable.patch 538 BLAKE2B 53b793f1d3909ffa0b8a4e5fd836e3a756094f8c804e38bcae4a9a36bd941fac878d10e631667f45abf3873e72e2739be8f9fc158858ba255b45065d2cc2619b SHA512 e0232ff7bcb713358a2981b84b0eac3b3b0825d43b43dd6f19d3d21f9b45a9e63fbf39dc87c2fedc0342a88007ef43fcd9d890177dc38e15b4f89576fdf363a0
+AUX wxpython-2.8-no-preservatives-added.patch 525 BLAKE2B 7303124d355849fbe7b74488aa28399d675be2330c1af59c09c84465290ea2a06a69aacc8b3cc6ff5cc91a77ed392c0d8298ff0510d3c2081bdcea37c9604c71 SHA512 83e066d6798aea833304004d7270e3b7698e51581e9ac9c934b96fb438bbafb16cea15cc73297961893fd73fd18f95cade22c134aea6556962025fc3c12bdedd
+AUX wxpython-2.8-wxversion-demo.patch 219 BLAKE2B 97235e0af6a93376e83c1ab5fd3f47cb2bc38e39d04bd2c1cf78bfe097e03e4b48ddd6315b551d1bcd139da3e96b7c0a04bf7d8f0c4970aa961ca3bf1fa54166 SHA512 a20e79dc2f96400046dd5d5697533466529c30bde96a2e8ace1984c7e3fb42a6b38375cacddeb319253dbaabff6571b52af41da5268d22cfb294b11da56421f8
+AUX wxpython-2.8.11-drop-editra.patch 2197 BLAKE2B 055cec606028e20e613109f3edf455b12964725349a92323cee5212540b56fadc2f7e4319e473045cae69ef2a01a8c2c3c4f4533895d7231e0690f8b1d32cb5c SHA512 3800b68ba13c52e81a4411940e297f83f9e98c76b4d8d9d3e53ac55564a38b1376b57df337e4f009b1cbbd44199293554058341aa2122ec329c3a42dd38593a6
+AUX wxpython-2.8.12-drop-categories.patch 1554 BLAKE2B 54bccb4cd811b1484e7a7e033d7f6da49804224d52d7d93528d4a7aeea875c8f46beba67feeaaafa1e755cb610718bc7686b3392ca699f1179c576cd8be6e9fe SHA512 d622cdd72db26ff44a058b9c4dd0a0a20b504d4799933636ffa3fd131e4746ae993ec80a74dc7a6496cb1306187222fb075004db547937b7c91857b8c18fe0e1
+AUX wxpython-2.8.12-drop-editra.patch 2643 BLAKE2B 34d8554d6917b6cabb58e1142d25182a9b756aa059bb72f023cfb37cc4509f07d8c5e44e8cb5384b0da1757c1ca38519a7737eef1eef3b77477f879c1ecc609f SHA512 d49e2ab9cbc388e21b387c04524979840a52b167fe718e333d742a427fc18d7dbab0d2554263697796c802b81435ae8499e33b640f5840b4b626d01bc2f9780d
+AUX wxpython-2.8.12.1-disable-egging-mode.patch 1146 BLAKE2B dff061c8680a3c1a9c9731c8d80acc93f8562ed70e8bb98527b78f0f3813372f6179d8f5e348870cec25c24c961213f7e5db4755b8b79648aa251199b275226d SHA512 a834a2c3f009f6855755bd07b54683b8f3d9dc58ee9d0631e51c0450e3bac98245e4dab0e40820ba1727b6a0d8528675443c986d7fa4f7c58d606d60975e4190
+AUX wxpython-2.8.9-wxversion-scripts.patch 7730 BLAKE2B 16ccf4aa22f0b52ee9112b7b47ba0ecd5e2b9aebd2d7187e56c50db4442b2d21d186b14ba4b26a8380caa43276296ae6226821c6c6dc6a7237bead8ca9062a6d SHA512 f6ff14045487b53733ed71ed4fd2d5a2d847d5f267f2c6348fefe38f1f0db11a3b0b4cbdd61a3a391d820bc39e13c0aa1b57360c045f49ae539212f08fb07332
+AUX wxpython-3.0-wxversion-demo.patch 147 BLAKE2B a02fcf87c8b153b3a3fd7abfda117f988fbdafddbeefe47e77adeef6201b0c037c51ee7f4b7fa3d57a92e70b7518ce6fd7148f11d2b53d96fe085d8d366021df SHA512 99682f18a520b68b313301784adaf71c1ab9181022b743de82c9cc6acfaa1fc77867ef43c00926f6d7bdde8ed29fac24b5eb72761209a2e2a1d498feee85a0a1
+AUX wxpython-3.0.0.0-wxversion-scripts.patch 4187 BLAKE2B 07601322f2e71fb6af40172ed64efe5e0b0d32d30556ce821b0a835ae545c016df5974c5aadf6e8810ffc651b5ca8bda47729b1f7589947d5dfc0ad0dfd21771 SHA512 74fe603daafdbc5a50daaa3411ea40243d1fdee2cb3bbd0e6e99bd73bd124137161cd682673f2c727faf92214bfa4d27c059021f19c92c581485bb1d6a5b49a6
+DIST wxPython-demo-2.8.12.1.tar.bz2 3906851 BLAKE2B 73e6b662b0f8a0ca719cc21bee8a457b7175231547b495d29be0733e48e2ac16e739b6a3a25fd0de643dfbbe5dbde07e36b983746bcf873a16d0f35598f505a4 SHA512 aab71cf4e4fb6632afd4607cbe5cdef6785c4ed3f1c7f67d6cef5487d1caee2f7652bfd974ba95a6a03e8d7809c94e291aca00c2fdf74ea29e118e1e30c947d5
+DIST wxPython-demo-3.0.2.0.tar.bz2 3992212 BLAKE2B 9defe133e3863be5ae07b7adb4bcb94688487e9dd9f5ab1f768d2f5942f30d05ff678f1ba74241d9bafde3584e3c68ffeae4978117aaa300e23165140e6a6d44 SHA512 361ecaa7dfe5bae0757e04215c564370eaf8e5260ead45007f9d70439c15701725c3cbcd76691a5191258bef24fd200ebd61347a3fd920d888137bfc98a16702
+DIST wxPython-docs-2.8.12.1.tar.bz2 2331363 BLAKE2B f3d640bb8a7da2880e8ec5c30797381320943a618ace7844818036d6a9137cbfd1187281e751efefb0cb3b39543dc85f833773abcc2334a226f815b93eacb5da SHA512 88591ef4f61bcbac29050d7dfecc230f7338cc006e7c3abc072b15da478e4fd994ab73ee5d072cb8b84f9de62ce182f1774354b0a7a4502ea639e59fdf965358
+DIST wxPython-newdocs-2.8.9.2.tar.bz2 1503913 BLAKE2B c56937a0f582ab123f5e6019aa8b84a56d04d6d18ccec6ab103c7443decc68f008585f71137e6da25c5d1d5c483845e688e5e175712312bc94b03876d0a986e6 SHA512 e114b2b44a7fd3ac292ca9735fb2e075459211384bc98d62ff2ba49e45111825101e74abd4af2ab0e5e52ede7b831641367c11a5c80e79f2da6ada3442463bfc
+DIST wxPython-src-2.8.12.1.tar.bz2 31311482 BLAKE2B 33b3feb5f1182948badcd5695b35a68c673e36694a2db8c77b0b031b185c94c9f8bcf4753d9cbf8937e99a72f4c393d6f79850ed3d730af20a7263b97c620386 SHA512 4f826ccb57d5f4fc03fe7cae67499be70c727a99aebf9d153ea1060a21641642606d44d079ba897c38b176846336aeaebc21d30d5c7a0abec3934d65cf4529f3
+DIST wxPython-src-3.0.2.0.tar.bz2 58304944 BLAKE2B 1144acf2cfa0a18aa2f90aabe81aaeca54d3fe6139818267dbc031accbae38035478a64ec084fe8bb8b89126fb70ff96e68981026df8ad3fc82e81c6d0e22d1a SHA512 a3798e89ff19344253aac7d771971e519f7fa9723e82bd97e98f16fd7f1572e513170b02295b872dae0b1ae3fa95efc4ef34d078045b839694b4fdad3a27c9e4
+EBUILD wxpython-2.8.12.1-r2.ebuild 5583 BLAKE2B 8d695242d7d869b86dc4c19466dd2c0f23e4d1705b357f20f677f14d1bedf333efe5fc4f8cf9867d87de07d3dc169e3fa7f198702a587ee6c696de68dd0a60b9 SHA512 c06cb4d647b395b2d3b5747f95c734d1354c8cf4bfc40be48111b75130582a83c4501cf7c685e85cd2f584d35706507c8847aa298dec3d991b0d7a66f0688874
+EBUILD wxpython-3.0.2.0.ebuild 4607 BLAKE2B 9fc253616df9ce7f73e9be44845ed263064c5f23db112b8b9d42cec9ee3af534828055da1dd3b8448ae8628dc392678bbaef32af109fc60b33b9e0b8d3b44946 SHA512 fa4c4287c2d6f9e913eed285a0995346c2202a54724647e0c1fb172f40333c6b4223676430712a072e4083ecef6a81e08f9e684a0c1d6291f5413553d8037d52
+MISC metadata.xml 628 BLAKE2B cd6b4734fe77e07a83b2958e37affaf6151976306d517ad6c356524c79307eff9a4121bde26a21b8053d4c2b87d49d4aa888ec8892816eb8c2bf3e7d8db783bb SHA512 d081019f4f78f5099d0c5fabd250f42ee1865231aac95124c28a6fa6354d568b900bf0733178b415c0159054fe6ab13feeb7b97c554a76b67b66b9bf27bbf168
diff --git a/dev-python/wxpython/files/wxpython-2.8-cache-writable.patch b/dev-python/wxpython/files/wxpython-2.8-cache-writable.patch
new file mode 100644
index 000000000000..57f26b37c2e8
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8-cache-writable.patch
@@ -0,0 +1,20 @@
+Use /tmp for cache files since the user won't have
+write permissions on ${DOCDIR}.
+
+diff -Naurp docs-orig/viewdocs.py docs/viewdocs.py
+--- docs-orig/viewdocs.py 2008-09-28 15:59:16.000000000 -0600
++++ docs/viewdocs.py 2009-01-18 00:16:27.000000000 -0600
+@@ -16,11 +16,11 @@ if not basePath:
+
+
+ # test for write access
+-if os.access(basePath, os.W_OK):
++if os.access('/tmp', os.W_OK):
+
+ # setup the args
+ args = ['',
+- '--cache='+basePath,
++ '--cache=/tmp',
+ os.path.join(basePath, 'wx.zip'),
+ ]
+
diff --git a/dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch b/dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch
new file mode 100644
index 000000000000..5e4221d51506
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch
@@ -0,0 +1,16 @@
+Portage preserve-libs removes the linker name (.so) of a library but leaves
+the soname (.so.4) and realname (.so.4.0) installed. findLib searches for
+mywxlibname.* and returns true if anything is found. Disaster ensues.
+
+
+--- a/wxPython/config.py
++++ b/wxPython/config.py
+@@ -612,7 +612,7 @@ def findLib(name, libdirs):
+ dirs = libdirs[:]
+ for d in dirs:
+ p = os.path.join(d, name)
+- if glob.glob(p+'*') != []:
++ if glob.glob(p+'*.so') != []:
+ return True
+ return False
+
diff --git a/dev-python/wxpython/files/wxpython-2.8-wxversion-demo.patch b/dev-python/wxpython/files/wxpython-2.8-wxversion-demo.patch
new file mode 100644
index 000000000000..97829198a0b2
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8-wxversion-demo.patch
@@ -0,0 +1,10 @@
+--- demo/demo.org 2005-04-28 03:00:13.431583384 +0000
++++ demo/demo.py 2005-04-28 03:00:31.886777768 +0000
+@@ -1,4 +1,7 @@
+ #!/usr/bin/env python
+
++import wxversion
++wxversion.select("2.8")
++
+ import Main
+ Main.main()
diff --git a/dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch b/dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch
new file mode 100644
index 000000000000..9555bb57ef44
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch
@@ -0,0 +1,48 @@
+--- a/wxPython/setup.py
++++ b/wxPython/setup.py
+@@ -887,13 +887,6 @@ WX_PKGLIST = [ 'wx',
+ 'wx.tools',
+ 'wx.tools.XRCed',
+ 'wx.tools.XRCed.plugins',
+- 'wx.tools.Editra',
+- 'wx.tools.Editra.src',
+- 'wx.tools.Editra.src.autocomp',
+- 'wx.tools.Editra.src.eclib',
+- 'wx.tools.Editra.src.ebmlib',
+- 'wx.tools.Editra.src.extern',
+- 'wx.tools.Editra.src.syntax',
+ ]
+
+ if not EGGing:
+@@ -920,7 +913,6 @@ else:
+ opj('scripts/pywrap'),
+ opj('scripts/pywxrc'),
+ opj('scripts/xrced'),
+- opj('scripts/editra'),
+ ]
+ if os.name == 'nt':
+ SCRIPTS.append( opj('scripts/genaxmodule') )
+@@ -934,15 +926,6 @@ DATA_FILES += find_data_files('wx/tools/XRCed', '*.txt', '*.xrc', '*.htb')
+ DATA_FILES += find_data_files('wx/tools/XRCed/plugins', '*.crx')
+ DATA_FILES += find_data_files('wx/tools/XRCed/plugins/bitmaps', '*.png')
+
+-DATA_FILES += find_data_files('wx/tools/Editra/docs', '*.txt')
+-DATA_FILES += find_data_files('wx/tools/Editra/locale', '*.mo')
+-DATA_FILES += find_data_files('wx/tools/Editra/pixmaps',
+- '*.png', '*.icns', '*.ico', 'README', 'AUTHORS', 'COPYING')
+-DATA_FILES += find_data_files('wx/tools/Editra/plugins', '*.egg')
+-DATA_FILES += find_data_files('wx/tools/Editra/src', 'README')
+-DATA_FILES += find_data_files('wx/tools/Editra/styles', '*.ess')
+-DATA_FILES += find_data_files('wx/tools/Editra/tests/syntax', '*')
+-DATA_FILES += find_data_files('wx/tools/Editra', '[A-Z]*', recursive=False)
+
+
+ ## import pprint
+@@ -993,7 +976,6 @@ if EGGing:
+ 'pyshell = wx.py.PyShell:main',
+ 'pywrap = wx.py.PyWrap:main',
+ 'helpviewer = wx.tools.helpviewer:main',
+- 'editra = wx.tools.Editra.launcher:main',
+ 'xrced = wx.tools.XRCed.xrced:main',
+ ],
+ },
diff --git a/dev-python/wxpython/files/wxpython-2.8.12-drop-categories.patch b/dev-python/wxpython/files/wxpython-2.8.12-drop-categories.patch
new file mode 100644
index 000000000000..d860238e94de
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.12-drop-categories.patch
@@ -0,0 +1,37 @@
+Fix QA issue wrt Bug 457586
+diff -ur wxPython-src-2.8.12.1.orig/wxPython/distrib/PyAlaMode.desktop wxPython-src-2.8.12.1/wxPython/distrib/PyAlaMode.desktop
+--- distrib/PyAlaMode.desktop 2007-07-19 06:33:55.000000000 +0800
++++ distrib/PyAlaMode.desktop 2013-03-04 13:48:51.737419595 +0800
+@@ -5,4 +5,4 @@
+ Icon=PyCrust.png
+ Terminal=false
+ Type=Application
+-Categories=Application;Development;
++Categories=Development;
+diff -ur wxPython-src-2.8.12.1.orig/wxPython/distrib/PyCrust.desktop wxPython-src-2.8.12.1/wxPython/distrib/PyCrust.desktop
+--- distrib/PyCrust.desktop 2007-07-19 06:33:55.000000000 +0800
++++ distrib/PyCrust.desktop 2013-03-04 13:49:12.209418445 +0800
+@@ -5,4 +5,4 @@
+ Icon=PyCrust.png
+ Terminal=false
+ Type=Application
+-Categories=Application;Development;
++Categories=Development;
+diff -ur wxPython-src-2.8.12.1.orig/wxPython/distrib/PyShell.desktop wxPython-src-2.8.12.1/wxPython/distrib/PyShell.desktop
+--- distrib/PyShell.desktop 2007-07-19 06:33:55.000000000 +0800
++++ distrib/PyShell.desktop 2013-03-04 13:49:28.713417518 +0800
+@@ -5,4 +5,4 @@
+ Icon=PyCrust.png
+ Terminal=false
+ Type=Application
+-Categories=Application;Development;
++Categories=Development;
+diff -ur wxPython-src-2.8.12.1.orig/wxPython/distrib/XRCed.desktop wxPython-src-2.8.12.1/wxPython/distrib/XRCed.desktop
+--- distrib/XRCed.desktop 2007-07-19 06:33:55.000000000 +0800
++++ distrib/XRCed.desktop 2013-03-04 13:49:46.345416526 +0800
+@@ -5,4 +5,4 @@
+ Icon=XRCed.png
+ Terminal=false
+ Type=Application
+-Categories=Application;Development;
++Categories=Development;
diff --git a/dev-python/wxpython/files/wxpython-2.8.12-drop-editra.patch b/dev-python/wxpython/files/wxpython-2.8.12-drop-editra.patch
new file mode 100644
index 000000000000..4b49f30a1385
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.12-drop-editra.patch
@@ -0,0 +1,55 @@
+--- a/wxPython/setup.py
++++ b/wxPython/setup.py
+@@ -887,20 +887,6 @@ WX_PKGLIST = [ 'wx',
+ 'wx.tools',
+ 'wx.tools.XRCed',
+ 'wx.tools.XRCed.plugins',
+- 'wx.tools.Editra',
+- 'wx.tools.Editra.src',
+- 'wx.tools.Editra.src.autocomp',
+- 'wx.tools.Editra.src.eclib',
+- 'wx.tools.Editra.src.ebmlib',
+- 'wx.tools.Editra.src.extern',
+- 'wx.tools.Editra.src.extern.aui',
+- 'wx.tools.Editra.src.extern.dexml',
+- 'wx.tools.Editra.src.extern.pygments',
+- 'wx.tools.Editra.src.extern.pygments.filters',
+- 'wx.tools.Editra.src.extern.pygments.formatters',
+- 'wx.tools.Editra.src.extern.pygments.lexers',
+- 'wx.tools.Editra.src.extern.pygments.styles',
+- 'wx.tools.Editra.src.syntax',
+ ]
+
+ if not EGGing:
+@@ -927,7 +913,6 @@ else:
+ opj('scripts/pywrap'),
+ opj('scripts/pywxrc'),
+ opj('scripts/xrced'),
+- opj('scripts/editra'),
+ ]
+ if os.name == 'nt':
+ SCRIPTS.append( opj('scripts/genaxmodule') )
+@@ -941,15 +926,6 @@ DATA_FILES += find_data_files('wx/tools/XRCed', '*.txt', '*.xrc', '*.htb')
+ DATA_FILES += find_data_files('wx/tools/XRCed/plugins', '*.crx')
+ DATA_FILES += find_data_files('wx/tools/XRCed/plugins/bitmaps', '*.png')
+
+-DATA_FILES += find_data_files('wx/tools/Editra/docs', '*.txt')
+-DATA_FILES += find_data_files('wx/tools/Editra/locale', '*.mo')
+-DATA_FILES += find_data_files('wx/tools/Editra/pixmaps',
+- '*.png', '*.icns', '*.ico', 'README', 'AUTHORS', 'COPYING')
+-DATA_FILES += find_data_files('wx/tools/Editra/plugins', '*.egg')
+-DATA_FILES += find_data_files('wx/tools/Editra/src', 'README')
+-DATA_FILES += find_data_files('wx/tools/Editra/styles', '*.ess')
+-DATA_FILES += find_data_files('wx/tools/Editra/tests/syntax', '*')
+-DATA_FILES += find_data_files('wx/tools/Editra', '[A-Z]*', recursive=False)
+
+
+ ## import pprint
+@@ -1000,7 +976,6 @@ if EGGing:
+ 'pyshell = wx.py.PyShell:main',
+ 'pywrap = wx.py.PyWrap:main',
+ 'helpviewer = wx.tools.helpviewer:main',
+- 'editra = wx.tools.Editra.launcher:main',
+ 'xrced = wx.tools.XRCed.xrced:main',
+ ],
+ },
diff --git a/dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch b/dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch
new file mode 100644
index 000000000000..1497a2c70761
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch
@@ -0,0 +1,34 @@
+From c4072ed7bc923039e544319f52d0761b7a4600a4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 22 Apr 2013 18:02:37 +0200
+Subject: [PATCH] Trigger 'EGGing' mode only by 'bdist_egg' and not 'egg_info'.
+
+We use the 'egg_info' command to explicitly enforce temporary EGG file
+location outside the source tree on Gentoo. As a result, our build
+command activates the 'EGGing' mode and wxPython is not installed
+properly.
+
+I believe that the 'EGGing' mode should be activated only by an explicit
+call to 'bdist_egg' command where the expected files are actually
+created. The 'egg_info' command is a more broad one and is often used
+implicitly, e.g. by the 'install' command.
+---
+ config.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config.py b/config.py
+index 4fbd83f..b45707d 100644
+--- a/config.py
++++ b/config.py
+@@ -23,7 +23,7 @@
+ import sys, os, glob, fnmatch, tempfile
+ import subprocess
+
+-EGGing = 'bdist_egg' in sys.argv or 'egg_info' in sys.argv
++EGGing = 'bdist_egg' in sys.argv
+ if not EGGing:
+ from distutils.core import setup, Extension
+ else:
+--
+1.8.1.5
+
diff --git a/dev-python/wxpython/files/wxpython-2.8.9-wxversion-scripts.patch b/dev-python/wxpython/files/wxpython-2.8.9-wxversion-scripts.patch
new file mode 100644
index 000000000000..6a4567812308
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-2.8.9-wxversion-scripts.patch
@@ -0,0 +1,191 @@
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/distrib/PyAlaMode.desktop wxPython-src-2.8.9.2/wxPython/distrib/PyAlaMode.desktop
+--- wxPython-src-2.8.9.2-orig/wxPython/distrib/PyAlaMode.desktop 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/distrib/PyAlaMode.desktop 2009-02-21 15:04:55.000000000 -0600
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyAlaMode
++Name=PyAlaMode (2.8)
+ Comment=GUI Python Shell with Filling and editor windows
+-Exec=pyalamode
+-Icon=PyCrust.png
++Exec=pyalamode-2.8
++Icon=/usr/share/pixmaps/PyCrust.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/distrib/PyCrust.desktop wxPython-src-2.8.9.2/wxPython/distrib/PyCrust.desktop
+--- wxPython-src-2.8.9.2-orig/wxPython/distrib/PyCrust.desktop 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/distrib/PyCrust.desktop 2009-02-21 15:06:42.000000000 -0600
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyCrust
++Name=PyCrust (2.8)
+ Comment=GUI Python Shell with Filling
+-Exec=pycrust
+-Icon=PyCrust.png
++Exec=pycrust-2.8
++Icon=/usr/share/pixmaps/PyCrust.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/distrib/PyShell.desktop wxPython-src-2.8.9.2/wxPython/distrib/PyShell.desktop
+--- wxPython-src-2.8.9.2-orig/wxPython/distrib/PyShell.desktop 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/distrib/PyShell.desktop 2009-02-21 15:08:19.000000000 -0600
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyShell
++Name=PyShell (2.8)
+ Comment=GUI Python Shell
+-Exec=pyshell
+-Icon=PyCrust.png
++Exec=pyshell-2.8
++Icon=/usr/share/pixmaps/PyCrust.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/distrib/XRCed.desktop wxPython-src-2.8.9.2/wxPython/distrib/XRCed.desktop
+--- wxPython-src-2.8.9.2-orig/wxPython/distrib/XRCed.desktop 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/distrib/XRCed.desktop 2009-02-21 15:09:22.000000000 -0600
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=XRCed
++Name=XRCed (2.8)
+ Comment=wxPython XRC resource editor
+-Exec=xrced
+-Icon=XRCed.png
++Exec=xrced-2.8
++Icon=/usr/share/pixmaps/XRCed.png
+ Terminal=false
+ Type=Application
+ Categories=Application;Development;
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/editra wxPython-src-2.8.9.2/wxPython/scripts/editra
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/editra 2008-02-29 14:32:17.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/editra 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.Editra.launcher import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/genaxmodule wxPython-src-2.8.9.2/wxPython/scripts/genaxmodule
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/genaxmodule 2008-02-29 14:32:17.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/genaxmodule 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.genaxmodule import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/helpviewer wxPython-src-2.8.9.2/wxPython/scripts/helpviewer
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/helpviewer 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/helpviewer 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.helpviewer import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/img2png wxPython-src-2.8.9.2/wxPython/scripts/img2png
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/img2png 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/img2png 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.img2png import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/img2py wxPython-src-2.8.9.2/wxPython/scripts/img2py
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/img2py 2008-02-29 14:32:17.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/img2py 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.img2py import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/img2xpm wxPython-src-2.8.9.2/wxPython/scripts/img2xpm
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/img2xpm 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/img2xpm 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.img2xpm import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pyalacarte wxPython-src-2.8.9.2/wxPython/scripts/pyalacarte
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pyalacarte 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pyalacarte 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyAlaCarte import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pyalamode wxPython-src-2.8.9.2/wxPython/scripts/pyalamode
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pyalamode 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pyalamode 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyAlaMode import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pycrust wxPython-src-2.8.9.2/wxPython/scripts/pycrust
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pycrust 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pycrust 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyCrust import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pyshell wxPython-src-2.8.9.2/wxPython/scripts/pyshell
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pyshell 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pyshell 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyShell import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pywrap wxPython-src-2.8.9.2/wxPython/scripts/pywrap
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pywrap 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pywrap 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.py.PyWrap import main
+ main()
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/pywxrc wxPython-src-2.8.9.2/wxPython/scripts/pywxrc
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/pywxrc 2008-02-29 14:32:17.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/pywxrc 2009-02-21 15:09:58.000000000 -0600
+@@ -1,5 +1,7 @@
+ #!/usr/bin/env python
+
++import wxversion
++wxversion.select("2.8")
+ from wx.tools.pywxrc import main
+ main()
+
+diff -Naurp wxPython-src-2.8.9.2-orig/wxPython/scripts/xrced wxPython-src-2.8.9.2/wxPython/scripts/xrced
+--- wxPython-src-2.8.9.2-orig/wxPython/scripts/xrced 2007-07-18 16:33:55.000000000 -0600
++++ wxPython-src-2.8.9.2/wxPython/scripts/xrced 2009-02-21 15:03:24.000000000 -0600
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("2.8")
+
+ from wx.tools.XRCed.xrced import main
+ main()
diff --git a/dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch b/dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch
new file mode 100644
index 000000000000..a4f6b0b07a3c
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch
@@ -0,0 +1,10 @@
+--- demo/demo.org
++++ demo/demo.py
+@@ -1,4 +1,7 @@
+ #!/usr/bin/env python
+
++import wxversion
++wxversion.select("3.0")
++
+ import Main
+ Main.main()
diff --git a/dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch b/dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch
new file mode 100644
index 000000000000..9f0cb8922267
--- /dev/null
+++ b/dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch
@@ -0,0 +1,211 @@
+--- a/distrib/PyAlaMode.desktop
++++ b/distrib/PyAlaMode.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyAlaMode
++Name=PyAlaMode (3.0)
+ Comment=GUI Python Shell with Filling and editor windows
+-Exec=pyalamode
+-Icon=PyCrust
++Exec=pyalamode-3.0
++Icon=PyCrust-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PyCrust.desktop
++++ b/distrib/PyCrust.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyCrust
++Name=PyCrust (3.0)
+ Comment=GUI Python Shell with Filling
+-Exec=pycrust
+-Icon=PyCrust
++Exec=pycrust-3.0
++Icon=PyCrust-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PyShell.desktop
++++ b/distrib/PyShell.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PyShell
++Name=PyShell (3.0)
+ Comment=GUI Python Shell
+-Exec=pyshell
+-Icon=PyCrust
++Exec=pyshell-3.0
++Icon=PyCrust-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PySlices.desktop
++++ b/distrib/PySlices.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=PySlices
++Name=PySlices (3.0)
+ Comment=GUI Python Shell with Filling
+-Exec=pyslices
+-Icon=PySlices
++Exec=pyslices-3.0
++Icon=PySlices-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/PySlicesShell.desktop
++++ b/distrib/PySlicesShell.desktop
+@@ -1,9 +1,8 @@
+-
+ [Desktop Entry]
+-Name=PySlicesShell
++Name=PySlicesShell (3.0)
+ Comment=GUI Python Shell
+-Exec=pysliceshell
+-Icon=PySlices
++Exec=pysliceshell-3.0
++Icon=PySlices-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/distrib/XRCed.desktop
++++ b/distrib/XRCed.desktop
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+-Name=XRCed
++Name=XRCed (3.0)
+ Comment=wxPython XRC resource editor
+-Exec=xrced
+-Icon=XRCed
++Exec=xrced-3.0
++Icon=XRCed-3.0
+ Terminal=false
+ Type=Application
+ Categories=Development;
+--- a/scripts/genaxmodule
++++ b/scripts/genaxmodule
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.genaxmodule import main
+ main()
+--- a/scripts/helpviewer
++++ b/scripts/helpviewer
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.helpviewer import main
+ main()
+--- a/scripts/img2png
++++ b/scripts/img2png
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.img2png import main
+ main()
+--- a/scripts/img2py
++++ b/scripts/img2py
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.img2py import main
+ main()
+--- a/scripts/img2xpm
++++ b/scripts/img2xpm
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.img2xpm import main
+ main()
+--- a/scripts/pyalacarte
++++ b/scripts/pyalacarte
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyAlaCarte import main
+ main()
+--- a/scripts/pyalamode
++++ b/scripts/pyalamode
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyAlaMode import main
+ main()
+--- a/scripts/pycrust
++++ b/scripts/pycrust
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyCrust import main
+ main()
+--- a/scripts/pyshell
++++ b/scripts/pyshell
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyShell import main
+ main()
+--- a/scripts/pyslices
++++ b/scripts/pyslices
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PySlices import main
+ main()
+--- a/scripts/pysliceshell
++++ b/scripts/pysliceshell
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PySlicesShell import main
+ main()
+--- a/scripts/pywrap
++++ b/scripts/pywrap
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.py.PyWrap import main
+ main()
+--- a/scripts/pywxrc
++++ b/scripts/pywxrc
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.pywxrc import main
+ main()
+--- a/scripts/xrced
++++ b/scripts/xrced
+@@ -1,4 +1,6 @@
+ #!/usr/bin/env python
++import wxversion
++wxversion.select("3.0")
+
+ from wx.tools.XRCed.xrced import main
+ main()
diff --git a/dev-python/wxpython/metadata.xml b/dev-python/wxpython/metadata.xml
new file mode 100644
index 000000000000..d87904c379c4
--- /dev/null
+++ b/dev-python/wxpython/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>wxwidgets@gentoo.org</email>
+ <name>Gentoo wxWidgets Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <use>
+ <flag name="examples">Install interactive demo module browser and sample applets.</flag>
+ <flag name="doc">Install HTML wxWidgets docs and wxpython API reference.</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">wxpython</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/wxpython/wxpython-2.8.12.1-r2.ebuild b/dev-python/wxpython/wxpython-2.8.12.1-r2.ebuild
new file mode 100644
index 000000000000..bb3bb88a6dd3
--- /dev/null
+++ b/dev-python/wxpython/wxpython-2.8.12.1-r2.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+WX_GTK_VER="2.8"
+
+inherit alternatives distutils-r1 eutils fdo-mime flag-o-matic wxwidgets
+
+MY_P="${P/wxpython-/wxPython-src-}"
+
+DESCRIPTION="A blending of the wxWindows C++ class library with Python"
+HOMEPAGE="http://www.wxpython.org/"
+SRC_URI="
+ mirror://sourceforge/wxpython/${MY_P}.tar.bz2
+ doc? (
+ mirror://sourceforge/wxpython/wxPython-docs-${PV}.tar.bz2
+ mirror://sourceforge/wxpython/wxPython-newdocs-2.8.9.2.tar.bz2 )
+ examples? ( mirror://sourceforge/wxpython/wxPython-demo-${PV}.tar.bz2 )"
+
+LICENSE="wxWinLL-3"
+SLOT="2.8"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ppc ppc64 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="cairo doc examples opengl"
+
+RDEPEND="
+ dev-lang/python-exec:2[${PYTHON_USEDEP}]
+ >=x11-libs/wxGTK-${PV}:${WX_GTK_VER}[opengl?,tiff,X]
+ dev-libs/glib:2
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ media-libs/libpng:0=
+ media-libs/tiff:0
+ virtual/jpeg
+ x11-libs/gtk+:2
+ x11-libs/pango[X]
+ cairo? ( >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}] )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}/wxPython"
+DOC_S="${WORKDIR}/wxPython-${PV}"
+
+# The hacky build system seems to be broken with out-of-source builds,
+# and installs 'wx' package globally.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -i "s:cflags.append('-O3'):pass:" config.py || die "sed failed"
+
+ if use doc; then
+ cd "${DOC_S}" || die
+ epatch "${FILESDIR}"/${PN}-${SLOT}-cache-writable.patch
+ fi
+
+ if use examples; then
+ cd "${DOC_S}" || die
+ epatch "${FILESDIR}"/${PN}-${SLOT}-wxversion-demo.patch
+ fi
+
+ cd "${S}" || die
+
+ local PATCHES=(
+ "${FILESDIR}"/${PN}-2.8.9-wxversion-scripts.patch
+ # drop editra - we have it as a separate package now
+ "${FILESDIR}"/${PN}-2.8.12-drop-editra.patch
+ "${FILESDIR}"/${PN}-2.8.12-drop-categories.patch
+ "${FILESDIR}"/${PN}-2.8-no-preservatives-added.patch
+ # fix handling egg_info command
+ "${FILESDIR}"/${PN}-2.8.12.1-disable-egging-mode.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+ # Workaround, buildsystem uses CFLAGS as CXXFLAGS
+ export CFLAGS="${CXXFLAGS}"
+ need-wxwidgets unicode
+
+ mydistutilsargs=(
+ WX_CONFIG="${WX_CONFIG}"
+ WXPORT=gtk2
+ UNICODE=1
+ BUILD_GLCANVAS=$(usex opengl 1 0)
+ )
+}
+
+python_compile() {
+ # We need to have separate libdirs due to hackery, bug #455332.
+ distutils-r1_python_compile \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+}
+
+python_install() {
+ distutils-r1_python_install \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+
+ # adjust the filenames for wxPython slots.
+ local file
+ for file in "${D}$(python_get_sitedir)"/wx{version.*,.pth}; do
+ mv "${file}" "${file}-${SLOT}" || die
+ done
+ cd "${ED}"usr/lib/python-exec/"${EPYTHON}" || die
+ for file in *; do
+ mv "${file}" "${file}-${SLOT}" || die
+
+ # wrappers are common to all impls, so a parallel run may
+ # move it for us. ln+rm is more failure-proof.
+ ln -fs ../lib/python-exec/python-exec2 "${ED}usr/bin/${file}-${SLOT}" || die
+ rm -f "${ED}usr/bin/${file}"
+ done
+}
+
+python_install_all() {
+ dodoc docs/{CHANGES,PyManual,README,wxPackage,wxPythonManual}.txt
+
+ domenu distrib/{Py{AlaMode,Crust,Shell},XRCed}.desktop
+ newicon wx/py/PyCrust_32.png PyCrust.png
+ newicon wx/tools/XRCed/XRCed_32.png XRCed.png
+
+ docdir=${D}usr/share/doc/${PF}
+
+ if use doc; then
+ docinto docs
+ dodoc -r "${DOC_S}"/docs/.
+ # For some reason newer API docs aren't available so use 2.8.9.2's
+ dodoc -r "${WORKDIR}"/wxPython-2.8.9.2/docs/.
+
+ docompress -x /usr/share/doc/${PF}/docs
+ fi
+
+ if use examples; then
+ docinto demo
+ dodoc -r "${DOC_S}"/demo/.
+ docinto samples
+ dodoc -r "${DOC_S}"/samples/.
+
+ [[ -e ${docdir}/samples/embedded/embedded ]] \
+ && rm -f "${docdir}"/samples/embedded/embedded
+
+ docompress -x /usr/share/doc/${PF}/{demo,samples}
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+
+ create_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl create_symlinks
+
+ echo
+ elog "Gentoo uses the Multi-version method for SLOT'ing."
+ elog "Developers, see this site for instructions on using"
+ elog "2.6 or 2.8 with your apps:"
+ elog "http://wiki.wxpython.org/index.cgi/MultiVersionInstalls"
+ if use doc; then
+ echo
+ elog "To access the general wxWidgets documentation, run"
+ elog "/usr/share/doc/${PF}/docs/viewdocs.py"
+ echo
+ elog "wxPython documentation is available by pointing a browser"
+ elog "at /usr/share/doc/${PF}/docs/api/index.html"
+ fi
+ if use examples; then
+ echo
+ elog "The demo.py app which contains hundreds of demo modules"
+ elog "with documentation and source code has been installed at"
+ elog "/usr/share/doc/${PF}/demo/demo.py"
+ echo
+ elog "Many more example apps and modules can be found in"
+ elog "/usr/share/doc/${PF}/samples/"
+ fi
+ echo
+ elog "Editra is not packaged with wxpython in Gentoo."
+ elog "You can find it in the tree as app-editors/editra"
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+
+ update_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl update_symlinks
+}
diff --git a/dev-python/wxpython/wxpython-3.0.2.0.ebuild b/dev-python/wxpython/wxpython-3.0.2.0.ebuild
new file mode 100644
index 000000000000..7e8f2b8afb56
--- /dev/null
+++ b/dev-python/wxpython/wxpython-3.0.2.0.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+WX_GTK_VER="3.0"
+
+inherit alternatives distutils-r1 eutils fdo-mime flag-o-matic wxwidgets
+
+MY_PN="wxPython-src"
+
+DESCRIPTION="A blending of the wxWindows C++ class library with Python"
+HOMEPAGE="http://www.wxpython.org/"
+SRC_URI="
+ mirror://sourceforge/wxpython/${MY_PN}-${PV}.tar.bz2
+ examples? ( mirror://sourceforge/wxpython/wxPython-demo-${PV}.tar.bz2 )"
+
+LICENSE="wxWinLL-3"
+SLOT="3.0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ppc ppc64 ~sh sparc x86 ~x86-fbsd"
+IUSE="cairo examples libnotify opengl"
+
+RDEPEND="
+ dev-lang/python-exec:2[${PYTHON_USEDEP}]
+ >=x11-libs/wxGTK-${PV}:${WX_GTK_VER}=[libnotify=,opengl?,tiff,X]
+ dev-libs/glib:2
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ media-libs/libpng:0=
+ media-libs/tiff:0
+ virtual/jpeg
+ x11-libs/gtk+:2
+ x11-libs/pango[X]
+ cairo? ( >=dev-python/pycairo-1.8.4[${PYTHON_USEDEP}] )
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}/wxPython"
+DOC_S="${WORKDIR}/wxPython-${PV}"
+
+# The hacky build system seems to be broken with out-of-source builds,
+# and installs 'wx' package globally.
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ sed -i "s:cflags.append('-O3'):pass:" config.py || die "sed failed"
+
+ if use examples; then
+ cd "${DOC_S}"
+ epatch "${FILESDIR}"/${PN}-${SLOT}-wxversion-demo.patch
+ fi
+
+ cd "${S}"
+ local PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.0.0-wxversion-scripts.patch
+ # drop editra - we have it as a separate package now
+ "${FILESDIR}"/${PN}-2.8.11-drop-editra.patch
+ "${FILESDIR}"/${PN}-2.8-no-preservatives-added.patch
+ # fix handling egg_info command
+ "${FILESDIR}"/${PN}-2.8.12.1-disable-egging-mode.patch
+ )
+
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ need-wxwidgets unicode
+
+ mydistutilsargs=(
+ WX_CONFIG="${WX_CONFIG}"
+ WXPORT=gtk2
+ UNICODE=1
+ BUILD_GLCANVAS=$(usex opengl 1 0)
+ )
+}
+
+python_compile() {
+ # We need to have separate libdirs due to hackery, bug #455332.
+ distutils-r1_python_compile \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+}
+
+python_install() {
+ distutils-r1_python_install \
+ build --build-purelib "${BUILD_DIR}"/lib.common
+
+ # adjust the filenames for wxPython slots.
+ local file
+ for file in "${D}$(python_get_sitedir)"/wx{version.*,.pth}; do
+ mv "${file}" "${file}-${SLOT}" || die
+ done
+ cd "${ED}"usr/lib/python-exec/"${EPYTHON}" || die
+ for file in *; do
+ mv "${file}" "${file}-${SLOT}" || die
+
+ # wrappers are common to all impls, so a parallel run may
+ # move it for us. ln+rm is more failure-proof.
+ ln -fs ../lib/python-exec/python-exec2 "${ED}usr/bin/${file}-${SLOT}" || die
+ rm -f "${ED}usr/bin/${file}"
+ done
+}
+
+python_install_all() {
+ dodoc docs/{CHANGES,PyManual,README,wxPackage,wxPythonManual}.txt
+
+ for x in {Py{AlaMode,Crust,Shell},XRCed}; do
+ newmenu distrib/${x}.desktop ${x}-${SLOT}.desktop
+ done
+ newicon wx/py/PyCrust_32.png PyCrust-${SLOT}.png
+ newicon wx/py/PySlices_32.png PySlices-${SLOT}.png
+ newicon wx/tools/XRCed/XRCed_32.png XRCed-${SLOT}.png
+
+ if use examples; then
+ docinto demo
+ dodoc -r "${DOC_S}"/demo/.
+ docinto samples
+ dodoc -r "${DOC_S}"/samples/.
+
+ [[ -e ${docdir}/samples/embedded/embedded ]] \
+ && rm -f "${docdir}"/samples/embedded/embedded
+
+ docompress -x /usr/share/doc/${PF}/{demo,samples}
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+
+ create_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl create_symlinks
+
+ echo
+ elog "Gentoo uses the Multi-version method for SLOT'ing."
+ elog "Developers, see this site for instructions on using"
+ elog "it with your apps:"
+ elog "http://wiki.wxpython.org/MultiVersionInstalls"
+ if use examples; then
+ echo
+ elog "The demo.py app which contains demo modules with"
+ elog "documentation and source code has been installed at"
+ elog "/usr/share/doc/${PF}/demo/demo.py"
+ echo
+ elog "More example apps and modules can be found in"
+ elog "/usr/share/doc/${PF}/samples/"
+ fi
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+
+ update_symlinks() {
+ alternatives_auto_makesym "$(python_get_sitedir)/wx.pth" "$(python_get_sitedir)/wx.pth-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.py" "$(python_get_sitedir)/wxversion.py-[0-9].[0-9]"
+ }
+ python_foreach_impl update_symlinks
+}