Difference between revisions of "User:Luigi.scarso/luatex lunatic"
Jump to navigation
Jump to search
Line 6: | Line 6: | ||
!! THIS CODE IS HIGHLY EXPERIMENTAL !! | !! THIS CODE IS HIGHLY EXPERIMENTAL !! | ||
+ | !! THIS CODE IS TESTED ONLY UNDER LINUX !! | ||
− | These ses of patches is needed because | + | 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 = | =How to = |
Revision as of 10:47, 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
$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