MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

¿Por qué se retrasará la salida de debian etch?
  • Puede ser por los problemas con Mozilla...

  • o bien, puede ser porque todavía hay muchos RC (release critical) bugs....

NO!!!!!!!!!

Corren rumores de que uno de los motivos de retraso del lanzamiento de Debian etch sea debido a..... (explicación en este blog)


Continua de verdad (no de broma)

 (Más)



El I Concurso Software Libre empieza a andar.
Aprovechando que se ha publicado la lista oficial de proyectos participantes, y viendo que casi somos 100, creo que se debería dar de alta una lista de correo para  resolver las dudas o problemas que vayan surgiendo durante el desarrollo de los proyectos.

Supongo que el proyecto de la forja csl-cusladmin es de la organización, por lo que una lista del tipo csl-cusladmin-participantes, o algo parecido, sería bastante útil.

El planet ha quedado muy guapo, enhorabuena a la organización.




TCOS news
Después de haber realizado el papeleo hoy he empezado a trabajar en algunas cosas de TCOS. Por ejemplo, es bastante importante que las notificaciones de tcos-devices se muestren cuando realmente se ha montado o desmontado algo en el terminal no cuando se haga la petición.

He movido todo mi entorno de desarrollo a la forja de rediris, desde donde ahora se podrán descargar las nuevas versiones, ya avisaré como a su debido tiempo.

He creado unas listas de correo propias para el desarrollo de TCOS (alguien ya me lo ha pedido por correo):
  • cls-tcos-devel, destinada a desarrolladores y colaboradores de tcos.
  • cls-tcos-usuarios, destinada a solución de dudas, problemas de instalación y configuración de tcos.
También he creado algunas tareas que se me han ido ocurriendo pero seguro que entre todos me podeis indicar qué mas se puede añadir/mejorar en TCOS.

Esta tarde he estado jugando con un mini-micropc (MicroClient Jr.), es una cajita metálica de menos de 12 cm de lado y apenas 4-5 cm de alto, tiene un procesador de una velocidad aproximada a 200MHz, 128 Mb de RAM, tarjeta de red, 3 USB, puerto ps/2, y tarjeta gráfica. Se puede ver un reportaje en linuxdevices o la web del fabricante.

TCOS sin ningún apaño ha arrancado perfectamente (previa configuración del servidor dhcp), el kernel se quejaba de no saber qué vendedor es la CPU (es SiS) pero en unos 45 segundos ya me podía loguear en el servidor. Es un poco más lento que los equipos viejos que estamos usando ahora (pentium II 450) pero en cambio, totalmente silencioso, muy pequeño gasta muy poca electricidad y da un toque hasta «pijo». Funciona casi todo correctamente, aunque para la tarjeta de sonido tendremos que esforzarnos un poco (sis7019) porque parece que no esta soportada en los kernel de serie. Ver fotos.

Aprovechando el trabajo de este fin de semana he probado el instalador de TCOS en el disco duro (ahorra tener una tarjeta de red cara o usar disquetes) y parace que la tarjeta SD del MicroClient es reconocida como /dev/hdb (esclavo del primer bus IDE), supongo que el maestro es el conector para un posible disco duro de 2,5" (de portatil).

La tarjeta de red es una Realtek con soporte PXE y RBL lo que hace muy sencillo tener un terminal en cualquier parte. No he mirado a fondo la BIOS pero si permite arrancar desde USB puede ser un buen equipo para pequeñas distros USB-live.

El resto del hardware ( al menos lo que dice lspci ) es del vendedor SiS, por lo que supongo que la tarjeta gráfica (que funciona muy bien con vesa) puede funcionar incluso mejor con el driver sis.

Mañana seguiré con los test, y gracias a todos por los mensajes de apoyo y enhorabuena, qué sería de mi sin vosotros....




I Concurso de Software Libre [ if self.is_acepted() ]
Hoy se hacían públicos los proyectos que van a participar en la primera edición del I Concurso de Software Libre, y afortunadamente he sido uno de los seleccionados.

Hay que cumplir con el papeleo y de momento estoy creando un proyecto en la forja de rediris (el alta de usuario lo hice ayer, ya que estoy también en el grupo de desarrollo de UniDistro, del que ya hablaré en otro artículo) y parece que tengo problemas con el nombre unix del proyecto....

Como segunda condición piden un blog, aún no se si crear uno nuevo y exclusivo para el concurso o seguir en este en una nueva categoría (que ya he creado), de paso anuncio que ahora las categorías se pueden sindicalizar (RSS, Atom).

Lo que más pena me da es que no voy a poder trabajar con mi recién estrenado trac, en el que ya había colgado muchísima documentación en el wiki y había instalado unos plugins bastante chulos.... preguntaré si me dejan usar trac en la forja como frontend...

Supongo que cuando tenga todo listo empezaré a subir cosas al servidor svn y a redactar las metas que espero conseguir durante la duración del concurso, parte de TCOS ya está hecho (no muy bien programada por cierto) así que aprovecharé para hacerlo más genérico (no sólo de debian vive el hombre), reescribir muchas partes (TcosMonitor sobre todo) y añadir lo que se nos vaya ocurriendo.

Gracias a la Universidad de Sevilla y a los organizadores del concurso.






Flash 9-beta para linux (no alegrarse demasiado)
Esta mañana depues de ver que había salido la beta me la he descargado y la he probado junto a pulseaudio. ¡No funciona!

En un principio, el plugin es un archivo bastante gordo:

$ ls -lh firefox/plugins/libflashplayer.so
-rw-r--r-- 1 mario mario 6,5M 2006-10-18 20:15 firefox/plugins/libflashplayer.so

y eso que si que le han pasado el strip!!!! (cosa que no han hecho con gflashplayer, el reproductor de flash sin navegador)

$ file firefox/plugins/libflashplayer.so
firefox/plugins/libflashplayer.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped

Está enlazado con muchísimas cosas (ldd firefox/plugins/libflashplayer.so) , me parece que para lo que es un simple plugin de navegador no necesitaba ni la mitad.

La prueba de fuego ha sido ejecutar el navegador entrar en algún sitio con flash y audio y ver que pasaba en la consola, muchos errores del tipo:

*** PULSEAUDIO: Unable to connect: Connection terminated

y en el panel de control (pavucontrol) muchísimas conexiones de Macromedia Flash a través del plugin alsa-pulseaudio, a partir de 64 se ha cansado y ha empezado a denegarlas:

sink-input.c: Failed to create sink input: too many inputs per sink.
protocol-native.c: Warning! Too many connections (64), dropping incoming connection.

Resumiendo, no soy un programador experto, no he hecho ingeniería inversa al plugin (ldd, strings, o file no son herramientas de hacker) pero he descubierto que se va a llevar muy mal con ALSA (y eso que antes no se llevaba demasiado bien con OSS) ya que crea muchas conexiones al dispositivo de sonido, quizás por esto sea que algún usuario dice que se le cuelga a mitad de los videos de youtube...


En fin que todos sabemos por qué el software privativo es malo, estos pequeños comentarios vienen a demostrarlo un poco más.

NOTA: paso de hacer un reporte de bug a gente que no desarrolla software libre.




Al final, ¿que pasa con el firefox de debian?
Acabo de leer un artículo en inglés en el que me han quedado claras, claritas todas las cosas de debian vs mozilla, había pensado traducirlo pero creo que mejor voy a hacer un resumen de los mejores momentos. Le he añadido pequeños aportes personales que demuestran un poco mi postura en el asunto. los originales los puedes encontrar en:

Facts about Debian and Mozilla
o
Facts about Debian and Mozilla 2

NOTA: No soy buen traductor así que alguna frase puede que sea al revés.
NOTA2: Me niego a poner Mozilla® o Firefox®, alla donde veas cualquiera de estas palabras mentalmente deberás sustituirla para no violar la marca registrada.

Cosas que Mozilla echa en cara a Debian

Debian rompe la opción --enable-official-brading

Semi-verdad, han reemplazado la cadena "Bon Echo/Deer Park" por Firefox y han cambiado el logo oficial por el logo que distribuye debian. Esta opción no funciona porque no estan los logos originales.

Los Logos de firefox estan sujetos a copyright (o marca registrada), Debian piensa que no son libres

Los derechos de autor y la marca registrada son distintos. Mozilla ha impuesto que no sean libres para que se pueda ver más claro que estan sujetos a registro de marca, Debian piensa que los logos no son libres y punto. (y yo añado, si no son libres [editar, redistribuir] no son libres)

Debian no colabora correctamente con Mozilla enviando 100000 lineas de parches ininteligibles

(añado yo: debian toma el código fuente de un paquete y sin modificarlo genera un archivo diff con las cosas que cree que deberia tener o no ese paquete, lo que se llama parche, habitualmente ese parche contiene un directorio debian con los script de los mantenedores (suena mal ya lo se) y con algunos parches del programa, así como información usada por apt-get para colocarlo en el lugar correcto de los mirror)

firefox_2.0~rc1+dfsg-1.diff.gz (que asi se llama uno e los últimos parches de debian sobre firefox) genera algún parche en los archivos de compilación del paquete (a Mozilla parece no importarle las 11 arquitecturas para las que empaqueta debian) añade motores de búsqueda y los iconos libres, además también se añade alguna cosa más:
  • Deshabilitar la actualización automática (apt-get es el encargado de actualizar todo en Debian)
  • Arreglar el objetivo distclean para que limpie realmente el directorio de compilación
  • no compilar la utilidad mangle
  • No usar netstat para generar entropía (números aleatorios)
  • Arreglar los script para que firefox compile en ppa, mips, mips64, m68k, ia64, sparc64, alpha, and arm (arquitecturas no muy apreciadas por Mozilla)
  • Añadir un directorio de preferencias /etc/firefox/ (añado: para configurar cosas como el gestor de sonido)
  • construir chrome menos pesado sin la utilidad zip
  • usar la librería de sistema myspell (añado: ortografía) y no compilarla estáticamente
  • corregir la compilacíon con las librerías pango
  • arreglar los errores en la creación de Makefile cuando no exista Makefile.in (las plantillas de Makefile)
  • quitar el número de versión del directorio de instalación /usr/lib/firefox en vez de /usr/lib/firefox-x.x
  • no construir chromelist.txt que no sirvan para nada
  • arreglar que las aplicaciones de ayuda funcionen correctamente con los parámetros
  • compilar correctamente frente a GTK 2.8
  • compilar correctamente frente a Xrender
  • permitir cambiar la identidad del navegador (user-agent) desde las preferencias en vez de llevarlo empotrado en el código.
  • mejorar que el uso de ratones con más de un botón sean útiles
  • compilar con los flags "-Wl,–as-needed" para que firefox no esté enlazado a cosas que no hacen falta
  • no firmar los binarios hasta que los script que construyen el paquete hayan hecho strip en ellos (reducción de espacio en binarios)
(añado: los parches arreglan cosas, no las rompen, si Mozilla no puede/quiere revisar los parches o decide no aceptarlos es problema suyo)

Muchos de estos ajustes han sido tomados del mismo CVS de Mozilla y otros por razones obvias los aplica Debian para que el paquete sea más amigable con el resto de sus paquetes.

Mozilla compila firefox con versiones viejas de gcc cuando la mayoria de las distribuciones usan las últimas causando graves problemas de dependencias (libstdc++) Tambien comentan que Mozilla intenta incorporar muchas librerías dentro de Firefox cuando normalmente suelen estar disponibles en el sistema y no hace falta más que enlazarlas y usarlas.

Debian va a reemplazar Firefox con un "fork" GNU llamado IceWeasel

(añado: fork, o aplicación creada a partir de otra que por diversos motivos legales ya no se puede/debe usar, es una palabra que ha rodado mucho estos últimos días, en el artículo se aclara que técnicamente Debian no va a hacer un fork sino cambiar el nombre a lo que Mozilla llama Firefox)

Para etch Firefox sera renombrado a IceWeasel, y aunque la gente de GNU parece que va a comenzar un fork es realmente una idea muy mala, (añado: duplicar esfuerzos, reinventar la rueda....) de todos modos Debian estará en contancto con ellos en caso de funcionar las cosas...

Mozilla tiene buenas relacciones con otras distros: RedHat, Novell, o Ubuntu

Ubuntu usa los mismos parches que debian además de los que añaden ellos mismos, el problema es que si lo usa Ubuntu no pasa nada si lo usa Debian es porque son unos "frustados fanaticos integristas" (añado: literal)


Me gustaría comentar, como ya dije hace unos días que Ubuntu no era lo que parece (retiro lo de una mierda), siendo quien son, o empiezan a plantar órden o van a acabar haciendo un "patricidio". Debian es actualmente la distribución más grande en desarrolladores y indirectamnete en usuarios y sin ella muchas ideas, proyectos o distribuciones no serían nada. Creo que es el momento de plantar cara a Mozilla y dejar claro que son lo que son gracias a GNU/Linux y que los millones de Firefox que se ejecutan hoy en Windows no estarían allí sin el apoyo que hemos dado los frikis linuxeros para que instalen «un navegador más mejor»

La opción de pasarse a Epiphany va tomando su peso.







Hace un año: Nuevo proyecto: YAMI

Trac, impresionante herramienta para gestion de proyectos
Hace ya bastante que conocía trac para la gestión de proyectos (sobre todo de software libre) y ayer me ha dado por probarlo e instalarlo para la gestión de todo lo relaccionado con TCOS.

La instalación es muy sencilla, en debian hay paquete por lo que "casi" se reduce a un apt-get...

NOTA: he usado /var/soleupix-trac como directorio raiz de trac, sustitúyelo por el que quieras.

Mini howto de instalación de trac en debian

  1. # apt-get install trac
  2. # trac-admin /var/soleupix-trac initenv (el directorio no debe existir)
  3. Editar /var/soleupix-trac/config/trac.ini al gusto, (importante, poner la ruta del directorio donde tenemos el svn)
  4. Configurar usuarios, milestones, versiones, tipos de ticket... con # trac-admin /var/soleupix-trac (para ver los comandos escribir help)
  5. Para habilitar la web hay dos modos, trac está programado en python y puede ponerse un cgi o bien usar el módulo de apache mod_python, yo he usado el módulo de python que recomiendan por ser más rápido:

    • # apt-get install libapache2-mod-python
    • Meter esto dentro de /etc/apache2/sites-avalaible/trac:

      <Location /trac>
      SetHandler mod_python
      PythonHandler trac.web.modpython_frontend
      PythonOption TracEnv /var/soleupix-trac
      PythonOption TracUriRoot /trac
      </Location>

      <Location /trac/login>
      AuthType Basic
      AuthName "myproject"
      AuthUserFile /etc/apache2/trac.htpasswd
      Require valid-user
      </Location>

    • Para crear el fichero de contraseñas:
      # htpasswd2 -c -m /etc/apache2/trac.htpasswd USUARIO ( -c crea el fichero, para añadir más usuarios no ponerlo)

    • # a2enmod mod_python (activar modulo de python)
    • # a2ensite trac (activar sitio trac)
    • # /etc/init.d/apache2 force-reload

  6. A partir de ahora ya podemos entrar en nuestro trac.
Ventajas y características de trabajar con trac:

Trac es una de estas cosas que cuando la descubres te preguntas ¿cómo he podido vivir sin él?

Aprovechando el post, he estado jugando de nuevo con PulseAudio, el sonido en aplicaciones java ya funcionaba pero no así en firefox (flash) y mirando el control de cambios he visto que habia unos cuantos parches curiosos, así he aprendido a usar dpatch-edit-patch que regenera un directorio de fuentes limpio y al salir genera un parche debian en debian/patches/ con lo que hayamos editado. Esta forma es increiblemente práctica para llevar un control de cambios cuando las fuentes las produce otro y tu empaquetas o simplemente usas el paquete pero no te sirve el oficial.

Acabo de empaquetar una versión de pulseaudio (r1401, la última r1404 me da un error muy raro y por lo visto han cambiado alguna cosa con respecto a la memoria y gestión de hilos) en la que funciona el sonido en firefox, y para prueba un screenshot, en el que se pueden ver tres ventanas, a la izda arriba está el mezclador XMLRPC tcos-volume-manager, a la izda abajo tengo abierto un popup de la página goear.com, a la derecha está PavuControl (gestor de canales y volumen de PulseAudio mostrando como PulseAudio ha detectado el plugin de Flash y lo está reproduciendo, lo mejor es que no hay que arrancar firefox de maneras raras ya que el piensa que está sonando por ESound.






xD
Último comentario (el de SERGIO)

UPDATE:
Parece ser que hay mucho sitios donde ocurren este tipo de cosas, NoAlWin me dice que hace tiempo escribió sobre esto, hay un hilo de Bulma que es la leche, (si lo vais a leer entero acordaos de poneros un pañal porque os vais a mear de reiros...)

¡Qué mundo!





Jigdo no funciona en ubuntu dapper.
Llevo unos días muy malos con mi proveedor de internet, resulta que de los 4 Mb que tengo de bajada por las mañanas apenas llega a 1 y por las tardes los test de conexión me dicen que mi velocidad es similar a RDSI....

Quería seguir probando TCOS en ubuntu (aún no me he rendido del todo) pero en vez de hacerlo por el camino dificil (editar el live) me he decidido a usar ubuntu dapper instalado (sobre vmware-server). Estando como está el adsl cualquiera se pone a descargar el cd de ubuntu a 10Kb por lo que me acordé de aquella vez que use jigdo para, usando mi mirror local, construir el dvd de debian sarge para regalarselo a un amigo sin internet....

Total empiezo a buscar archivos jigdo en los mirror de ubuntu...

* No hay archivo jigdo del desktop-cd (es de esperar ya que lleva un squashfs con el sistema instalado, no paquetes deb a granel con el debian installer)

* Me bajo el archivo jigdo de ubuntu-6.06.1-alternate que es la iso de ubuntu pero instalable sin modo live ni nada, problema el archivo jigdo tiene ya tiempo y los "listos" que llevan los mirror de ubuntu han quitado varios paquetes (supongo que por vulnerabilidades, uno es el kernel del instalador) pero no han actualizado el archivo jigdo por lo que hay 60 archivos no descargables....

* Aquí es donde me caliento un montón porque si fueran paquetes no muy importantes no pasa nada pero es el mismo kernel que hace la instalación (2.6.15-26.46), y luego paquetes varios (firefox, driver nvidia, xserver-xorg-core y una lib de mysql) ¿qué les cuesta dejar esos archivos en los mirrors? ¿por qué no actualizan el jigdo?

* Entro en idefix por ssh y me descargo desde alli el alternate-cd en cosa de 3 minutos (es lo que tiene la conexión de la universidad a estas horas), lo monto y voy buscando uno por uno todos los archivos que faltan para meterlos en un tar.gz y descargarlos a mi casa dapper-jigdo-lost-files.tar.gz (62 megas es bastante menos que un cd)

* Por último le digo a jigdo-lite que escanee los paquetes .deb y .udeb que acabo de descargarme y descomprimir.

Parece ser que acabo de constuir la imagen de arranque correctamente:

$ jigdo-lite

Jigsaw Download "lite"
Copyright (C) 2001-2005 | jigdo@
Richard Atterer | atterer.net
Loading settings from `/home/mario/.jigdo-lite'

-----------------------------------------------------------------
To resume a half-finished download, enter name of .jigdo file.
To start a new download, enter URL of .jigdo file.
You can also enter several URLs/filenames, separated with spaces,
or enumerate in {}, e.g. `http://server/cd-{1_NONUS,2,3}.jigdo'
jigdo [./ubuntu-6.06.1-alternate-i386.jigdo]:

-----------------------------------------------------------------
Images offered by `./ubuntu-6.06.1-alternate-i386.jigdo':
1: 'Ubuntu 6.06.1 "Dapper Drake" - Release i386' (ubuntu-6.06.1-alternate-i386.iso)

Further information about `ubuntu-6.06.1-alternate-i386.iso':
Generated on Mon, 07 Aug 2006 18:08:00 +0100

-----------------------------------------------------------------
If you already have a previous version of the CD you are
downloading, jigdo can re-use files on the old CD that are also
present in the new image, and you do not need to download them
again. Mount the old CD ROM and enter the path it is mounted under
(e.g. `/mnt/cdrom').
Alternatively, just press enter if you want to start downloading
the remaining files.

You can also enter a single digit from the list below to
select the respective entry for scanning:
1: ./lost-files
2: /home/mario/Desktop/dapper
3: /mirror/ubuntu/pool
Files to scan: ./lost-files

Not downloading .template file - `ubuntu-6.06.1-alternate-i386.template' already present
Found 60 of the 60 files required by the template
Successfully created `ubuntu-6.06.1-alternate-i386.iso'

-----------------------------------------------------------------
Finished!
The fact that you got this far is a strong indication that `ubuntu-6.06.1-alternate-i386.iso'
was generated correctly. I will perform an additional, final check,
which you can interrupt safely with Ctrl-C if you do not want to wait.

OK: Checksums match, image is good!

Bueno que me voy a poner a instalarlo...




Artículo sobre clientes ligeros y TCOS
Aprovechando la liberación de tcos (0.56.1) y de TcosMonitor (0.15) he escrito un pequeño artículo sobre TCOS, su base teórica, y algunas de las capturas que he venido usando durante estos meses.

Artículo sobre clientes ligeros y TCOS