Blog, MacOSX

Recompilar MAMP

El soporte de LDAP en MAMP 1.7.1 esta roto asi que tube que recompilar el PHP, lo cual me obligo a recompilar todas sus dependencias, pero como no encontre ninguna guia de como realizarlo correctamente, aqui esta como lo hice yo.

Lo primero es descargarse el codigo fuente proporcionado por la gente de MAMP, y su version compilada.

Codigo fuente: MAMP 1.7.1 (src)

Version Intel: MAMP 1.7.1 (intel)

Version PPC: MAMP 1.7.1 (ppc)

Una vez que tengamos esto, hay que instalar MAMP la version compilada en /Applications y asi ya tenemos toda la estructura correcta lista para solo recompilar lo necesario.

Ahora descomprimimos el codigo fuente y vamos compilando las diferentes librerias:

CURL

tar zxvf curl-7.16.2.tar.gz
cd curl-7.16.2
./configure --prefix=/Applications/MAMP/Library
make
make install

Freetype

tar zxvf freetype-2.3.4.tar.gz
cd freetype-2.3.4
./configure --enable-shared --configure=/Applications/MAMP/Library/
make
make install

Gettext

tar zxvf gettext-0.16.1.tar.gz
cd gettext-0.16.1
./configure --prefix=/Applications/MAMP/Library
make
make install

IMAP (Parche para osx: imap-2006i-osx.patch)

tar zxvf imap-2006i.tar.Z
cd imap-2006i
patch -p1 < imap-2006i-osx.patch
make oxp
cp c-client/*.h /Applications/MAMP/Library/lib/imap-2006i/include/
cp c-client/*.c /Applications/MAMP/Library/lib/imap-2006i/lib/
cp c-client/c-client.a /Applications/MAMP/Library/lib/imap-2006i/lib/libc-client.a

JPEG

tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --enable-shared --prefix=/Applications/MAMP/Library
ln -s `which glibtool` ./libtool
make
make install

libiconv

tar zxvf libiconv-1.11.tar.gz
cd libiconv-1.11
./configure --enable-shared --prefix=/Applications/MAMP/Library
make
make install

LibIdn

tar xvfz libidn-0.6.14.tar.gz
cd libidn-0.6.14
./configure --enable-shared --prefix=/Applications/MAMP/Library/
make
make install

libmcrypt

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --enable-shared --prefix=/Applications/MAMP/Library/
make
make install

libpng

tar zxvf libpng-1.2.18.tar.gz
cd libpng-1.2.18
./configure --enable-shared --prefix=/Applications/MAMP/Library
make
make install

libxml

tar zxvf libxml2-2.6.29.tar.gz
cd libxml2-2.6.29
./configure --enable-shared --prefix=/Applications/MAMP/Library
make
make install

libxst

tar zxvf libxslt-1.1.21.tar.gz
cd libxslt-1.1.21
./configure --enable-shared --prefix=/Applications/MAMP/Library/ --with-libxml-prefix=/Applications/MAMP/Library/
make
make install

t1lib

tar zxvf t1lib-5.1.1.tar.gz
cd t1lib-5.1.1
./configure --enable-shared --prefix=/Applications/MAMP/Library/
make without_doc
make install

libexpat

Esta libreria es necesaria y no esta incluida, asi que hay que bajarla de http://sourceforge.net/projects/expat/

tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure --enable-shared --prefix=/Applications/MAMP/Library/
make
make install

MySQL

tar xvfz mysql-5.0.41.tar.gz
cd mysql-5.0.41
./configure --prefix=/Applications/MAMP/Library --with-unix-socket-path=/Applications/MAMP/tmp/mysql/mysql.sock --with-tcp-port=9999 --localstatedir=/Applications/MAMP/db/mysql/
make
make install

Apache2

tar zxvf httpd-2.0.59.tar.gz
cd httpd-2.0.59
./configure --prefix=/Applications/MAMP/Library --sysconfdir=/Applications/MAMP/conf/apache --enable-nonportable-atomics --enable-so --enable-cgid --enable-auth-anon --enable-auth-dbm --enable-auth-digest --enable-file-cache --enable-echo --enable-charset-lite --enable-cache --enable-disk-cache --enable-mem-cache --enable-example --enable-ext-filter --enable-case-filter --enable-case-filter-in --enable-deflate --enable-mime-magic --enable-cern-meta --enable-expires --enable-headers --enable-usertrack --enable-unique-id --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-bucketeer --enable-http --enable-info --enable-cgid --enable-vhost-alias --enable-speling --enable-rewrite --enable-so --with-ssl=/usr --enable-dav --enable-dav-fs --enable-ssl=shared --enable-mods-shared=most --with-mpm=prefork --without-berkeley-db
make

Si al compilar nos aparece este error:

endrecv.c:965:2: error: #error APR has detected sendfile on your system, but nobody has written a
sendrecv.c:966:2: error: #error version of it for APR yet. To get past this, either write apr_sendfile
sendrecv.c:967:2: error: #error or change APR_HAS_SENDFILE in apr.h to 0.

Entonces tenemos que editar el fichero srclib/apr/include/apr.h y cambiar la linea #define APR_HAS_SENDFILE 1 por #define APR_HAS_SENDFILE 0

Y finalmente para instalar

make install

PHP

tar zxvf php-5.2.5.tar.gz
cd php-5.2.5
./configure --with-mysql=/Applications/MAMP/Library --with-apxs2=/Applications/MAMP/Library/bin/apxs --with-gd --with-jpeg-dir=/Applications/MAMP/Library --with-png-dir=/Applications/MAMP/Library --with-zlib --with-freetype-dir=/Applications/MAMP/Library --prefix=/Applications/MAMP/bin/php5 --exec-prefix=/Applications/MAMP/bin/php5 --sysconfdir=/Applications/MAMP/conf/php5 --with-soap --with-config-file-path=/Applications/MAMP/conf/php5 --enable-track-vars --enable-bcmath --enable-ftp --enable-gd-native-ttf --with-bz2=/usr --with-ldap --with-mysqli=/Applications/MAMP/Library/bin/mysql_config --with-sqlite --with-ttf --with-t1lib=/Applications/MAMP/Library --enable-mbstring=all --with-curl=/Applications/MAMP/Library --enable-dbx --enable-sockets --enable-bcmath --with-imap=shared,/Applications/MAMP/Library/lib/imap-2006i --enable-soap --with-kerberos --enable-calendar --with-pgsql=shared,/Applications/MAMP/Library/pg --enable-dbase --enable-exif --with-libxml-dir=/Applications/MAMP/Library --with-gettext=shared,/Applications/MAMP/Library --with-xsl=/Applications/MAMP/Library --with-pdo-mysql=shared,/Applications/MAMP/Library --with-pdo-pgsql=shared,/Applications/MAMP/Library/pg --with-mcrypt=shared,/Applications/MAMP/Library --with-openssl --with-iconv=shared,/Applications/MAMP/Library
make
make test
make install

Y con esto ya tenemos recompilado el MAMP y listos para funcionar. En cualquiera de las opciones se puede aprovechar para cambiar opciones, añadir o quitar modules, etc…

Blog, MacOSX

Arreglar Inicio/Fin en Firefox2 – MacOSX

Realmente es un incordio que las aplicaciones que no estan echas 100% para MacOSX falla el tema de las teclas de inicio y fin. Asi que investigando un poco me he encontrado con KeyFixer Firefox Como me interesaba como funcionaba he mirado lo que hay dentro del .app y realmente es super sencillo de hacer a mano.

Para arreglar las teclas basta con seguir estos pasos desde un Terminal (IMPORTANTE Cerrar Firefox antes de cambiar nada y conviene hacer una copia del fichero)

$ cp /Applications/Firefox.app/Contents/MacOS/chrome/toolkit.jar /tmp
$ cd /tmp ; unzip toolkit.jar /tmp
$ vi content/global/platformHTMLBindings.xml

Editamos las siguientes lineas:












Una vez guardado el fichero, volvemos a generar el .jar

/tmp$ jar cf toolkit.jar content
/tmp$ cp toolkit.jar /Applications/Firefox.app/Contents/MacOS/chrome/toolkit.jar

Arrancamos Firefox y ya tenemos funcionando las teclas de inicio y fin como toca.

Blog

MacOSX 10.4.8 Update

El otro dia estaba probando el nuevo kernel 2.6.18.1 en mi debian-ppc para ver si ya funcionaba bien el sonido en el powerbook. Despues de recompilar, reinicie y el sonido iba perfectamente, asi que me puse a actualizar la debian y mirar de configurar las xorg con el driver r300. Mientras estaba haciendo el dist-upgrade, derepente salieron errores del sistema de ficheros XFS y la maquina se quedo frita, reincie, y la maquina ya no arrancaba… daba errores en el sistema de ficheros. Cogi mi Ubuntu Live PPC, y la arranque para ver si podia acceder al disco, y desde el CD iba todo correcto, hice un xfs_check y un xfs_repair, reinicie, y nada, no arrancaba, asi que como tenia unos 70gb para linux y no los estaba usando, decidi formatear y usar todo el disco para MacOSX y ya mas adelante cuando tenga mas tiempo, montar linux como dios manda.

Asi que cogi, copie todo por scp a mi otra maquina, reinicie, reparticione, formatee e instale MacOSX Tiger con los DVDs que me venian con el portatil. Una vez instalado, volvi a copiar todos los datos y me puse a ordenar e instalar todo el software necesario para trabajar. Mientras instalaba cosas, me puse a bajarme los updates de MacOSX, como siempre, despues del update me pedia que reiniciara, yase me hizo raro que mientras me pedia que reiniciara, yo intentaba seguir trabajando y no me dejaba abrir aplicaciones nuevas, pero bueno, supuse que era algun cambio en la actualizacion, que al reiniciar todo iria bien, asi que acabe con lo que estaba haciendo y reinicie, cual fue mi sorpresa al ver que despues de reiniciar se me quedaba con la manzanita y la ruedecita girando sin cargar… al principio pense que la actualizacion estaba cambiando algo… pero despues de 30 min ya me parecia mas raro.

Despues de investigar, vi que le pasaba a mas gente y era por culpa de la actualizacion 10.4.8, y nadie lo consiguio arreglar, solo formatear y volver a instalar… menos mal que se puede entrar en modo single-user (manzanita+s) y trabajar desde consola sin perder los datos… asi que despues de mucho intentar, me he resignado y volvere a instalarlo todo, y como tengo que aprovechar para llevarlo al servicio tecnico para que me miren el cdrom que hace unos ruidos muy raros, no instalare nada mas que MacOSX y sus actualizacions