#!/bin/bash export LANG=C DESTDIR=dist IRON_VERSION=1.1.1 IRON2_VERSION=2.0B1 PY_VERSION=2.4.4 ET_VERSION=1.2.6-20050316 WSGIREF_PY_VERSION=2.5.1 CRYPTO_VERSION=2.0.1 PARAMIKO_VERSION=1.7.1 PYFLAKES_VERSION=0.2.1 IRCLIB_VERSION=0.4.6 GNOSIS_VERSION=1.2.2 apply () { for name in $1/patch-*; do echo Applying ${name##*/} patch -p1 --quiet < $name done } IRONDIR=IronPython-$IRON_VERSION rm -rf $IRONDIR echo 'Unpacking IronPython' unzip -q files/IronPython-$IRON_VERSION-Src.zip (cd $IRONDIR; apply ../fepy/patches/$IRON_VERSION) echo 'Compiling IronPython' make -C $IRONDIR/Src CSC='gmcs -warn:0' IRON2DIR=IronPython-$IRON2_VERSION rm -rf $IRON2DIR echo 'Unpacking IronPython 2' unzip -q files/IronPython-$IRON2_VERSION-Src.zip IRON2_ALT_VERSION=${IRON2_VERSION/A/a} IRON2_ALT_VERSION=${IRON2_VERSION/B/b} (cd $IRON2DIR; apply ../fepy/patches/$IRON2_ALT_VERSION) echo 'Compiling IronPython 2' nant -f:$IRON2DIR/Src/IronPython.build -D:warn=0 echo 'Compiling Python for .NET' make -C pythonnet Python.Runtime.dll rm -rf $DESTDIR mkdir $DESTDIR echo 'Copying IronPython' mkdir $DESTDIR/ipy cp $IRONDIR/*.{dll,exe} $DESTDIR/ipy cp -r $IRONDIR/Lib $DESTDIR/ipy mkdir $DESTDIR/ipy2 cp $IRON2DIR/Src/*.{dll,exe} $DESTDIR/ipy2 cp -r $IRON2DIR/Lib $DESTDIR/ipy2 echo 'Copying Python for .NET' mkdir $DESTDIR/ipy/DLLs cp pythonnet/Python.Runtime.dll $DESTDIR/ipy/DLLs cp pythonnet/Python.Runtime.dll.config $DESTDIR/ipy/DLLs mkdir $DESTDIR/ipy2/DLLs cp pythonnet/Python.Runtime.dll $DESTDIR/ipy2/DLLs cp pythonnet/Python.Runtime.dll.config $DESTDIR/ipy2/DLLs echo 'Updating site.py' cat fepy/lib/site.py >> $DESTDIR/ipy/Lib/site.py chmod u+w $DESTDIR/ipy2/Lib/site.py cat fepy/lib/site.py >> $DESTDIR/ipy2/Lib/site.py get () { if [ -d $1 ]; then svn export $1 $2 else dir=`dirname $2` if [ ! -z $dir ]; then mkdir -p $dir fi cp $1.py $2.py fi } echo 'Copying Python standard library' for name in `cat fepy/script/mlist`; do get lib/$name $DESTDIR/Lib/$name done # wsgiref svn export wsgiref $DESTDIR/Lib/wsgiref # pybench svn export pybench $DESTDIR/pybench for name in fepy/patches/stdlib/$PY_VERSION/patch-*; do echo Applying ${name##*/} patch -d $DESTDIR/Lib -p0 --quiet < $name done for name in `cat fepy/script/tlist`; do echo "Creating empty $name.py" touch $DESTDIR/Lib/$name.py done echo 'Copying FePy library' for name in `cat fepy/script/plist`; do if [ $name == fepy ]; then continue else get fepy/lib/$name $DESTDIR/Lib/$name fi done get fepy/cext/embedding $DESTDIR/Lib/embedding echo 'Copying FePy options' get fepy/fepy $DESTDIR/Lib/fepy echo 'Copying FePy DB-API' for name in `cat fepy/script/dlist`; do get fepy/dbapi/$name $DESTDIR/Lib/$name done echo 'Copying 3rd party library' # BeautifulSoup cp files/BeautifulSoup.py $DESTDIR/Lib # elementtree tar zxf files/elementtree-$ET_VERSION.tar.gz dir=elementtree-$ET_VERSION cp -r $dir/elementtree $DESTDIR/Lib rm -rf $dir # pycrypto tar zxf files/pycrypto-$CRYPTO_VERSION.tar.gz mkdir $DESTDIR/Lib/Crypto dir=pycrypto-$CRYPTO_VERSION cp $dir/__init__.py $DESTDIR/Lib/Crypto cp -r $dir/{Cipher,Hash,Protocol,PublicKey,Util} $DESTDIR/Lib/Crypto rm -rf $dir # paramiko tar zxf files/paramiko-$PARAMIKO_VERSION.tar.gz dir=paramiko-$PARAMIKO_VERSION cp -r $dir/paramiko $DESTDIR/Lib rm -rf $dir # Pyflakes tar zxf files/pyflakes-$PYFLAKES_VERSION.tar.gz dir=pyflakes-$PYFLAKES_VERSION cp -r $dir/pyflakes $DESTDIR/Lib cp $dir/bin/pyflakes $DESTDIR rm -rf $dir # irclib tar zxf files/python-irclib-$IRCLIB_VERSION.tar.gz dir=python-irclib-$IRCLIB_VERSION cp $dir/irclib.py $DESTDIR/Lib rm -rf $dir # gnosis.xml.objectify tar zxf files/Gnosis_Utils-$GNOSIS_VERSION.tar.gz dir=Gnosis_Utils-$GNOSIS_VERSION mkdir -p $DESTDIR/Lib/gnosis/xml touch $DESTDIR/Lib/gnosis/__init__.py touch $DESTDIR/Lib/gnosis/xml/__init__.py cp -r $dir/gnosis/xml/objectify $DESTDIR/Lib/gnosis/xml rm -rf $dir echo 'Copying license' cp ../website/license.html $DESTDIR/License.html