X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b817523b2b2ce31facb92fbd654a2041355ddb1d..96285a18aa6f39e754ae562cc427f005a3402f43:/wxPython/distrib/makerpm diff --git a/wxPython/distrib/makerpm b/wxPython/distrib/makerpm index c88d207a9c..e0bf01245f 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,51 +15,48 @@ 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=wxPythonSrc -debug=0 - +unicode=0 +tarname=wxPython-src +srpmonly=0 +skipclean=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 echo "${python} not found!" @@ -66,33 +65,29 @@ 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 \ | sed s:@VERSION@:${version}:g \ | sed s:@VER2@:${ver2}:g \ - > ${distdir}/wxPython${port}.spec + > ${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 @@ -119,37 +114,86 @@ done #---------------------------------------------------------------------- -# Get the sources from CVS +# Copy the sources from my CVS workspace + +function cleanup { + RMFILES=`find . -name "$1"` + if [ "$RMFILES" != "" ]; then + rm -rf $RMFILES + fi +} -if [ -z "${skipcvs}" ]; then - echo "*** Exporting CVS archive..." + +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, demos, samples, and wxPython + for d in art build contrib debian docs include lib locale patches samples src utils; do + if [ -e ${wxdir}/$d ]; then + cp -Rpf --link ${wxdir}/$d ${tarver} #> /dev/null 2>&1 + fi + done + mkdir ${tarver}/distrib + cp -Rpf --link ${wxdir}/distrib/scripts ${tarver}/distrib + + + # now do the same thing for wxPython, but use the DIRLIST to select dirs to copy + 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 distrib/msw/tmake rm -rf docs/html - rm -rf docs/latex - 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 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]*" + rm -f wxPython/samples/embedded/embedded + rm -f wxPython/samples/embedded/embedded.o + + # ports that are not supported yet + #cleanup cocoa # wxMac needs some cocoa headers + cleanup mgl + cleanup motif + cleanup os2 + cleanup x11 + cleanup univ + cleanup wine + + rm -f wxPython/wx/* > /dev/null 2>&1 popd > /dev/null popd > /dev/null @@ -163,21 +207,28 @@ fi # TODO? Output all combinations of spec files to put in the tar file?? makespec -cp ${distdir}/wxPython${port}.spec ${builddir}/${tarver}/wxPython${port}.spec +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 + if [ -e ${distdir}/${tarver}.tar.bz2 ]; then + rm ${distdir}/${tarver}.tar.bz2 fi - gzip --best ${distdir}/${tarver}.tar + bzip2 --best ${distdir}/${tarver}.tar popd > /dev/null fi @@ -187,24 +238,51 @@ 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 - echo "*** Moving RPMs to ${distdir}" - mv -f `find ${rpmtop} -name "wxPython*.rpm"` ${distdir} + cp ${distdir}/${tarver}.tar.bz2 ${rpmtop}/SOURCES + + if [ "${srpmonly}" = "1" ]; then + rpmbuild -bs \ + --define "_topdir ${rpmtop}" \ + --define "_tmppath ${builddir}" \ + --define "release 1" \ + ${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 #---------------------------------------------------------------------- # Cleanup -if [ -z ${skipclean} ]; then +if [ "${skipclean}" = "0" ]; then echo "*** Cleaning up" rm -rf ${rpmtop} rm -rf ${builddir}