Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 6dc567177f13753d6f4169fc47cb4264 > files > 5

ironpython-2.0B1-2.B1.1mdv2009.0.src.rpm

#!/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