X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/acea2a0bacd976681be96ce7751547f0acd9c152..fb8d7eb7a880f1f2e32d8830f9c5e12b2536e05f:/wxGTK.spec diff --git a/wxGTK.spec b/wxGTK.spec index ff519e752f..eb2a1590f6 100644 --- a/wxGTK.spec +++ b/wxGTK.spec @@ -1,88 +1,447 @@ -%define pref /usr -%define ver 2.3.2 -%define ver2 2.3 -%define rel 1 +%define _prefix /usr +%define ver 2.9.5 +%define ver2 2.9 +%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 -Summary: The GTK+ 1.2 port of the wxWindows library -Name: wxGTK +# Configurable settings (use --with(out) {unicode,gtk2} on rpmbuild cmd line): +%define unicode 1 +%{?_with_unicode: %{expand: %%define unicode 1}} +%{?_without_unicode: %{expand: %%define unicode 0}} + +%define gtk2 1 +%{?_with_gtk2: %{expand: %%define gtk2 1}} +%{?_without_gtk2: %{expand: %%define gtk2 0}} + +# "buildname" needs to be e.g. gtk2ud for debug builds +%if %{gtk2} + %define gtkver 2 + %define portname gtk2 +%if %{unicode} + %define buildname gtk2u +%else + %define buildname gtk2 +%endif +%else + %define gtkver 1.2 + %define portname gtk + %define buildname gtk +%endif + +%if %{unicode} + %define name wx-%{portname}-unicode + %define wxconfig %{portname}-unicode-%{ver2} + %define wxconfigstatic %{portname}-unicode-static-%{ver2} + %define wxconfiglink wx%{portname}u-%{ver2}-config +%else + %define name wx-%{portname}-ansi + %define wxconfig %{portname}-ansi-%{ver2} + %define wxconfigstatic %{portname}-ansi-static-%{ver2} + %define wxconfiglink wx%{portname}-%{ver2}-config +%endif + +%if %{unicode} + %define wxbasename wx-base-unicode + %define wxbaseconfig base-unicode-%{ver2} + %define wxbaseconfiglink wxbaseu-%{ver2}-config +%else + %define wxbasename wx-base-ansi + %define wxbaseconfig base-ansi-%{ver2} + %define wxbaseconfiglink wxbase-%{ver2}-config +%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 +Name: %{name} Version: %{ver} Release: %{rel} -Copyright: wxWindows Licence -Group: X11/Libraries -Source: wxGTK-%{ver}.tar.bz2 -URL: http://www.wxwindows.org -Packager: Vadim Zeitlin -Prefix: %{pref} -BuildRoot: /var/tmp/%{name}-root - -# all packages providing an implementation of wxWindows library (regardless of +License: wxWindows Licence +Group: System/Libraries +Source: wxWidgets-%{ver}.tar.bz2 +URL: http://www.wxwidgets.org +Prefix: %{_prefix} +BuildRoot: %{_tmppath}/%{name}-root +Requires: %{wxbasename} = %{ver} +%if %{portname} == gtk2 +BuildRequires: gtk2-devel +%else +BuildRequires: gtk+-devel >= 1.2.0 +%endif + +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 # the toolkit used) should provide the (virtual) wxwin package, this makes it # possible to require wxwin instead of requiring "wxgtk or wxmotif or wxuniv..." -Provides: wxwin - -# in addition, we should provide libwx_gtk as automatic generator only notices -# libwx_gtk-%{ver}-%{rel} -Provides: libwx_gtk.so -Provides: libwx_gtk-%{ver2}.so +Provides: wxwin = %{version} +Provides: wxGTK = %{version} %description -wxWindows is a free C++ library for cross-platform GUI development. -With wxWindows, you can create applications for different GUIs (GTK+, -Motif/LessTif, MS Windows, Mac) from the same source code. +wxWidgets is a free C++ library for cross-platform GUI development. +With wxWidgets, you can create applications for different GUIs (GTK+, +Motif, MS Windows, MacOS X, Windows CE, GPE) from the same source code. + +%package -n wx-i18n +Summary: The translations for the wxWidgets library +Group: System/Libraries + +%description -n wx-i18n +The translations files for the wxWidgets library. %package devel -Summary: The GTK+ 1.2 port of the wxWindows library -Group: X11/Libraries -Requires: wxGTK = %{ver} +Summary: The GTK+ %{gtkver} port of the wxWidgets library +Group: Development/Libraries +Requires: %{name} = %{ver} +Requires: %{glname} = %{ver} +Requires: %{wxbasename}-devel = %{ver} +Provides: wxGTK-devel = %{version} %description devel -Header files for wxGTK, the GTK+ 1.2 port of the wxWindows library. +The GTK+ %{gtkver} port of the wxWidgets library, header files. + +%package -n %{glname} +Summary: The GTK+ %{gtkver} port of the wxWidgets library, OpenGL add-on +Group: System/Libraries +Requires: %{name} = %{ver} +Provides: wxGTK-gl = %{version} + +%description -n %{glname} +OpenGL add-on library for wxGTK, the GTK+ %{gtkver} port of the wxWidgets library. -%package gl -Summary: The GTK+ 1.2 port of the wxWindows library, OpenGL add-on. -Group: X11/Libraries -Requires: wxGTK = %{ver} +%package -n %{wxbasename} +Summary: wxBase library - non-GUI support classes of the wxWidgets toolkit +Group: Development/Libraries +Provides: wxBase = %{version} -%description gl -OpenGL add-on library for wxGTK, the GTK+ 1.2 port of the wxWindows library. +%description -n %{wxbasename} +wxBase is a collection of C++ classes providing basic data structures (strings, +lists, arrays), portable wrappers around many OS-specific funstions (file +operations, time/date manipulations, threads, processes, sockets, shared +library loading) as well as other utility classes (streams, archive and +compression). wxBase currently supports Win32, most Unix variants (Linux, +FreeBSD, Solaris, HP-UX) and MacOS X (Carbon and Mach-0). -%package static -Summary: wxGTK static libraries +%package -n %{wxbasename}-devel +Summary: wxBase library, header files Group: Development/Libraries +Provides: wxBase-devel = %{version} -%description static -Static libraries for wxGTK. You need them if you want to link statically against wxGTK. +%description -n %{wxbasename}-devel +wxBase library - non-GUI support classes of the wxWidgets toolkit, +header files. %prep -%setup -n wxGTK-%{ver} +%setup -q -n wxWidgets-%{ver} %build -if [ "$SMP" != "" ]; then - export MAKE="make -j$SMP" -else - export MAKE="make" -fi -(cd locale; make allmo) +%if 0%{?rhel} == 5 +export CC=gcc44 +export CXX=g++44 +%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 cd obj-shared -../configure --prefix=%{pref} --enable-soname --with-odbc --with-opengl -$MAKE +../configure --prefix=%{_prefix} --libdir=%{_libdir} --disable-rpath \ +%if ! %{gtk2} + --with-gtk=1 \ +%else + --with-gtk=2 \ +%endif +%if %{unicode} + --enable-unicode \ +%else + --disable-unicode \ +%endif +%if ! 0%{?mandriva_version} + --enable-mediactrl \ +%endif + --with-opengl +make %{?_smp_mflags} + cd .. mkdir obj-static cd obj-static -../configure --prefix=%{pref} --disable-shared --with-odbc --with-opengl -$MAKE +../configure --prefix=%{_prefix} --libdir=%{_libdir} --disable-rpath \ +%if ! %{gtk2} + --with-gtk=1 \ +%else + --with-gtk=2 \ +%endif + --disable-shared \ +%if %{unicode} + --enable-unicode \ +%else + --disable-unicode \ +%endif +%if ! 0%{?mandriva_version} + --enable-mediactrl \ +%endif + --with-opengl +make %{?_smp_mflags} + cd .. +make -C locale allmo + %install rm -rf $RPM_BUILD_ROOT -(cd obj-static; make prefix=$RPM_BUILD_ROOT%{pref} install) -(cd obj-shared; make prefix=$RPM_BUILD_ROOT%{pref} install) +(cd obj-static; make DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} install) +(cd obj-shared; make DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} install) + +# --- wxBase headers list begins here --- +cat <wxbase-headers.files +wx/afterstd.h +wx/any.h +wx/anystr.h +wx/app.h +wx/apptrait.h +wx/archive.h +wx/arrimpl.cpp +wx/arrstr.h +wx/atomic.h +wx/base64.h +wx/beforestd.h +wx/buffer.h +wx/build.h +wx/chartype.h +wx/checkeddelete.h +wx/chkconf.h +wx/clntdata.h +wx/cmdargs.h +wx/cmdline.h +wx/confbase.h +wx/config.h +wx/convauto.h +wx/containr.h +wx/cpp.h +wx/crt.h +wx/datetime.h +wx/datstrm.h +wx/dde.h +wx/debug.h +wx/defs.h +wx/dir.h +wx/dlimpexp.h +wx/dlist.h +wx/dynarray.h +wx/dynlib.h +wx/dynload.h +wx/encconv.h +wx/event.h +wx/eventfilter.h +wx/evtloop.h +wx/except.h +wx/features.h +wx/flags.h +wx/ffile.h +wx/file.h +wx/fileconf.h +wx/filefn.h +wx/filename.h +wx/filesys.h +wx/fontenc.h +wx/fontmap.h +wx/fs_arc.h +wx/fs_filter.h +wx/fs_mem.h +wx/fs_zip.h +wx/hash.h +wx/hashmap.h +wx/hashset.h +wx/html/forcelnk.h +wx/iconloc.h +wx/init.h +wx/intl.h +wx/iosfwrap.h +wx/ioswrap.h +wx/ipc.h +wx/ipcbase.h +wx/kbdstate.h +wx/language.h +wx/link.h +wx/list.h +wx/listimpl.cpp +wx/log.h +wx/longlong.h +wx/math.h +wx/memconf.h +wx/memory.h +wx/memtext.h +wx/mimetype.h +wx/module.h +wx/mousestate.h +wx/msgout.h +wx/msgqueue.h +wx/mstream.h +wx/numformatter.h +wx/object.h +wx/platform.h +wx/platinfo.h +wx/power.h +wx/process.h +wx/ptr_scpd.h +wx/ptr_shrd.h +wx/recguard.h +wx/regex.h +wx/rtti.h +wx/scopedarray.h +wx/scopedptr.h +wx/scopeguard.h +wx/sharedptr.h +wx/snglinst.h +wx/sstream.h +wx/stack.h +wx/stackwalk.h +wx/stdpaths.h +wx/stdstream.h +wx/stockitem.h +wx/stopwatch.h +wx/strconv.h +wx/stream.h +wx/string.h +wx/stringimpl.h +wx/stringops.h +wx/strvararg.h +wx/sysopt.h +wx/tarstrm.h +wx/textbuf.h +wx/textfile.h +wx/thread.h +wx/thrimpl.cpp +wx/time.h +wx/timer.h +wx/tls.h +wx/tokenzr.h +wx/tracker.h +wx/translation.h +wx/txtstrm.h +wx/typeinfo.h +wx/types.h +wx/unichar.h +wx/uri.h +wx/ustring.h +wx/utils.h +wx/variant.h +wx/vector.h +wx/version.h +wx/versioninfo.h +wx/volume.h +wx/weakref.h +wx/wfstream.h +wx/wx.h +wx/wxchar.h +wx/wxcrt.h +wx/wxcrtbase.h +wx/wxcrtvararg.h +wx/wxprec.h +wx/xlocale.h +wx/xti.h +wx/xti2.h +wx/xtistrm.h +wx/xtictor.h +wx/xtihandler.h +wx/xtiprop.h +wx/xtitypes.h +wx/zipstrm.h +wx/zstream.h +wx/meta/convertible.h +wx/meta/if.h +wx/meta/implicitconversion.h +wx/meta/int2type.h +wx/meta/movable.h +wx/meta/pod.h +wx/meta/removeref.h +wx/fswatcher.h +wx/generic/fswatcher.h +wx/unix/app.h +wx/unix/apptbase.h +wx/unix/apptrait.h +wx/unix/chkconf.h +wx/unix/evtloop.h +wx/unix/evtloopsrc.h +wx/unix/pipe.h +wx/unix/stdpaths.h +wx/unix/stackwalk.h +wx/unix/tls.h +wx/unix/fswatcher_kqueue.h +wx/unix/execute.h +wx/unix/mimetype.h +wx/unix/fswatcher_inotify.h +wx/fs_inet.h +wx/protocol/file.h +wx/protocol/ftp.h +wx/protocol/http.h +wx/protocol/log.h +wx/protocol/protocol.h +wx/sckaddr.h +wx/sckipc.h +wx/sckstrm.h +wx/socket.h +wx/url.h +wx/xml/xml.h +wx/xtixml.h +EOF +# --- wxBase headers list ends here --- + +# --- wxBase headers list with paths --- +sed -e 's@^@%{_includedir}/wx-%{ver2}/@' wxbase-headers.files > wxbase-headers.paths + + +# temporarily remove base headers +mkdir $RPM_BUILD_ROOT/_save_dir +cp -r $RPM_BUILD_ROOT%{_includedir}/wx-%{ver2} $RPM_BUILD_ROOT/_save_dir +for f in `cat wxbase-headers.files` ; do + rm -f $RPM_BUILD_ROOT%{_includedir}/wx-%{ver2}/$f +done +# list of all core headers: +find $RPM_BUILD_ROOT%{_includedir}/wx-%{ver2} -type f | sed -e "s,$RPM_BUILD_ROOT,,g" >core-headers.files +# move base headers (actually all headers) back again +cp -f -r $RPM_BUILD_ROOT/_save_dir/* $RPM_BUILD_ROOT%{_includedir} +rm -rf $RPM_BUILD_ROOT/_save_dir -%find_lang wxstd +# utils: +(cd obj-shared/utils/wxrc; make DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} install) + +# wx-config link is created during package installation, remove it for now +rm -f $RPM_BUILD_ROOT%{_bindir}/wx-config + +%clean +rm -rf $RPM_BUILD_ROOT %post /sbin/ldconfig @@ -90,49 +449,151 @@ rm -rf $RPM_BUILD_ROOT %postun /sbin/ldconfig -%post gl +%post devel +# link wx-config when you install RPM. +%if %{unicode} + ln -sf %{_libdir}/wx/config/%{wxconfig} %{_bindir}/wx-config +%endif +# link wx-config with explicit name. +ln -sf %{_libdir}/wx/config/%{wxconfig} %{_bindir}/%{wxconfiglink} /sbin/ldconfig -%postun gl +%postun devel /sbin/ldconfig -%post devel -# Install wx-config if there isn't any -if test ! -f %{_bindir}/wx-config ; then - ln -sf wxgtk-%{ver2}-config %{_bindir}/wx-config -fi - %preun devel -# Remove wx-config if it points to this package -if test -f %{_bindir}/wx-config -a -f /usr/bin/md5sum ; then - SUM1=`md5sum %{_bindir}/wxgtk-%{ver2}-config | cut -c 0-32` - SUM2=`md5sum %{_bindir}/wx-config | cut -c 0-32` - if test "x$SUM1" = "x$SUM2" ; then +%if %{unicode} rm -f %{_bindir}/wx-config - fi -fi +%endif +rm -f %{_bindir}/%{wxconfiglink} +%post -n %{wxbasename} +/sbin/ldconfig + +%postun -n %{wxbasename} +/sbin/ldconfig -%files -f wxstd.lang +%post -n %{wxbasename}-devel +# link wx-config with explicit name. +ln -sf %{_libdir}/wx/config/%{wxbaseconfig} %{_bindir}/%{wxbaseconfiglink} +/sbin/ldconfig + +%postun -n %{wxbasename}-devel +/sbin/ldconfig + +%preun -n %{wxbasename}-devel +rm -f %{_bindir}/%{wxbaseconfiglink} + +%post -n %{glname} +/sbin/ldconfig + +%postun -n %{glname} +/sbin/ldconfig + +%files %defattr(-,root,root) -%doc COPYING.LIB *.txt -%dir %{_datadir}/wx -%{_datadir}/wx/* -%{_libdir}/libwx_gtk-%{ver2}*.so.* +#doc COPYING.LIB *.txt +%{_libdir}/libwx_%{buildname}_adv-%{ver2}.so.* +%{_libdir}/libwx_%{buildname}_aui-%{ver2}.so.* +%{_libdir}/libwx_%{buildname}_core-%{ver2}.so.* +%{_libdir}/libwx_%{buildname}_html-%{ver2}.so.* +%if ! 0%{?mandriva_version} +%{_libdir}/libwx_%{buildname}_media-%{ver2}.so.* +%endif +%{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.so.* +%{_libdir}/libwx_%{buildname}_qa-%{ver2}.so.* +%{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.so.* +%{_libdir}/libwx_%{buildname}_richtext-%{ver2}.so.* +%{_libdir}/libwx_%{buildname}_stc-%{ver2}.so.* +%{_libdir}/libwx_%{buildname}_xrc-%{ver2}.so.* -%files devel +%files -n wx-i18n %defattr(-,root,root) -%{_libdir}/libwx_gtk-%{ver2}*.so -%dir %{_includedir}/wx -%{_includedir}/wx/* +%{_datadir}/locale/*/LC_MESSAGES/*.mo + +%files devel -f core-headers.files +%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 +%{_libdir}/libwx_%{buildname}_adv-%{ver2}.so +%{_libdir}/libwx_%{buildname}_aui-%{ver2}.so +%{_libdir}/libwx_%{buildname}_core-%{ver2}.so +%{_libdir}/libwx_%{buildname}_gl-%{ver2}.so +%{_libdir}/libwx_%{buildname}_html-%{ver2}.so +%if ! 0%{?mandriva_version} +%{_libdir}/libwx_%{buildname}_media-%{ver2}.so +%endif +%{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.so +%{_libdir}/libwx_%{buildname}_qa-%{ver2}.so +%{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.so +%{_libdir}/libwx_%{buildname}_richtext-%{ver2}.so +%{_libdir}/libwx_%{buildname}_stc-%{ver2}.so +%{_libdir}/libwx_%{buildname}_xrc-%{ver2}.so +# static libs +%{_libdir}/libwx_%{buildname}_adv-%{ver2}.a +%{_libdir}/libwx_%{buildname}_aui-%{ver2}.a +%{_libdir}/libwx_%{buildname}_core-%{ver2}.a +%{_libdir}/libwx_%{buildname}_gl-%{ver2}.a +%{_libdir}/libwx_%{buildname}_html-%{ver2}.a +%if ! 0%{?mandriva_version} +%{_libdir}/libwx_%{buildname}_media-%{ver2}.a +%endif +%{_libdir}/libwx_%{buildname}_propgrid-%{ver2}.a +%{_libdir}/libwx_%{buildname}_qa-%{ver2}.a +%{_libdir}/libwx_%{buildname}_ribbon-%{ver2}.a +%{_libdir}/libwx_%{buildname}_richtext-%{ver2}.a +%{_libdir}/libwx_%{buildname}_stc-%{ver2}.a +%{_libdir}/libwx_%{buildname}_xrc-%{ver2}.a %dir %{_libdir}/wx -%{_libdir}/wx/* -%{_bindir}/wxgtk-%{ver2}-config +%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/include/%{wxconfig}/wx/setup.h +%{_libdir}/wx/config/%{wxconfigstatic} +%{_libdir}/wx/include/%{wxconfigstatic}/wx/setup.h +%{_bindir}/wxrc* -%files gl +%files -n %{wxbasename} %defattr(-,root,root) -%{_libdir}/libwx_gtk_gl* +%{_libdir}/libwx_base*-%{ver2}.so.* -%files static +%files -n %{wxbasename}-devel -f wxbase-headers.paths %defattr (-,root,root) -%{_libdir}/lib*.a +%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}.a +%if %{unicode} + %{_libdir}/libwxregexu-%{ver2}.a +%endif +%{_libdir}/libwxscintilla-%{ver2}.a +%dir %{_libdir}/wx +%dir %{_datadir}/bakefile +%dir %{_datadir}/bakefile/presets +%{_datadir}/aclocal/*.m4 +%{_datadir}/bakefile/presets/* + +%files -n %{glname} +%defattr(-,root,root) +%{_libdir}/libwx_%{buildname}_gl-%{ver2}.so.*