diff --git a/wx-config b/wx-config new file mode 100644 index 0000000..175fdbd --- /dev/null +++ b/wx-config @@ -0,0 +1,51 @@ +#! /bin/sh +# +# Multilib-aware wrapper for the wx-config script +# +# Usage: wx-config [--arch ] +# + +version=3.0 + +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 "wxWidgets3-devel isn't installed for architecture '$arch'" + exit 9 +fi diff --git a/wxGTK3-3.0.3-abicheck.patch b/wxGTK3-3.0.3-abicheck.patch new file mode 100644 index 0000000..03ddcd5 --- /dev/null +++ b/wxGTK3-3.0.3-abicheck.patch @@ -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; diff --git a/wxGTK3.spec b/wxGTK3.spec new file mode 100644 index 0000000..42a0bf2 --- /dev/null +++ b/wxGTK3.spec @@ -0,0 +1,233 @@ +Name: wxGTK3 +Version: 3.0.4 +Release: 5 +Summary: C++ Library for Cross-Platform Development + +License: wxWidgets +URL: https://www.wxwidgets.org/ +Source0: https://github.com/wxWidgets/wxWidgets/releases/download/v%{version}/wxWidgets-%{version}.tar.bz2 +Source1: wx-config +Patch0001: wxGTK3-3.0.3-abicheck.patch + +BuildRequires: gtk2-devel gtk3-devel webkit2gtk3-devel zlib-devel libpng-devel libjpeg-devel +BuildRequires: libtiff-devel expat-devel SDL2-devel libGLU-devel libSM-devel gstreamer1-plugins-base-devel +BuildRequires: GConf2-devel gettext cppunit-devel libmspack-devel doxygen + +Requires: wxBase3 = %{version}-%{release} wxGTK3-i18n = %{version}-%{release} +Provides: wxWidgets = %{version}-%{release} bundled(scintilla) = 3.2.1 + +Provides: wxGTK3-gl = %{version}-%{release} wxGTK3-media = %{version}-%{release} wxGTK3-webview = %{version}-%{release} +Obsoletes: wxGTK3-gl < %{version}-%{release} wxGTK3-media < %{version}-%{release} wxGTK3-webview < %{version}-%{release} + +%description +wxWidgets is a C++ library for cross-platform GUI. +With wxWidgets, you can create applications for different GUIs (GTK+, +Motif, MS Windows, MacOS X, Windows CE, GPE) from the same source code. +This package contains all library of GTK3-backed wxWidgets. + +%package -n compat-wxGTK3-gtk2 +Summary: C++ Library for Cross-Platform Development of GTK2-backed wxWidgets +Requires: wxBase3 = %{version}-%{release} wxGTK3-i18n = %{version}-%{release} +Provides: compat-wxWidgets-gtk2 = %{version}-%{release} bundled(scintilla) = 3.2.1 + +Provides: compat-wxGTK3-gtk2-gl = %{version}-%{release} compat-wxGTK3-gtk2-media = %{version}-%{release} +Obsoletes: compat-wxGTK3-gtk2-gl < %{version}-%{release} compat-wxGTK3-gtk2-media < %{version}-%{release} + +%description -n compat-wxGTK3-gtk2 +wxWidgets is a C++ library for cross-platform GUI. +With wxWidgets, you can create applications for different GUIs (GTK+, +Motif, MS Windows, MacOS X, Windows CE, GPE) from the same source code. +This package contains all library of GTK2-backed wxWidgets. + +%package -n wxBase3-devel +Summary: Development files for GTK2-backed and GTK3-backed wxWidgets +Requires: wxBase3 = %{version}-%{release} +Requires(post): chkconfig +Requires(postun): chkconfig + +%description -n wxBase3-devel +This package contains all files needed for developing with GTK2-backed and GTK3-backed wxWidgets. + +%package devel +Summary: Development files for GTK3-backed wxWidgets +Requires: wxGTK3 = %{version}-%{release} wxGTK3-gl = %{version}-%{release} +Requires: wxGTK3-media = %{version}-%{release} wxGTK3-webview = %{version}-%{release} +Requires: wxBase3 = %{version}-%{release} wxBase3-devel = %{version}-%{release} +Requires: gtk3-devel libGLU-devel +Provides: wxWidgets-devel = %{version}-%{release} + +%description devel +This package contains all files needed for developing with GTK3-backed wxWidgets. + +%package -n compat-wxGTK3-gtk2-devel +Summary: Development files for GTK2-backed wxWidgets +Requires: compat-wxGTK3-gtk2 = %{version}-%{release} compat-wxGTK3-gtk2-gl = %{version}-%{release} +Requires: compat-wxGTK3-gtk2-media = %{version}-%{release} +Requires: wxBase3 = %{version}-%{release} wxBase3-devel = %{version}-%{release} +Requires: gtk2-devel libGLU-devel +Provides: compat-wxWidgets-gtk2-devel = %{version}-%{release} + +%description -n compat-wxGTK3-gtk2-devel +This package contains all files needed for developing with GTK2-backed wxWidgets. + + +%package i18n +Summary: i18n message catalogs of the wxGTK3 +BuildArch: noarch + +%description i18n +This package contains i18n message catalogs for the wxWidgets library. + +%package -n wxBase3 +Summary: Non-GUI support classes of the wxGTK3 +Provides: compat-wxBase3-gtk2 = %{version}-%{release} +Obsoletes: compat-wxBase3-gtk2 < %{version}-%{release} + +%description -n wxBase3 +Non-GUI support classes from the wxWidgets library. + +%package help +Summary: Help documentation for the wxGTK3 library +Requires: %{name} = %{version}-%{release} +Provides: wxWidgets-docs = %{version}-%{release} compat-wxWidgets-gtk2 = %{version}-%{release} +Provides: wxWidgets-xmldocs = %{version}-%{release} +Provides: wxGTK3-docs = %{version}-%{release} compat-wxGTK3-gtk2-docs = %{version}-%{release} +Provides: wxGTK3-xmldocs = %{version}-%{release} compat-wxGTK3-gtk2-xmldocs = %{version}-%{release} +Obsoletes: wxGTK3-docs < %{version}-%{release} compat-wxGTK3-gtk2-docs < %{version}-%{release} +Obsoletes: wxGTK3-xmldocs < %{version}-%{release} compat-wxGTK3-gtk2-xmldocs < %{version}-%{release} +BuildArch: noarch + +%description help +This package provides documentation for the wxGTK3-docs library. + +%prep +%autosetup -n wxWidgets-%{version} -p1 + +sed -i -e 's|aclocal)|aclocal/wxwin3.m4)|;s|wxstd.mo|wxstd3.mo|;s|wxmsw.mo|wxmsw3.mo|' Makefile.in +sed -i -e 's|/usr/lib\b|%{_libdir}|' wx-config.in configure +sed -i -e 's|/lib|/%{_lib}|' src/unix/stdpaths.cpp +sed -i -e 's|$CPPUNIT_CONFIG --version|$CPPUNIT_CONFIG --modversion|' configure + +%build +CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +export LDFLAGS="-Wl,--as-needed" +export CPPUNIT_CONFIG="/usr/bin/pkg-config cppunit" + +%global _configure ../configure + +install -d bld_gtk2 +cd bld_gtk2 +%configure --with-gtk=2 --with-opengl --with-sdl --with-gnomeprint --with-libmspack --enable-intl \ + --enable-no_deps --disable-rpath --enable-ipv6 + +%make_build +cd - + +install -d bld_gtk3 +cd bld_gtk3 +%configure --with-gtk=3 --with-opengl --with-sdl --with-gnomeprint --with-libmspack --enable-intl \ + --enable-no_deps --disable-rpath --enable-ipv6 + +%make_build +cd - + +WX_SKIP_DOXYGEN_VERSION_CHECK=1 docs/doxygen/regen.sh html +mv docs/doxygen/out/html . + +cd docs/doxygen +WX_SKIP_DOXYGEN_VERSION_CHECK=1 ./regen.sh xml +cd - + +%install +cd bld_gtk2 +%makeinstall +cd - + +cd bld_gtk3 +%makeinstall +cd - + +rm %{buildroot}%{_bindir}/wx-config +install -pD -m 755 %{SOURCE1} %{buildroot}%{_libexecdir}/wxGTK3/wx-config +ln -s ../..%{_libexecdir}/wxGTK3/wx-config %{buildroot}%{_bindir}/wx-config-3.0 +touch %{buildroot}%{_bindir}/wx-config + +mv %{buildroot}%{_bindir}/wxrc* %{buildroot}%{_libexecdir}/wxGTK3 +ln -s ../..%{_libexecdir}/wxGTK3/wxrc-3.0 %{buildroot}%{_bindir}/wxrc-3.0 +touch %{buildroot}%{_bindir}/wxrc + + +install -d %{buildroot}%{_datadir}/bakefile/presets/wx3 +mv %{buildroot}%{_datadir}/bakefile/presets/*.* %{buildroot}%{_datadir}/bakefile/presets/wx3 + +%find_lang wxstd3 +%find_lang wxmsw3 +cat wxmsw3.lang >> wxstd3.lang + +%check +cd bld_gtk2/tests +%make_build test +cd - + +cd bld_gtk3/tests +%make_build test +cd - + +%post -n wxBase3-devel +if [ -f %{_bindir}/wx-config ] && [ ! -h %{_bindir}/wx-config ] ; then rm %{_bindir}/wx-config; fi; + +%{_sbindir}/update-alternatives --install %{_bindir}/wx-config wx-config %{_libexecdir}/%{name}/wx-config 3 + +%{_sbindir}/update-alternatives --install %{_bindir}/wxrc wxrc %{_libexecdir}/%{name}/wxrc 3 + +%postun -n wxBase3-devel +if [ $1 -eq 0 ] ; then + %{_sbindir}/update-alternatives --remove wx-config %{_libexecdir}/%{name}/wx-config + %{_sbindir}/update-alternatives --remove wxrc %{_libexecdir}/%{name}/wxrc +fi + +%files +%{_libdir}/libwx_gtk3u_*.so.* +%dir %{_libdir}/wx +%{_libdir}/wx/3.0 + +%files -n compat-wxGTK3-gtk2 +%{_libdir}/libwx_gtk2u_*.so.* + +%files -n wxBase3-devel +%ghost %{_bindir}/{wx-config,wxrc} +%{_bindir}/{wxrc-3.0,wx-config-3.0} +%{_includedir}/wx-3.0 +%{_libdir}/libwx_baseu*.so +%dir %{_libdir}/wx +%dir %{_libdir}/wx/config +%dir %{_libdir}/wx/include +%{_datadir}/{aclocal/wxwin3.m4,bakefile/presets/wx3} +%exclude %{_datadir}/bakefile/presets/wx3/*.pyc +%exclude %{_datadir}/bakefile/presets/wx3/*.pyo +%{_libexecdir}/wxGTK3 + +%files devel +%{_libdir}/libwx_gtk3u_*.so +%{_libdir}/wx/{config/gtk3-unicode-3.0,include/gtk3-unicode-3.0} + +%files -n compat-wxGTK3-gtk2-devel +%{_libdir}/libwx_gtk2u_*.so +%{_libdir}/wx/{config/gtk2-unicode-3.0,include/gtk2-unicode-3.0} + +%files i18n -f wxstd3.lang + +%files -n wxBase3 +%{_libdir}/libwx_baseu*.so.* + +%files help +%doc docs/* +%doc html + + +%changelog +* Fri Dec 06 2019 daiqianwen - 3.0.4-5 +- Package init + + diff --git a/wxWidgets-3.0.4.tar.bz2 b/wxWidgets-3.0.4.tar.bz2 new file mode 100644 index 0000000..26aa9b1 Binary files /dev/null and b/wxWidgets-3.0.4.tar.bz2 differ