Compare commits

...

No commits in common. 'epel9' and 'i8ce' have entirely different histories.
epel9 ... i8ce

13
.gitignore vendored

@ -1,12 +1 @@
/wxWidgets-3.0.0-docs-html.tar.bz2
/wxWidgets-3.0.0.tar.bz2
/wxWidgets-3.0.1-docs-html.tar.bz2
/wxWidgets-3.0.1.tar.bz2
/wxWidgets-3.0.2-docs-html.tar.bz2
/wxWidgets-3.0.2.tar.bz2
/wxWidgets-9518d52.tar.gz
/wxWidgets-f90b768.tar.gz
/wxWidgets-e4293e9.tar.gz
/wxWidgets-3.0.3.tar.bz2
/wxWidgets-3.0.4.tar.bz2
/wxWidgets-3.0.5.1.tar.bz2
SOURCES/wxWidgets-3.0.4.tar.bz2

@ -0,0 +1 @@
246561a73ec5b9a5a7aaaaed46b64515dc9039ab SOURCES/wxWidgets-3.0.4.tar.bz2

@ -0,0 +1,52 @@
From 76c393b8bd1968dcf18e2c93f1c37d1c58215d4f Mon Sep 17 00:00:00 2001
From: Scott Talbert <swt@techie.net>
Date: Wed, 1 Aug 2018 20:52:11 -0700
Subject: [PATCH] Give an error when trying to use wxGLCanvas on non-X11
display
Currently, wxGLCanvas on wxGTK is only supported on X11 displays. If a
user attempts to use wxGLCanvas on Wayland, for example, the application
will core dump. This change adds an error message and a suggested
workaround until wxGLCanvas is supported on Wayland.
See #17702
See https://github.com/wxWidgets/wxWidgets/pull/871
(backport of 95857a1f71bd0c19e3059ebf0eea28e9bb8b7602)
---
src/gtk/glcanvas.cpp | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/gtk/glcanvas.cpp b/src/gtk/glcanvas.cpp
index d4acb9c8c2a..0953be61807 100644
--- a/src/gtk/glcanvas.cpp
+++ b/src/gtk/glcanvas.cpp
@@ -208,6 +208,19 @@ wxGLCanvas::wxGLCanvas(wxWindow *parent,
#endif // WXWIN_COMPATIBILITY_2_8
+static bool IsAvailable()
+{
+#ifdef GDK_WINDOWING_X11
+ if ( !GDK_IS_X11_DISPLAY(gdk_display_get_default()) )
+#endif
+ {
+ wxSafeShowMessage(_("Fatal Error"), _("wxGLCanvas is only supported on X11 currently. You may be able to\nwork around this by setting environment variable GDK_BACKEND=x11 before starting\nyour program."));
+ return false;
+ }
+
+ return true;
+}
+
bool wxGLCanvas::Create(wxWindow *parent,
wxWindowID id,
const wxPoint& pos,
@@ -217,6 +230,9 @@ bool wxGLCanvas::Create(wxWindow *parent,
const int *attribList,
const wxPalette& palette)
{
+ if ( !IsAvailable() )
+ return false;
+
#if wxUSE_PALETTE
wxASSERT_MSG( !palette.IsOk(), wxT("palettes not supported") );
#endif // wxUSE_PALETTE

@ -46,6 +46,6 @@ fi
if [ -x $wxconfig ]; then
exec $wxconfig $@
else
echo "wxGTK3-devel isn't installed for architecture '$arch'"
echo "wxWidgets3-devel isn't installed for architecture '$arch'"
exit 9
fi

@ -0,0 +1,14 @@
--- wxWidgets-3.0.2/src/common/appbase.cpp.abicheck 2015-05-28 12:36:40.697163073 +0900
+++ wxWidgets-3.0.2/src/common/appbase.cpp 2015-05-28 12:38:30.597154298 +0900
@@ -762,10 +762,7 @@
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());
- wxLogFatalError(msg.c_str());
-
- // normally wxLogFatalError doesn't return
- return false;
+ wxLogWarning(msg.c_str());
}
return true;

@ -17,8 +17,8 @@
%global builddocs 1
Name: %{wxgtkname}
Version: 3.0.5.1
Release: 6%{?snapshottag}%{?dist}
Version: 3.0.4
Release: 11%{?snapshottag}%{?dist}
Summary: GTK port of the wxWidgets GUI library
License: wxWidgets
URL: https://www.wxwidgets.org/
@ -38,22 +38,24 @@ Source10: wx-config
Patch0: %{name}-3.0.3-abicheck.patch
Patch1: fix-filename-test.patch
Patch2: fix-vararg-test.patch
Patch3: force-x11-for-wxgl.patch
Patch3: fix-glcanvas-crash-wayland.patch
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: gtk2-devel
BuildRequires: gtk3-devel
%ifnarch aarch64 s390x
BuildRequires: webkit2gtk3-devel
%endif
BuildRequires: zlib-devel
BuildRequires: libpng-devel
BuildRequires: libjpeg-devel
BuildRequires: libtiff-devel
BuildRequires: expat-devel
BuildRequires: SDL2-devel
BuildRequires: SDL-devel
BuildRequires: libGLU-devel
BuildRequires: libSM-devel
BuildRequires: gstreamer1-plugins-base-devel
BuildRequires: GConf2-devel
BuildRequires: gettext
BuildRequires: cppunit-devel
BuildRequires: libmspack-devel
@ -89,8 +91,7 @@ ranging from networking to HTML display and image manipulation.
%package -n %{wxbasename}-devel
Summary: Development files for the wxBase3 library
Requires: %{wxbasename}%{?_isa} = %{version}-%{release}
Requires(post): /usr/sbin/update-alternatives
Requires(postun): /usr/sbin/update-alternatives
Requires(pre): /usr/sbin/update-alternatives
%description -n %{wxbasename}-devel
This package include files needed to link with the wxBase3 library.
@ -105,7 +106,9 @@ Summary: Development files for the wxGTK3 library
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-gl = %{version}-%{release}
Requires: %{name}-media = %{version}-%{release}
%ifnarch aarch64 s390x
Requires: %{name}-webview = %{version}-%{release}
%endif
Requires: %{wxbasename} = %{version}-%{release}
Requires: %{wxbasename}-devel%{?_isa} = %{version}-%{release}
Requires: gtk3-devel
@ -199,6 +202,7 @@ comprehensive set of helper classes for most common application tasks,
ranging from networking to HTML display and image manipulation.
%ifnarch aarch64 s390x
%package webview
Summary: WebView add-on for the wxWidgets library
Requires: %{name}%{?_isa} = %{version}-%{release}
@ -209,6 +213,7 @@ wxWidgets is the GTK port of the C++ cross-platform wxWidgets
GUI library, offering classes for all common GUI controls as well as a
comprehensive set of helper classes for most common application tasks,
ranging from networking to HTML display and image manipulation.
%endif
%package -n %{wxbasename}
@ -327,15 +332,9 @@ popd
##Remove installed
rm %{buildroot}%{_bindir}/wx-config
##Install new and symlink
install -p -D -m 755 %{SOURCE10} %{buildroot}%{_libexecdir}/%{name}/wx-config
sed -i -e 's|=/usr|=%{_prefix}|' %{buildroot}%{_libexecdir}/%{name}/wx-config
ln -s ../..%{_libexecdir}/%{name}/wx-config %{buildroot}%{_bindir}/wx-config-3.0
touch %{buildroot}%{_bindir}/wx-config
#Alternatives setup with wxrc
mv %{buildroot}%{_bindir}/wxrc* %{buildroot}%{_libexecdir}/%{name}
ln -s ../..%{_libexecdir}/%{name}/wxrc-3.0 %{buildroot}%{_bindir}/wxrc-3.0
touch %{buildroot}%{_bindir}/wxrc
install -p -D -m 755 %{SOURCE10} %{buildroot}%{_bindir}/wx-config-3.0
sed -i -e 's|=/usr|=%{_prefix}|' %{buildroot}%{_bindir}/wx-config-3.0
ln -s wx-config-3.0 %{buildroot}%{_bindir}/wx-config
# move bakefiles to avoid conflicts with 2.8.*
mkdir %{buildroot}%{_datadir}/bakefile/presets/wx3
@ -348,27 +347,20 @@ cat wxmsw3.lang >> wxstd3.lang
%check
pushd %{gtk2dir}/tests
make %{?_smp_mflags}
LD_LIBRARY_PATH=%{buildroot}%{_libdir} TZ=UTC ./test
LD_LIBRARY_PATH=%{buildroot}%{_libdir} ./test
popd
pushd %{gtk3dir}/tests
make %{?_smp_mflags}
LD_LIBRARY_PATH=%{buildroot}%{_libdir} TZ=UTC ./test
LD_LIBRARY_PATH=%{buildroot}%{_libdir} ./test
popd
%post -n %{wxbasename}-devel
if [ -f %{_bindir}/wx-config ] && [ ! -h %{_bindir}/wx-config ] ; then
rm %{_bindir}/wx-config
fi
/usr/sbin/update-alternatives --install %{_bindir}/wx-config \
wx-config %{_libexecdir}/%{name}/wx-config 30
/usr/sbin/update-alternatives --install %{_bindir}/wxrc \
wxrc %{_libexecdir}/%{name}/wxrc 30
%postun -n %{wxbasename}-devel
if [ $1 -eq 0 ] ; then
/usr/sbin/update-alternatives --remove wx-config %{_libexecdir}/%{name}/wx-config
/usr/sbin/update-alternatives --remove wxrc %{_libexecdir}/%{name}/wxrc
# Drop the pre script in F32
%pre -n %{wxbasename}-devel
if [ $1 -gt 1 ] ; then
# Remove obsolete wx-config and wxrc alternatives
/usr/sbin/update-alternatives --remove wx-config %{_libexecdir}/%{name}/wx-config >& /dev/null ||:
/usr/sbin/update-alternatives --remove wxrc %{_libexecdir}/%{name}/wxrc >& /dev/null ||:
fi
%files
@ -400,10 +392,10 @@ fi
%{_libdir}/libwx_gtk2u_xrc-*.so.*
%files -n %{wxbasename}-devel
%ghost %{_bindir}/wx-config
%ghost %{_bindir}/wxrc
%{_bindir}/wxrc-3.0
%{_bindir}/wx-config
%{_bindir}/wx-config-3.0
%{_bindir}/wxrc
%{_bindir}/wxrc-3.0
%{_includedir}/wx-3.0
%{_libdir}/libwx_baseu*.so
%dir %{_libdir}/wx
@ -414,7 +406,6 @@ fi
#Exclude some python bitecode
%exclude %{_datadir}/bakefile/presets/wx3/*.pyc
%exclude %{_datadir}/bakefile/presets/wx3/*.pyo
%{_libexecdir}/%{name}
%files devel
%{_libdir}/libwx_gtk3u_*.so
@ -440,10 +431,12 @@ fi
%files -n %{wxgtk2name}-media
%{_libdir}/libwx_gtk2u_media-*.so.*
%ifnarch aarch64 s390x
%files webview
%{_libdir}/libwx_gtk3u_webview-*.so.*
%dir %{_libdir}/wx
%{_libdir}/wx/3.0
%endif
%files -n %{wxbasename}
%doc docs/changes.txt docs/gpl.txt docs/lgpl.txt docs/licence.txt
@ -456,38 +449,14 @@ fi
%doc html
%changelog
* Mon Dec 06 2021 Orion Poplawski <orion@nwra.com> - 3.0.5.1-6
- Drop unused BR on GConf2-devel
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.5.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu May 06 2021 Scott Talbert <swt@techie.net> - 3.0.5.1-4
- Adobt Debian patch to avoid warning on C++ ABI mismatches (#1957142)
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.5.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun May 10 2020 Scott Talbert <swt@techie.net> - 3.0.5.1-1
- Update to new upstream release 3.0.5.1
* Fri Mar 13 2020 Scott Talbert <swt@techie.net> - 3.0.4-15
- Bring back alternatives system for wx-config and wxrc
* Fri Jan 31 2020 Scott Talbert <swt@techie.net> - 3.0.4-14
- Update wx-config error message when wxGTK3-devel is missing (#1795500)
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.4-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Feb 29 2024 Sergey Cherevko <s.cherevko@msvsphere-os.ru> - 3.0.4-11
- Rebuilt for MSVSphere 8.9
* Tue Oct 22 2019 Scott Talbert <swt@techie.net> - 3.0.4-12
- Incorporate patch from Debian to force X11 when using wxGLCanvas
* Tue Oct 01 2019 Scott Talbert <swt@techie.net> - 3.0.4-11
- Rebuild with SDL 1 which is in base EL8 repository (#1755609)
* Thu Sep 19 2019 Scott Talbert <swt@techie.net> - 3.0.4-11
- Force timezone to UTC when running tests (#1753405)
* Sat Aug 17 2019 Scott Talbert <swt@techie.net> - 3.0.4-10.1
- Avoid building webview on aarch64 and s390x on epel8
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.4-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

@ -1,27 +0,0 @@
Description: Force X11 if wx GL library is loaded
Author: Olly Betts <olly@survex.com>
Bug: https://trac.wxwidgets.org/ticket/17702
Bug-Debian: https://bugs.debian.org/900678
Forwarded: no
Last-Update: 2019-08-13
--- a/src/gtk/glcanvas.cpp
+++ b/src/gtk/glcanvas.cpp
@@ -19,6 +19,17 @@
#include <gdk/gdkx.h>
#include "wx/gtk/private/gtk2-compat.h"
+#if GTK_CHECK_VERSION(3,10,0)
+// wxGTK's wxGLCanvas requires X11 currently, so tell GDK that so under
+// Wayland the app is still run using X11. We put this here so it's
+// only run when the wx GL library is loaded (in a monolithic build this
+// will always be active if wx's GL support is enabled).
+struct ForceX11 {
+ ForceX11() { gdk_set_allowed_backends("x11"); }
+};
+static ForceX11 forcex11;
+#endif
+
#if WXWIN_COMPATIBILITY_2_8
//-----------------------------------------------------------------------------

@ -1 +0,0 @@
SHA512 (wxWidgets-3.0.5.1.tar.bz2) = 0a789fc5e71d414e43f75b5c16076fe8b1bcd7671be0770e4269dcef66d830c1bc74e183f49db270b928862f13472666c283fe2aa98b9006681722e06100725d

@ -1,38 +0,0 @@
Description: Suppress error about mismatching C++ ABI version
In practice, the differences between recent ABI versions don't seem to be
incompatible since they apparently only affect obscure corner cases. So
suppress this error so we don't have to rebuild the entire wx world in one
go.
Author: Olly Betts <olly@survex.com>
Forwarded: no
Last-Update: 2017-07-26
--- a/src/common/appbase.cpp
+++ b/src/common/appbase.cpp
@@ -766,6 +766,26 @@
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
Loading…
Cancel
Save