Difference between revisions of "User:Luigi.scarso/luatex lunatic"
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]) | ||
− | + | !! 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 = | =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