Restructured for new style RPMs, etc. Can build all the RPMs from a

single .spec file, by using --define parameters.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-10-15 01:02:22 +00:00
parent 6736ec0807
commit 7093495299
2 changed files with 274 additions and 154 deletions

View File

@@ -26,27 +26,23 @@ pythonbin=/usr/bin/python
port=GTK port=GTK
lcport=gtk lcport=gtk
unicode=0 unicode=0
tarname=wxPythonSrc tarname=wxPython-src
rpmflag=-ba srpmonly=0
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# Check parameters # Check parameters
function usage { function usage {
echo "Usage: $0 py_version [command flags...]" echo "Usage: $0 py_version [command flags...]"
echo " py_version String to append to $pythonbin (which python" echo " py_version which python version to use."
echo " version to use.)"
echo "" echo ""
echo "command flags:" echo "command flags:"
echo " skipcopy Don't copy the files for the tarball from the workspace" echo " skipcopy Don't copy the files for the tarball from the workspace"
echo " skiptar Don't build the tarball" echo " skiptar Don't build the tarball"
echo " skiprpm Don't build the RPM" echo " skiprpm Don't build the RPM"
echo " skipclean Don't do the cleanup at the end" echo " skipclean Don't do the cleanup at the end"
echo " gtk2 Build using wxGTK2 and Unicode"
echo " x11 Build using wxX11"
echo " speconly Do nothing but write the RPM spec file" echo " speconly Do nothing but write the RPM spec file"
echo " srpm Only make the SRPM" echo " srpm Only make the SRPM"
# echo " smp Add SMP=2 to the envivonment to speed wxGTK build"
} }
if [ $# -lt 1 ]; then if [ $# -lt 1 ]; then
@@ -68,17 +64,14 @@ fi
function makespec { function makespec {
echo "*** Writing ${distdir}/wxPython${port}.spec" echo "*** Writing ${distdir}/wxPython.spec"
cat ${spectemplate} \ cat ${spectemplate} \
| sed s:@PYTHON@:${python}:g \ | sed s:@PYTHON@:${python}:g \
| sed s:@PYVER@:${pyver}:g \ | sed s:@PYVER@:${pyver}:g \
| sed s:@PORT@:${port}:g \
| sed s:@LCPORT@:${lcport}:g \
| sed s:@TARNAME@:${tarname}:g \ | sed s:@TARNAME@:${tarname}:g \
| sed s:@VERSION@:${version}:g \ | sed s:@VERSION@:${version}:g \
| sed s:@VER2@:${ver2}:g \ | sed s:@VER2@:${ver2}:g \
| sed s:@UNICODE@:${unicode}:g \ > ${distdir}/wxPython.spec
> ${distdir}/wxPython${port}.spec
} }
@@ -89,11 +82,8 @@ for flag in $*; do
skipclean) skipclean=1 ;; skipclean) skipclean=1 ;;
skiptar) skiptar=1; skipcopy=1 ;; skiptar) skiptar=1; skipcopy=1 ;;
skiprpm) skiprpm=1 ;; skiprpm) skiprpm=1 ;;
gtk2) unicode=1; port=GTK2; lcport=gtk2 ;;
x11) port=X11; lcport=x11 ;;
smp) export SMP=2 ;;
speconly) makespec; exit 0 ;; speconly) makespec; exit 0 ;;
srpm) rpmflag=-bs; ;; srpm) srpmonly=1; ;;
*) echo "Unknown flag \"${flag}\"" *) echo "Unknown flag \"${flag}\""
usage usage
@@ -144,7 +134,7 @@ if [ -z "${skipcopy}" ]; then
# copy root dir contents # copy root dir contents
cp -pf --link ${wxdir}/* ${tarver} > /dev/null 2>&1 cp -pf --link ${wxdir}/* ${tarver} > /dev/null 2>&1
# copy all top dirs except CVS, build, demos, utils, samples, and wxPython # copy all top dirs except CVS, build, demos, samples, utils, and wxPython
for d in art build contrib debian distrib docs include lib locale misc patches src; do for d in art build contrib debian distrib docs include lib locale misc patches src; do
if [ -e ${wxdir}/$d ]; then if [ -e ${wxdir}/$d ]; then
cp -Rpf --link ${wxdir}/$d ${tarver} #> /dev/null 2>&1 cp -Rpf --link ${wxdir}/$d ${tarver} #> /dev/null 2>&1
@@ -177,13 +167,16 @@ if [ -z "${skipcopy}" ]; then
cleanup CVS cleanup CVS
cleanup CVSROOT cleanup CVSROOT
rm BuildCVS.txt rm BuildCVS.txt
rm -f ChangeLog
rm *.spec rm *.spec
rm -rf distrib/msw/tmake
rm -rf docs/html rm -rf docs/html
rm -rf docs/latex rm -rf docs/latex
rm -rf contrib/docs rm -rf contrib/docs
rm -rf contrib/samples rm -rf contrib/samples
rm locale/*.mo rm locale/*.mo
cleanup ".#*" cleanup ".#*"
cleanup "#*#"
cleanup "*~" cleanup "*~"
cleanup "*.orig" cleanup "*.orig"
cleanup "*.rej" cleanup "*.rej"
@@ -191,6 +184,13 @@ if [ -z "${skipcopy}" ]; then
cleanup core cleanup core
cleanup "core.[0-9]*" cleanup "core.[0-9]*"
# ports that are not supported yet
cleanup cocoa
cleanup mgl
cleanup motif
cleanup os2
cleanup x11
rm -f wxPython/wx/* > /dev/null 2>&1 rm -f wxPython/wx/* > /dev/null 2>&1
popd > /dev/null popd > /dev/null
@@ -205,7 +205,7 @@ fi
# TODO? Output all combinations of spec files to put in the tar file?? # TODO? Output all combinations of spec files to put in the tar file??
makespec makespec
cp ${distdir}/wxPython${port}.spec ${builddir}/${tarver}/wxPython${port}.spec cp ${distdir}/wxPython.spec ${builddir}/${tarver}/wxPython.spec
#---------------------------------------------------------------------- #----------------------------------------------------------------------
@@ -237,17 +237,44 @@ fi
if [ -z "${skiprpm}" ]; then if [ -z "${skiprpm}" ]; then
echo "*** Building RPMs..." echo "*** Building RPMs..."
cp ${distdir}/${tarver}.tar.gz ${rpmtop}/SOURCES cp ${distdir}/${tarver}.tar.gz ${rpmtop}/SOURCES
rpmbuild ${rpmflag} \
--define "_topdir ${rpmtop}" \ if [ "${srpmonly}" = "1" ]; then
--define "_tmppath ${builddir}" \ rpmbuild -bs \
${distdir}/wxPython${port}.spec --define "_topdir ${rpmtop}" \
if [ "$?" != "0" ]; then --define "_tmppath ${builddir}" \
echo "*** RPM failure, exiting." --define "pyver ${pyver}" \
exit 1 ${distdir}/wxPython.spec
if [ "$?" != "0" ]; then
echo "*** RPM failure, exiting."
exit 1
fi
else else
echo "*** Moving RPMs to ${distdir}" rpmbuild -ba \
mv -f `find ${rpmtop} -name "wxPython*.rpm"` ${distdir} --define "_topdir ${rpmtop}" \
--define "_tmppath ${builddir}" \
--define "port gtk" --define "unicode 0" \
--define "pyver ${pyver}" \
${distdir}/wxPython.spec
if [ "$?" != "0" ]; then
echo "*** RPM failure, exiting."
exit 1
fi
rpmbuild -ba \
--define "_topdir ${rpmtop}" \
--define "_tmppath ${builddir}" \
--define "port gtk2" --define "unicode 1" \
--define "pyver ${pyver}" \
${distdir}/wxPython.spec
if [ "$?" != "0" ]; then
echo "*** RPM failure, exiting."
exit 1
fi
fi fi
echo "*** Moving RPMs to ${distdir}"
mv -f `find ${rpmtop} -name "wxPython*.rpm"` ${distdir}
fi fi
#---------------------------------------------------------------------- #----------------------------------------------------------------------

View File

@@ -1,53 +1,97 @@
%define pref %{_prefix} #----------------------------------------------------------------------
%define python @PYTHON@ # Name: wxPython.spec
%define pyver @PYVER@ # Purpose: RPM Build and packaging instructions
%define port @PORT@ #
%define lcport @LCPORT@ # Author: Robin Dunn
%define unicode @UNICODE@ #
%define tarname @TARNAME@ # RCS-ID: $Id$
%define version @VERSION@ # Copyright: (c) 2004 by Total Control Software
%define ver2 @VER2@ # Licence: wxWindows license
%define wxprefbase %{pref}/lib/wxPython #----------------------------------------------------------------------
%define wxpref %{wxprefbase}-%{version}
%define name wxPython%{port}-py%{pyver}
# Allow the release tag to be specified on the rpmbuild command # The following values can be set on the rpmbuild command line with
# line with --define 'release SOMETHING' If no such definition is # --define 'name VALUE' If no value is set on the command line then
# used then the release number is 1. # the default value set here will be used instead.
# Used to set the Release tag below. I normally use it to define what
# distro the RPM was build on and also include the version of Python
# it was built with.
%if %{?release:0}%{!?release:1} %if %{?release:0}%{!?release:1}
%define release 1 %define release 1_py%{pyver}
%endif %endif
# Which wxWidgets port to build and use. Current acceptable valuse
# are 'gtk' and 'gtk2'.
%if %{?port:0}%{!?port:1}
%define port gtk2
%endif
# Build in unicode mode? Can only be used if port is gtk2, acceptable
# values are '0' and '1'
%if %{?unicode:0}%{!?unicode:1}
%define unicode 1
%endif
# Which version of Python to build with. Used to assemble python
# binary name so use '2.2', '2.3', etc.
%if %{?pyver:0}%{!?pyver:1}
%define pyver 2.3
%endif
# Should the builtin image and etc. libs be used, or system libs? # Should the builtin image and etc. libs be used, or system libs?
# Distro specific RPMs should probably set this to 0, generic ones # Distro specific RPMs should probably set this to 0, generic ones
# should use 1 # should use 1.
%define builtin_libs 1 # NOTE: I'm trying 0 for this next release to see if I can get rid of
# this...
%if %{?builtin_libs:0}%{!?builtin_libs:1}
%define builtin_libs 0
%endif
# Should --enable-debug_flag be used in release builds? Using it # Should --enable-debug_flag be used in release builds? Using it
# defines __WXDEBUG__ and gives us runtime diagnostics that are turned # defines __WXDEBUG__ and gives us runtime diagnostics that are turned
# into Python exceptions starting with 2.3.4. (So turning it on is a # into Python exceptions. (So turning it on is a very helpful thing
# very helpful thing IMO and is recommended.) The code is still # IMO and is recommended.) The code is still compiled with
# compiled with optimization flags and such when this option is used, # optimization flags and and without debug info and such when this
# it simply turns on some extra code. # option is used, it simply turns on some extra code.
%if %{?debug_flag:0}%{!?debug_flag:1}
%define debug_flag 1 %define debug_flag 1
%endif
# build the name of the real wx-config from the port, flags, etc. #----------------------------------------------------------------------
%define dbgflg %(if [ "%{debug_flag}" = "1" ]; then echo d; fi) # Other variables used below
%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 pref %{_prefix}
%define python /usr/bin/python%{pyver}
%define tarname @TARNAME@
%define version @VERSION@
%define ver2 @VER2@
%define chartype %(if [ "%{unicode}" = "1" ]; then echo unicode; else echo ansi; fi)
%define gtktype %(if [ "%{port}" = "gtk2" ]; then echo 2; fi)
%define using_gtk1 %(if [ "%{port}" = "gtk" ]; then echo 1; else echo 0; fi)
%define wxprefbase %{pref}/lib/wxPython
%define wxpref %{wxprefbase}-%{version}-%{port}-%{chartype}
%define pkgname wxPython
# turn off the generation of debuginfo rpm (RH9) ??
%define debug_package %{nil} %define debug_package %{nil}
#----------------------------------------------------------------
Summary: Cross platform GUI toolkit for Python using wx%{port} #----------------------------------------------------------------------
Name: %{name} # Package definition
#----------------------------------------------------------------------
Name: %{pkgname}%{ver2}
Summary: Cross platform GUI toolkit for Python
Version: %{version} Version: %{version}
Release: %{release} Release: %{release}
Source0: %{tarname}-%{version}.tar.gz Source0: %{tarname}-%{version}.tar.gz
@@ -55,72 +99,105 @@ License: wx Library Licence, Version 3
URL: http://wxPython.org/ URL: http://wxPython.org/
Packager: Robin Dunn <robin@alldunn.com> Packager: Robin Dunn <robin@alldunn.com>
Group: Development/Python Group: Development/Python
BuildRoot: %{_tmppath}/%{name}-buildroot BuildRoot: %{_tmppath}/%{pkgname}-buildroot
Prefix: %{pref} 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 %description
wxPython is a GUI toolkit for Python that is a wrapper around the Cross platform GUI toolkit for Python
wxWidgets 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 wxWidgets, and
includes the wx%{port} shared libs and etc.
%package -n wxPython%{port}-devel
Summary: wxPython%{port} development files
%package -n %{pkgname}%{ver2}-%{port}-%{chartype}
Summary: Cross platform GUI toolkit for Python
Group: Development/Python
Requires: %{pkgname}-common
Obsoletes: wxPythonGTK%{gtktype}-py%{pyver}
Provides: wxPython
%description -n %{pkgname}%{ver2}-%{port}-%{chartype}
wxPython is a GUI toolkit for the Python programming language. It
allows Python programmers to create programs with a robust, highly
functional graphical user interface, simply and easily. It is
implemented as a Python extension module (native code) that wraps the
popular wxWidgets cross platform GUI library, which is written in C++.
wxPython is a cross-platform toolkit. The same program will usually
run on multiple platforms without modification. Currently supported
platforms are 32-bit Microsoft Windows, most Unix or unix-like
systems, and Macintosh OS X.
This package contains the wxPython runtime files built for the
wxWidgets %{port} port with %{chartype} character type.
%package -n %{pkgname}-common-%{port}-%{chartype}
Summary: Common files for needed by all wxPython runtimes
Group: Development/Python
Provides: %{pkgname}-common
# They obsolete each other so any of them can be installed over another
# without conflicts
Obsoletes: %{pkgname}-common-gtk-ansi
Obsoletes: %{pkgname}-common-gtk2-ansi
Obsoletes: %{pkgname}-common-gtk2-unicode
%description -n %{pkgname}-common-%{port}-%{chartype}
This package contains the common files needed by any version of the
wxPython runtime. This pacakge also installs a wx.pth file which will
determine which of the installed runtimes is the default version of
wxPython that is imported automatically with a bare "import wx".
%package -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
Summary: wxPython development files
Group: Development/Libraries Group: Development/Libraries
Requires: wxPython%{port} = %{version} Requires: %{pkgname}%{ver2}-%{port}-%{chartype} = %{version}
%description -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
%description -n wxPython%{port}-devel
This packages contains the headers and etc. for building apps or This packages contains the headers and etc. for building apps or
Python extension modules that use the same wx%{port} shared libraries Python extension modules that use the same wxWidgets shared libraries
that wxPython uses. that wxPython uses.
#----------------------------------------------------------------
#----------------------------------------------------------------------
%prep %prep
%setup -q -n %{tarname}-%{version} %setup -q -n %{tarname}-%{version}
#---------------------------------------------------------------- #----------------------------------------------------------------------
%build %build
WXDIR=`pwd` WXDIR=`pwd`
# Configure and build wxWidgets
mkdir bld mkdir bld
cd bld cd bld
../configure --with-gtk \
# Configure, trying to reduce external dependencies
../configure --with-%{lcport} \
--prefix=%{wxpref} \ --prefix=%{wxpref} \
--disable-soname \ --enable-monolithic \
--disable-monolithic \
--enable-rpath=%{wxpref}/lib \ --enable-rpath=%{wxpref}/lib \
--with-opengl \ --with-opengl \
%if %{unicode}
--enable-gtk2 \
--enable-unicode \
%else
--disable-gtk2 \
%endif
--enable-geometry \ --enable-geometry \
--enable-optimise \ --enable-optimise \
--enable-sound --with-sdl \ --enable-sound --with-sdl \
--enable-display \ --enable-display \
%if %{using_gtk1}
--disable-gtk2 \
%else
--enable-gtk2 \
%endif
%if %{unicode}
--enable-unicode \
%endif
%if %{debug_flag} %if %{debug_flag}
--enable-debug_flag \ --enable-debug_flag \
%endif %endif
@@ -132,56 +209,56 @@ cd bld
%endif %endif
# Build wxWidgets and some contrib libs
make make
make -C contrib/src/gizmos make -C contrib/src/gizmos
make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0"
make -C contrib/src/stc make -C contrib/src/stc
make -C contrib/src/xrc
# Now build wxPython
# Build wxPython
cd $WXDIR/wxPython cd $WXDIR/wxPython
%{python} setup.py \ %{python} setup.py \
NO_SCRIPTS=1 \ WXPORT=%{port} \
WXPORT=%{lcport} \
UNICODE=%{unicode} \ UNICODE=%{unicode} \
EP_ADD_OPTS=1 \
NO_SCRIPTS=1 \
WX_CONFIG="$WXDIR/bld/wx-config --inplace" \ WX_CONFIG="$WXDIR/bld/wx-config --inplace" \
build build
# Build wxrc (XRC resource tool)
cd $WXDIR/bld/contrib/utils/wxrc
make
strip wxrc
#----------------------------------------------------------------------
#----------------------------------------------------------------
%install %install
WXDIR=`pwd` WXDIR=`pwd`
cd bld
# Install wxWidgets and the contribs # Install wxGTK and contribs
cd bld
make prefix=$RPM_BUILD_ROOT%{wxpref} install make prefix=$RPM_BUILD_ROOT%{wxpref} install
make -C contrib/src/gizmos 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/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/stc prefix=$RPM_BUILD_ROOT%{wxpref} install
make -C contrib/src/xrc prefix=$RPM_BUILD_ROOT%{wxpref} install
# install wxPython
# Install wxPython for wxGTK
cd $WXDIR/wxPython cd $WXDIR/wxPython
%{python} setup.py \ %{python} setup.py \
NO_SCRIPTS=1 \ WXPORT=%{port} \
WXPORT=%{lcport} \
UNICODE=%{unicode} \ UNICODE=%{unicode} \
EP_ADD_OPTS=1 \
NO_SCRIPTS=1 \
WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref}" \ WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref}" \
install \ install \
--root=$RPM_BUILD_ROOT --root=$RPM_BUILD_ROOT
cd $WXDIR/wxPython # remove the wx-config symlink, we'll redo it when installing the -devel package
rm $RPM_BUILD_ROOT%{wxpref}/bin/wx-config
# make sure that debug info is stripped
strip $RPM_BUILD_ROOT%{pref}/lib*/python%{pyver}/site-packages/wx-%{ver2}*-%{port}-%{chartype}/wx/*.so
# Since I want this RPM to be as generic as possible I won't let # Since I want this RPM to be as generic as possible I won't let
@@ -189,10 +266,8 @@ cd $WXDIR/wxPython
# the #! line to use the real python pathname. Since some distros # 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 # install python 2.2 as python2 and others as python I can't let
# distutils do that otherwise the dependencies will be fouled up. # distutils do that otherwise the dependencies will be fouled up.
# Copy them manually instead, leaving the #!/bin/env line intact. # Copy them manually instead, leaving the #!/usr/bin/env line intact.
# TODO: Should this be dependent on %{builtin_libs} or something like cd $WXDIR/wxPython
# it?
mkdir -p $RPM_BUILD_ROOT%{pref}/bin mkdir -p $RPM_BUILD_ROOT%{pref}/bin
for s in \ for s in \
helpviewer \ helpviewer \
@@ -204,16 +279,14 @@ for s in \
pycrust \ pycrust \
pywrap \ pywrap \
pyshell \ pyshell \
pywxrc \
xrced; do xrced; do
cp scripts/$s $RPM_BUILD_ROOT%{pref}/bin cp scripts/$s $RPM_BUILD_ROOT%{pref}/bin
done done
# Install wxrc
cp $WXDIR/bld/contrib/utils/wxrc/wxrc $RPM_BUILD_ROOT%{pref}/bin
# install KDE & GNOME menu items
# install KDE & GNOME menus
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applnk/Development mkdir -p $RPM_BUILD_ROOT%{_datadir}/applnk/Development
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
for d in distrib/*.desktop; do for d in distrib/*.desktop; do
@@ -231,31 +304,31 @@ install -m 644 wx/tools/XRCed/XRCed_16.png $RPM_BUILD_ROOT%{_datadir}/icons/hico
install -m 644 wx/tools/XRCed/XRCed_32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/XRCed.png install -m 644 wx/tools/XRCed/XRCed_32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/XRCed.png
install -m 644 wx/tools/XRCed/XRCed_32.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/XRCed.png install -m 644 wx/tools/XRCed/XRCed_32.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/XRCed.png
# install Mandrake menu # install Mandrake menu items
mkdir -p $RPM_BUILD_ROOT%{_libdir}/menu mkdir -p $RPM_BUILD_ROOT%{_libdir}/menu
cat > $RPM_BUILD_ROOT%{_libdir}/menu/%{name} <<EOF cat > $RPM_BUILD_ROOT%{_libdir}/menu/%{pkgname} <<EOF
?package(%{name}): \\ ?package(%{pkgname}): \\
command="%{_bindir}/pyshell" \\ command="%{_bindir}/pyshell" \\
needs="X11" \\ needs="X11" \\
icon="PyCrust.png" \\ icon="PyCrust.png" \\
section="Applications/Development/Tools" \\ section="Applications/Development/Tools" \\
title="PyShell" \\ title="PyShell" \\
longtitle="GUI Python Shell" longtitle="GUI Python Shell"
?package(%{name}): \\ ?package(%{pkgname}): \\
command="%{_bindir}/pycrust" \\ command="%{_bindir}/pycrust" \\
needs="X11" \\ needs="X11" \\
icon="PyCrust.png" \\ icon="PyCrust.png" \\
section="Applications/Development/Tools" \\ section="Applications/Development/Tools" \\
title="PyCrust" \\ title="PyCrust" \\
longtitle="GUI Python Shell with Filling" longtitle="GUI Python Shell with Filling"
?package(%{name}): \\ ?package(%{pkgname}): \\
command="%{_bindir}/pyalamode" \\ command="%{_bindir}/pyalamode" \\
needs="X11" \\ needs="X11" \\
icon="PyCrust.png" \\ icon="PyCrust.png" \\
section="Applications/Development/Tools" \\ section="Applications/Development/Tools" \\
title="PyAlaMode" \\ title="PyAlaMode" \\
longtitle="GUI Python Shell with Filling and editor windows" longtitle="GUI Python Shell with Filling and editor windows"
?package(%{name}): \\ ?package(%{pkgname}): \\
command="%{_bindir}/xrced" \\ command="%{_bindir}/xrced" \\
needs="X11" \\ needs="X11" \\
icon="XRCed.png" \\ icon="XRCed.png" \\
@@ -265,62 +338,82 @@ cat > $RPM_BUILD_ROOT%{_libdir}/menu/%{name} <<EOF
EOF EOF
#---------------------------------------------------------------- #----------------------------------------------------------------------
%pre %post -n %{pkgname}%{ver2}-%{port}-%{chartype}
if [ -e %{wxprefbase} ]; then
# in case there are old dirs from an old install
rm -r %{wxprefbase}
fi
%post
if [ ! -e %{wxprefbase} ]; then if [ ! -e %{wxprefbase} ]; then
ln -s wxPython-%{version} %{wxprefbase} ln -s %{pkgname}-%{version}-%{port}-%{chartype} %{wxprefbase}
fi fi
%preun -n %{pkgname}%{ver2}-%{port}-%{chartype}
if [ -L %{wxprefbase} ]; then
if [ `readlink %{wxprefbase}` == %{pkgname}-%{version}-%{port}-%{chartype} ]; then
rm -f %{wxprefbase}
fi
fi
%post -n %{pkgname}-common-%{port}-%{chartype}
# This is done on Mandrake to update its menus: # This is done on Mandrake to update its menus:
if [ -x /usr/bin/update-menus ]; then /usr/bin/update-menus || true ; fi if [ -x /usr/bin/update-menus ]; then /usr/bin/update-menus || true ; fi
%postun -n %{pkgname}-common-%{port}-%{chartype}
%postun
rm -f %{wxprefbase}
# This is done on Mandrake to update its menus: # This is done on Mandrake to update its menus:
if [ "$1" = "0" -a -x /usr/bin/update-menus ]; then /usr/bin/update-menus || true ; fi if [ "$1" = "0" -a -x /usr/bin/update-menus ]; then /usr/bin/update-menus || true ; fi
#----------------------------------------------------------------
%post -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
cd %{wxpref}/bin
ln -s ../lib/wx/config/%{port}-%{chartype}* wx-config
%preun -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
rm %{wxpref}/bin/wx-config
#----------------------------------------------------------------------
%clean %clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
#---------------------------------------------------------------- #----------------------------------------------------------------------
%files %files -n %{pkgname}%{ver2}-%{port}-%{chartype}
%defattr(-,root,root) %defattr(-,root,root)
%doc docs/preamble.txt docs/licence.txt docs/lgpl.txt docs/readme.txt docs/changes.txt %doc docs/preamble.txt docs/licence.txt docs/lgpl.txt docs/readme.txt docs/changes.txt
%doc wxPython/docs/* %doc wxPython/docs/*
%{_bindir}/* %dir %{pref}/lib*/python%{pyver}/site-packages/wx-%{ver2}*-%{port}-%{chartype}
%{pref}/lib*/python%{pyver}/site-packages/* %{pref}/lib*/python%{pyver}/site-packages/wx-%{ver2}*-%{port}-%{chartype}/*
%dir %{wxpref} %dir %{wxpref}
%dir %{wxpref}/lib %dir %{wxpref}/lib
%{wxpref}/lib/libwx* %{wxpref}/lib/libwx_gtk*
%{wxpref}/share %{wxpref}/share
%files -n %{pkgname}-common-%{port}-%{chartype}
%defattr(-,root,root)
%{pref}/lib*/python%{pyver}/site-packages/wxversion.*
%{pref}/lib*/python%{pyver}/site-packages/wx.pth
%{_bindir}/*
%{_datadir}/applnk/Development/* %{_datadir}/applnk/Development/*
%{_datadir}/applications/* %{_datadir}/applications/*
%{_datadir}/icons/hicolor/*/apps/* %{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/pixmaps/* %{_datadir}/pixmaps/*
%{_libdir}/menu/* %{_libdir}/menu/*
##%{wxprefbase}
%files -n wxPython%{port}-devel
%files -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
%defattr(-,root,root) %defattr(-,root,root)
%{wxpref}/include %{wxpref}/include
%{wxpref}/lib/wx %{wxpref}/lib/wx
%{wxconfigname} %dir %{wxpref}/bin
%{wxpref}/bin/wx-config
%{wxpref}/bin/wx-config-%{ver2}
#----------------------------------------------------------------
#----------------------------------------------------------------------
# end of file # end of file