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 SOURCES/wxWidgets-3.0.4.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

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