%define pref %{_prefix} %define python @PYTHON@ %define pyver @PYVER@ %define port @PORT@ %define lcport @LCPORT@ %define unicode @UNICODE@ %define tarname @TARNAME@ %define version @VERSION@ %define ver2 @VER2@ %define release 1 %define wxprefbase %{pref}/lib/wxPython %define wxpref %{wxprefbase}-%{version} %define name wxPython%{port}-py%{pyver} # Should the builtin image and etc. libs be used, or system libs? # Distro specific RPMs should probably set this to 0, generic ones # should use 1 %define builtin_libs 1 # Should --enable-debug_flag be used in release builds? Using it # defines __WXDEBUG__ and gives us runtime diagnostics that are turned # into Python exceptions starting with 2.3.4. (So turning it on is a # very helpful thing IMO and is recommended.) %define debug_flag 1 # build the name of the real wx-config from the port, flags, etc. %define dbgflg %(if [ "%{debug_flag}" = "1" ]; then echo d; fi) %define uniflg %(if [ "%{unicode}" = "1" ]; then echo u; fi) %define DBGFLG %(if [ "%{debug_flag}" = "1" ]; then echo D; fi) %define UNIFLG %(if [ "%{unicode}" = "1" ]; then echo U; fi) %define wxconfigname %{wxpref}/bin/wx%{lcport}%{uniflg}%{dbgflg}-%{ver2}-config # turn off the generation of debuginfo rpm (RH9) %define debug_package %{nil} #---------------------------------------------------------------- Summary: Cross platform GUI toolkit for Python using wx%{port} Name: %{name} Version: %{version} Release: %{release} Source0: %{tarname}-%{version}.tar.gz License: wxWindows Library Licence, Version 3 URL: http://wxPython.org/ Packager: Robin Dunn Group: Development/Python BuildRoot: %{_tmppath}/%{name}-buildroot Prefix: %{pref} Provides: wxPython = %{version} Provides: wxPython%{port} = %{version} # Provides: libwx_%{lcport}%{uniflg}%{dbgflg}-%{ver2}.so # Provides: libwx_%{lcport}%{uniflg}%{dbgflg}-%{ver2}.so(WX%{port}%{UNIFLG}%{DBGFLG}_%{ver2}) # Provides: libwx_%{lcport}%{uniflg}%{dbgflg}_gl-%{ver2}.so # Provides: libwx_%{lcport}%{uniflg}%{dbgflg}_gl-%{ver2}.so(WX%{port}%{UNIFLG}%{DBGFLG}_%{ver2}) # old wxPython packages Obsoletes: wxPython wxPython%{port} %description wxPython is a GUI toolkit for Python that is a wrapper around the wxWindows C++ GUI library. wxPython provides a large variety of window types and controls, all implemented with a native look and feel (and native runtime speed) on the platforms it is supported on. This package is implemented using the %{port} port of wxWindows, and includes the wx%{port} shared libs and etc. %package -n wxPython%{port}-devel Summary: wxPython%{port} development files Group: Development/Libraries Requires: wxPython%{port} = %{version} %description -n wxPython%{port}-devel This packages contains the headers and etc. for building apps or Python extension modules that use the same wx%{port} shared libraries that wxPython uses. #---------------------------------------------------------------- %prep %setup -q -n %{tarname}-%{version} #---------------------------------------------------------------- %build WXDIR=`pwd` mkdir bld cd bld # Configure, trying to reduce external dependencies ../configure --with-%{lcport} \ --prefix=%{wxpref} \ --disable-soname \ --disable-monolithic \ --enable-rpath=%{wxpref}/lib \ --with-opengl \ %if %{unicode} --enable-gtk2 \ --enable-unicode \ %endif --enable-geometry \ --enable-optimise \ %if %{debug_flag} --enable-debug_flag \ %endif %if %{builtin_libs} --with-libjpeg=builtin \ --with-libpng=builtin \ --with-libtiff=builtin \ --with-zlib=builtin \ %endif # Build wxWindows and some contrib libs make make -C contrib/src/gizmos make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" make -C contrib/src/stc make -C contrib/src/xrc # Install wxWindows and the contribs so the wxPython build can find # all the headers it needs make prefix=$RPM_BUILD_ROOT%{wxpref} install make -C contrib/src/gizmos prefix=$RPM_BUILD_ROOT%{wxpref} install make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" prefix=$RPM_BUILD_ROOT%{wxpref} install make -C contrib/src/stc prefix=$RPM_BUILD_ROOT%{wxpref} install make -C contrib/src/xrc prefix=$RPM_BUILD_ROOT%{wxpref} install # Now build wxPython cd $WXDIR/wxPython %{python} setup.py \ NO_SCRIPTS=1 \ WXPORT=%{lcport} \ UNICODE=%{unicode} \ WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref}" \ build ## $WXDIR/bld/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/bld" # Build wxrc (XRC resource tool) cd $WXDIR/bld/contrib/utils/wxrc make strip wxrc # install wxPython cd $WXDIR/wxPython %{python} setup.py \ NO_SCRIPTS=1 \ WXPORT=%{lcport} \ UNICODE=%{unicode} \ WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref}" \ install \ --root=$RPM_BUILD_ROOT #---------------------------------------------------------------- %install ##[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT WXDIR=`pwd` # # install wxWindows # cd bld # make prefix=$RPM_BUILD_ROOT%{wxpref} install # make -C contrib/src/gizmos prefix=$RPM_BUILD_ROOT%{wxpref} install # make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" prefix=$RPM_BUILD_ROOT%{wxpref} install # make -C contrib/src/stc prefix=$RPM_BUILD_ROOT%{wxpref} install # make -C contrib/src/xrc prefix=$RPM_BUILD_ROOT%{wxpref} install # # install wxPython # cd $WXDIR/wxPython # %{python} setup.py \ # NO_SCRIPTS=1 \ # WXPORT=%{lcport} \ # UNICODE=%{unicode} \ # WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref}" \ # install \ # --root=$RPM_BUILD_ROOT # Other "install" tasks... cd $WXDIR/wxPython # install the wxPython headers cp -R include $RPM_BUILD_ROOT%{wxpref} mkdir -p $RPM_BUILD_ROOT%{wxpref}/include/wx/wxPython/i_files cp src/*.i $RPM_BUILD_ROOT%{wxpref}/include/wx/wxPython/i_files # Since I want this RPM to be as generic as possible I won't let # distutils copy the scripts (NO_SCRIPTS=1 above) since it will mangle # the #! line to use the real python pathname. Since some distros # install python 2.2 as python2 and others as python I can't let # distutils do that otherwise the dependencies will be fouled up. # Copy them manually instead, leaving the #!/bin/env line intact. # TODO: Should this be dependent on %{builtin_libs} or something like # it? mkdir -p $RPM_BUILD_ROOT%{pref}/bin for s in \ helpviewer \ img2png \ img2py \ img2xpm \ pyalacarte \ pyalamode \ pycrust \ pywrap \ pyshell \ xrced; do cp scripts/$s $RPM_BUILD_ROOT%{pref}/bin done # Install wxrc cp $WXDIR/bld/contrib/utils/wxrc/wxrc $RPM_BUILD_ROOT%{pref}/bin # link specific name to generic name ln -s wxPython-%{version} $RPM_BUILD_ROOT%{wxprefbase} # Copy icons and make menu entries #-- This only works for Mandrake. Is there a cross-distro way to do it? ##mkdir -p $RPM_BUILD_ROOT%{_iconsdir} ##mkdir -p $RPM_BUILD_ROOT%{_miconsdir} ##mkdir -p $RPM_BUILD_ROOT%{_menudir} ##install -p -m 644 $WXDIR/wxPython/wxPython/py/PyCrust_32.png $RPM_BUILD_ROOT%{_iconsdir}/PyCrust.png ##install -p -m 644 $WXDIR/wxPython/wxPython/py/PyCrust_16.png $RPM_BUILD_ROOT%{_miconsdir}/PyCrust.png ##install -p -m 644 $WXDIR/wxPython/wxPython/tools/XRCed/XRCed_32.png $RPM_BUILD_ROOT%{_iconsdir}/XRCed.png ##install -p -m 644 $WXDIR/wxPython/wxPython/tools/XRCed/XRCed_16.png $RPM_BUILD_ROOT%{_miconsdir}/XRCed.png ## ##cat > $RPM_BUILD_ROOT%{_menudir}/%{name} < FILELIST # $GFL -r $RPM_BUILD_ROOT %{pref}/bin >> FILELIST # $GFL $RPM_BUILD_ROOT %{pref}/lib >> FILELIST # $GFL -r $RPM_BUILD_ROOT %{pref}/lib/python%{pyver} >> FILELIST # $GFL -r $RPM_BUILD_ROOT %{pref}/share >> FILELIST # $GFL $RPM_BUILD_ROOT %{wxpref} >> FILELIST # $GFL $RPM_BUILD_ROOT %{wxprefbase} >> FILELIST # $GFL $RPM_BUILD_ROOT %{wxpref}/lib >> FILELIST # $GFL $RPM_BUILD_ROOT "%{wxpref}/lib/libwx*" >> FILELIST # $GFL -r $RPM_BUILD_ROOT %{wxpref}/share >> FILELIST # ###GFL -r $RPM_BUILD_ROOT %{_iconsdir} >> FILELIST # ##$GFL -r $RPM_BUILD_ROOT %{_menudir} >> FILELIST # $GFL $RPM_BUILD_ROOT %{wxpref}/include > DEVELLIST # $GFL -r $RPM_BUILD_ROOT %{wxpref}/include/wx >> DEVELLIST # $GFL -r $RPM_BUILD_ROOT %{wxpref}/lib/wx >> DEVELLIST # $GFL $RPM_BUILD_ROOT %{wxconfigname} >> DEVELLIST # $GFL $RPM_BUILD_ROOT %{wxpref}/bin/wx-config >> DEVELLIST #---------------------------------------------------------------- ##%post ##%{update_menus} ## ##%postun ##%{clean_menus} %pre if [ -e %{wxprefbase} ]; then rm -r %{wxprefbase} fi %postun if [ -e %{wxprefbase} ]; then rm %{wxprefbase} fi #---------------------------------------------------------------- #%clean #[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT #---------------------------------------------------------------- %files %defattr(-,root,root) %doc docs/preamble.txt docs/licence.txt docs/lgpl.txt docs/readme.txt docs/changes.txt %doc wxPython/docs/* %{_bindir}/* %{_libdir}/python%{pyver}/site-packages/* %{wxpref}/lib/libwx* %{wxpref}/share %{wxprefbase} %files -n wxPython%{port}-devel %defattr(-,root,root) %{wxpref}/include %{wxpref}/lib/wx %{wxconfigname} %{wxpref}/bin/wx-config #---------------------------------------------------------------- # end of file