From slezica en fibertel.com.ar Wed Feb 1 05:27:46 2006 From: slezica en fibertel.com.ar (Sebastian Lezica) Date: Wed, 01 Feb 2006 01:27:46 -0300 Subject: Binario de Firefox con soporte de Python In-Reply-To: <43DDE10D.3060609@parcan.es> References: <43D7AADD.7040005@fibertel.com.ar> <43DDE10D.3060609@parcan.es> Message-ID: <43E038C2.5020000@fibertel.com.ar> En realidad es mucho mas sencillo de lo que me parecia inicialmente, lo importante es no salirse del camino (claro, yo intentaba compilarlo con el GCC de cygwin). La documentación está en www.mozilla.org, pero conceptualmente hice lo siguiente: (suponiendo que tenes lo básico de Cygwin ya instalado, y Visual C++ 6) Hay que bajarse las moz_tools.zip (hay una versión para .net, de confundirte con la correcta no va ni para atras). Con un pequeño .bat me aseguro que el path este correcto, y un par de cosas mas: set MOZ_TOOLS=c:\Devel\Other\moz_tools SET CYGWINBASE=/cygdrive/c/Util/Win/cygwin SET HOME=%CYGWINBASE%\home\Sebastian Lezica SET INCLUDE= SET LIB= SET PATH=C:\;C:\windows\system32;C:\windows;C:\windows\system32\wbem;c:\Util\Dos;c:\Util\Win\Python; SET PATH=c:\Util\Win\cygwin\bin;%PATH%;c:\Devel\Other\moz_tools\bin call "C:\program files\Microsoft Visual Studio\VC98\bin\vcvars32.bat" set PYTHON=c:\util\win\python\python.exe rem No recuerdo cual de estas dos es la correcta, por las dudas van ambas... set PYTHONPATH=c:\util\win\python set PYTHONHOME=c:\util\win\python Me bajé el mozilla/client.mk pero del branch DOM_AGNOSTIC2_BRANCH ('-r ....') Creé en el directorio mozilla un fichero .mozconfig con el siguiente contenido: mk_add_options MOZ_CO_PROJECT=browser mk_add_options MOZ_CO_TAG=DOM_AGNOSTIC2_BRANCH ac_add_options --enable-application=browser ac_add_options --with-java-include-path=/cygdrive/c/Util/Win/Java/j2sdk142/include ac_add_options --with-java-bin-path=/cygdrive/c/Util/Win/Java/j2sdk142/bin ac_add_options --enable-extensions=python/xpcom,python/dom,default ac_add_options --disable-static ac_add_options --enable-shared ac_add_options --disable-tests ac_add_options --enable-crypto ac_add_options --disable-debug # Las siguientes no estoy seguro que sean sanas, es un intento de evitar conflictos de perfiles con el Firefox estable que utilizo: ac_add_options --disable-profilesharing ac_add_options --disable-profilelocking ac_add_options --enable-single-profile ac_add_options --disable-accessibility Ah! posiblemente debas renombrar el link.exe de cygwin por otra cosa, para que no lo encuentre antes del del VC6 (o asegurarte de que dentro de Cygwin la ruta del VC6 esté antes). Ahora descargamos todo del cvs con: make -f client.mk checkout Y lo compilamos con: make -f client.mk build Si no hay errores, te encontrarás con un directorio 'dist/bin' dentro del cual quedó un Firefox flamante. Copiarlo a otro sitio, correr 'regxpcom.exe', y deberia aparecer algo de 'pyloader'. Ah! recordá chequear que Python esté en tu path. Por supuesto, no es usable para cualquier cosa (aunque ahora lo estoy usando) y vas a encontrar algunas cosas sueltas, pero lo importante, Python. Y funciona. Si vas a poner tu código dentro de Chrome, nada, ya está listo, pero si lo que vas es a experimentar, personalmente (aunque es un riesgo de seguridad), seteo lo siguiente (desde 'about:config'): signed.applets.codebase_principal_support = true nglayout.debug.disable_xul_cache = true Con eso corre Python desde cualquier lado. Un ejemplo XUL con python muy pequeñito: