From abdc78ab229a98456b02aa578570c900b7df21cb Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 24 Aug 2017 17:41:43 +0100 Subject: dev-python/wxpython : import from portage tree, fix missing symlinks (first attempt to fix https://bugs.redcorelinux.org/show_bug.cgi?id=43) --- dev-python/wxpython/Manifest | 2 + .../wxpython-2.8-no-preservatives-added.patch | 16 ++ .../files/wxpython-2.8.11-drop-editra.patch | 48 +++++ .../wxpython-2.8.12.1-disable-egging-mode.patch | 34 ++++ .../files/wxpython-3.0-wxversion-demo.patch | 10 + .../files/wxpython-3.0.0.0-wxversion-scripts.patch | 211 +++++++++++++++++++++ dev-python/wxpython/wxpython-3.0.2.0-r1708.ebuild | 166 ++++++++++++++++ 7 files changed, 487 insertions(+) create mode 100644 dev-python/wxpython/Manifest create mode 100644 dev-python/wxpython/files/wxpython-2.8-no-preservatives-added.patch create mode 100644 dev-python/wxpython/files/wxpython-2.8.11-drop-editra.patch create mode 100644 dev-python/wxpython/files/wxpython-2.8.12.1-disable-egging-mode.patch create mode 100644 dev-python/wxpython/files/wxpython-3.0-wxversion-demo.patch create mode 100644 dev-python/wxpython/files/wxpython-3.0.0.0-wxversion-scripts.patch create mode 100644 dev-python/wxpython/wxpython-3.0.2.0-r1708.ebuild (limited to 'dev-python') 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?= +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 +} -- cgit v1.2.3