From d1ea1b81eecf6e19cffc7166dce43f1867195d88 Mon Sep 17 00:00:00 2001 From: tigro Date: Sat, 5 Oct 2024 17:58:17 +0300 Subject: [PATCH] import wxGTK-3.2.2.1-1.el9 --- .gitignore | 1 + .wxGTK.metadata | 1 + SOURCES/wx-config | 51 ++++ SOURCES/wxGTK-3.1.6-abicheck.patch | 16 ++ SPECS/wxGTK.spec | 394 +++++++++++++++++++++++++++++ 5 files changed, 463 insertions(+) create mode 100644 .gitignore create mode 100644 .wxGTK.metadata create mode 100644 SOURCES/wx-config create mode 100644 SOURCES/wxGTK-3.1.6-abicheck.patch create mode 100644 SPECS/wxGTK.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7b2514c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/wxWidgets-3.2.2.1.tar.bz2 diff --git a/.wxGTK.metadata b/.wxGTK.metadata new file mode 100644 index 0000000..16f24d6 --- /dev/null +++ b/.wxGTK.metadata @@ -0,0 +1 @@ +d645cacbf2678cfc402ae163f2b0e0b05be5d239 SOURCES/wxWidgets-3.2.2.1.tar.bz2 diff --git a/SOURCES/wx-config b/SOURCES/wx-config new file mode 100644 index 0000000..30f2a00 --- /dev/null +++ b/SOURCES/wx-config @@ -0,0 +1,51 @@ +#! /bin/sh +# +# Multilib-aware wrapper for the wx-config script +# +# Usage: wx-config [--arch ] +# + +version=3.2 + +if [ $# -ge 2 ]; then + if [ $1 = "--arch" ]; then + arch=$2 + shift 2 + fi +fi + +if [ -z $arch ]; then + arch=`uname -m` +fi + +case $arch in + i?86|ppc|s390|sparc|arm*|ia64|mips|mipsel|riscv32) + libdir=/usr/lib + ;; + x86_64|ppc64|s390x|sparc64|aarch64|ppc64le|mips64*|riscv64) + libdir=/usr/lib64 + ;; + *) + echo "Unsupported architecture '$arch'" + exit 8 + ;; +esac + +wxconfig=$libdir/wx/config/gtk3-unicode-$version +if [ ! -f $wxconfig ]; then + wxconfig=$libdir/wx/config/gtk2-unicode-$version +fi +# special case when using 32-bit userspace and 64-bit kernel +if [ ! -f $wxconfig -a \( $arch = ppc64 -o $arch = sparc64 \) ]; then + wxconfig=/usr/lib/wx/config/gtk3-unicode-$version + if [ ! -f $wxconfig ]; then + wxconfig=/usr/lib/wx/config/gtk2-unicode-$version + fi +fi + +if [ -x $wxconfig ]; then + exec $wxconfig $@ +else + echo "wxGTK-devel isn't installed for architecture '$arch'" + exit 9 +fi diff --git a/SOURCES/wxGTK-3.1.6-abicheck.patch b/SOURCES/wxGTK-3.1.6-abicheck.patch new file mode 100644 index 0000000..1c4e618 --- /dev/null +++ b/SOURCES/wxGTK-3.1.6-abicheck.patch @@ -0,0 +1,16 @@ +diff -up wxWidgets-3.1.6/src/common/appbase.cpp.abicheck wxWidgets-3.1.6/src/common/appbase.cpp +--- wxWidgets-3.1.6/src/common/appbase.cpp.abicheck 2022-04-04 09:41:33.000000000 -0400 ++++ wxWidgets-3.1.6/src/common/appbase.cpp 2022-04-04 19:14:33.883814729 -0400 +@@ -843,11 +843,8 @@ bool wxAppConsoleBase::CheckBuildOptions + wxString prog = wxString::FromAscii(optionsSignature); + wxString progName = wxString::FromAscii(componentName); + +- wxLogFatalError(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."), ++ wxLogWarning(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."), + lib, progName, prog); +- +- // normally wxLogFatalError doesn't return +- return false; + } + + return true; diff --git a/SPECS/wxGTK.spec b/SPECS/wxGTK.spec new file mode 100644 index 0000000..6e27f2c --- /dev/null +++ b/SPECS/wxGTK.spec @@ -0,0 +1,394 @@ +%global srcname wxWidgets +%global wxbasename wxBase +%global gtk3dir bld_gtk3 +%global sover 0 + +Name: wxGTK +Version: 3.2.2.1 +Release: 1%{?dist} +Summary: GTK port of the wxWidgets GUI library +License: wxWidgets +URL: https://www.wxwidgets.org/ + +Source0: https://github.com/%{srcname}/%{srcname}/releases/download/v%{version}/%{srcname}-%{version}.tar.bz2 +Source10: wx-config +# https://bugzilla.redhat.com/show_bug.cgi?id=1225148 +# remove abort when ABI check fails +# Backport from wxGTK +Patch0: %{name}-3.1.6-abicheck.patch + +BuildRequires: make +BuildRequires: gcc-c++ +BuildRequires: gtk3-devel +BuildRequires: webkit2gtk3-devel +BuildRequires: zlib-devel +BuildRequires: libpng-devel +BuildRequires: libjpeg-devel +BuildRequires: libtiff-devel +BuildRequires: expat-devel +BuildRequires: SDL2-devel +BuildRequires: libGLU-devel +BuildRequires: libSM-devel +BuildRequires: gstreamer1-plugins-base-devel +BuildRequires: GConf2-devel +BuildRequires: gettext +BuildRequires: cppunit-devel +BuildRequires: libmspack-devel +BuildRequires: doxygen +BuildRequires: graphviz +BuildRequires: libsecret-devel +BuildRequires: libcurl-devel +# For Tests +BuildRequires: glibc-langpack-en +BuildRequires: mesa-dri-drivers +BuildRequires: xclock +BuildRequires: xorg-x11-server-Xvfb +BuildRequires: python3-httpbin +BuildRequires: vulkan-loader + +Provides: %{srcname} = %{version}-%{release} +Provides: bundled(scintilla) = 3.7.2 +Requires: %{wxbasename}%{?_isa} = %{version}-%{release} +Requires: %{name}-i18n = %{version}-%{release} + +%description +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. + + +%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 + +%description -n %{wxbasename}-devel +This package include files needed to link with the wxBase3 library. +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. + + +%package devel +Summary: Development files for the wxGTK library +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-gl = %{version}-%{release} +Requires: %{name}-media = %{version}-%{release} +Requires: %{name}-webview = %{version}-%{release} +Requires: %{wxbasename} = %{version}-%{release} +Requires: %{wxbasename}-devel%{?_isa} = %{version}-%{release} +Requires: gtk3-devel +Requires: libGLU-devel +Provides: %{srcname}-devel = %{version}-%{release} + +%description devel +This package include files needed to link with the wxGTK library. +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. + + +%package gl +Summary: OpenGL add-on for the wxWidgets library +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description gl +OpenGL (a 3D graphics API) add-on for the wxWidgets library. +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. + + +%package i18n +Summary: i18n message catalogs for the wxWidgets library +BuildArch: noarch + +%description i18n +i18n message catalogs for the wxWidgets library. +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. + + +%package media +Summary: Multimedia add-on for the wxWidgets library +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description media +Multimedia add-on for the wxWidgets library. +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. + + +%package webview +Summary: WebView add-on for the wxWidgets library +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description webview +WebView add-on for the wxWidgets library. +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. + + +%package -n %{wxbasename} +Summary: Non-GUI support classes from the wxWidgets library + +%description -n %{wxbasename} +Every wxWidgets application must link against this library. It contains +mandatory classes that any wxWidgets code depends on (like wxString) and +portability classes that abstract differences between platforms. wxBase can +be used to develop console mode applications -- it does not require any GUI +libraries or the X Window System. + + +%package docs +Summary: Documentation for the wxGTK library +Requires: %{name} = %{version}-%{release} +Provides: %{srcname}-docs = %{version}-%{release} +BuildArch: noarch + +%description docs +This package provides documentation for the %{srcname} library. + + +%prep +%autosetup -n %{srcname}-%{version} -p1 + +# patch some installed files to avoid conflicts with 2.8.* +sed -i -e 's|aclocal)|aclocal/wxwin32.m4)|' Makefile.in + +# fix plugin dir for 64-bit +sed -i -e 's|/usr/lib\b|%{_libdir}|' wx-config.in configure +sed -i -e 's|/lib|/%{_lib}|' src/unix/stdpaths.cpp + + +%build +%global _configure ../configure + +mkdir %{gtk3dir} +pushd %{gtk3dir} +%configure \ + --with-gtk=3 \ + --with-opengl \ + --with-sdl \ + --with-libmspack \ + --enable-intl \ + --disable-rpath \ + --disable-glcanvasegl \ + --enable-ipv6 + +%make_build +popd + +#Docs +WX_SKIP_DOXYGEN_VERSION_CHECK=1 docs/doxygen/regen.sh html +mv docs/doxygen/out/html . + +%install +pushd %{gtk3dir} +%make_install +popd + +# install our multilib-aware wrapper +##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.2 +touch %{buildroot}%{_bindir}/wx-config + +#Alternatives setup with wxrc +mv %{buildroot}%{_bindir}/wxrc* %{buildroot}%{_libexecdir}/%{name} +ln -s ../..%{_libexecdir}/%{name}/wxrc-3.2 %{buildroot}%{_bindir}/wxrc-3.2 +touch %{buildroot}%{_bindir}/wxrc + +# move bakefiles to avoid conflicts with 2.8.* +mkdir %{buildroot}%{_datadir}/bakefile/presets/wx32 +mv %{buildroot}%{_datadir}/bakefile/presets/*.* %{buildroot}%{_datadir}/bakefile/presets/wx32 + +%find_lang wxstd-3.2 + +%check +pushd %{gtk3dir}/tests +make %{?_smp_mflags} +python3 -m httpbin.core & +LD_LIBRARY_PATH=%{buildroot}%{_libdir} TZ=UTC wxUSE_XVFB=1 \ + WX_TEST_WEBREQUEST_URL="http://localhost:5000" xvfb-run -a ./test ~[.] \ +%ifarch s390x + ~wxTextFile::Special ~wxFileName::GetSizeSpecial ~wxFile::Special \ +%endif + ~WebRequest::SSL::Ignore +LD_LIBRARY_PATH=%{buildroot}%{_libdir} wxUSE_XVFB=1 xvfb-run -a \ + ./test_gui ~[.] \ +%ifarch i686 + ~ImageTestCase \ +%endif +%ifarch s390x + ~WebView \ +%endif + ~wxHtmlPrintout::Pagination +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 25 +/usr/sbin/update-alternatives --install %{_bindir}/wxrc \ + wxrc %{_libexecdir}/%{name}/wxrc 25 + +%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 + +%files +%doc docs/changes.txt docs/readme.txt +%license docs/gpl.txt docs/lgpl.txt docs/licence.txt docs/licendoc.txt +%license docs/preamble.txt +%{_libdir}/libwx_gtk3u_adv-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_aui-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_core-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_html-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_propgrid-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_qa-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_ribbon-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_richtext-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_stc-*.so.%{sover}* +%{_libdir}/libwx_gtk3u_xrc-*.so.%{sover}* + +%files -n %{wxbasename}-devel +%ghost %{_bindir}/wx-config +%ghost %{_bindir}/wxrc +%{_bindir}/wxrc-3.2 +%{_bindir}/wx-config-3.2 +%{_includedir}/wx-3.2 +%{_libdir}/libwx_baseu*.so +%dir %{_libdir}/wx +%dir %{_libdir}/wx/config +%dir %{_libdir}/wx/include +%{_datadir}/aclocal/wxwin32.m4 +%{_datadir}/bakefile/presets/wx32 +%{_libexecdir}/%{name} + +%files devel +%{_libdir}/libwx_gtk3u_*.so +%{_libdir}/wx/config/gtk3-unicode-3.2 +%{_libdir}/wx/include/gtk3-unicode-3.2 + +%files gl +%{_libdir}/libwx_gtk3u_gl-*.so.%{sover}* + +%files i18n -f wxstd-3.2.lang + +%files media +%{_libdir}/libwx_gtk3u_media-*.so.%{sover}* + +%files webview +%{_libdir}/libwx_gtk3u_webview-*.so.%{sover}* +%dir %{_libdir}/wx +%{_libdir}/wx/3.2 + +%files -n %{wxbasename} +%doc docs/changes.txt docs/readme.txt +%license docs/gpl.txt docs/lgpl.txt docs/licence.txt docs/licendoc.txt +%license docs/preamble.txt +%{_libdir}/libwx_baseu-*.so.* +%{_libdir}/libwx_baseu_net-*.so.%{sover}* +%{_libdir}/libwx_baseu_xml-*.so.%{sover}* + +%files docs +%doc html + +%changelog +* Sat Oct 05 2024 Arkady L. Shane - 3.2.2.1-1 +- Rebuilt for MSVSphere 9.4 + +* Tue Feb 21 2023 Scott Talbert - 3.2.2.1-1 +- Update to new upstream release 3.2.2.1 (#2170238) + +* Fri Feb 10 2023 Scott Talbert - 3.2.2-1 +- Update to new upstream release 3.2.2 (#2168466) + +* Sat Jan 21 2023 Fedora Release Engineering - 3.2.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Dec 14 2022 Florian Weimer - 3.2.1-4 +- Port configure script to C99 + +* Tue Nov 22 2022 Scott Talbert - 3.2.1-3 +- Rebuild (again) with wxGLCanvas GLX support (resolves many OpenGL issues) + +* Thu Nov 17 2022 Scott Talbert - 3.2.1-2 +- Rebuild with wxGLCanvas GLX support (resolves many OpenGL issues) + +* Fri Sep 09 2022 Scott Talbert - 3.2.1-1 +- Update to new upstream release 3.2.1 (#2125703) + +* Mon Jul 25 2022 Scott Talbert - 3.2.0-1 +- Update to new upstream release 3.2.0 (#2101974) + +* Sat Jul 23 2022 Fedora Release Engineering - 3.1.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jun 09 2022 Scott Talbert - 3.1.7-1 +- Update to new upstream release 3.1.7 (#2094214) + +* Mon Apr 04 2022 Scott Talbert - 3.1.6-1 +- Update to new upstream release 3.1.6 (#2071576) + +* Tue Feb 01 2022 Scott Talbert - 3.1.5-6 +- Add some BRs to enable more tests + +* Fri Jan 28 2022 Scott Talbert - 3.1.5-5 +- Fix FTBFS with GCC 12 (#2047123) + +* Sat Jan 22 2022 Fedora Release Engineering - 3.1.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Jan 10 2022 Scott Talbert - 3.1.5-3 +- Fix wxGLCanvas::IsDisplaySupported() when using EGL + +* Fri Jul 23 2021 Fedora Release Engineering - 3.1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Apr 15 2021 Scott Talbert - 3.1.5-1 +- Update to new upstream release 3.1.5 (#1948935) + +* Thu Mar 04 2021 Scott Talbert - 3.1.4-5 +- Fix FTBFS due to glibc non-const SIGSTKSZ + +* Wed Mar 03 2021 Peter Hutterer 3.1.4-4 +- Require only xclock, not all of xorg-x11-apps (#1934359) + +* Sat Feb 06 2021 Scott Talbert - 3.1.4-3 +- Properly skip WebView tests to fix FTBFS (#1923643) + +* Wed Jan 27 2021 Fedora Release Engineering - 3.1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Aug 08 2020 Scott Talbert - 3.1.4-1 +- Update to new upstream release 3.1.4 (#1859715) + +* Sat Aug 01 2020 Fedora Release Engineering - 3.1.3-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 3.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Mar 03 2020 Scott Talbert - 3.1.3-1 +- Initial packaging of wxWidgets 3.1.x (dev version) (#1714714)