HowTo: Habilitando la comparticion con Gaim
From iFolder
Traducción al español:
Jorge Mauricio Hernández Torres <jmauricio@gmail.com>
Introducción
Este HowTo mostrará como agregar funcionalidad p2p (Peer-to-Peer) al cliente iFolder usando Gaim (http://gaim.sourceforge.net).
La solucion Gaim de compartición de archivos presentada aquí, consiste de dos partes:
- El Servicio Simias Gaim Domain Thread
- El plugin iFolder Gaim
Este código actualmente sólo funciona en Windows y Linux. Intentamos crear eventualmente un plugin Adium (http://www.adiumx.com/) para Mac OS X, pero nohemos tenido tiempo. Si tienes experiencia y puedes ayudar, por favor comunícate con nosotros.
Prerequisitos
Necesitará una version estable de iFolder. Esto no está cubierto aquí, pero puede encontrar una desde la página de Download
¡No deseo compilar código, solo díganme cómo tenerlo funcionando!
Desafortunadamente no tenemos un proceso para construir automáticamente estos componentes. Cuando tengamos un método, actualizaremos esta sección del HOWTO con la ubicación de los binarios. Si publicamos algunos binarios hechos a mano, los colocaremos en la pagina Download.
Obteniendo el código fuente
Puede checar el codigo fuente directamente desde nuestro depósito de CVS en el sitio de Novell Forge. Para información sobre utilización de CVS con Forge, revise aqui:
http://forge.novell.com/modules/xfmod/cvs/cvspage.php/ifolder/
Necesitará checar el modulo "gaim-ifolder". Como una alternativa a utilizar CVS directamente, puede revisar el depósito CVS con un navegador web y descargar el archivo tarball del código fuente.
Configurando e instalando el Simias Gaim Domain Thread Service
Construir esta porción del Gaim Domain es bastante sencilla. Necesitará conocer el prefijo donde iFolder/Simias está actualmente instalado, necesita saber la misma ubicación donde los binarios están instalados.
Ejecute el siguiente comando para configurar, construir e instalar el Simias Gaim Domain Thread Service (el prefijo mostrado en estas instrucciones es utilizado por los RPMs que nosotros liberamos para la distribucion Novell Linux Desktop):
cd gaim-ifolder
./autogen.sh --prefix=/opt/novell/ifolder3
make
make install (necesitara ejecutar "su root" antes de este comando)
Posterior a esto, necesitará editar un archivo de configuración para habilitar el servicio de thread. El archivo a editar es $prefix/etc/simias-client-bootstrap.config. En este archivo, busque la siguiente línea:
<Service name="Gaim Workgroup Domain" assembly="Simias.Gaim.dll" enabled="False" type="Thread" class="Simias.Gaim.GaimService" />
La línea necesita ser cambiada a "True" en lugar de "False" como a continuación se muestra:
<Service name="Gaim Workgroup Domain" assembly="Simias.Gaim.dll" enabled="True" type="Thread" class="Simias.Gaim.GaimService" />
Esto habilitará el Gaim Domain si nunca antes ha ejecutado iFolder. Este archivo de configuración de inicio es copiado a su directorio de datos de Simias y es nombrado "Simias.config". Si ya está ejecutando iFolder, necesitará actualizar su archivo "Simias.config". Tiene el mismo formato mostrado anteriormente. Está localizado en una diferente ubicación dependiendo de su plataforma:
Linux:
~/.local/share/simias/Simias.config
Windows:
$HOME_DIR\Local Settings\Application Settings\simias\Simias.config
Construyendo e instalando el Plugin de Gaim para iFolder
No gastaremos tiempo en imaginarnos cómo construir el plugin de Gaim para iFolder separado del Gaim mismo. En su lugar, hemos creado un parche para aplicar antes de construir Gaim el cual genera el Plugin en el mismo proceso.
No se preocupe, aqui lo guiaremos a traves del proceso, aunque, si está teniendo problemas configurando Gaim, necesitará resolverlos por sus propios medios ( o con la ayuda de los amistosos amigos de Gaim: #gaim or #wingaim en irc.freenode.net).
En la raíz del módulo gaim-ifolder, actualizaremos el archivo de parches para corresponder con la última version de Gaim (por ejemplo, gaim-1.3.1.patches). Obtenemos el código fuente de Gaim que corresponda con la última versión del archivo archivo de parches. Al momento de escribir esto, la última version de Gaim era la 1.3.1.
Obteniendo el código fuente de Gaim desde el CVS
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gaim login
Solo persione enter para el password.
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gaim checkout \ -r v1_3_1 -d gaim-1.3.1 gaim
Esto descargará Gaim Version 1.3.1 en un nuevo directorio nombrado "gaim-1.3.1".
Parchar el codigo fuente de Gaim para incluir el plugin de Gaim para iFolder
cd gaim-1.3.1
mkdir plugins/gifolder
cp -r <Path to the gaim-ifolder module>/gifolder/* plugins/gifolder
patch -p0 < <Path to the gaim-ifolder module>/gaim-1.3.1.patches
Construyendo Gaim
Sin importar si realmente quiere, no usará los binarios de Gaim producidos aqui. Todo esto es para producir un archivo gifolder.so (Linux) o gifolder.dll (Windows), el cual insertará en la version real de Gaim cuando la construcción (buid) esté finalizada.
Nota: Construir Gaim en Windows es significantemente más dificil que construir en Linux. Asegúrese de seguir todas las indicaciones del sitio de Gaim para configurar el medio ambiente de generación, antes de construir Gaim en Windows.
Linux:
./autogen.sh make
Windows:
make -f Makefile.mingw install
Puede tener un par de problemas sobre permisos de archivos y ejecución durante la generacion, debido a que tienen permisos incorrectos. Si observa esto, ejecute lo siguiente antes de reiniciar la generación:
Linux:
chmod 755 gaim-1.3.1/plugins/gifolder/gsoap/linux-2.7/wsdl2h chmod 755 gaim-1.3.1/plugins/gifolder/gsoap/linux-2.7/soapcpp2
Windows
chmod 755 gaim-1.3.1/plugins/gifolder/gsoap/win32-2.7/wsdl2h chmod 755 gaim-1.3.1/plugins/gifolder/gsoap/win32-2.7/soapcpp2
Instalando el Plugin
Cuando la generación esté completa, existe un archivo que necesitará copiar/instalar antes de ejecutar Gaim:
Linux (El path mostrado aqui corresponde a NLD con Gaim 1.x):
cp gaim-1.3.1/plugins/gifolder/.libs/gifolder.so /opt/gnome/lib/gaim cp gaim-1.3.1/plugins/gifolder/.libs/gifolder.la /opt/gnome/lib/gaim
Windows:
Copie "gifolder.dll" a "C:\Program Files\Gaim\plugins"
Inicio/Reinicio de Gaim
Habilitando el Plugin de Gaim para iFolder
Vaya, dentro de Gaim, a preferencias y seleccione Plugins. Desplácese hasta el plugin de iFolder y asegúrese que está habilitado.
Configuración del Plugin
La página de configuración del plugin en Gaim es, en mayor proporción, un contenedor para cosas que, en su momento, nos gustaría implementar. Algunas cosas funcionan, otras no se sorprenda que no funcionen como usted espera (esto es verdaderamente código a nivel alfa).
Usando la compartición de archivos de Gaim en iFolder
Si sólo ha instalado el plugin de Gaim para iFolder y el Gaim Domain Thread Service, asegúrese de reiniciar iFolder y Gaim para que los nuevos módulos sean cargados.
Dentro de iFolder, deberá ser capaz de crear nuevos iFolders dentro del dominio de Gaim. Su computadora actuará como el servidor iFolder Server para todos los iFolders que usted cree dentro del dominio de Gaim. En otras palabras, las computadoras remotas se sincronizarán con su computadora para obtener actualizaciones de los iFolders compartidos.
La lista integrante/usuario para el dominio Gaim (por ejemplo, la lista de usuarios con las que puede compartir iFolders) es construída habilitando a sus amigos como usuarios de iFolder en Gaim. Haga esto, habilitándolos desde la lista de amigos de Gaim (Buddy List). Simplemente dé click-derecho en un amigo y seleccione: Habilitar compartición de archivos en iFolder ("Enable iFolder File Sharing"). Esto enviará una invitación para unirse al dominio de iFolder en Gaim (agregado como un usuario de iFolder). Si la opción "Enable iFolder File Sharing" no aparece, significa que no tiene el plugin instalado/habilitado.
Cuando un amigo acepta la invitación para ser habilitado como un usuario de iFolder User será agregado a la lista de usuarios con los cuales podrá compartir iFolders. Ahora puede utilizar el cliente estándar de iFolder para agregar el nuevo usuario como integrante de sus iFolders.
Nota: No ha sido probado intensivamente, asi que, si observa problemas, por favor envíe un registro con la descripción del problema.
La característica de compartir públicamente iFolder
La característica de compartir públicamente iFolder es un intento para hacer la compartición de iFolder en Gaim más fácil. Con esta característica habilitada (habilite y deshabilite esto en las preferencias del plugin de iFolder en Gaim) un iFolder es automáticamente creado en su escritorio. Todos y cada uno de los amigos en su dominio de iFolder en Gaim serán automáticamente agregados como integrantes de sólo lectura de este iFolder. Esto hace que compartir archivos sea tan sencillo como arrastrar y soltar (o crear archivos) en la carpeta y todos en el dominio de Gaim automáticamente obtendrán esos archivos.
Hasta ahora, no hay forma de excluir un usuario de iFolder de ser agregado al iFolder públicamente compartido. Dependiendo de la retroalimentación que tengamos, podemos agregar o no esta característica. Dígannos lo que piensa!
FAQs/problemas conocidos/detalles
No funcionará a traves de un Firewall
La solución de compartición de iFolder en Gaim no funcionará a traves de un firewall, todavía. iFolder abre un puerto generado aleatoriamente (el cual puede ver cuando inicia iFolder desde la linea de comandos).
Ambas máquinas que intentan compartir iFolders entre ellas deben ser capaces de verse. Cada una actúa como cliente y servidor. Si un firewall existe entre las dos computadoras, ambos puertos de iFolder (realmente es el proceso Simias quien abre el puerto) deben ser abiertos.
El nombre Public Shared iFolder es fijo
No puede controlar el nombre "Public Shared iFolder" que es creado en su escritorio automáticamente. Ésta es una limitación en el núcleo del código de iFolder que será corregido eventualmente. Si no desea tener automáticamente este iFolder público, deshabilite esta característica en el panel de preferencias de del plugin de Gaim en iFolder (el ultimo checkbox en la pantalla de preferencias).
Lo óptimo sería permitir al usuario especificar el nombre y ubicación de este iFolder automáticamente mantenido. Adicionalmente sería grandioso si usuarios remotos pudieran nombrar la carpeta como ellos deseen. Esto debe ser considerado en el futuro.
Existe un fallo relacionado a este problema. Puede revisarlo y reenviarlo a la lista:
https://bugzilla.novell.com/show_bug.cgi?id=75454
He borrado mi almacenamiento Simias (~/.local). ¿ Seré capaz de acceder a los iFolders que mis amigos compartieron conmigo ?
No (Parcialmente si...continue leyendo).
Cuando borra el almacenamiento Simias, rompe las relaciones iFolder que previamente han sido configuradas con otros amigos. Adicionalmente su membresía en sus iFolders compartidos tambien ha sido rota, porque no tienen información necesaria para conectarse a su computadora.
Aquí esta la parte del "SI parcial". Los datos que ha descargado previamente, estarán en su propio disco duro, así sera capaz de acceder a esos archivos. La carpeta no pertenecerá más a un iFolder. No se sicronizará con ninguna computadora remota de sus amigos.
Para resuscribirse al iFolder de sus amigos, tendrá que remover su antiguo usuario como integrante del iFolder y entonces reingresar. Esto causará que una nueva subscripción/invitación sea enviada a usted, con lo cual será posible unirse de nuevo.
Estoy utilizando una laptop. ¿Qué sucede si mi direccion IP address cambia?
Esta es una de las cosas más importantes. Cuando inicias con otra IP en Gaim, el plugin intercambiará la nueva direccion IP con otros amigos que estén en línea (solamente con aquellos amigos que haya habilitado como usuarios de iFolder). Tan pronto como este intercambio haya ocurrido, los iFolders se sincronizarán de manera usual.
Nota: Si cambia la ubicación de su computadora a una dirección IP detrás de un filewall como se describió en el punto anterior #1, iFolder no será capaz de sincronizarse con otras computadoras incluso si el plugin es capaz de proporcionar una dirección IP actualizada.
¿Que protocolos Gaim pueden ser utilizados?
Sólo el AOL Instant Messenger (AIM/Oscar) puede ser usado hasta ahora. El plugin tiene que publicar información en su perfil de usuario para los usuarios remotos para conocer que tiene instalado el plugin. Cada protocolo manipula la informacion de perfiles de amigo de forma distinta. Como AIM parece ser el más popular, desde nuestro punto de vista, escogimos usarlo inicialmente.
Nota: Algo que no hemos probado es configurar múltiples cuentas AIM en Gaim y utilizar el plugin de iFolder. Es altamente probable que tenga conflictos y sólo una cuenta pueda ser habilitada y utilizada en iFolder. Esta configuración no será soportada en el futuro.
