Capítol 1. Començant correctament.

Sumari

1.1. Dinamisme social a Debian
1.2. Programes necessaris per treballar.
1.3. Documents necessaris per treballar.
1.4. On demanar ajuda.

Aquest document descriurà com es construeix un paquet Debian GNU/Linux per a un usuari comú Debian i per a futurs desenvolupadors, fent servir un llenguatge informal i incloent molts exemples. Un antic dit romà diu Longum iter est per preaecepta, breve et efficax per exempla! («És un llarg camí amb les normes, però curt i eficient amb els exemples»).

The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers. Please use this new tutorial as the primary tutorial document.

This document is made available for the Debian Buster release since it is offered in many translations but this will be dropped in the following releases since contents are getting outdated. [1]

Una de les característiques que fan de Debian una de les distribucions més importants del mercat és el seu sistema de paquets. Tot i què hi ha una gran quantitat de programes disponibles en paquets de Debian, de vegades pots haver de fer servir programes que no estan disponibles en aquest format. Pot ésser que et demanis com construir els teus paquets i que pensis que és una tasca difícil. Bé doncs, si ets un principiant en GNU/Linux, pot ésser difícil, però si acabes de començar amb aquest sistema, no és recomanable que comencis per aquí :-). Cal saber algunes coses sobre programació en Unix, tot i què no és necessari ésser un mestre [2].

Tot i així, una cosa és del tot segura: per construir i fer el manteniment de paquets Debian adequadament, calen moltes hores. Per a què el nostre sistema no tengui errors, cal que els nostres desenvolupadors siguin tècnicament competents.

If you need some help with packaging, please read Secció 1.4, «On demanar ajuda.».

Les noves versions d'aquest document es publiquen a http://www.debian.org/doc/maint-guide/ i en el paquet maint-guide. Les traduccions es poden aconseguir en els paquets del tipus maint-guide-ca. Teniu en compte que les traduccions poden estar sense actualitzar.

Com es tracta d'un tutorial, he decidit explicar detalladament cada etapa dels temes importants. Alguns d'ells poden semblar-te irrellevants. Sigues pacient. També he omès intencionadament alguns casos extrems i sempre punters només per mantenir senzill aquest document.

Aquest és un recull de les meves observacions sobre la interacció social a Debian: espero que t'ajudin en la teva interacció amb Debian:

  • Tots som voluntaris.

    • No podeu imposar als altres el que s'ha de fer.

    • Cal estar motivat per fer les coses per tu mateix.

  • La cooperació amistosa és la força motriu.

    • La teva contribució no ha de sobre-esforçar als altres.

    • La teva contribució és valuosa només quan els altres t'ho agraeixen.

  • Debian no és la teva escola on automàticament reps atenció dels docents.

    • Cal ésser capaç d'aprendre moltes coses per un mateix.

    • L'atenció d'altres voluntaris és un recurs molt escàs.

  • Debian millora contínuament.

    • S'espera que construeixis paquets d'alta qualitat.

    • Cal adaptar-se al canvi.

En el desenvolupament i manteniment de Debian, es fan servir les següents expressions per referir-se a les persones implicades en la construcció i manteniment dels programes i paquets:

  • autor original («upstream author»): és la persona que ha escrit el codi original del programa (o l'original del document en el cas de paquets de documentació).

  • desenvolupador original («upstream maintainer»): la persona actualment responsable del manteniment del codi original.

  • empaquetador (desenvolupador) («maintainer»): la persona encarregada de la construcció i actualització dels paquets per a Debian.

  • patrocinador («sponsor»): la persona (cal que sigui un DD o DM) que transfereix els paquets construïts pels desenvolupadors al repositori de Debian després de comprovar que el paquet s'ajusta a las normes de Debian.

  • mentor: la persona que ajuda als desenvolupadors principiants a iniciar-se en la construcció i manteniment del paquet.

  • desenvolupador de Debian (DD) («Debian Developer»): la persona que es membre de Debian. Té autorització (sense limitacions) per transferir paquets al repositori oficial de Debian.

  • empaquetador/responsable de Debian (DM)(«Debian Maintainer»): la persona amb autorització limitada per transferir paquets al repositori oficial de Debian.

No és possible arribar a ésser desenvolupador oficial de Debian (DD) de la nit al dia degut a què no és suficient ésser tècnicament competent. Cal no desanimar-se per això. Pots aconseguir que el teu paquet passi al repositori, si és d'utilitat als usuaris, com a responsable mitjançant un patrocinador o un responsable de Debian.

No és necessari construir un nou paquet per ésser desenvolupador oficial de Debian. Una opció és contribuir en el manteniment d'algun dels paquets de la distribució. Hi ha molts paquets pendents d'algú que s'en faci càrrec (consulta Secció 2.2, «Seleccionar el programa.»).

Com que ens concentrem només en els aspectes tècnics dels paquets en el present document, consulta el següent per saber com funciona Debian i com pots participar-hi:

Abans de començar, cal instal·lar els paquets necessaris per a la construcció de paquets. A la llista de paquets no estan inclosos paquets amb prioritat «essencial» o «requerit» (essential i required) degut a què segurament ja estan instal·lats.

The following packages come with the standard Debian installation, so you probably have them already (along with any additional packages they depend on). Still, you should check them with aptitude show package or with dpkg -s package.

El paquet imprescindible per al desenvolupament és build-essential. Quan s'instal·la, també s'instal·len altres paquets necessaris, obtenint-se la instal·lació bàsica per a la construcció de paquets.

Per a la construcció d'alguns paquets, amb això seria suficient, però n'hi ha d'altres que, sense ésser imprescindibles, pot ésser útil instal·lar-los o, fins i tot, necessaris:

Les descripcions anteriors només són un resum de la funcionalitat de cada paquet. Abans de continuar, si us plau, llegeix la documentació de cada programa, al menys pel que fa a la seva funcionalitat bàsica. Pot semblar una mica pesat, però et farà molt profit aquesta lectura.

La documentació llistada a continuació és imprescindible llegir-la mentre es llegeix aquest document:

  • debian-policy - a Debian Policy Manual s'explica l'estructura i contingut del repositori, alguns aspectes del disseny del sistema operatiu, l'estàndard del sistema de fitxers («Filesystem Hierarchy Standard») i el què és més important, descriu els requisits per a què un paquet s'afegeixi a la distribució (llegix les còpies locals de /usr/share/doc/debian-policy/policy.pdf.gz i /usr/share/doc/debian-policy/fhs/fhs-2.3.pdf.gz).

  • developers-reference - the Debian Developer's Reference describes all matters not specifically about the technical details of packaging, like the structure of the archive, how to rename, orphan, or adopt packages, how to do NMUs, how to manage bugs, best packaging practices, when and where to upload, etc. (See the local copy of /usr/share/doc/developers-reference/developers-reference.pdf.)

La documentació següent és important llegir-la mentre es llegeix aquest document:

Si aquest document és contradictori amb algun aspecte amb els documents anteriors, serà d'aplicació l'establert per aquest darrers. En aquest cas, si us plau comunica l'error del paquet maint-guide fent servir reportbug.

The following is an alternative tutorial document that you may read along with this document:

Before you decide to ask your question in some public place, please read this fine documentation:

Considera fer servir el motor de cerca web mitjançant la inclusió eficaç de cadenes de recerca, com ara site:lists.debian.org per limitar el domini.

Començar a treballar en un paquet petit és una bona opció per aprendre els detalls de la creació de paquets. Inspeccionar els paquets mantinguts per altres persones és una excel·lent manera d'aprendre.

Si encara tens preguntes sobre la construcció de paquets que no poden trobar resposta en la documentació disponible i els recursos web, pots fer consultes de forma interactiva:

Els desenvolupadors de Debian amb més experiència t'ajudaran amb gust, si fas les preguntes després de fer el treball necessari.

En rebre un avís d'error (sí, un avís d'error de veritat!) serà el moment de donar un cop d'ull al Sistema de seguiment d'errades de Debian i llegir la documentació per tal de conèixer el procediment adequat. Et recomano la lectura de la Developer's Reference, 5.8. 'Handling bugs'.

Even if it all worked well, it's time to start praying. Why? Because in just a few hours (or days) users from all around the world will start to use your package, and if you made some critical error you'll get mailbombed by numerous angry Debian users… Just kidding. :-)

Relaxa't i estiguis preparat per rebre informes d'errades, perquè el camí és llarg per aconseguir el compliment de las Normes de Debian (una vegada més llegeix la documentació real per a més detalls). Bona sort!



[1] En el document s'assumeix que fas servir la versió jessie. Si vols fer servir aquest document amb versions anteriors (incloses sistemes Ubuntu i d'altres), cal que tenguis instal·lats (com a mínim) els paquets dpkg i debhelper .

[2] Podràs aprendre les operacions bàsiques dels sistemes Debian a Debian Reference. També s'expliquen alguns aspectes de la programació en sistemes Unix.

[3] Hi ha d'altres paquets semblants pel que fa a la seva funcionalitat però més específics, com és ara dh-make-perl, dh-make-php, etc.