From d9051e89ac8dd5109ac3447670b865f108241567 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 28 Mar 2020 15:14:50 +0000 Subject: wxGTK 3.1 makes PrusaSlicer more stable --- x11-libs/wxGTK/Manifest | 6 + x11-libs/wxGTK/files/wxGTK-3.1.3-abi.patch | 31 ++++ x11-libs/wxGTK/files/wxGTK-3.1.3-collision.patch | 74 ++++++++++ x11-libs/wxGTK/metadata.xml | 25 ++++ x11-libs/wxGTK/wxGTK-3.1.3.ebuild | 180 +++++++++++++++++++++++ 5 files changed, 316 insertions(+) create mode 100644 x11-libs/wxGTK/Manifest create mode 100644 x11-libs/wxGTK/files/wxGTK-3.1.3-abi.patch create mode 100644 x11-libs/wxGTK/files/wxGTK-3.1.3-collision.patch create mode 100644 x11-libs/wxGTK/metadata.xml create mode 100644 x11-libs/wxGTK/wxGTK-3.1.3.ebuild (limited to 'x11-libs') diff --git a/x11-libs/wxGTK/Manifest b/x11-libs/wxGTK/Manifest new file mode 100644 index 0000000..7d0484d --- /dev/null +++ b/x11-libs/wxGTK/Manifest @@ -0,0 +1,6 @@ +AUX wxGTK-3.1.3-abi.patch 1335 BLAKE2B b9b9c8aa25769427e5e76612d861e7d87381e9e10347900852c6d407d420fab1d6f324d6c05f140cffb608b7cf278339c7ad22554fe873f771d78375bab02ba4 SHA512 d590bfc4d66c2ccc6504f984c49189e2b068839b88c657b7db06e1a8ad804e031270f5b74bc06c2d5237e988c3e0d72de7acf6a043e06a1a1f54229c2518e14f +AUX wxGTK-3.1.3-collision.patch 6172 BLAKE2B cf7ba3fc7ed057f3435d9a1397af65bb2e86eb494d92f18ed165c8f8b9c73e18362edaa88af1435b381763b0875d5de94fd8d62a1a16d933e4863d1ca0c30303 SHA512 deda90d94009fc638bffcea1b3cb18c6a9bcbe30fa5911618312e14a3e92afb9f84ae61eea427fd295d032c631320e3cc4a8a324c381c3d941b2c6d29f33277a +DIST wxWidgets-3.1.3-docs-html.tar.bz2 25068930 BLAKE2B f4b81ddbd682b8e4687f212f1a12593f184eabe5f370b8da99faf07fcf083855d68801eba35966c7103b0e6a454220dab291d9383ce6eeab8cb14899b8092496 SHA512 1f4fb4e665b72fc7947f0ddc88f7f9e164100a016aef509a57e252f4ec3d7a63518c28bed3e9d5e3d8421c7e12bc94a58983649180f629b06150fb8ee49de932 +DIST wxWidgets-3.1.3.tar.bz2 21345268 BLAKE2B 975fb013c5444d398411a9644c4f755f51e685095f47def3749e8bce1bc5eaf24d77275427e8ad0540658326f6b40cb80242aa6ff6c021d9e2bbe1212a664c94 SHA512 d19305c96f1a382ec74549f69d6a7c61ecd0abac383623c308c45f0168c670c15262efc4fb64c14fa9d1fdb3579f19abdb5c8247ead72dc926342e586d7b4532 +EBUILD wxGTK-3.1.3.ebuild 5101 BLAKE2B fe2c1503d8b444a5cfd84bf9d2f1ca76354d8a4cbbdb778d5b163557e45dab3917bc2bcb8e7f934a9a612a8637ac5b071376a4f66f45777c5ba4ea8750065e6e SHA512 5b0f6b0c7d184a68f4f8192370950173e0dc5f4374674b87db024f0521c7bf0d148a06d49aa35c267ff21062fd245a47d4909ff9bc32500236fa73f0b038760d +MISC metadata.xml 759 BLAKE2B 4bafb6bd1d082eae5773d84fb116779f337e662090c4d01e22296f891114458de4a50f1f10775b61f06f22c6db7d4288c66c0c59836cc362298c23fecef499af SHA512 a7bf3b8cecf7ffba0dbfded9884fb7df3866c1a00c473f9ecb2d3fc1c84c5713dcde949f6acc35ee688741efb2da74fc189ed9c58b24bd2874c7e95908eb1f60 diff --git a/x11-libs/wxGTK/files/wxGTK-3.1.3-abi.patch b/x11-libs/wxGTK/files/wxGTK-3.1.3-abi.patch new file mode 100644 index 0000000..f064da4 --- /dev/null +++ b/x11-libs/wxGTK/files/wxGTK-3.1.3-abi.patch @@ -0,0 +1,31 @@ +diff --git c/src/common/appbase.cpp w/src/common/appbase.cpp +index 186d845..5b5727a 100644 +--- c/src/common/appbase.cpp ++++ w/src/common/appbase.cpp +@@ -850,6 +850,26 @@ bool wxAppConsoleBase::CheckBuildOptions(const char *optionsSignature, + msg.Printf(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."), + lib.c_str(), progName.c_str(), prog.c_str()); + ++ int l_off = lib.Find("compiler with C++ ABI "); ++ int p_off = prog.Find("compiler with C++ ABI "); ++ if (l_off != wxNOT_FOUND && p_off != wxNOT_FOUND) { ++ int space; ++ space = lib.find(',', l_off + 22); ++ lib.erase(l_off, space - l_off); ++ space = prog.find(',', p_off + 22); ++ prog.erase(p_off, space - p_off); ++ if (lib == prog) { ++ // The only difference is the ABI version, which apparently only ++ // affect obscure cases. We used to warn here, so at least ++ // there was an indication of what's up if there is a problem ++ // due to ABI incompatibilities, but wxLogWarning() can result ++ // in a pop up dialog with some applications, which is just too ++ // intrusive, so just quietly ignore instead. ++ //wxLogWarning(msg.c_str()); ++ return false; ++ } ++ } ++ + wxLogFatalError(msg.c_str()); + + // normally wxLogFatalError doesn't return diff --git a/x11-libs/wxGTK/files/wxGTK-3.1.3-collision.patch b/x11-libs/wxGTK/files/wxGTK-3.1.3-collision.patch new file mode 100644 index 0000000..add7ff2 --- /dev/null +++ b/x11-libs/wxGTK/files/wxGTK-3.1.3-collision.patch @@ -0,0 +1,74 @@ +diff --git a/Makefile.in b/Makefile.in +index dadc0cd..e128da6 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -13804,10 +13804,10 @@ COND_wxUSE_REGEX_builtin___LIB_REGEX_p = \ + all: $(__wxregex___depname) $(__wxzlib___depname) $(__wxpng___depname) $(__wxjpeg___depname) $(__wxtiff___depname) $(__wxexpat___depname) $(__wxscintilla___depname) $(__monodll___depname) $(__monolib___depname) $(__basedll___depname) $(__baselib___depname) $(__netdll___depname) $(__netlib___depname) $(__coredll___depname) $(__corelib___depname) $(__advdll___depname) $(__advlib___depname) $(__mediadll___depname) $(__medialib___depname) $(__htmldll___depname) $(__htmllib___depname) $(__webviewdll___depname) $(__webviewlib___depname) $(__qadll___depname) $(__qalib___depname) $(__xmldll___depname) $(__xmllib___depname) $(__xrcdll___depname) $(__xrclib___depname) $(__auidll___depname) $(__auilib___depname) $(__ribbondll___depname) $(__ribbonlib___depname) $(__propgriddll___depname) $(__propgridlib___depname) $(__richtextdll___depname) $(__richtextlib___depname) $(__stcdll___depname) $(__stclib___depname) $(__gldll___depname) $(__gllib___depname) $(__sound_sdl___depname) $(__webkit2_ext___depname) $(__wxrc___depname) + + install: $(__install_wxregex___depname) $(__install_wxzlib___depname) $(__install_wxpng___depname) $(__install_wxjpeg___depname) $(__install_wxtiff___depname) $(__install_wxexpat___depname) $(__install_wxscintilla___depname) $(__install_monodll___depname) $(__install_monolib___depname) $(__install_basedll___depname) $(__install_baselib___depname) $(__install_netdll___depname) $(__install_netlib___depname) $(__install_coredll___depname) $(__install_corelib___depname) $(__install_advdll___depname) $(__install_advlib___depname) $(__install_mediadll___depname) $(__install_medialib___depname) $(__install_htmldll___depname) $(__install_htmllib___depname) $(__install_webviewdll___depname) $(__install_webviewlib___depname) $(__install_qadll___depname) $(__install_qalib___depname) $(__install_xmldll___depname) $(__install_xmllib___depname) $(__install_xrcdll___depname) $(__install_xrclib___depname) $(__install_auidll___depname) $(__install_auilib___depname) $(__install_ribbondll___depname) $(__install_ribbonlib___depname) $(__install_propgriddll___depname) $(__install_propgridlib___depname) $(__install_richtextdll___depname) $(__install_richtextlib___depname) $(__install_stcdll___depname) $(__install_stclib___depname) $(__install_gldll___depname) $(__install_gllib___depname) $(__install_sound_sdl___depname) $(__install_webkit2_ext___depname) $(__install_wxrc___depname) install-wxconfig locale_install locale_msw_install +- $(INSTALL_DIR) $(DESTDIR)$(datadir)/aclocal +- (cd $(srcdir) ; $(INSTALL_DATA) wxwin.m4 $(DESTDIR)$(datadir)/aclocal) + $(INSTALL_DIR) $(DESTDIR)$(datadir)/bakefile/presets +- (cd $(srcdir)/build/bakefiles/wxpresets/presets ; $(INSTALL_DATA) wx.bkl wx_unix.bkl wx_win32.bkl wx_xrc.bkl wx_presets.py $(DESTDIR)$(datadir)/bakefile/presets) ++ (cd $(srcdir)/build/bakefiles/wxpresets/presets ; \ ++ for i in wx.bkl wx_unix.bkl wx_win32.bkl wx_xrc.bkl wx_presets.py ; do \ ++ $(INSTALL_DATA) $$i $(DESTDIR)$(datadir)/bakefile/presets/wx$(WX_RELEASE_NODOT)$${i##wx} ; done) + $(DYLIB_RPATH_INSTALL) + $(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx + for f in setup.h $(RCDEFS_H); do \ +@@ -14703,7 +14703,7 @@ install-wxconfig: + $(INSTALL_DIR) $(DESTDIR)$(bindir) + $(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/config + $(INSTALL_PROGRAM) lib/wx/config/$(TOOLCHAIN_FULLNAME) $(DESTDIR)$(libdir)/wx/config +- (cd $(DESTDIR)$(bindir) && rm -f wx-config && $(LN_S) $(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config || cp -p $(DESTDIR)$(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config) ++ (cd $(DESTDIR)$(bindir) && rm -f wx-config-$(WX_RELEASE) && $(LN_S) $(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config-$(WX_RELEASE) || cp -p $(DESTDIR)$(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config-$(WX_RELEASE)) + + locale_install: + $(INSTALL_DIR) $(DESTDIR)$(datadir)/locale +@@ -14711,7 +14711,7 @@ locale_install: + $(INSTALL_DIR) $(DESTDIR)$(datadir)/locale/$$l ; \ + $(INSTALL_DIR) $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES ; \ + if test -f $(srcdir)/locale/$$l.mo ; then \ +- $(INSTALL_DATA) $(srcdir)/locale/$$l.mo $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/wxstd.mo ; \ ++ $(INSTALL_DATA) $(srcdir)/locale/$$l.mo $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/wxstd$(WX_RELEASE_NODOT).mo ; \ + fi ; \ + done + +diff --git a/build/bakefiles/wx.bkl b/build/bakefiles/wx.bkl +index 9c7b419..8e0b2e6 100644 +--- a/build/bakefiles/wx.bkl ++++ b/build/bakefiles/wx.bkl +@@ -137,7 +137,7 @@ + + + $(SRCDIR)/locale +- wxstd ++ wxstd$(WX_RELEASE_NODOT) + + ca cs da de el es fi fr hu id it ja nl pl ru sl sv tr uk + zh zh_CN zh_TW +diff --git a/src/common/translation.cpp b/src/common/translation.cpp +index 9716294..20d1631 100644 +--- a/src/common/translation.cpp ++++ b/src/common/translation.cpp +@@ -1521,7 +1521,7 @@ wxArrayString wxTranslations::GetAvailableTranslations(const wxString& domain) c + + bool wxTranslations::AddStdCatalog() + { +- if ( !AddCatalog(wxS("wxstd")) ) ++ if ( !AddCatalog(wxS("wxstd" wxSTRINGIZE(wxMAJOR_VERSION) wxSTRINGIZE(wxMINOR_VERSION))) ) + return false; + + // there may be a catalog with toolkit specific overrides, it is not +diff --git a/utils/wxrc/Makefile.in b/utils/wxrc/Makefile.in +index aa56bf0..6eb05ba 100644 +--- a/utils/wxrc/Makefile.in ++++ b/utils/wxrc/Makefile.in +@@ -119,7 +119,6 @@ distclean: clean + @COND_USE_XRC_1@ rm -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT) $(DESTDIR)$(bindir)/wxrc-$(WX_RELEASE) + @COND_USE_XRC_1@ $(INSTALL_PROGRAM) wxrc$(EXEEXT) $(DESTDIR)$(bindir) + @COND_USE_XRC_1@ mv -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT) $(DESTDIR)$(bindir)/wxrc-$(WX_RELEASE) +-@COND_USE_XRC_1@ (cd $(DESTDIR)$(bindir) && $(LN_S) wxrc-$(WX_RELEASE) wxrc$(EXEEXT)) + + @COND_USE_XRC_1@uninstall_wxrc: + @COND_USE_XRC_1@ rm -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT) diff --git a/x11-libs/wxGTK/metadata.xml b/x11-libs/wxGTK/metadata.xml new file mode 100644 index 0000000..aa10f7e --- /dev/null +++ b/x11-libs/wxGTK/metadata.xml @@ -0,0 +1,25 @@ + + + + + wxwidgets@gentoo.org + All modifications to this package must be approved by the wxwidgets herd. + + + + Enable the wxMediaCtrl class for playing audio and video through + gstreamer. + + + Use Simple Directmedia Layer (media-libs/libsdl) for + audio. + + + + wxpython + + + Slots reflect MAJOR.MINOR versions which can + be installed in parallel. + + diff --git a/x11-libs/wxGTK/wxGTK-3.1.3.ebuild b/x11-libs/wxGTK/wxGTK-3.1.3.ebuild new file mode 100644 index 0000000..4d7fe42 --- /dev/null +++ b/x11-libs/wxGTK/wxGTK-3.1.3.ebuild @@ -0,0 +1,180 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib-minimal + +DESCRIPTION="GTK+ version of wxWidgets, a cross-platform C++ GUI toolkit" +HOMEPAGE="https://wxwidgets.org/" +SRC_URI="https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}.tar.bz2 + doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}-docs-html.tar.bz2 )" + +KEYWORDS="~alpha amd64 arm arm64 ~hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos" +IUSE="+X aqua doc debug gstreamer libnotify opengl sdl tiff" + +WXSUBVERSION=${PV}.0 # 3.1.3.0 +WXVERSION=${WXSUBVERSION%.*} # 3.1.3 +WXRELEASE=${WXVERSION%.*} # 3.1 +WXRELEASE_NODOT=${WXRELEASE//./} # 31 + +SLOT="${WXRELEASE}" + +RDEPEND=" + dev-libs/expat[${MULTILIB_USEDEP}] + sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] ) + X? ( + >=dev-libs/glib-2.22:2[${MULTILIB_USEDEP}] + media-libs/libpng:0=[${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + virtual/jpeg:0=[${MULTILIB_USEDEP}] + >=x11-libs/gtk+-2.18:2[${MULTILIB_USEDEP}] + x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}] + x11-libs/libSM[${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + x11-libs/pango[${MULTILIB_USEDEP}] + gstreamer? ( + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] ) + libnotify? ( x11-libs/libnotify[${MULTILIB_USEDEP}] ) + opengl? ( virtual/opengl[${MULTILIB_USEDEP}] ) + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] ) + ) + aqua? ( + x11-libs/gtk+:2[aqua=,${MULTILIB_USEDEP}] + virtual/jpeg:0=[${MULTILIB_USEDEP}] + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] ) + )" + +DEPEND="${RDEPEND} + virtual/pkgconfig[${MULTILIB_USEDEP}] + opengl? ( virtual/glu[${MULTILIB_USEDEP}] ) + X? ( x11-base/xorg-proto )" + +PDEPEND=">=app-eselect/eselect-wxwidgets-20131230" + +LICENSE="wxWinLL-3 GPL-2 doc? ( wxWinFDL-3 )" + +S="${WORKDIR}/wxWidgets-${PV}" +PATCHES=( + "${FILESDIR}"/wxGTK-3.1.3-collision.patch + "${FILESDIR}"/wxGTK-3.1.3-abi.patch +) + +src_prepare() { + default + + # Versionating + sed -i \ + -e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\ + -e "s:\(WX_RELEASE_NODOT = \).*:\1${WXRELEASE_NODOT}:"\ + -e "s:\(WX_VERSION = \).*:\1${WXVERSION}:"\ + -e "s:aclocal):aclocal/wxwin${WXRELEASE_NODOT}.m4):" \ + -e "s:wxstd.mo:wxstd${WXRELEASE_NODOT}.mo:" \ + -e "s:wxmsw.mo:wxmsw${WXRELEASE_NODOT}.mo:" \ + Makefile.in || die + + sed -i \ + -e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\ + utils/wxrc/Makefile.in || die + + sed -i \ + -e "s:\(WX_VERSION=\).*:\1${WXVERSION}:" \ + -e "s:\(WX_RELEASE=\).*:\1${WXRELEASE}:" \ + -e "s:\(WX_SUBVERSION=\).*:\1${WXSUBVERSION}:" \ + -e '/WX_VERSION_TAG=/ s:${WX_RELEASE}:3.1:' \ + configure || die +} + +multilib_src_configure() { + local myconf + + # X independent options + myconf=" + --with-zlib=sys + --with-expat=sys + --enable-compat28 + $(use_with sdl)" + + # debug in >=2.9 + # there is no longer separate debug libraries (gtk2ud) + # wxDEBUG_LEVEL=1 is the default and we will leave it enabled + # wxDEBUG_LEVEL=2 enables assertions that have expensive runtime costs. + # apps can disable these features by building w/ -NDEBUG or wxDEBUG_LEVEL_0. + # http://docs.wxwidgets.org/3.0/overview_debugging.html + # https://groups.google.com/group/wx-dev/browse_thread/thread/c3c7e78d63d7777f/05dee25410052d9c + use debug \ + && myconf="${myconf} --enable-debug=max" + + # wxGTK options + # --enable-graphics_ctx - needed for webkit, editra + # --without-gnomevfs - bug #203389 + use X && \ + myconf="${myconf} + --enable-graphics_ctx + --with-gtkprint + --enable-gui + --with-libpng=sys + --with-libxpm=sys + --with-libjpeg=sys + --without-gnomevfs + --disable-webview + $(use_enable gstreamer mediactrl) + $(use_with libnotify) + $(use_with opengl) + $(use_with tiff libtiff sys)" + + use aqua && \ + myconf="${myconf} + --enable-graphics_ctx + --enable-gui + --with-libpng=sys + --with-libxpm=sys + --with-libjpeg=sys + --with-mac + --with-opengl" + # cocoa toolkit seems to be broken + + # wxBase options + if use !X && use !aqua ; then + myconf="${myconf} + --disable-gui" + fi + + ECONF_SOURCE="${S}" econf ${myconf} +} + +multilib_src_install_all() { + cd "${S}"/docs || die + dodoc changes.txt readme.txt + newdoc base/readme.txt base_readme.txt + newdoc gtk/readme.txt gtk_readme.txt + + use doc && HTML_DOCS="${WORKDIR}"/wxWidgets-${PV}-docs-html/. + einstalldocs + + # Stray windows locale file, causes collisions + local wxmsw="${ED}usr/share/locale/it/LC_MESSAGES/wxmsw.mo" + [[ -e ${wxmsw} ]] && rm "${wxmsw}" + + # Unversioned links + rm -f "${D}"/usr/bin/wx{-config,rc} + + # version bakefile presets + pushd "${D}"usr/share/bakefile/presets/ > /dev/null + for f in wx*; do + mv "${f}" "${f/wx/wx31}" + done + popd > /dev/null +} + +pkg_postinst() { + has_version app-eselect/eselect-wxwidgets \ + && eselect wxwidgets update +} + +pkg_postrm() { + has_version app-eselect/eselect-wxwidgets \ + && eselect wxwidgets update +} -- cgit v1.2.3