<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Servidor_d%27echos_%28exercici%29</id>
	<title>Servidor d'echos (exercici) - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Servidor_d%27echos_%28exercici%29"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Servidor_d%27echos_(exercici)&amp;action=history"/>
	<updated>2026-04-03T21:56:00Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Servidor_d%27echos_(exercici)&amp;diff=288&amp;oldid=prev</id>
		<title>83.32.194.17 a 01:06, 3 nov 2008</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Servidor_d%27echos_(exercici)&amp;diff=288&amp;oldid=prev"/>
		<updated>2008-11-03T01:06:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==Demonitzem el servidor==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debianitzem el servidor d'echos (fem un paquet Debian)==&lt;br /&gt;
&lt;br /&gt;
[Basat en un manual del Sergi Tur:&lt;br /&gt;
&lt;br /&gt;
http://atenea.upc.edu/moodle/mod/resource/view.php?id=285373&lt;br /&gt;
&lt;br /&gt;
http://acacha.dyndns.org/mediawiki -&amp;gt; cercar ''Creación de paquetes Debian''&lt;br /&gt;
&lt;br /&gt;
http://www.serni.net/~cosa/doku.php?id=creacio_de_paquets_debian&amp;amp;s=inicial]&lt;br /&gt;
&lt;br /&gt;
Mirar també http://es.wikipedia.org/wiki/Dgb &lt;br /&gt;
&lt;br /&gt;
El format del fitxer .deb és el següent:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nom_del_paquet&amp;gt;_&amp;lt;numero_de_versio&amp;gt;-&amp;lt;numero_de_revisio_debian&amp;gt;.deb &lt;br /&gt;
Quan descarrego un paquet des de Synaptic o apt-get, els paquests es graben normalment a: /var/cache/apt/archives &lt;br /&gt;
&lt;br /&gt;
el format típic dels paquets és .deb, i si faig doble click em trobo amb els empaquetats tar.gz i un binari (que puc obrir amb gedit per veure què hi ha).&lt;br /&gt;
&lt;br /&gt;
Cada paquet Debian és un arxiu ar compost per: &lt;br /&gt;
&lt;br /&gt;
*'data.tar.gz': Fitxers a instal·lar al sistema &lt;br /&gt;
*'control.tar.gz': Fitxers de control, metainformació del paquet. Scripts de manteniment, md5sums dels fitxers, Llista de fitxers de configuració (conffiles), Metadades (fitxer control)&lt;br /&gt;
*'debian-binary': Número de versió del binari Debian&lt;br /&gt;
&lt;br /&gt;
El fitxer 'control' conté les metadades, que és el mateix que trobaríem amb el Synaptic si escollim un paquet i mirem les metadades.&lt;br /&gt;
&lt;br /&gt;
Els continguts d'aquests fitxers venen regulats per la [http://www.debian.org/doc/debian-policy/ Debian Policy]. La Debian Policy és una de les diferències respecte d'altres distribucions. Són les regles que han de complir els paquets, i garanteix la qualitat dels paquets.&lt;br /&gt;
&lt;br /&gt;
Podem consultar les metadades d'un paquet Debian mitjançant la comanda:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dpkg --info talk_0.17-11ubuntu1_i386.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fitxer md5sums conté les sumes de comprovació (checksums) que permeten comprovar que no hi ha cap diferència entre el paquet que tenim i l'original. Per ex,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joan@ubuntu:~$ md5sum xtris_1.15-9_i386.deb &lt;br /&gt;
75787f8144b48de704a059efa844b2f7  xtris_1.15-9_i386.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calcula la suma md5 del paquet, i obtinc un número. Amb aquest número puc saber si s'ha modificat el paquet, i quin és el fitxer que s'ha modificat.&lt;br /&gt;
&lt;br /&gt;
===On s'han d'instal.lar els fitxers?===&lt;br /&gt;
&lt;br /&gt;
S'ha de seguir la FHS (File Hyerarchy System)&lt;br /&gt;
&lt;br /&gt;
El binari és el codi objecte (en la terminologia C), no és el codi font. Els binaris dels programes es poden trobar a:&lt;br /&gt;
&lt;br /&gt;
*binaris&lt;br /&gt;
**/bin -&amp;gt; executables bàsics del funcionament del sistema, per ex ls&lt;br /&gt;
**/sbin (la ''s'' és de superusuari, són els binaris que només pot executar el root)&lt;br /&gt;
**/usr/bin i /usr/sbin : executables secundaris&lt;br /&gt;
&lt;br /&gt;
*llibreries:&lt;br /&gt;
**/lib -&amp;gt; jerarquia tpal&lt;br /&gt;
**/usr/lib -&amp;gt; jerarquia secundària&lt;br /&gt;
&lt;br /&gt;
les llibreries van en paquets apart&lt;br /&gt;
&lt;br /&gt;
*/etc: fitxers de configuració&lt;br /&gt;
*/etc/skel (esquelet) -&amp;gt; quan es genera un nou usuari, tot el que es col.loca aquí es col.loca a la seva home (d'aquesta manera es pot definir perfils d'usuari)&lt;br /&gt;
&lt;br /&gt;
*/usr -&amp;gt; jerarquia secundària on s'emmagatzema les dades de només lectura entre els usuaris.&lt;br /&gt;
*/usr/src -&amp;gt; codi font dels programes&lt;br /&gt;
&lt;br /&gt;
/usr és la carpeta que ocupa més. No cal fer una còpia d'aquest asxiu perquè amb l'us de les aplicacions el seu contingut no canvia. Si reinstal.lo una aplicació la política sempre és que sempre em respecuarà el fitxer de configuració antic, (o bé m'ho preguntarà, sap que el fitxer de configuració ha canviat gràcies al md5).&lt;br /&gt;
&lt;br /&gt;
*/var: dades variables&lt;br /&gt;
*/lost+found&lt;br /&gt;
*/proc, /boot, /opt són carpetes que en realitat estan a la RAM&lt;br /&gt;
&lt;br /&gt;
A mode d'exemple anem a instal.lar un paquet i veure el rastre que deixa en la màquina. Instal.larem ksnapshot (serveix per fer captura de pantalles)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install ksnapshot&lt;br /&gt;
$ dpkg -l # ensenya tots els paquets instal.lats en el sistema&lt;br /&gt;
$ dpkg -L ksnapshot # ensenya tots els fitxers instal.lats d'aquesta paquet.&lt;br /&gt;
$ dpkg -L ksnapshot | grep bin # miro els executables&lt;br /&gt;
$ dpkg -L ksnapshot | grep doc # miro la documentació&lt;br /&gt;
$ dpkg -L ksnapshot | grep man # miro si té manual man&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creació del paquet===&lt;br /&gt;
&lt;br /&gt;
Tot això, per sort, ho farem amb una eina expressa per a crear paquets, '''dh_make''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install dh-make #compte perquè el paquet és dh-make però el binari és dh_make&lt;br /&gt;
$ man dh_make&lt;br /&gt;
NAME&lt;br /&gt;
       dh_make - Debianize a regular source archiv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Partim de la carpeta /echoDimoni, que conté les fonts&lt;br /&gt;
(les fonts originals del paquet estan a https://svn.lafarga.cpl.upc.edu/dades/svn/plinux/sessio10/ (anonymous/anonymous))&lt;br /&gt;
Primer de tot instal.lem totes les einds necessàries:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install dh-make fakeroot build-essential devscripts debhelper&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
debhepler ens proporciona una sèrie de guions de shell que ens ajuden en la creació de paquets debian. Podem obtenir la llista de guions de shell executant:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dpkg -L debhelper | grep bin&lt;br /&gt;
/usr/bin&lt;br /&gt;
/usr/bin/dh_builddeb&lt;br /&gt;
/usr/bin/dh_clean&lt;br /&gt;
/usr/bin/dh_compress&lt;br /&gt;
/usr/bin/dh_desktop&lt;br /&gt;
/usr/bin/dh_fixperms&lt;br /&gt;
/usr/bin/dh_gconf &lt;br /&gt;
/usr/bin/dh_gencontrol&lt;br /&gt;
/usr/bin/dh_iconcache&lt;br /&gt;
/usr/bin/dh_install&lt;br /&gt;
/usr/bin/dh_installcatalogs&lt;br /&gt;
/usr/bin/dh_installchangelogs&lt;br /&gt;
/usr/bin/dh_installcron&lt;br /&gt;
/usr/bin/dh_installdeb&lt;br /&gt;
/usr/bin/dh_installdebconf&lt;br /&gt;
/usr/bin/dh_installdirs&lt;br /&gt;
/usr/bin/dh_installdocs&lt;br /&gt;
/usr/bin/dh_installemacsen&lt;br /&gt;
/usr/bin/dh_installexamples&lt;br /&gt;
/usr/bin/dh_installinfo&lt;br /&gt;
/usr/bin/dh_installinit&lt;br /&gt;
/usr/bin/dh_installlogcheck&lt;br /&gt;
/usr/bin/dh_installlogrotate&lt;br /&gt;
/usr/bin/dh_installman&lt;br /&gt;
/usr/bin/dh_installmanpages&lt;br /&gt;
/usr/bin/dh_installmenu&lt;br /&gt;
/usr/bin/dh_installmime&lt;br /&gt;
/usr/bin/dh_installmodules&lt;br /&gt;
/usr/bin/dh_installpam&lt;br /&gt;
/usr/bin/dh_installppp&lt;br /&gt;
/usr/bin/dh_installudev&lt;br /&gt;
/usr/bin/dh_installwm&lt;br /&gt;
/usr/bin/dh_installxfonts&lt;br /&gt;
/usr/bin/dh_link&lt;br /&gt;
/usr/bin/dh_listpackages&lt;br /&gt;
/usr/bin/dh_makeshlibs&lt;br /&gt;
/usr/bin/dh_md5sums&lt;br /&gt;
/usr/bin/dh_movefiles&lt;br /&gt;
/usr/bin/dh_perl&lt;br /&gt;
/usr/bin/dh_python&lt;br /&gt;
/usr/bin/dh_scrollkeeper&lt;br /&gt;
/usr/bin/dh_shlibdeps&lt;br /&gt;
/usr/bin/dh_strip&lt;br /&gt;
/usr/bin/dh_suidregister&lt;br /&gt;
/usr/bin/dh_testdir&lt;br /&gt;
/usr/bin/dh_testroot&lt;br /&gt;
/usr/bin/dh_testversion&lt;br /&gt;
/usr/bin/dh_undocumented&lt;br /&gt;
/usr/bin/dh_usrlocal   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
concretament, per ex, dh_installinit és l'encarregat d'instal.lar el dimoni a la carpeta /etc/init.d (cosa que encara no em funciona)&lt;br /&gt;
&lt;br /&gt;
El primer pas és copiar la carpeta echoDimoni a una carpeta que segueixi els convenis de Debian, i ens situem en la nova carpeta (a partir d'ara, totes les operacions les farem des de la carpeta echod-0.1):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd sessio10&lt;br /&gt;
$ cp -r echoDimoni echod-0.1&lt;br /&gt;
$ cd echod-0.1/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dh_make -e joan_quintana@yahoo.com --createorig&lt;br /&gt;
822-date: avís: This program is deprecated. Please use 'date -R' instead.&lt;br /&gt;
&lt;br /&gt;
Type of package: single binary, multiple binary, library, kernel module or cdbs?&lt;br /&gt;
 [s/m/l/k/b] s&lt;br /&gt;
&lt;br /&gt;
Maintainer name : Joan Quintana&lt;br /&gt;
Email-Address   : joan_quintana@yahoo.com &lt;br /&gt;
Date            : Sun, 02 Nov 2008 09:57:30 +0100&lt;br /&gt;
Package Name    : echod&lt;br /&gt;
Version         : 0.1&lt;br /&gt;
License         : blank&lt;br /&gt;
Type of Package : Single&lt;br /&gt;
Hit &amp;lt;enter&amp;gt; to confirm: &lt;br /&gt;
Done. Please edit the files in the debian/ subdirectory now. You should also&lt;br /&gt;
check that the echod Makefiles install into $DESTDIR and not in / .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S'ha creat la carpeta ''debian'' amb tots els fitxers necessaris. En la man page no hi ha informació sobre l'opció --createorig&lt;br /&gt;
&lt;br /&gt;
En la carpeta /debian es creen tota una sèrie de plantilles que es poden editar i serveixen per configurar el paquet. A mode d'exemple, &lt;br /&gt;
*cron.d.ex: If your package requires regularly scheduled tasks to operate properly, you can use this file to configure it. If you use this file, rename it to cron.d.&lt;br /&gt;
*init.d.ex: If your package is a daemon that needs to be run at system startup rename this file to init.d and adjust it toyour needs.&lt;br /&gt;
*manpage.1.ex and manpage.sgml.ex: These files are templates for man pages if the package does not already have one.&lt;br /&gt;
*menu.ex: This file is used to add your package to the Debian menu. Ubuntu does not use Debian menu files but uses the freedesktop.org standard .desktop files.&lt;br /&gt;
&lt;br /&gt;
També s'ha fet una còpia de l'original a ~/echoDimoni/echod-0.1.echod-0.1.orig&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls -la ..&lt;br /&gt;
drwxr-xr-x  3 root root       4096 2008-11-02 11:04 echod-0.1&lt;br /&gt;
drwxr-xr-x  2 root root       4096 2008-11-02 11:04 echod-0.1.orig&lt;br /&gt;
drwxr-xr-x  2 root root       4096 2008-11-02 11:02 echoDimoni&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La carpeta echod-0.1.orig serà utilizada més tard per a crear els fitxers font de Debian.&lt;br /&gt;
&lt;br /&gt;
Un cop tenim la carpeta debian, ja estem en condicions de crear un paquet Debian a través de la comanda dpkg-buildpackage. Per tal de crear el paquete s'ha de ser superusuario o millor encara, utilitzar la comanda fakeroot: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man dpkg-buildpackage&lt;br /&gt;
NAME&lt;br /&gt;
       dpkg-buildpackage - build binary or source packages from sources&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dins de echod-01, faig fakeroot (root fals), que és un aplicatiu que em dóna un prompt (#), en el que executo dpkg-buildpackage que és el que comença a treballar. Fixar-se que en el prompt em surt root. Al final, exit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fakeroot&lt;br /&gt;
$ dpkg-buildpackage # comença a treballar...&lt;br /&gt;
...&lt;br /&gt;
dpkg-deb: s'està construint el paquet «echod» en «../echod_0.1-1_i386.deb».&lt;br /&gt;
 dpkg-genchanges&lt;br /&gt;
dpkg-genchanges: including full source code in upload&lt;br /&gt;
dpkg-buildpackage: full upload (original source is included)&lt;br /&gt;
$ ls -l ..&lt;br /&gt;
drwxr-xr-x 4 root root 4096 2008-11-02 11:34 echod-0.1&lt;br /&gt;
-rw-r--r-- 1 root root 7532 2008-11-02 11:34 echod_0.1-1.diff.gz&lt;br /&gt;
-rw-r--r-- 1 root root  310 2008-11-02 11:34 echod_0.1-1.dsc&lt;br /&gt;
-rw-r--r-- 1 root root  746 2008-11-02 11:34 echod_0.1-1_i386.changes&lt;br /&gt;
-rw-r--r-- 1 root root 4942 2008-11-02 11:34 echod_0.1-1_i386.deb&lt;br /&gt;
-rw-r--r-- 1 root root 4728 2008-11-02 11:34 echod_0.1.orig.tar.gz&lt;br /&gt;
drwxr-xr-x 3 root root 4096 2008-11-02 11:30 echoDimoni&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ja tenim el paquet echod_0.1-1_i386.deb i també echod_0.1.orig.tar.gz&lt;br /&gt;
&lt;br /&gt;
Un cop creat el paquet és MOLT IMPORTANT per evitar errors i altres complicacions, sortid del fakeroot amb la comanda exit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root# exit&lt;br /&gt;
joan#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podem mirar què hi ha a dins del paquet amb el nautilus (obre amb el gestor d'arxius...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nautilus .. #obre el nautilus amb el contingut de la carpeta ..&lt;br /&gt;
$ # i amb línia de comandes es pot fer...&lt;br /&gt;
$ file-roller /home/joan/sessio10/echod_0.1-1_i386.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per comprovar si un paquet compleix la política de Debian, tenim lintian:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install lintian -&amp;gt; paquev per`saber si un paquet acompleix la rol�tica de Eebia~&lt;br /&gt;
$lintian ../echod_0.1-1_i386.deb&lt;br /&gt;
W: echod: binary-without-manpage usr/sbin/echod&lt;br /&gt;
W: echod: copyright-lists-upstream-authors-with-dh_make-boilerplate&lt;br /&gt;
E: echod: description-is-dh_make-template&lt;br /&gt;
W: echod: wrong-bug-number-in-closes l3:#nnnn&lt;br /&gt;
E: echod: section-is-dh_make-template&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E: error; W: warning&lt;br /&gt;
&lt;br /&gt;
Editem el fitxer de control (/debian/control) , que és on hi ha la informació del paquet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls -l debian/&lt;br /&gt;
$gedit debian/control&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I també creem una man-page. Hi ha diverses maneres de fer la man-page. Els manpages estan en format lattex, sgml (tags) o xml (tags). Però no cal saber lattex si utilizem la plantilla, perquè és fàcil identificar els textos&lt;br /&gt;
&lt;br /&gt;
/debian/manpage.1.ex (lattex), /debian/manpage.sgml.ex (sgml), /debian/manpage.xml.ex (xml)&lt;br /&gt;
&lt;br /&gt;
Las plantillas son:&lt;br /&gt;
&lt;br /&gt;
*manpage.1.ex&lt;br /&gt;
*manpage.sgml.ex&lt;br /&gt;
*manpage.xml.ex &lt;br /&gt;
&lt;br /&gt;
Son los tres formatos soportados por los ficheros man. Como podeis ver las plantillas siempre acaban con la extensión .ex.&lt;br /&gt;
&lt;br /&gt;
El guión de shell de debhelper que instala los manuales es dh_installman y está activado por defecto en el fichero debian/rules. Los únicos pasos que hemos de seguir son editar alguna de las plantillas, poner un nombre adecuado al fichero (típicamente 'nomcomando.seccion) y crear un fichero debian/manpages con la lista de ficheros manual. Los pasos a seguir:&lt;br /&gt;
&lt;br /&gt;
Copiamos la plantilla:&lt;br /&gt;
&lt;br /&gt;
 $ cp debian/manpage.1.ex debian/echod.1&lt;br /&gt;
&lt;br /&gt;
Y editamos el manual para añadir la documentación a nuestro gusto:&lt;br /&gt;
&lt;br /&gt;
 $ gedit debian/echod.1 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Y editamos el manual. Una vez editado ejecutamos:&lt;br /&gt;
&lt;br /&gt;
 $ gedit debian/manpages &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Añadir la línea:&lt;br /&gt;
&lt;br /&gt;
 debian/echod.1&lt;br /&gt;
&lt;br /&gt;
Si no tocamos la plantilla el resultado final será:&lt;br /&gt;
&lt;br /&gt;
 $ man echod&lt;br /&gt;
 &lt;br /&gt;
 ECHOD(SECTION)                                                                                                                               &lt;br /&gt;
 ECHOD(SECTION)&lt;br /&gt;
 &lt;br /&gt;
 NAME&lt;br /&gt;
        echod - program to do something&lt;br /&gt;
 &lt;br /&gt;
 SYNOPSIS&lt;br /&gt;
        echod [options] files...&lt;br /&gt;
        bar [options] files... &lt;br /&gt;
 &lt;br /&gt;
 DESCRIPTION&lt;br /&gt;
        This manual page documents briefly the echod and bar commands.&lt;br /&gt;
 &lt;br /&gt;
        echod is a program that...&lt;br /&gt;
 &lt;br /&gt;
 OPTIONS&lt;br /&gt;
        These  programs  follow  the  usual  GNU  command line syntax, with long options starting with two dashes (‘-’).  A summary of options is  &lt;br /&gt;
 included below.  For a complete description, see the Info files. &lt;br /&gt;
 &lt;br /&gt;
        -h, --help&lt;br /&gt;
               Show summary of options.&lt;br /&gt;
 &lt;br /&gt;
        -v, --version&lt;br /&gt;
               Show version of program.&lt;br /&gt;
 &lt;br /&gt;
 SEE ALSO&lt;br /&gt;
        bar(1), baz(1).&lt;br /&gt;
        The programs are documented fully by The Rise and Fall of a Fooish Bar, available via the Info system.&lt;br /&gt;
 &lt;br /&gt;
 AUTHOR&lt;br /&gt;
        echod was written by &amp;lt;upstream author&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
        This manual page was written by Sergi Tur Badenas &amp;lt;sergi.tur@upc.edu&amp;gt;, for the Debian project (but may be used by others).&lt;br /&gt;
 &lt;br /&gt;
                                                                       juny  8, 2007                                                         &lt;br /&gt;
 ECHOD(SECTION)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tornem a compilar i a passar el lintian&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
E: echod: manpage-is-dh_make-template usr/share/man/man1/echod.1.gz&lt;br /&gt;
W: echod: manpage-section-mismatch usr/share/man/man1/echod.1.gz:5 1 != SECTION&lt;br /&gt;
W: echod: copyright-lists-upstream-authors-with-dh_make-boilerplate&lt;br /&gt;
E: echod: extended-description-is-empty&lt;br /&gt;
W: echod: wrong-bug-number-in-closes l3:#n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ara ja reconeix la man-page, tot i que conté errors.&lt;br /&gt;
&lt;br /&gt;
Ara es podria treballar molt configurant el paquet, man-pages, README, copyright,... però anem a instal.lar el nostre paquet en un altre ordinador.&lt;br /&gt;
&lt;br /&gt;
Ara hem d'aconseguir que s'instal.li el dimoni:&lt;br /&gt;
&lt;br /&gt;
Hem de recordar que el nostre codi font és el codi font d'un dimoni i que per tant té el seu corresponent script d'inici System V a /etc/init.d/echod. El fitxer ja s'instal.la en la carpeta adequada durant la crida a la norma install, però a més a més deb_helper ens proporciona la comanda dh_installinit. Només hem de descomentar la línia adequada en el fitxer debian/rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        dh_testdir&lt;br /&gt;
        dh_testroot&lt;br /&gt;
        dh_installchangelogs&lt;br /&gt;
        dh_installdocs&lt;br /&gt;
        dh_installexamples&lt;br /&gt;
#       dh_install&lt;br /&gt;
#       dh_installmenu&lt;br /&gt;
#       dh_installdebconf&lt;br /&gt;
#       dh_installlogrotate&lt;br /&gt;
#       dh_installemacsen  &lt;br /&gt;
#       dh_installpam&lt;br /&gt;
#       dh_installmime&lt;br /&gt;
#       dh_python&lt;br /&gt;
        dh_installinit #aquí!!&lt;br /&gt;
#       dh_installcron&lt;br /&gt;
#       dh_installinfo&lt;br /&gt;
        dh_installman &lt;br /&gt;
        dh_link&lt;br /&gt;
        dh_strip&lt;br /&gt;
        dh_compress&lt;br /&gt;
        dh_fixperms&lt;br /&gt;
#       dh_perl&lt;br /&gt;
#       dh_makeshlibs&lt;br /&gt;
        dh_installdeb&lt;br /&gt;
        dh_shlibdeps &lt;br /&gt;
        dh_gencontrol&lt;br /&gt;
        dh_md5sums   &lt;br /&gt;
        dh_builddeb &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fixem-nos en totes les possibilitats que hi ha... per ex, que s'instal.li en el menu.&lt;br /&gt;
&lt;br /&gt;
En este punto es donde hemos de introducir nuestro primer hack del fichero debian/rules'. El comando dh_install no hará nada si ya encuentra el fichero /etc/init.d/echod instalado en el sistema (això crec que es refereix a si instal.lem el paquet en la mateixa màquina que compilem). Como que el instalador del código fuente original del programa (norma install del Makefile) ya instala el fichero dh_installinit no hará nada. Podemos solucionar este problema añadiendo la línea:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mv $(CURDIR)/debian/echod/etc/init.d/echod $(CURDIR)/debian/echod.init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En la norma install del fichero debian/rules queda de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install: build&lt;br /&gt;
	dh_testdir&lt;br /&gt;
	dh_testroot&lt;br /&gt;
	dh_clean -k &lt;br /&gt;
	dh_installdirs&lt;br /&gt;
&lt;br /&gt;
	# Add here commands to install the package into debian/echod.&lt;br /&gt;
	$(MAKE) DESTDIR=$(CURDIR)/debian/echod install&lt;br /&gt;
  	mv $(CURDIR)/debian/echod/etc/init.d/echod $(CURDIR)/debian/echod.init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per tal de què tot això funcioni, recordem que he de tenir configurat el script d'inici init.d tal com havíem fet en la secció anterior de demonitzar el servidor d'echos. El fitxer init.d el posarem dins la carpeta /debian, on tenim una plantilla init.d.ex que la renombrem a init.d. Nosaltres copiem el fitxer que teníem (es deia echod, on havíem definit start, stop, restart i reload).&lt;br /&gt;
&lt;br /&gt;
Compte! perquè en el fitxer init.d.ex hi ha un error de sintaxi en les línies 88 i 103. On diu ''if running then'' ha de dir ''if running ; then''.&lt;br /&gt;
&lt;br /&gt;
fitxer /debian/init.d&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
DAEMON=/usr/sbin/echod&lt;br /&gt;
NAME=echod&lt;br /&gt;
DESC=echod&lt;br /&gt;
&lt;br /&gt;
test -x $DAEMON || exit 0&lt;br /&gt;
&lt;br /&gt;
LOGDIR=/var/log/echod&lt;br /&gt;
PIDFILE=/var/run/$NAME.pid&lt;br /&gt;
DODTIME=1                   # Time to wait for the server to die, in seconds&lt;br /&gt;
                            # If this value is set too low you might not&lt;br /&gt;
                            # let some servers to die gracefully and&lt;br /&gt;
                            # 'restart' will not work&lt;br /&gt;
...&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
	echo -n &amp;quot;Engegant $DESC: &amp;quot;&lt;br /&gt;
	start-stop-daemon --start --quiet --pidfile $PIDFILE \&lt;br /&gt;
		--exec $DAEMON -- $DAEMON_OPTS&lt;br /&gt;
        if running ; then&lt;br /&gt;
            echo &amp;quot;$NAME.&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            echo &amp;quot; ERROR.&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
	;;&lt;br /&gt;
  stop)&lt;br /&gt;
	echo -n &amp;quot;Aturant $DESC: &amp;quot;&lt;br /&gt;
	start-stop-daemon --stop --quiet --pidfile $PIDFILE \&lt;br /&gt;
		--exec $DAEMON&lt;br /&gt;
	echo &amp;quot;$NAME.&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(quan faig  dpkg-buildpackage em falla per culpa d'aquesta línia que he ficat... )&lt;br /&gt;
Tornem a crear el paquet i ja el podem instal.lar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fakeroot&lt;br /&gt;
root$ dpkg-buildpackage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema que m'estic trobant tota l'estona és que quan poso en el fitxer debian/rules la línia&lt;br /&gt;
&lt;br /&gt;
$ mv $(CURDIR)/debian/echod/etc/init.d/echod $(CURDIR)/debian/echod.init&lt;br /&gt;
&lt;br /&gt;
em falla&lt;br /&gt;
&lt;br /&gt;
Falla. Troba a faltar el fitxer /home/joan/sessio10/echod-0.1/debian/echod/etc/init.d/echod.&lt;br /&gt;
&lt;br /&gt;
Exactament diu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv /home/joan/sessio10/echod-0.1/debian/echod/etc/init.d/echod /home/joan/sessio10/echod-0.1/debian/echod.init&lt;br /&gt;
mv: no se puede efectuar `stat' sobre «/home/joan/sessio10/echod-0.1/debian/echod/etc/init.d/echod»: No existe el fichero ó directorio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doncs bé, el fitxer echod en qüestió és el script d'arrencada que està a /debian/init.d i que l'he personalitzat. El copio manualment a /home/joan/sessio10/echod-0.1/debian/echod/etc/init.d/echod i torno a comentar la línia mv en el fitxer debian/rules (que és la que fallava)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp debian/init.d debian/echod/etc/init.d/echod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Torno a compilar, i no oblidar-se de fer exit&lt;br /&gt;
&lt;br /&gt;
i al final després de molt provar-ho he aconseguit que a /etc/init.d hi hagi echod&lt;br /&gt;
&lt;br /&gt;
efectivament, a /etc/rc5.d trobem S20echod (i a rc2.d, rc3.d i rc4.d)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joan@ubuntu:~/sessio10$ sudo /etc/init.d/echod stop&lt;br /&gt;
 * Aturant echod echod                                                                                                 [ OK ] &lt;br /&gt;
joan@ubuntu:~/sessio10$ sudo /etc/init.d/echod start&lt;br /&gt;
 * Engegant echod echod                                                                                                [ OK ] &lt;br /&gt;
joan@ubuntu:~/sessio10$ sudo /etc/init.d/echod restart&lt;br /&gt;
 * Reiniciant echod echod  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ara bé la prova de foc, reinicio la màquina i a veure si arrenca...&lt;br /&gt;
Sí, ja funciona!!&lt;br /&gt;
&lt;br /&gt;
===Instal.lació del paquet. Comprovació del funcionament===&lt;br /&gt;
&lt;br /&gt;
Dins del paquet Debian hi ha el control.tar.gz, que conté entre d'altres els scripts de manteniment: preinst, postint, prermv, postrmv, que s'executaran abans i després d'una instal.lació o desinstal.lació del paquet. Per ex, com que és un dimoni, volem que després de la instal.lació arrenqui el dimoni tot seguit.&lt;br /&gt;
&lt;br /&gt;
Tots els fitxers que s'empaquetaran es van creant en el directori debian/echod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls -R debian/echod&lt;br /&gt;
debian/echod:&lt;br /&gt;
DEBIAN  etc  usr&lt;br /&gt;
&lt;br /&gt;
debian/echod/DEBIAN:&lt;br /&gt;
conffiles  control  md5sums  postinst  postrm  prerm&lt;br /&gt;
&lt;br /&gt;
debian/echod/etc:&lt;br /&gt;
echod  init.d&lt;br /&gt;
&lt;br /&gt;
debian/echod/etc/echod:&lt;br /&gt;
port&lt;br /&gt;
&lt;br /&gt;
debian/echod/etc/init.d:&lt;br /&gt;
echod&lt;br /&gt;
&lt;br /&gt;
debian/echod/usr:&lt;br /&gt;
bin  sbin  share&lt;br /&gt;
&lt;br /&gt;
debian/echod/usr/bin:&lt;br /&gt;
&lt;br /&gt;
debian/echod/usr/sbin:&lt;br /&gt;
echod&lt;br /&gt;
&lt;br /&gt;
debian/echod/usr/share:&lt;br /&gt;
doc  man&lt;br /&gt;
&lt;br /&gt;
debian/echod/usr/share/doc:&lt;br /&gt;
echod&lt;br /&gt;
&lt;br /&gt;
debian/echod/usr/share/doc/echod:&lt;br /&gt;
changelog.Debian.gz  copyright  README.Debian&lt;br /&gt;
&lt;br /&gt;
debian/echod/usr/share/man:&lt;br /&gt;
man1&lt;br /&gt;
&lt;br /&gt;
debian/echod/usr/share/man/man1:&lt;br /&gt;
echod.1.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Procés d'instal.lació: dpkg -i -&amp;gt; debconf -&amp;gt; execució de preinst -&amp;gt; desempaquetar el paquet -&amp;gt; paquet instal.lat però no configurat -&amp;gt; postinst -&amp;gt; ok&lt;br /&gt;
* Procés de desinstal.lació: dpkg -r -&amp;gt; script prerm -&amp;gt; s'esborren els fitxers del paquet -&amp;gt; postrm -&amp;gt; només queden els fitxers de configuració -&amp;gt; purge (esborrem si volem fitxers de configuració) -&amp;gt; ok&lt;br /&gt;
&lt;br /&gt;
Per exemple, el fitxer  echod.postinst.debhelper es crea quan en el procés de creació del paquet cridem a dh_installinit.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/sessio10/echod-0.1/debian$ cat echod.postinst.debhelper &lt;br /&gt;
# Automatically added by dh_installinit&lt;br /&gt;
if [ -x &amp;quot;/etc/init.d/echod&amp;quot; ]; then&lt;br /&gt;
	update-rc.d echod defaults &amp;gt;/dev/null&lt;br /&gt;
	if [ -x &amp;quot;`which invoke-rc.d 2&amp;gt;/dev/null`&amp;quot; ]; then&lt;br /&gt;
		invoke-rc.d echod start || exit $?&lt;br /&gt;
	else&lt;br /&gt;
		/etc/init.d/echod start || exit $?&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
# End automatically added section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
veiem que la idea d'aquest script és arrencar el servei. &lt;br /&gt;
&lt;br /&gt;
A la carpeta debian existeix la plantilla postinst.ex que puc editar i renombrar-la a postinst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# postinst script for echod&lt;br /&gt;
#&lt;br /&gt;
# see: dh_installdeb(1)&lt;br /&gt;
&lt;br /&gt;
set -e&lt;br /&gt;
&lt;br /&gt;
# summary of how this script can be called:&lt;br /&gt;
#        * &amp;lt;postinst&amp;gt; `configure' &amp;lt;most-recently-configured-version&amp;gt;&lt;br /&gt;
#        * &amp;lt;old-postinst&amp;gt; `abort-upgrade' &amp;lt;new version&amp;gt;&lt;br /&gt;
#        * &amp;lt;conflictor's-postinst&amp;gt; `abort-remove' `in-favour' &amp;lt;package&amp;gt;&lt;br /&gt;
#          &amp;lt;new-version&amp;gt;&lt;br /&gt;
#        * &amp;lt;postinst&amp;gt; `abort-remove'&lt;br /&gt;
#        * &amp;lt;deconfigured's-postinst&amp;gt; `abort-deconfigure' `in-favour'&lt;br /&gt;
#          &amp;lt;failed-install-package&amp;gt; &amp;lt;version&amp;gt; `removing'&lt;br /&gt;
#          &amp;lt;conflicting-package&amp;gt; &amp;lt;version&amp;gt;&lt;br /&gt;
# for details, see http://www.debian.org/doc/debian-policy/ or&lt;br /&gt;
# the debian-policy package&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
    configure)&lt;br /&gt;
    ;;&lt;br /&gt;
&lt;br /&gt;
    abort-upgrade|abort-remove|abort-deconfigure)&lt;br /&gt;
    ;;&lt;br /&gt;
&lt;br /&gt;
    *)&lt;br /&gt;
        echo &amp;quot;postinst called with unknown argument \`$1'&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
        exit 1&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
# dh_installdeb will replace this with shell code automatically&lt;br /&gt;
# generated by other debhelper scripts.&lt;br /&gt;
&lt;br /&gt;
#DEBHELPER#&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
la unió d'aquests dos scripts formaran el script de mantenimiento final postinst que trobarem en el fitxer control.tar.gz del paquete debian final.&lt;br /&gt;
&lt;br /&gt;
Per veure tots els fitxers que instal.la el paquet echod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dpkg -L echod&lt;br /&gt;
/.&lt;br /&gt;
/etc&lt;br /&gt;
/etc/echod&lt;br /&gt;
/etc/echod/port&lt;br /&gt;
/etc/init.d&lt;br /&gt;
/etc/init.d/echod&lt;br /&gt;
/usr&lt;br /&gt;
/usr/bin&lt;br /&gt;
/usr/share&lt;br /&gt;
/usr/share/man&lt;br /&gt;
/usr/share/man/man1&lt;br /&gt;
/usr/share/man/man1/echod.1.gz&lt;br /&gt;
/usr/share/doc&lt;br /&gt;
/usr/share/doc/echod&lt;br /&gt;
/usr/share/doc/echod/changelog.Debian.gz&lt;br /&gt;
/usr/share/doc/echod/README.Debian&lt;br /&gt;
/usr/share/doc/echod/copyright&lt;br /&gt;
/usr/sbin&lt;br /&gt;
/usr/sbin/echod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I doncs? on està el fitxer postinst que s'ha creat i que existeix en el paquet? No apareix a la llista, però està a&lt;br /&gt;
&lt;br /&gt;
/var/lib/dpkg/info/echod.postinst&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
En el portàtil fem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dpkg -i echod_0.1-1_i386.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i s'instal.la bé. Anem a veure quin rastre ha deixat en el portàtil:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /&lt;br /&gt;
$ find -name echod&lt;br /&gt;
./etc/echod&lt;br /&gt;
./usr/share/doc/echod #aquí es troba el README.Debian i el copyright&lt;br /&gt;
./usr/sbin/echod&lt;br /&gt;
&lt;br /&gt;
$ dpkg --info echod_0.1-1_i386.deb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per comprovar el funcionament, he de tenir en compte quina és la IP del portàtil, doncs s'ha de configurar el fitxer client.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd sessio10/echoDimoni&lt;br /&gt;
$ joe client.c #fico la IP del servidor la del portàtil: 192.168.1.35, i canvio el port a 8001, o el que fiqui el fitxer /etc/echod/port&lt;br /&gt;
$ gcc -o client client.c&lt;br /&gt;
$ ./client hola&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tanmateix, arrenco el poràtil i no funciona el echod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ps aux | grep echod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
no ha funcionat la instal.lació com a dimoni, tot i que sí que s'ha instal.lat el binari:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /usr/sbin&lt;br /&gt;
$ .echod&lt;br /&gt;
$ ps aux | grep echod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ara sí que es veu el procés&lt;br /&gt;
&lt;br /&gt;
Encara no funciona: error connectant-se al socket&lt;br /&gt;
&lt;br /&gt;
Per desinstal.lar el paquet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dpkg -r echod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o millor&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get remove --yes --purge echod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si el que volem és reconfigurar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dpkg-reconfigure echod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja funciona! (estic fent proves en local 127.0.0.1). Recordem que en el codi del servidor no hi ha cap rastre de la IP, i que el port està definit en el fitxer corresponent (i que es pot configurar en el procés d'instal.lació). En el codi del client.c s'especifica la IP del servidor i el port. Es podria modificar fàcilment de manera que aquests dos valors es puguin passar com a argument.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/sessio10/echoDimoni$ ./client hola&lt;br /&gt;
Enviant missatge hola al servidor...&lt;br /&gt;
..Misatge enviat .. esperant la resposta...&lt;br /&gt;
&lt;br /&gt;
Resposta del servidor: hola&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>83.32.194.17</name></author>
		
	</entry>
</feed>