X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b817523b2b2ce31facb92fbd654a2041355ddb1d..4455332266b332ca005c3430234f9a2b372b5764:/wxPython/distrib/wxPythonFull.spec.in diff --git a/wxPython/distrib/wxPythonFull.spec.in b/wxPython/distrib/wxPythonFull.spec.in index fd59fa9fc9..fa0745bb6f 100644 --- a/wxPython/distrib/wxPythonFull.spec.in +++ b/wxPython/distrib/wxPythonFull.spec.in @@ -1,33 +1,34 @@ %define pref %{_prefix} %define python @PYTHON@ %define pyver @PYVER@ -%define debug @DEBUG@ %define port @PORT@ %define lcport @LCPORT@ +%define unicode @UNICODE@ %define tarname @TARNAME@ %define version @VERSION@ %define ver2 @VER2@ %define release 1 %define wxpref %{pref}/lib/wxPython +%define name wxPython%{port}-py%{pyver} -# Should --enable-debug_flag be used in release builds? -%define debug_flag 1 +# 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 -%if %{debug} - %define name wxPython%{port}-py%{pyver}-dbg - %define othername wxPython%{port}-py%{pyver} -%else - %define name wxPython%{port}-py%{pyver} - %define othername wxPython%{port}-py%{pyver}-dbg -%endif +# 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 -%if %{debug} || %{debug_flag} - %define wxconfigname %{wxpref}/bin/wx%{lcport}d-%{ver2}-config -%else - %define wxconfigname %{wxpref}/bin/wx%{lcport}-%{ver2}-config -%endif + +# 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 wxconfigname %{wxpref}/bin/wx%{lcport}%{uniflg}%{dbgflg}-%{ver2}-config #---------------------------------------------------------------- @@ -38,19 +39,15 @@ Release: %{release} Source0: %{tarname}-%{version}.tar.gz License: wxWindows Library Licence, Version 3 URL: http://wxPython.org/ -Packager: Robin Dunn +Packager: Robin Dunn Group: Development/Python BuildRoot: %{_tmppath}/%{name}-buildroot Prefix: %{pref} #BuildRequires: %{python} -Provides: wxwin -Provides: wx%{port} = %{version} Provides: wxPython = %{version} +Provides: wxPython%{port} = %{version} - -# They conflict with each other, so let them replace each other -Obsoletes: %{othername} # old wxPython packages Obsoletes: wxPython @@ -65,13 +62,13 @@ This package is implemented using the %{port} port of wxWindows, and includes the wx%{port} shared libs and etc. -%package devel +%package -n wxPython%{port}-devel Summary: wxPython%{port} development files Group: Development/Libraries Requires: wxPython%{port} = %{version} -%description devel +%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. @@ -89,108 +86,162 @@ else MAKE="make" fi +WXDIR=`pwd` mkdir build cd build -# Configure, trying to reduce dependencies -../configure --with-%{lcport} \ +# Configure, trying to reduce external dependencies +$WXDIR/configure --with-%{lcport} \ --prefix=%{wxpref} \ --disable-soname \ --enable-rpath=%{wxpref}/lib \ --with-opengl \ -%if %{debug} - --enable-debug \ -%else +%if %{unicode} + --enable-gtk2 \ + --enable-unicode \ +%endif + --enable-geometry \ --enable-optimise \ %if %{debug_flag} --enable-debug_flag \ %endif -%endif +%if %{builtin_libs} --with-libjpeg=builtin \ --with-libpng=builtin \ --with-libtiff=builtin \ --with-zlib=builtin \ - -## --enable-debug_flag \ -## --with-odbc \ +%endif # Build wxWindows $MAKE -cd ../locale -make allmo - - -# ** Unfortunately we have to do a bit of installation here so wxPython -# can be built. Perhaps wx-config should be changed to be able to be -# used from the build dir, maybe with an --inplace flag... Move these -# three lines to %install if/when that happens. -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT -cd ../build -make prefix=$RPM_BUILD_ROOT%{wxpref} install - # Now build wxPython -cd ../wxPython +cd $WXDIR/wxPython %{python} setup.py \ IN_CVS_TREE=1 \ - WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref}" \ + NO_SCRIPTS=1 \ + WXPORT=%{lcport} \ + UNICODE=%{unicode} \ + WX_CONFIG="$WXDIR/build/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/build" \ build +## WX_CONFIG="$WXDIR/build/wx-config --inplace --prefix=$RPM_BUILD_ROOT%{wxpref}" \ + + + +# Build wxrc (XRC resource tool) but don't use the makefiles since they expect +# a shared version of the xrc lib to have been built... +cd $WXDIR/contrib/utils/wxrc +WX_CONFIG="$WXDIR/build/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/build" +wCC=`$WX_CONFIG --cc` +wCXX=`$WX_CONFIG --cxx` + +for f in wxrc.cpp ../../src/xrc/*.cpp; do + echo $f + $wCXX `$WX_CONFIG --cxxflags` -I ../../include -I ../../src/xrc/expat/xmlparse -I ../../src/xrc/expat/xmltok -c $f +done +for f in ../../src/xrc/expat/xmlparse/xmlparse.c ../../src/xrc/expat/xmltok/xmlrole.c ../../src/xrc/expat/xmltok/xmltok.c; do + echo $f + $wCC `$WX_CONFIG --cxxflags` -I ../../include -I ../../src/xrc/expat/xmlparse -I ../../src/xrc/expat/xmltok -c $f +done + +# the handlers are not needed +rm xh_*.o xmlrsall.o + +$wCXX `$WX_CONFIG --libs` *.o -o wxrc +strip wxrc + #---------------------------------------------------------------- %install -%find_lang wxstd -cd wxPython +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT + +# install wxWindows +WXDIR=`pwd` +cd build +make prefix=$RPM_BUILD_ROOT%{wxpref} install + +# install wxPython +cd $WXDIR/wxPython %{python} setup.py \ IN_CVS_TREE=1 \ + 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 +# Since I want this RPM to be as generic as possible I won't let +# distutils copy the scripts 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, then 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/usr/bin +for s in \ + helpviewer \ + img2png \ + img2py \ + img2xpm \ + pycrust \ + pycwrap \ + pyshell \ + xrced; do + cp scripts/$s $RPM_BUILD_ROOT/%{pref}/bin +done + + +# Install wxrc +cp $WXDIR/contrib/utils/wxrc/wxrc $RPM_BUILD_ROOT/%{pref}/bin + + +# Generate the filelists. For some reason the %defattr below is still +# resulting in many (but not all) files not owned by root when just +# specifying directories and wildcards to be included in each package. +# So instead we'll build some explicit filelists here and use %attr on +# each entry. +cd $WXDIR +mkdir -p $RPM_BUILD_ROOT%{pref}/share/doc +GFL="%{python} wxPython/distrib/genfilelist.py" +$GFL $RPM_BUILD_ROOT %{pref} > 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 %{wxpref}/lib >> FILELIST +$GFL $RPM_BUILD_ROOT "%{wxpref}/lib/libwx*" >> FILELIST +$GFL -r $RPM_BUILD_ROOT %{wxpref}/share >> 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 #---------------------------------------------------------------- %clean -#[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT - - -#---------------------------------------------------------------- -%post -/sbin/ldconfig +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT #---------------------------------------------------------------- -%postun -/sbin/ldconfig - - -#---------------------------------------------------------------- -%files -%doc docs/preamble.txt -%doc docs/licence.txt -%doc docs/readme.txt -%doc docs/changes.txt -%doc wxPython/README.txt -%doc wxPython/CHANGES.txt +%files -f FILELIST %defattr(-,root,root) -%{wxpref}/lib/libwx* -%{pref}/lib/python* -%{wxpref}/share/ -%{pref}/bin/* +%doc docs/preamble.txt docs/licence.txt docs/readme.txt docs/changes.txt +%doc wxPython/README.txt wxPython/CHANGES.txt -%files devel +%files -n wxPython%{port}-devel -f DEVELLIST %defattr(-,root,root) -%{wxpref}/include/wx -%{wxpref}/lib/wx -%{wxconfigname} -%{wxpref}/bin/wx-config #---------------------------------------------------------------- -%changelog - # end of file