Veamos una forma de compilar ZeroC-IceE para usarlo en el Chumby.
Esta receta se parecerá mucho a su análoga de Ice en la fonera: Ice-E en OpenWRT. La diferencia estriba en que la plataforma destino, en vez de ser MIPS es ARM. Realmente, esta vez creo que va a ser más sencillo 
)Como sabrás, para poder usar IceE, es necesario disponer de los translators, que crean los stubs a partir de las interfaces Slice que vayamos a usar. Puesto que son generadores de código, y por tanto, se ejecutan en la máquina que usamos para desarrollar, no se deben compilar para ARM. Así pues, los instalamos como si de cualquier otra cosa se tratara:
CHROOT@Chumby:~# apt-get update
CHROOT@Chumby:~# apt-get install icee-translators
Esto sería lo ideal, pero si solo tienes los sources de SID, a día de hoy (28/07/08) te va dar un errorcito tal que así:
Los siguientes paquetes tienen dependencias incumplidas:
icee-translators:
Depende: slice2cppe pero no va a instalarse
Depende: slice2javae pero no va a instalarse
Tranquilidad, no te asustes. Se soluciona colocando los repos de Lenny (que sí tienen lo que hay que tener…):
CHROOT@Chumby:~# cat /etc/apt/sources.list
deb http://ftp.es.debian.org/debian sid main contrib non-free
deb-src http://ftp.es.debian.org/debian sid main contrib non-free
CHROOT@Chumby:~# echo “deb http://ftp.es.debian.org/debian/ lenny main contrib non-free” >> /etc/apt/sources.list
CHROOT@Chumby:~# apt-get update
CHROOT@Chumby:~# apt-get install icee-translators
…
Con esto debería bastarte. Si aún así sigues teniendo problemas, siempre te queda la opción de bajarte las fuentes de la Web de ZeroC-IceE. De nuevo, a día de hoy es posible que cuando vayas a compilar los translators, te encuentres con el siguiente problema:
c++ -c -I.. -I../../include -DICE_API_EXPORTS -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g BasicStream.cpp
In file included from ../../include/IceE/Proxy.h:25,
from ../../include/IceE/BuiltinSequences.h:22,
from ../../include/IceE/Properties.h:16,
from BasicStream.cpp:11:
../../include/IceE/Outgoing.h:54: error: ISO C++ forbids declaration of ‘auto_ptr’ with no type
../../include/IceE/Outgoing.h:54: error: invalid use of ‘::’
../../include/IceE/Outgoing.h:54: error: expected ‘;’ before ‘<’ token
../../include/IceE/Outgoing.h:92: error: ISO C++ forbids declaration of ‘auto_ptr’ with no type
../../include/IceE/Outgoing.h:92: error: invalid use of ‘::’
../../include/IceE/Outgoing.h:92: error: expected ‘;’ before ‘<’ token
Que se soluciona de una forma un tanto… en fin, se soluciona añadiendo las siguientes lineas en los siguientes ficheros:
En include/IceUtil/Config.h:
// // Some include files we need almost everywhere. // #include <string.h> /* <------ Esta linea */ #include <limits.h> /* <------ Esta linea */ #include <cassert> ...
En include/Slice/DoNetNames.h:
#ifndef DOTNETNAMES_H #define DOTNETNAMES_H #include <string.h> /* <------ Esta linea */ #include <string> namespace Slice { ...
Esta es la manera que se me ha ocurrido a mi, seguro que encuentras una mucho mejor. Si así es, te agradecería que me lo comentaras. Si necesitas algún paquete más para compilar los translators, sabes que usando apt-get build-dep icee-translators se instalan, ¿verdad? 
Ahora toca la parte más jugosa
. Creo (y si no llevo razón, por favor, quitadmela) que IceE no esta empaquetado para ARM, o por lo menos, no esta en los repos oficiales. Por ello, lo primero es descargarse las fuentes. Lo puedes hacer desde la web de ZeroC-IceE o usando el repositorio de Debian, tú eliges.
Nota: si no te has descargado antes las fuentes de ningún paquete y estas en el chroot de mi anterior receta, necesitas instalarte el paquete dpkg-dev.
CHROOT@Chumby:ice# apt-get source zeroc-icee
…
Ahora es buen momento para configurar la instalación. Entra en el directorio de Ice. En el fichero config/Make.rules tienes algunos parámetros con los que jugar. Aquí dependerá de tus necesidades en concreto. Yo, personalmente, he dejado las siguientes variables así:
prefix = /usr/icee OPTIMIZE_SPEED = yes STATICLIBS = yes
Tendrás que modificar tus variables de entorno para que el compilador busque en las rutas correspondientes a esta instalación (es decir, en /usr/icee/lib y /usr/icee/include) lo que necesite (o crear enlaces simbólicos…). Como estamos en una jaula, no importa ensuciarnos las manos 
Antes de compilar, un pequeño pero importante detalle: ¡tenemos que especificar que compilador usar! Para ello, basta con:
CHROOT@Chumby:zeroc-icee-1.2.0# export CXX=arm-linux-g++
CHROOT@Chumby:zeroc-icee-1.2.0# export AR=arm-linux-ar
Y listo. Ya puedes hacer el esperado make
CHROOT@Chumby:zeroc-icee-1.2.0# make
…
Si tarda mucho la compilación, haztelo mirar, eso no es normal
Cuando haya terminado, seguro que estarás deseoso de probar el invento, ¿no? Pues lo vamos a hacer usando el típico Hello World
Para la ocasión, he empaquetado un pequeño ejemplo, que crea el servidor usando el compilador cruzado, y el cliente con el compilador para x86. De esta forma, puedes probar el ejemplo desde tu equipo y cerciorarte de que no te miento.
Para probarlo haz lo siguiente:
FIXME: esta parte esta sin terminar. para ir abriendo boca, mírate los demos en IceE-1.2.0/demo/IceE/ 
Comentarios
Bug en Sid
Pues ya que te has tirado el rollo en escribir la receta y tal, digo yo que por el mismo precio podías reportar el bug que has encontrado al bts de Debian ¿no?
Cierto
Es cierto, creo que deberia reportar el BUG. Harelo.
EDITADO: El bug ya esta reportado, y yo sin saberlo
. Bug en zeroc-icee. Ya me extrañaba a mi...
_________________________________________________________________________________
"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1
_________________________________________________________________________________
"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1
Madre mía
que productividad! Yo creo que quieres ganar puntos para trabajar en ZeroC, o en Chumby...
Enhorabuena por la receta.
No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.
Jajajaja...
es que estoy compitiendo con Lk2 para ver quien saca más recetas del Chumby...
Gracias por tu apreciación.
Un Salido... digo saludo.
_________________________________________________________________________________
"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" -GCC 4.3.1-
_________________________________________________________________________________
"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1
Sin color
Más que lo que me puedes sacar en una competición en esto... ¡madre mía!
Pedazo de receta. ¡¡¡Iceeeeee!!!! ¡Qué señor!
Ufff
"Al final me pongo colorado..." Pero si esto SÍ que es trivial!!
Gracias por comentar, y te toca a ti ahora 
_________________________________________________________________________________
"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" -GCC 4.3.1-
_________________________________________________________________________________
"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1
OpenSuse 11.0 y ICE ( ZeroC )
Yo tambien tenia ese problema compilando el Ice finalmente he pasado del gcc 4.3.1 a gcc 4.1 y todo ha funcionado.
En la pag de Ice pone que el gcc 4.3.1 no esta soportado asi que ...