summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-python/wxpython/Manifest2
-rw-r--r--dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch16
-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.1-disable-egging-mode.patch34
-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/wxpython-3.0.2.0-r1708.ebuild166
7 files changed, 487 insertions, 0 deletions
diff --git a/dev-python/wxpython/Manifest b/dev-python/wxpython/Manifest
new file mode 100644
index 00000000..bec298a9
--- /dev/null
+++ b/dev-python/wxpython/Manifest
@@ -0,0 +1,2 @@
+DIST wxPython-demo-3.0.2.0.tar.bz2 3992212 SHA256 8bf195138744898b4b6fbe11f52f7ee2f6319c2e3adf832917769b2e2d4994f3 SHA512 361ecaa7dfe5bae0757e04215c564370eaf8e5260ead45007f9d70439c15701725c3cbcd76691a5191258bef24fd200ebd61347a3fd920d888137bfc98a16702 WHIRLPOOL a944790a4c7b38dc8d8d28c7def50f765cd5566118d801cb576a0ab9d8370a803f8feedbf3211d0352dd838c92d9d4f092eaf6d78354a1974f2345304dd7b2e1
+DIST wxPython-src-3.0.2.0.tar.bz2 58304944 SHA256 d54129e5fbea4fb8091c87b2980760b72c22a386cb3b9dd2eebc928ef5e8df61 SHA512 a3798e89ff19344253aac7d771971e519f7fa9723e82bd97e98f16fd7f1572e513170b02295b872dae0b1ae3fa95efc4ef34d078045b839694b4fdad3a27c9e4 WHIRLPOOL 89cdef12c9ef96044adba0340d47b699e685eaec581a4e7d68f3b95a0890715e29b1f5362027df0f3f8b5b1587e8fe404a7fa88049ece9677dd8316fbdf2e41d
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 00000000..5e4221d5
--- /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.11-drop-editra.patch b/dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch
new file mode 100644
index 00000000..9555bb57
--- /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.1-disable-egging-mode.patch b/dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch
new file mode 100644
index 00000000..1497a2c7
--- /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-3.0-wxversion-demo.patch b/dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch
new file mode 100644
index 00000000..a4f6b0b0
--- /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 00000000..9f0cb892
--- /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/wxpython-3.0.2.0-r1708.ebuild b/dev-python/wxpython/wxpython-3.0.2.0-r1708.ebuild
new file mode 100644
index 00000000..166564d2
--- /dev/null
+++ b/dev-python/wxpython/wxpython-3.0.2.0-r1708.ebuild
@@ -0,0 +1,166 @@
+# 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]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.pyc" "$(python_get_sitedir)/wxversion.pyc-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.pyo" "$(python_get_sitedir)/wxversion.pyo-[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]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.pyc" "$(python_get_sitedir)/wxversion.pyc-[0-9].[0-9]"
+ alternatives_auto_makesym "$(python_get_sitedir)/wxversion.pyo" "$(python_get_sitedir)/wxversion.pyo-[0-9].[0-9]"
+ }
+ python_foreach_impl update_symlinks
+}