Difference between revisions of "User:Luigi.scarso/luatex lunatic"

From Wiki
Jump to navigation Jump to search
Line 18: Line 18:
 
=How to =
 
=How to =
 
<pre>
 
<pre>
 +
##
 +
## Sec. 0
 +
## Safe exit
 +
## uncomment exit to go on
 +
exit
 +
 +
##
 +
## Sec. 1
 +
## Setup
 +
##
 
$HOME="/opt/luatex/luatex-lunatic"
 
$HOME="/opt/luatex/luatex-lunatic"
 
svn checkout svn://scm.foundry.supelec.fr/svn/luatex/tags/beta-0.35.0
 
svn checkout svn://scm.foundry.supelec.fr/svn/luatex/tags/beta-0.35.0
Line 24: Line 34:
 
wget http://www.python.org/ftp/python/2.6.1/Python-2.6.1.tar.bz2
 
wget http://www.python.org/ftp/python/2.6.1/Python-2.6.1.tar.bz2
 
tar -xjvf Python-2.6.1.tar.bz2  
 
tar -xjvf Python-2.6.1.tar.bz2  
mkdir Python-2.6.1
 
 
cd  Python-2.6.1
 
cd  Python-2.6.1
 
./configure --prefix=$HOME --enable-unicode=ucs4 --enable-shared
 
./configure --prefix=$HOME --enable-unicode=ucs4 --enable-shared
Line 30: Line 39:
 
cp python2.6.conf /etc/ld.so.conf.d
 
cp python2.6.conf /etc/ld.so.conf.d
 
ldconfig
 
ldconfig
 +
##
 
## install setuptools
 
## install setuptools
./bin/python -c "if len(u'\U00010800') == 1: print 'python UCS4'"
+
echo "Please install setuptools"
#if len(u'\U00010800') == 1:
+
echo "(cfr  http://pypi.python.org/pypi/setuptools)"
#print "UCS4"
+
echo "in $HOME"  
#else: #len is 2 in UCS2 builds
+
##
#print "UCS2"
+
## comment exit to go on
 +
exit
 +
 
 +
##
 +
## Sec 2
 +
## Patch and build luatex
 +
##
 
cd $HOME  
 
cd $HOME  
 
#ln -s trunk luatex
 
#ln -s trunk luatex
Line 48: Line 64:
 
patch -N --backup <2000_luatex_src_libs_lua51_Makefile.patch  luatex/src/libs/lua51/Makefile
 
patch -N --backup <2000_luatex_src_libs_lua51_Makefile.patch  luatex/src/libs/lua51/Makefile
 
patch -N --backup <3000_luatex_src_texk_web2c_configure.patch luatex/src/texk/web2c/configure
 
patch -N --backup <3000_luatex_src_texk_web2c_configure.patch luatex/src/texk/web2c/configure
#patch -N --backup <4000_luatex_src_libs_png_Makefile.in.patch luatex/src/libs/png/Makefile.in
 
#patch -N --backup <5000_luatex_src_libs_zlib_Makefile.in.patch luatex/src/libs/zlib/Makefile.in
 
 
cd luatex
 
cd luatex
 
./build.sh.linux &> out  
 
./build.sh.linux &> out  

Revision as of 21:48, 9 March 2009

Introduction

luatex_lunatic is a set of patches to luatex to permit to host a python interpreter inside lua . (see lunatic-python)

!! THIS CODE IS HIGHLY EXPERIMENTAL !! !! THIS CODE IS TESTED ONLY UNDER LINUX !!

These ses of patches is needed because :

  • by design, lua in luatex doesn't permit dynamic loading ("Dynamic loading of .so and .dll files is disabled on all platforms." see "LUA changes" in luatexref-t.pdf)
  • to prevent simbols collisions between luatex and an arbitrary library

Python releases includes, at least from 2.5, a ctypes module that permit a binding to a .so without using SWIG or similar .

How to

##
## Sec. 0
## Safe exit 
## uncomment exit to go on
exit

##
## Sec. 1
## Setup
## 
$HOME="/opt/luatex/luatex-lunatic"
svn checkout svn://scm.foundry.supelec.fr/svn/luatex/tags/beta-0.35.0
#svn checkout svn://scm.foundry.supelec.fr/svn/luatex/trunk
bzr branch lp:lunatic-python
wget http://www.python.org/ftp/python/2.6.1/Python-2.6.1.tar.bz2
tar -xjvf Python-2.6.1.tar.bz2 
cd  Python-2.6.1
./configure --prefix=$HOME --enable-unicode=ucs4 --enable-shared
make && make install
cp python2.6.conf /etc/ld.so.conf.d
ldconfig
##
## install setuptools
echo "Please install setuptools"
echo "(cfr  http://pypi.python.org/pypi/setuptools)"
echo "in $HOME" 
##
## comment exit to go on
exit

##
## Sec 2
## Patch and build luatex
##
cd $HOME 
#ln -s trunk luatex
ln -s beta-0.35.0 luatex
patch -N --backup <0000_lunatic-python_setup.py.patch  lunatic-python/setup.py

cd lunatic-python
../bin/python setup.py build
../bin/python setup.py install --root=/ --prefix=$HOME --install-script=$HOME/bin
cd $HOME
patch -N --backup <1000_luatex_src_libs_lua51_loadlib.c.patch luatex/src/libs/lua51/loadlib.c
patch -N --backup <2000_luatex_src_libs_lua51_Makefile.patch  luatex/src/libs/lua51/Makefile
patch -N --backup <3000_luatex_src_texk_web2c_configure.patch luatex/src/texk/web2c/configure
cd luatex
./build.sh.linux &> out 
cd $HOME
mkdir tests
cd tests
ln -s ../lib/python2.6/site-packages/python.so

cd luatex-lunatic/luatex/build/libs/lua51
make -B posix
cd $HOME

cd luatex-lunatic/luatex/build/texk/web2c
g++ -o luatex  luatexini.o luatex0.o luatex1.o luatex2.o luatex3.o luatexextra.o luatex-pool.o   luatexdir/libpdf.a ../../libs/libpng/libpng.a ../../libs/zlib/libz.a ../../libs/xpdf/xpdf/libxpdf.a ../../libs/xpdf/goo/libGoo.a ../../libs/xpdf/fofi/libfofi.a ../../libs/md5/md5.o ../../libs/obsdcompat/libopenbsd-compat.a ../../libs/lua51/liblua.a ../../libs/slnunicode/slnunico.o  ../../libs/luazip/src/luazip.o ../../libs/zziplib/zzip/libzzip.a ../../libs/luafilesystem/src/lfs.o ../../libs/luasocket/src/socket.a ../../libs/luapeg/lpeg.o ../../libs/luamd5/md5lib.o ../../libs/luamd5/md5.o  ../../libs/luazlib/lgzip.o ../../libs/luazlib/lzlib.o ../../libs/luafontforge/libff.a ../../libs/luaprofiler/libprofiler.a mpdir/lmplib.o mpdir/.libs/libmplib.a   lib/lib.a ../kpathsea/.libs/libkpathsea.a -lm   -nodefaultlibs -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -ldl -lm -lgcc_eh -lgcc -lc -lgcc_eh -lgcc -Wl,-E -ldl -lreadline -lhistory -lncurses

##
## numpy
## scipy
## matplot

Python packages

  • numpy
  • scipy
  • matplot
  • odfpy
  • TO FIX ; pygegl
  • TODO: libtiff
  • TODO :gle (for "Max" Dominici, GUIT)
  • TODO :PIL, python imaging library
  • TODO : binding to VIPS
  • ....

Bindings

  • ghostscript 8.64
  • graphviz 2.22.0
  • ImageMagick-6.4.9 with pythonmagickwand
  • fontforge 20090224
  • R-2.8.1 with rpy2-2.0.3 (For "Mau" Himmelmann, GUIT)
  • TODO: quantalib

SageMath

Done, but need a deep cleaning...

Root (CERN)

Maybe