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

From Wiki
Jump to navigation Jump to search
Line 2: Line 2:
  
 
=Introduction=
 
=Introduction=
'''luatex_lunatic''' is a set of patches to luatex to permit to host a python interpreter inside lua.
+
'''luatex_lunatic''' is a set of patches to luatex to permit to host a python interpreter inside lua .
 +
(see [http://labix.org/lunatic-python lunatic-python])
  
See [http://labix.org/lunatic-python lunatic-python]
+
!! THIS  CODE IS HIGHLY EXPERIMENTAL !!
  
(more...)
+
These ses of patches is needed because
 +
1) by design, lua in luatex doesn't permit dynamic loading
 +
("Dynamic loading of .so and .dll files is disabled on all platforms." see luatexref-t.pdf)
 +
 
 +
2) to prevent simbols collisions between luatex and an arbitrary library
  
 
=How to =
 
=How to =

Revision as of 10:43, 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 !!

These ses of patches is needed because 1) by design, lua in luatex doesn't permit dynamic loading ("Dynamic loading of .so and .dll files is disabled on all platforms." see luatexref-t.pdf)

2) to prevent simbols collisions between luatex and an arbitrary library

How to

$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 
mkdir Python-2.6.1
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
./bin/python -c "if len(u'\U00010800') == 1: print 'python UCS4'"
#if len(u'\U00010800') == 1:
#print "UCS4"
#else: #len is 2 in UCS2 builds
#print "UCS2"
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
#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
./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 $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 
mkdir Python-2.6.1
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
./bin/python -c "if len(u'\U00010800') == 1: print 'python UCS4'"
#if len(u'\U00010800') == 1:
#print "UCS4"
#else: #len is 2 in UCS2 builds
#print "UCS2"
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
#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
./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

##
## 
## 
## 

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