[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: nuevo y pregunta



El día 22 may 2003, Jesús Roncero escribía:
> Hola, llevo ya un tiempo "lurking" esta lista de correo. Así que sirva este 
> mensaje de presentación. Hace ya tiempo que uso debian y cada día estoy más 
> encantado. 
> 
> Tengo en mi casa un sistema de sensores de temperaturas conectados a una caja 
> debian que me va registrando la temperatura y haciendo unas bonitas gráficas 
> (http://www.roncero.org/temp). Utilizo un programa que lee de los sensores 
> http://www.brianlane.com/digitemp.php y, al no encontrarse este empaquetado 
> para debian ni tenerlo el autor en su web me gustaría crearle unos debs.
> 
> Teo Ruíz Suárez me animó a empaquetarlo y que si tenía algún problema le 
> preguntase (gracias). Como veo que lee esta lista, hago mis preguntas aquí y 
> así las comparto con todos vosotros (¿es la lista correcta?).

 Sí.

> 
> El programa en sí no es mucha cosa, se compone de un binario y poco más, algo 
> de documentación y los readme. No tiene ni página man (se qu epara debian hay 
> que hacer una). el fichero de configuración se guarda en el directorio que tu 
> le especifiques (no tiene por qué ser el $HOME/), con lo cual es más fácil 
> hacerlo. He estado haciendo un paquete siguiendo la guía del nuevo mantenedor 
> de debian y, la verdad, no he tenido muchos problemas después de leerme casi 
> todo el tema. Aunque tengo algunas dudas/problemillas que me gustaría 
> comentar.
> 
> La primera dificultad que le veo, es que los fuentes y el makefile están 
> preparados para crear dos tipos de binarios. Resulta que el sistema éste de 
> los sensores puede utilizar dos tipos de adaptadores (para el puerto serie), 
> uno pasivo (que te puedes hacer tu si tienes maña y soldando) y otro activo, 
> que le puedes comprar al fabricante (que lleva unchip para gestionar toda la 
> comunicación con el bus). El makefile está diseñado para que construyas o 
> bien un binario u otro, eligiendo algunos ficheros fuente en C u otros, 
> dependiendo del tipo de adaptador que tengas. El resultado es que tienes un 
> binario, con el mismo nombre pero preparado para un sistema u otro.
> O sea, yo hago make ds9097 y tengo soporte para el adaptador pasivo. Si hago 
> make ds9097u tengo soporte para el adaptador activo.
> 
> Para hacer unas pruebas, modifiqué el makefile para que hiciese sólo el 
> binario para el ds9097, que es el adaptador que yo tengo. Y creé el deb. Sólo 
> tuve un problema y es que no me incluyó la página man que están en 
> debian/digitemp.1 (¿hay que ponerlo así, no?). De todas formas, la página era 
> la de ejemplo y no se si hice algo mal. tengo que seguir investigando. 
> Hacer un paquete único así, con este, me ha resultado en cierto punto fácil, 
> pero supongo que la aproximación para tratar este software (los dos binarios) 
> es un tanto diferente.

 La página de manual la tienes que incluir tú mediante una orden en el
 debian/rules. Como supongo que estarás usando debhelper, mírate la
 página de dh_installman.


> Primeramente, había pensado en hacer dos paquetes, uno para que tuviese cada 
> binario, a partir de los mismos fuentes. Supongo que eso se hace eligiendo 
> "multiple package" con el dh_make, ¿no? y luego modificando los ficheros 
> debian/* en concordancia pero, si en ámbos paquetes el binario ses llama 
> igual, tendrán que ser incompatibles, no? Otra forma sería que el binario se 
> llamase de de distinta forma, ie digitemp y digitempu, pero eso debería 
> depender del upstream, no?
> 
> Me gustaría recibir algún consejo de cómo hacer esto y/o alguna indicación al 
> respecto para ir trabajando sobre el  paquete y,si tengo alguna duda, 
> preguntarlo aquí.

  Lo de los dos paquetes es un poquillo complicado, porque tienes que
  hacer que el programa se compile dos veces, una con cada opción. No es
  que sea imposible, sólo digo que no es trivial y hay que entender el
  proceso.

  Dos ejemplos de cómo hacer esto los tienes en abiword y vim. Bájate
  las fuentes y mírate cómo lo hacen. Básicamente la cosa consiste en
  tener "objetivos" del debian/rules paralelos. Así tendrías un
  build-serial y un build-smart (por ejemplo), un install-serial y un
  install-smart y así. Lo que tienes que hacer es que el
  dpkg-buildpackage los llame en el orden correcto (clean, cofigure,
  build-serial, install-serial, clean-serial, build-smart,
  install-smart).

  El problema de los nombres se soluciona o haciendo los paquetes con un
  conflicts o cambiando el nombre al binario. Lo más fácil es lo
  primero, porque en el otro caso, aunque cambiar el nombre es fácil (es
  un 'mv' en el debian/rules) te deberías meter con historias de
  alternativas para que haya un comando 'digitemp' que es el que espera
  el usuario.

  Un saludo y ánimo :)

-- 
  Jose Carlos Garcia Sogo
     jsogo@debian.org

Attachment: pgpptxe30Babs.pgp
Description: PGP signature


Reply to: