Update wxGTK.spec to work with openSUSE build server.

Changes from Marcin Wojdyr fixing issues for different RPM-using systems:

- added all necessary BuildRequires fields
- for openSuse wxGTK-gl package is named libwx_gtk*_gl... (it's
enforced that package with one shared lib has name matching the
library name)
- added missing '%dir's - on some distros rpms didn't built without it
- Fedora, Suse and Mandriva have all different set of known Groups,
I've changed group from 'X11/Libraries' to 'System/Libraries' -- it's
defined at least in Suse and Mandriva. (in recent distro releases
Group can be skipped, so it's becoming irrelevant).
- removed 'Packager' field and dots ending Summary field - AFAIR these
were errors on Opensuse
- added '= %{version}' to Provides
- for Redhat5 use GCC4.4 (build crashed with default 4.2)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-09-19 07:53:13 +00:00
parent 089ef0bef7
commit 4d1c7a9160

View File

@@ -2,6 +2,9 @@
%define ver 2.9.5 %define ver 2.9.5
%define ver2 2.9 %define ver2 2.9
%define rel 1 %define rel 1
# version for package name according to OpenSuse policy:
# http://en.opensuse.org/openSUSE:Shared_library_packaging_policy
%define sver 2_9-5
# Configurable settings (use --with(out) {unicode,gtk2} on rpmbuild cmd line): # Configurable settings (use --with(out) {unicode,gtk2} on rpmbuild cmd line):
%define unicode 1 %define unicode 1
@@ -49,15 +52,22 @@
%define wxbaseconfiglink wxbase-%{ver2}-config %define wxbaseconfiglink wxbase-%{ver2}-config
%endif %endif
%if 0%{?suse_version}
# avoiding shlib-policy-name-error: Your package contains a single shared
# library but is not named after its SONAME.
%define glname libwx_%{buildname}_gl-%{sver}
%else
%define glname %{name}-gl
%endif
Summary: The GTK+ %{gtkver} port of the wxWidgets library Summary: The GTK+ %{gtkver} port of the wxWidgets library
Name: %{name} Name: %{name}
Version: %{ver} Version: %{ver}
Release: %{rel} Release: %{rel}
License: wxWindows Licence License: wxWindows Licence
Group: X11/Libraries Group: System/Libraries
Source: wxGTK-%{ver}.tar.bz2 Source: wxWidgets-%{ver}.tar.bz2
URL: http://www.wxwidgets.org URL: http://www.wxwidgets.org
Packager: Vadim Zeitlin <vadim@wxwindows.org>
Prefix: %{_prefix} Prefix: %{_prefix}
BuildRoot: %{_tmppath}/%{name}-root BuildRoot: %{_tmppath}/%{name}-root
Requires: %{wxbasename} = %{ver} Requires: %{wxbasename} = %{ver}
@@ -68,12 +78,33 @@ BuildRequires: gtk+-devel >= 1.2.0
%endif %endif
BuildRequires: zlib-devel, libjpeg-devel, libpng-devel, libtiff-devel BuildRequires: zlib-devel, libjpeg-devel, libpng-devel, libtiff-devel
# on RedHat 5 default GCC 4.1.2 crashes during compilation
%if 0%{?rhel} == 5
BuildRequires: gcc44-c++
%else
BuildRequires: gcc-c++
%endif
%if 0%{?suse_version}
BuildRequires: libexpat-devel, Mesa-devel, xorg-x11-libSM-devel
BuildRequires: gstreamer-0_10-devel, gstreamer-0_10-plugins-base-devel
%else
%if 0%{?mandriva_version}
BuildRequires: libexpat-devel, libmesaglu-devel, libsm-devel
# For now disabling mediactrl
# FIXME: How to resolve OBS Mandriva dependecies for these?
#BuildRequires: libgstreamer-devel, libgstreamer-plugins-base-devel
%else
BuildRequires: expat-devel, libGLU-devel, libSM-devel
BuildRequires: gstreamer-devel, gstreamer-plugins-base-devel
%endif
%endif
# all packages providing an implementation of wxWidgets library (regardless of # all packages providing an implementation of wxWidgets library (regardless of
# the toolkit used) should provide the (virtual) wxwin package, this makes it # the toolkit used) should provide the (virtual) wxwin package, this makes it
# possible to require wxwin instead of requiring "wxgtk or wxmotif or wxuniv..." # possible to require wxwin instead of requiring "wxgtk or wxmotif or wxuniv..."
Provides: wxwin Provides: wxwin = %{version}
Provides: wxGTK Provides: wxGTK = %{version}
%description %description
wxWidgets is a free C++ library for cross-platform GUI development. wxWidgets is a free C++ library for cross-platform GUI development.
@@ -81,35 +112,36 @@ With wxWidgets, you can create applications for different GUIs (GTK+,
Motif, MS Windows, MacOS X, Windows CE, GPE) from the same source code. Motif, MS Windows, MacOS X, Windows CE, GPE) from the same source code.
%package -n wx-i18n %package -n wx-i18n
Summary: The translations for the wxWidgets library. Summary: The translations for the wxWidgets library
Group: X11/Libraries Group: System/Libraries
%description -n wx-i18n %description -n wx-i18n
The translations files for the wxWidgets library. The translations files for the wxWidgets library.
%package devel %package devel
Summary: The GTK+ %{gtkver} port of the wxWidgets library Summary: The GTK+ %{gtkver} port of the wxWidgets library
Group: X11/Libraries Group: Development/Libraries
Requires: %{name} = %{ver} Requires: %{name} = %{ver}
Requires: %{glname} = %{ver}
Requires: %{wxbasename}-devel = %{ver} Requires: %{wxbasename}-devel = %{ver}
Provides: wxGTK-devel Provides: wxGTK-devel = %{version}
%description devel %description devel
The GTK+ %{gtkver} port of the wxWidgets library, header files. The GTK+ %{gtkver} port of the wxWidgets library, header files.
%package gl %package -n %{glname}
Summary: The GTK+ %{gtkver} port of the wxWidgets library, OpenGL add-on. Summary: The GTK+ %{gtkver} port of the wxWidgets library, OpenGL add-on
Group: X11/Libraries Group: System/Libraries
Requires: %{name} = %{ver} Requires: %{name} = %{ver}
Provides: wxGTK-gl Provides: wxGTK-gl = %{version}
%description gl %description -n %{glname}
OpenGL add-on library for wxGTK, the GTK+ %{gtkver} port of the wxWidgets library. OpenGL add-on library for wxGTK, the GTK+ %{gtkver} port of the wxWidgets library.
%package -n %{wxbasename} %package -n %{wxbasename}
Summary: wxBase library - non-GUI support classes of the wxWidgets toolkit Summary: wxBase library - non-GUI support classes of the wxWidgets toolkit
Group: Development/Libraries Group: Development/Libraries
Provides: wxBase Provides: wxBase = %{version}
%description -n %{wxbasename} %description -n %{wxbasename}
wxBase is a collection of C++ classes providing basic data structures (strings, wxBase is a collection of C++ classes providing basic data structures (strings,
@@ -120,27 +152,30 @@ compression). wxBase currently supports Win32, most Unix variants (Linux,
FreeBSD, Solaris, HP-UX) and MacOS X (Carbon and Mach-0). FreeBSD, Solaris, HP-UX) and MacOS X (Carbon and Mach-0).
%package -n %{wxbasename}-devel %package -n %{wxbasename}-devel
Summary: wxBase library, header files. Summary: wxBase library, header files
Group: Development/Libraries Group: Development/Libraries
Provides: wxBase-devel Provides: wxBase-devel = %{version}
%description -n %{wxbasename}-devel %description -n %{wxbasename}-devel
wxBase library - non-GUI support classes of the wxWidgets toolkit, wxBase library - non-GUI support classes of the wxWidgets toolkit,
header files. header files.
%prep %prep
%setup -q -n wxGTK-%{ver} %setup -q -n wxWidgets-%{ver}
%build %build
if [ "$SMP" != "" ]; then
export MAKE="make -j$SMP" %if 0%{?rhel} == 5
else export CC=gcc44
export MAKE="make" export CXX=g++44
fi %endif
# if it's not set OpenSuse warns: "compiled without RPM_OPT_FLAGS"
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
mkdir obj-shared mkdir obj-shared
cd obj-shared cd obj-shared
../configure --prefix=%{_prefix} --libdir=%{_libdir} \ ../configure --prefix=%{_prefix} --libdir=%{_libdir} --disable-rpath \
%if ! %{gtk2} %if ! %{gtk2}
--with-gtk=1 \ --with-gtk=1 \
%else %else
@@ -151,16 +186,17 @@ cd obj-shared
%else %else
--disable-unicode \ --disable-unicode \
%endif %endif
--with-opengl \ %if ! 0%{?mandriva_version}
--with-gnomeprint \ --enable-mediactrl \
--enable-mediactrl %endif
$MAKE --with-opengl
make %{?_smp_mflags}
cd .. cd ..
mkdir obj-static mkdir obj-static
cd obj-static cd obj-static
../configure --prefix=%{_prefix} --libdir=%{_libdir} \ ../configure --prefix=%{_prefix} --libdir=%{_libdir} --disable-rpath \
%if ! %{gtk2} %if ! %{gtk2}
--with-gtk=1 \ --with-gtk=1 \
%else %else
@@ -172,10 +208,11 @@ cd obj-static
%else %else
--disable-unicode \ --disable-unicode \
%endif %endif
--with-opengl \ %if ! 0%{?mandriva_version}
--with-gnomeprint \ --enable-mediactrl \
--enable-mediactrl %endif
$MAKE --with-opengl
make %{?_smp_mflags}
cd .. cd ..
@@ -446,20 +483,22 @@ ln -sf %{_libdir}/wx/config/%{wxbaseconfig} %{_bindir}/%{wxbaseconfiglink}
%preun -n %{wxbasename}-devel %preun -n %{wxbasename}-devel
rm -f %{_bindir}/%{wxbaseconfiglink} rm -f %{_bindir}/%{wxbaseconfiglink}
%post gl %post -n %{glname}
/sbin/ldconfig /sbin/ldconfig
%postun gl %postun -n %{glname}
/sbin/ldconfig /sbin/ldconfig
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc COPYING.LIB *.txt #doc COPYING.LIB *.txt
%{_libdir}/libwx_%{buildname}_adv-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_adv-%{ver2}.so.*
%{_libdir}/libwx_%{buildname}_aui-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_aui-%{ver2}.so.*
%{_libdir}/libwx_%{buildname}_core-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_core-%{ver2}.so.*
%{_libdir}/libwx_%{buildname}_html-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_html-%{ver2}.so.*
%if ! 0%{?mandriva_version}
%{_libdir}/libwx_%{buildname}_media-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_media-%{ver2}.so.*
%endif
%{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.so.*
%{_libdir}/libwx_%{buildname}_qa-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_qa-%{ver2}.so.*
%{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.so.*
@@ -473,13 +512,26 @@ rm -f %{_bindir}/%{wxbaseconfiglink}
%files devel -f core-headers.files %files devel -f core-headers.files
%defattr(-,root,root) %defattr(-,root,root)
%dir %{_includedir}/wx-%{ver2}/wx/aui
%dir %{_includedir}/wx-%{ver2}/wx/gtk
%dir %{_includedir}/wx-%{ver2}/wx/gtk/gnome
%dir %{_includedir}/wx-%{ver2}/wx/gtk/hildon
%dir %{_includedir}/wx-%{ver2}/wx/persist
%dir %{_includedir}/wx-%{ver2}/wx/propgrid
%dir %{_includedir}/wx-%{ver2}/wx/ribbon
%dir %{_includedir}/wx-%{ver2}/wx/richtext
%dir %{_includedir}/wx-%{ver2}/wx/stc
%dir %{_includedir}/wx-%{ver2}/wx/unix
%dir %{_includedir}/wx-%{ver2}/wx/xrc
# shared libs # shared libs
%{_libdir}/libwx_%{buildname}_adv-%{ver2}.so %{_libdir}/libwx_%{buildname}_adv-%{ver2}.so
%{_libdir}/libwx_%{buildname}_aui-%{ver2}.so %{_libdir}/libwx_%{buildname}_aui-%{ver2}.so
%{_libdir}/libwx_%{buildname}_core-%{ver2}.so %{_libdir}/libwx_%{buildname}_core-%{ver2}.so
%{_libdir}/libwx_%{buildname}_gl-%{ver2}.so %{_libdir}/libwx_%{buildname}_gl-%{ver2}.so
%{_libdir}/libwx_%{buildname}_html-%{ver2}.so %{_libdir}/libwx_%{buildname}_html-%{ver2}.so
%if ! 0%{?mandriva_version}
%{_libdir}/libwx_%{buildname}_media-%{ver2}.so %{_libdir}/libwx_%{buildname}_media-%{ver2}.so
%endif
%{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.so %{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.so
%{_libdir}/libwx_%{buildname}_qa-%{ver2}.so %{_libdir}/libwx_%{buildname}_qa-%{ver2}.so
%{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.so %{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.so
@@ -492,7 +544,9 @@ rm -f %{_bindir}/%{wxbaseconfiglink}
%{_libdir}/libwx_%{buildname}_core-%{ver2}.a %{_libdir}/libwx_%{buildname}_core-%{ver2}.a
%{_libdir}/libwx_%{buildname}_gl-%{ver2}.a %{_libdir}/libwx_%{buildname}_gl-%{ver2}.a
%{_libdir}/libwx_%{buildname}_html-%{ver2}.a %{_libdir}/libwx_%{buildname}_html-%{ver2}.a
%if ! 0%{?mandriva_version}
%{_libdir}/libwx_%{buildname}_media-%{ver2}.a %{_libdir}/libwx_%{buildname}_media-%{ver2}.a
%endif
%{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.a %{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.a
%{_libdir}/libwx_%{buildname}_qa-%{ver2}.a %{_libdir}/libwx_%{buildname}_qa-%{ver2}.a
%{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.a %{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.a
@@ -500,6 +554,12 @@ rm -f %{_bindir}/%{wxbaseconfiglink}
%{_libdir}/libwx_%{buildname}_stc-%{ver2}.a %{_libdir}/libwx_%{buildname}_stc-%{ver2}.a
%{_libdir}/libwx_%{buildname}_xrc-%{ver2}.a %{_libdir}/libwx_%{buildname}_xrc-%{ver2}.a
%dir %{_libdir}/wx %dir %{_libdir}/wx
%dir %{_libdir}/wx/config
%dir %{_libdir}/wx/include
%dir %{_libdir}/wx/include/%{wxconfig}
%dir %{_libdir}/wx/include/%{wxconfig}/wx
%dir %{_libdir}/wx/include/%{wxconfigstatic}
%dir %{_libdir}/wx/include/%{wxconfigstatic}/wx
%{_libdir}/wx/config/%{wxconfig} %{_libdir}/wx/config/%{wxconfig}
%{_libdir}/wx/include/%{wxconfig}/wx/setup.h %{_libdir}/wx/include/%{wxconfig}/wx/setup.h
%{_libdir}/wx/config/%{wxconfigstatic} %{_libdir}/wx/config/%{wxconfigstatic}
@@ -513,6 +573,14 @@ rm -f %{_bindir}/%{wxbaseconfiglink}
%files -n %{wxbasename}-devel -f wxbase-headers.paths %files -n %{wxbasename}-devel -f wxbase-headers.paths
%defattr (-,root,root) %defattr (-,root,root)
%dir %{_includedir}/wx-%{ver2} %dir %{_includedir}/wx-%{ver2}
%dir %{_includedir}/wx-%{ver2}/wx
%dir %{_includedir}/wx-%{ver2}/wx/generic
%dir %{_includedir}/wx-%{ver2}/wx/html
%dir %{_includedir}/wx-%{ver2}/wx/meta
%dir %{_includedir}/wx-%{ver2}/wx/protocol
%dir %{_includedir}/wx-%{ver2}/wx/unix
%dir %{_includedir}/wx-%{ver2}/wx/xml
%dir %{_datadir}/bakefile/presets
%{_libdir}/libwx_base*-%{ver2}.so %{_libdir}/libwx_base*-%{ver2}.so
%{_libdir}/libwx_base*-%{ver2}.a %{_libdir}/libwx_base*-%{ver2}.a
%if %{unicode} %if %{unicode}
@@ -520,9 +588,11 @@ rm -f %{_bindir}/%{wxbaseconfiglink}
%endif %endif
%{_libdir}/libwxscintilla-%{ver2}.a %{_libdir}/libwxscintilla-%{ver2}.a
%dir %{_libdir}/wx %dir %{_libdir}/wx
%dir %{_datadir}/bakefile
%dir %{_datadir}/bakefile/presets
%{_datadir}/aclocal/*.m4 %{_datadir}/aclocal/*.m4
%{_datadir}/bakefile/presets/* %{_datadir}/bakefile/presets/*
%files gl %files -n %{glname}
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libwx_%{buildname}_gl-%{ver2}.so.* %{_libdir}/libwx_%{buildname}_gl-%{ver2}.so.*