X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4726eec6779f674994d8c0e09aa28e7887b73d89..4afab8bd72564b53dab5e20042bd5dc83fa99471:/wxPython/distrib/makerpm diff --git a/wxPython/distrib/makerpm b/wxPython/distrib/makerpm index cbd77a7bb0..023dd33cee 100755 --- a/wxPython/distrib/makerpm +++ b/wxPython/distrib/makerpm @@ -2,6 +2,8 @@ #---------------------------------------------------------------------- # Build an RPM containing both wxGTK and wxPython +##set -o xtrace + spectemplate=distrib/wxPythonFull.spec.in if [ ! -d wxPython -o ! -e ${spectemplate} ]; then @@ -13,47 +15,46 @@ fi #---------------------------------------------------------------------- # Initialization -distdir=`pwd`/dist -builddir=`pwd`/build_rpm +version=`python -c "import setup;print setup.VERSION"` +wxpdir=`pwd` +wxdir=${wxpdir}/.. +distdir=${wxpdir}/dist +builddir=${wxpdir}/_build_rpm rpmtop=${builddir}/rpmtop -cvsroot=:pserver:anoncvs@cvs.wxwindows.org:/home/wxcvs +cvsroot=:pserver:anoncvs@cvs.wxwindows.org:/pack/cvsroots/wxwindows pythonbin=/usr/bin/python port=GTK lcport=gtk -tarname=wxPythonFull -debug=0 - +unicode=0 +tarname=wxPython-src +srpmonly=0 #---------------------------------------------------------------------- # Check parameters -function useage { - echo "Usage: $0 cvs_tag wx_version py_version [command flags...]" - echo " cvs_tag Tag to use for CVS export" - echo " wx_version String to use for version in filenames, etc." - echo " py_version String to append to $pythonbin (which python" - echo " version to use.)" +function usage { + echo "Usage: $0 py_version [command flags...]" + echo " py_version which python version to use." echo "" echo "command flags:" - echo " skipcvs Don't do the CVS export" + echo " skipcopy Don't copy the files for the tarball from the workspace" echo " skiptar Don't build the tarball" - echo " skiprpm Don't build the RPM (but why?)" + echo " skiprpm Don't build the RPM" echo " skipclean Don't do the cleanup at the end" echo " speconly Do nothing but write the RPM spec file" - echo " debug Make a __WXDEBUG__ version" - echo " smp Add SMP=2 to the envivonment to speed wxGTK build" + echo " srpm Only make the SRPM" } -if [ $# -lt 3 ]; then - useage +if [ $# -lt 1 ]; then + usage exit 1 fi -cvs_tag=$1 -version=$2 -pyver=$3 -shift;shift;shift +pyver=$1 +shift +ver2=`echo ${version} | cut -c 1,2,3` +tarver=${tarname}-${version} python=${pythonbin}${pyver} if [ ! -e ${python} ]; then @@ -63,38 +64,34 @@ fi function makespec { - echo "*** Writing ${distdir}/wxPython${port}.spec" + echo "*** Writing ${distdir}/wxPython.spec" cat ${spectemplate} \ | sed s:@PYTHON@:${python}:g \ | sed s:@PYVER@:${pyver}:g \ - | sed s:@DEBUG@:${debug}:g \ - | sed s:@PORT@:${port}:g \ - | sed s:@LCPORT@:${lcport}:g \ | sed s:@TARNAME@:${tarname}:g \ - > ${distdir}/wxPython${port}.spec + | sed s:@VERSION@:${version}:g \ + | sed s:@VER2@:${ver2}:g \ + > ${distdir}/wxPython.spec } for flag in $*; do case ${flag} in - skipcvs) skipcvs=1 ;; - skipclean) skipclean=1 ;; - skiptar) skiptar=1 ;; - skiprpm) skiprpm=1 ;; - smp) export SMP=2 ;; - debug) debug=1 ;; - speconly) makespec; exit 0 ;; + skipcopy) skipcopy=1 ;; + skipclean) skipclean=1 ;; + skiptar) skiptar=1; skipcopy=1 ;; + skiprpm) skiprpm=1 ;; + speconly) makespec; exit 0 ;; + srpm) srpmonly=1; ;; *) echo "Unknown flag \"${flag}\"" - useage + usage exit 1 esac done -tarver=${tarname}-${version} - #---------------------------------------------------------------------- # Setup build dirs @@ -116,35 +113,85 @@ done #---------------------------------------------------------------------- -# Get the sources from CVS +# Copy the sources from my CVS workspace -if [ -z "${skipcvs}" ]; then - echo "*** Exporting CVS archive..." +function cleanup { + RMFILES=`find . -name "$1"` + if [ "$RMFILES" != "" ]; then + rm -rf $RMFILES + fi +} + + +if [ -z "${skipcopy}" ]; then + echo "*** Copying CVS tree" pushd ${builddir} > /dev/null if [ -e ${tarver} ]; then - rm -rf ${tarver} - fi - cvs -d ${cvsroot} export -r ${cvs_tag} -d ${tarver} wxWindows > /dev/null 2>&1 - if [ "$?" != "0" ]; then - echo "*** CVS failure, exiting." - exit 1 + rm -rf ${tarver} fi - - echo "*** Removing unneeded stuff from CVS tree" + mkdir -p ${tarver} + + # copy root dir contents + cp -pf --link ${wxdir}/* ${tarver} > /dev/null 2>&1 + + # 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 + if [ -e ${wxdir}/$d ]; then + cp -Rpf --link ${wxdir}/$d ${tarver} #> /dev/null 2>&1 + fi + done +# # and tex2rtf too +# mkdir ${tarver}/utils +# cp -Rpf --link ${wxdir}/utils/tex2rtf ${tarver}/utils +# # tex2rtf needs these files +# mkdir ${tarver}/samples +# cp -Rpf --link ${wxdir}/samples/sample.* ${tarver}/samples + + # now do the same thing for wxPython, skipping it's build dirs and such + for dir in `grep -v '#' ${wxdir}/wxPython/distrib/DIRLIST`; do + mkdir ${tarver}/${dir} + ##echo "cp -pf --link ${wxdir}/${dir}/* ${tarver}/${dir}" + cp -pf --link ${wxdir}/${dir}/* ${tarver}/${dir} > /dev/null 2>&1 + done + + # using DIRLIST as above will normally skip any files starting + # with a dot, but there are a few .files that we do want to + # copy... + for dir in wxPython/distrib/msw; do + cp -pf --link ${wxdir}/${dir}/.[a-zA-Z]* ${tarver}/${dir} > /dev/null 2>&1 + done + + echo "*** Removing uneeded stuff from copy of CVS tree" pushd ${tarver} > /dev/null - rm `find . -name .cvsignore` + cleanup .cvsignore + cleanup CVS + cleanup CVSROOT + rm BuildCVS.txt + rm -f ChangeLog rm *.spec - rm -rf demos -# rm -rf docs - rm -rf samples - rm -rf utils -# rm -rf include/wx/mgl -# rm -rf include/wx/motif -# rm -rf include/wx/os2 -# rm -rf src/mgl -# rm -rf src/motif -# rm -rf src/os2 - rm -rf wxPython/wxSWIG + rm -rf distrib/msw/tmake + rm -rf docs/html + rm -rf docs/latex + rm -rf contrib/docs + rm -rf contrib/samples + rm locale/*.mo + cleanup ".#*" + cleanup "#*#" + cleanup "*~" + cleanup "*.orig" + cleanup "*.rej" + cleanup "*.pyc" + cleanup core + 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 popd > /dev/null popd > /dev/null @@ -152,21 +199,29 @@ fi #---------------------------------------------------------------------- -# Make the spec file and copy to ${builddir}/${tarver} +# Make the spec file and copy to ${builddir}/${tarver} so it will be +# in the tar file when it's built + +# TODO? Output all combinations of spec files to put in the tar file?? -#if [ -z "${skiptar}" ]; then - makespec - cp ${distdir}/wxPython${port}.spec ${builddir}/${tarver}/wxPython${port}.spec -#fi +makespec +cp ${distdir}/wxPython.spec ${builddir}/${tarver}/wxPython.spec #---------------------------------------------------------------------- # Build the tar file if [ -z "${skiptar}" ]; then + echo "*** Creating language catalogs..." + pushd ${builddir}/${tarver}/locale > /dev/null + make allmo + popd > /dev/null + echo "*** Creating tarball..." + cp distrib/README.1st.txt ${builddir}/${tarver} pushd ${builddir} > /dev/null tar cvf ${distdir}/${tarver}.tar ${tarver} > /dev/null + echo "*** Compressing..." if [ -e ${distdir}/${tarver}.tar.gz ]; then rm ${distdir}/${tarver}.tar.gz @@ -182,16 +237,44 @@ fi if [ -z "${skiprpm}" ]; then echo "*** Building RPMs..." cp ${distdir}/${tarver}.tar.gz ${rpmtop}/SOURCES - rpm -ba \ - --define "_topdir ${rpmtop}" \ - --define "_tmppath ${builddir}" \ - ${distdir}/wxPython${port}.spec - if [ "$?" != "0" ]; then - echo "*** RPM failure, exiting." - exit 1 - else - mv -f `find ${rpmtop} -name "wxPython*.rpm"` ${distdir} + + if [ "${srpmonly}" = "1" ]; then + rpmbuild -bs \ + --define "_topdir ${rpmtop}" \ + --define "_tmppath ${builddir}" \ + --define "pyver ${pyver}" \ + ${distdir}/wxPython.spec + if [ "$?" != "0" ]; then + echo "*** RPM failure, exiting." + exit 1 + fi + + else + rpmbuild -ba \ + --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 + + echo "*** Moving RPMs to ${distdir}" + mv -f `find ${rpmtop} -name "wxPython*.rpm"` ${distdir} fi #----------------------------------------------------------------------