From 68647ebc4b2f34306f4e68f9c7d6fe9d85431304 Mon Sep 17 00:00:00 2001 From: B Stack Date: Sat, 17 Nov 2018 19:30:28 +0000 Subject: add wxgtk31 --- wxgtk3/wx-config | 45 +++++++ wxgtk3/wxGTK3.spec | 380 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 425 insertions(+) create mode 100644 wxgtk3/wx-config create mode 100644 wxgtk3/wxGTK3.spec (limited to 'wxgtk3') diff --git a/wxgtk3/wx-config b/wxgtk3/wx-config new file mode 100644 index 0000000..970ded9 --- /dev/null +++ b/wxgtk3/wx-config @@ -0,0 +1,45 @@ +#! /bin/sh +# +# Multilib-aware wrapper for the wx-config script +# +# Usage: wx-config [--arch ] +# + +version=3.1 + +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) + libdir=/usr/lib + ;; + x86_64|ppc64|s390x|sparc64|aarch64|ppc64le|mips64*) + libdir=/usr/lib64 + ;; + *) + echo "Unsupported architecture '$arch'" + exit 8 + ;; +esac + +wxconfig=$libdir/wx/config/gtk3-unicode-$version +# 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 +fi + +if [ -x $wxconfig ]; then + exec $wxconfig $@ +else + echo "wxWidgets3-devel isn't installed for architecture '$arch'" + exit 9 +fi diff --git a/wxgtk3/wxGTK3.spec b/wxgtk3/wxGTK3.spec new file mode 100644 index 0000000..71af549 --- /dev/null +++ b/wxgtk3/wxGTK3.spec @@ -0,0 +1,380 @@ +%global srcname wxWidgets +%global wxgtkname wxGTK31 +%global wxbasename wxBase31 +#RHEL 6 does not have gtk3 +#RHEL prior to 6 is unsupported by this package +%if 0%{?el6} +%global gtkver 2 +%else +%global gtkver 3 +%endif + +Name: %{wxgtkname} +Version: 3.1.1 +Release: 3%{?dist} +Summary: Unofficial GTK port of the wxWidgets GUI library +License: wxWidgets +Group: System Environment/Libraries +URL: http://www.wxwidgets.org/ +Packager: B Stack +Source0: https://github.com/%{srcname}/%{srcname}/releases/download/v%{version}/%{srcname}-%{version}.tar.bz2 +Source1: wx-config + + +BuildRequires: gtk%{gtkver}-devel +#Note webkitgtk (GTK2) does not appear to be supported +%if %{gtkver} == 3 + %if 0%{?fedora} > 26 +BuildRequires: webkitgtk4-devel + %else +BuildRequires: webkitgtk3-devel + %endif +%endif +BuildRequires: zlib-devel +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: libpng-devel +BuildRequires: libjpeg-devel +BuildRequires: libtiff-devel +BuildRequires: expat-devel +BuildRequires: SDL-devel +BuildRequires: libGLU-devel +BuildRequires: libSM-devel +BuildRequires: gstreamer-plugins-base-devel +BuildRequires: GConf2-devel +BuildRequires: gettext +BuildRequires: cppunit-devel +BuildRequires: libmspack-devel libXtst-devel libsecret-devel libnotify-devel + +Provides: wxGTK31 = %{version}-%{release} +Provides: bundled(scintilla) = 3.5.7 +Requires: %{wxbasename}%{?_isa} = %{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 devel +Group: Development/Libraries +Summary: Development files for the wxGTK3 library +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-gl = %{version}-%{release} +Requires: %{name}-media = %{version}-%{release} +Requires: %{wxbasename} = %{version}-%{release} +Requires: gtk%{gtkver}-devel +Requires: libGLU-devel +%if 0%{?fedora} > 24 +# At last fc25 uses update-alternatives to manage wx-config! +Requires(post): %{_sbindir}/update-alternatives +Requires(postun): %{_sbindir}/update-alternatives +%endif +Provides: wxGTK31-devel = %{version}-%{release} + +%description devel +This package include files needed to link with the wxGTK3 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 +Group: System Environment/Libraries +Requires: wxGTK31%{?_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 media +Summary: Multimedia add-on for the wxWidgets library +Group: System Environment/Libraries +Requires: wxGTK31%{?_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 -n %{wxbasename} +Summary: Non-GUI support classes from the wxWidgets library +Group: System Environment/Libraries + +%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 +Group: Development/Libraries +Summary: Documentation for the wxGTK3 library +Requires: %{name} = %{version}-%{release} +Provides: wxGTK31-docs = %{version}-%{release} +BuildArch: noarch + +%description docs +This package provides documentation for the %{srcname} library. + + +%prep +%setup -q -n %{srcname}-%{version} + +# patch some installed files to avoid conflicts with 2.8.* +sed -i -e 's|aclocal)|aclocal/wxwin31.m4)|' Makefile.in +sed -i -e 's|wxstd.mo|wxstd31.mo|' Makefile.in +sed -i -e 's|wxmsw.mo|wxmsw31.mo|' Makefile.in + +# rename docs directory +#mv %{srcname}-%{version} html + + +# 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 +# likely still dereferences type-punned pointers +CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +# fix unused-direct-shlib-dependency error: +export LDFLAGS="-Wl,--as-needed" + +%configure \ + --with-gtk=%{gtkver} \ + --with-opengl \ + --with-sdl \ + --with-libmspack \ + --enable-intl \ + --disable-rpath \ + --enable-ipv6 + +make %{?_smp_mflags} + +%install +%make_install + +# install our multilib-aware wrapper +##Remove installed +rm %{buildroot}%{_bindir}/wx-config +##Install new and symlink +install -p -D -m 755 %{SOURCE1} %{buildroot}%{_libexecdir}/%{name}/wx-config +ln -s ../..%{_libexecdir}/%{name}/wx-config %{buildroot}%{_bindir}/wx-config-3.1 +touch %{buildroot}%{_bindir}/wx-config +##If gtk2 +%if %{gtkver} == 2 +sed -i -e 's|gtk3|gtk2|' %{buildroot}%{_libexecdir}/%{name}/wx-config +%endif + +#Alternatives setup with wxrc +mv %{buildroot}%{_bindir}/wxrc* %{buildroot}%{_libexecdir}/%{name} +ln -s ../..%{_libexecdir}/%{name}/wxrc-3.1 %{buildroot}%{_bindir}/wxrc-3.1 +touch %{buildroot}%{_bindir}/wxrc + +#Remove some python bitecode artifacts +rm -f %{buildroot}%{_datadir}/bakefile/presets/*.pyc +rm -f %{buildroot}%{_datadir}/bakefile/presets/*.pyo + +# move bakefiles to avoid conflicts with 2.8.* +mkdir %{buildroot}%{_datadir}/bakefile/presets/wx31 +mv %{buildroot}%{_datadir}/bakefile/presets/*.* %{buildroot}%{_datadir}/bakefile/presets/wx31 + +%find_lang wxstd31 +%find_lang wxmsw31 +cat wxmsw31.lang >> wxstd31.lang + + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%post gl -p /sbin/ldconfig +%postun gl -p /sbin/ldconfig + +%post media -p /sbin/ldconfig +%postun media -p /sbin/ldconfig + +## This isn't needed here, presumably because we don't package webview separately +## and uncommenting it breaks rpmbuild +#%if %{gtkver} == 3 +#%if 0%{?fedora} > 25 +#%post webview -p /sbin/ldconfig +#%postun webview -p /sbin/ldconfig +#%endif +#%endif + +%post -n %{wxbasename} -p /sbin/ldconfig +%postun -n %{wxbasename} -p /sbin/ldconfig + +%post 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 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 -f wxstd31.lang +%doc docs/changes.txt docs/gpl.txt docs/lgpl.txt docs/licence.txt +%doc docs/licendoc.txt docs/preamble.txt docs/readme.txt +%{_libdir}/libwx_gtk%{gtkver}u_adv-*.so.* +%{_libdir}/libwx_gtk%{gtkver}u_aui-*.so.* +%{_libdir}/libwx_gtk%{gtkver}u_core-*.so.* +%{_libdir}/libwx_gtk%{gtkver}u_html-*.so.* +%{_libdir}/libwx_gtk%{gtkver}u_propgrid-*.so.* +%{_libdir}/libwx_gtk%{gtkver}u_qa-*.so.* +%{_libdir}/libwx_gtk%{gtkver}u_ribbon-*.so.* +%{_libdir}/libwx_gtk%{gtkver}u_richtext-*.so.* +%{_libdir}/libwx_gtk%{gtkver}u_stc-*.so.* +%if %{gtkver} == 3 +%{_libdir}/libwx_gtk%{gtkver}u_webview-*.so.* +%endif +%{_libdir}/libwx_gtk%{gtkver}u_xrc-*.so.* + +%files devel +%ghost %{_bindir}/wx-config +%ghost %{_bindir}/wxrc +%{_bindir}/wxrc-3.1 +%{_bindir}/wx-config-3.1 +%{_includedir}/wx-3.1 +%{_libdir}/libwx_*.so +%{_libdir}/wx +%{_datadir}/aclocal/wxwin31.m4 +%{_datadir}/bakefile/presets/wx31 +%{_datadir}/bakefile/presets/wx31/*.* +%{_libexecdir}/%{name} + +%files gl +%{_libdir}/libwx_gtk%{gtkver}u_gl-*.so.* + +%files media +%{_libdir}/libwx_gtk%{gtkver}u_media-*.so.* + +%files -n %{wxbasename} +%doc docs/changes.txt docs/gpl.txt docs/lgpl.txt docs/licence.txt +%doc docs/licendoc.txt docs/preamble.txt docs/readme.txt +%{_libdir}/libwx_baseu-*.so.* +%{_libdir}/libwx_baseu_net-*.so.* +%{_libdir}/libwx_baseu_xml-*.so.* + + +%changelog +* Fri Nov 16 2018 B Stack - Unofficial 3.1.1-3 +- Custom package for copr + +* Wed Sep 27 2017 David Hart - Unofficial 3.1.0 +- Fedora >26 uses webkitgtk4, not 3 + +* Wed Apr 26 2017 David Hart - Unofficial 3.1.0 +- Patch for Wayland keyboard glitch, kindly supplied by Alexey Kosilin + +* Tue Apr 18 2017 David Hart - Unofficial 3.1.0 +- Patch for mousewheel crash in Wayland, kindly supplied by Alexey Kosilin + +* Wed Nov 23 2016 David Hart - Unofficial 3.1.0 +- Added update-alternatives support for >=fc25 + +* Tue Mar 01 2016 David Hart - Unofficial 3.1.0 +- Updated for wx3.1.0 + +* Thu Jan 21 2016 David Hart - Unofficial 3.1pre +- Updated for wx3.1pre390091c + +* Thu Dec 31 2015 Jeremy Newton - 3.0.2-12 +- Remove python artifacts in bakefile dir, causes multilib devel conflict RH#1294712 +- Fix package devel not owning created wx3 backfile preset dir +- Add support for MIPS to wx-config RH#1294895 +- Wayland Patch + +* Thu Nov 5 2015 Jeremy Newton - 3.0.2-11 +- Added patch to fix checkbox and radio button issues for f21 onwards + +* Sun Nov 1 2015 Jeremy Newton - 3.0.2-10 +- Removed depreciated/retired libgnomeprintui22 + +* Sat Aug 22 2015 Jeremy Newton - 3.0.2-9 +- Include spinbutton patch from upstream + +* Mon Jun 22 2015 Jeremy Newton - 3.0.2-8 +- Include some upstream patches to fix crashes and warnings + +* Fri Jun 19 2015 Fedora Release Engineering - 3.0.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu May 28 2015 Mamoru TASAKA - 3.0.2-6 +- Don't abort on ABI check, backport from wxGTK + +* Mon May 04 2015 Jason L Tibbitts III - 3.0.2-5 +- Indicate that this package bundles scintilla 3.2.1. + +* Thu Feb 26 2015 Jeremy Newton - 3.0.2-4 +- Bump to rebuild, fix bug #1210239 + +* Thu Feb 26 2015 Jeremy Newton - 3.0.2-3 +- Bump to rebuild for gcc 5.0 to fix some issues + +* Tue Nov 04 2014 Jeremy Newton - 3.0.2-2 +- Moving things around again, hopefully fixing RH#1124402 +- Adding symlinks to avoid breaking things + +* Tue Nov 04 2014 Jeremy Newton - 3.0.2-1 +- Update to 3.0.2 + +* Mon Nov 03 2014 Marcin Juszkiewicz - 3.0.1-5 +- Add aarch64 and ppc64le to list of 64-bit architectures + +* Tue Sep 30 2014 Jeremy Newton - 3.0.1-4 +- Add conflict with wxgtk-devel again, temporary fix until it can be resolved + +* Tue Sep 30 2014 Jeremy Newton - 3.0.1-3 +- Avoid gtk warnings, fixes RH#1147995 +- Moving wxrc and wx-config to libexec instead of renaming +- Misc changes and spec error fixes, fixes RH#1124402 + +* Sat Jul 5 2014 Jeremy Newton - 3.0.1-1 +- Bump to 3.0.1 RH#1076617 + +* Tue Mar 18 2014 Jeremy Newton - 3.0.0-6 +- Removed disable-catch_segvs, see RH#1076617 + +* Mon Mar 17 2014 Jeremy Newton - 3.0.0-5 +- Renable combat28 - without it causes bugs RH#1076617 and a few others + +* Wed Feb 19 2014 Jeremy Newton - 3.0.0-4 +- Fixed GTK3 bug with wx-config +- Fixed a unused-direct-shlib-dependency error + +* Mon Feb 17 2014 Jeremy Newton - 3.0.0-3 +- Added patch to avoid build fail on gtk 3.10+ +- Reverted patching to make devel package compatible with wxGTK-devel +- Added combatibility for RHEL 6+ +- Changed all mention of GTK3 and GTK2 to GTK for consistency + +* Mon Feb 10 2014 Jeremy Newton - 3.0.0-2 +- Changed to build against gtk3 +- Add webkit to build requires +- Removed patching to make devel package compatible with wxGTK-devel +- Disable 2.8.* combatibility (redundant functionality) + +* Sat Jan 4 2014 Jeremy Newton - 3.0.0-1 +- Initial build of wxwidgets version 3, mostly based on wxGTK spec -- cgit