Product SiteDocumentation Site

1.3. El funcionament intern del projecte Debian

Els abundants resultats finals produïts pel projecte Debian deriven simultàniament del tasca en la infraestructura realitzada per desenvolupadors Debian experimentats, de la feina individual o col·lectiva dels desenvolupadors en els paquets Debian, i de la resposta dels usuaris.

1.3.1. Els desenvolupadors Debian

Els desenvolupadors Debian tenen diverses responsabilitats i, com a membres oficials del projecte, exerceixen una gran influència en la direcció que pren el projecte. Un desenvolupador Debian és, en general, responsable d'un paquet com a mínim, però d'acord amb el seu temps disponible i voluntat, és lliure d'involucrar-se en nombrosos equips i projectes, adquirint així més responsabilitats dins el projecte.
El manteniment de paquets és una activitat relativament pautada, molt documentada o fins i tot regulada. De fet, ha de complir amb tots els estàndards establerts per la Normativa Debian. Afortunadament, hi ha moltes eines que faciliten la tasca del mantenidor. El desenvolupador pot, així centrar-se en les especificitats del seu paquet i en tasques més complexes, com ara l'eliminació d'errors.
La Normativa, un element essencial del Projecte Debian, estableix les normes per assegurar tant la qualitat dels paquets com la perfecta interoperatibilitat de la distribució. Gràcies a aquesta Normativa, Debian roman consistent malgrat la seva mida gegantina. Aquest Normativa no està escrita en pedra, sinó que evoluciona contínuament gràcies a les propostes formulades a la llista de correu . Les esmenes que són acordades per totes les parts interessades són acceptades i aplicades al text per un petit grup de mantenidors que no tenen responsabilitat editorial (ells només inclouen les modificacions acordades pels desenvolupadors Debian que són membres de l'abans citada llista. Pots llegir les propostes de modificació en curs al sistema de seguiment d'errors:
La Normativa ofereix una considerable quantitat de detall dels aspectes tècnics de l'empaquetat. La mida del projecte també genera problemes organitzatius; aquests són tractats per la Constitució de Debian, que estableix una estructura i mitjans per a la presa de decicions. En altres paraules: un sistema formal de governança.
Aquesta constitució defineix un seguit de rols i càrrecs, a més de responsabilitats i atribucions de cadascun. És particularment important adonar-se que els desenvolupadors de Debian sempre tenen l'autoritat per prendre la darrera decisió votant en una resolució general, on una majoria qualificada de tres quarts (75%) dels vots és requerida per a fer alteracions significatives (com les que tinguin impacte en els Documents de la Fundació). Amb tot, els desenvolupadors cada any elegeixen un «líder» per representar-los en reunions, i assegurar la coordinació interna entre els diferents equips. Aquesta elecció és sempre un període de discussions intenses. El rol de líder del Projecte Debian (DPL) no és definit formalment per cap document: els candidats al lloc normalment proposen la pròpia definició del càrrec. A la pràctica, els rols del líder inclouen el ser el representant davant dels mitjans de comunicació, coordinar els equips “interns”, i oferir un guiatge general al projecte, amb el que els desenvolupadors poden adherir-s'hi: els punts de vista del DPL són aprovats implícitament per la majoria dels membres del projecte.
Específicament, el líder té autoritat real: el seu vot desfà empats, pot prendre qualsevol decisió que no estigui assignada a l'autoritat d'algú altre i pot delegar part de les seves responsabilitats.
Des de la creació, el projecte ha estat liderat successivament per Ian Murdock, Bruce Perens, Ian Jackson, Wichert Akkerman, Ben Collins, Bdale Garbee, Martin Michlmayr, Branden Robinson, Anthony Towns, Sam Hocevar, Steve McIntyre, Stefano Zacchiroli, Lucas Nussbaum, Neill McGovern, Mehdi Dogguy, Chris Lamb, Sam Hartman i Jonathan Carter.
La constitució també defineix un «comitè tècnic». El rol essencial d'aquest comitè és decidir sobre aspectes tècnics quan desenvolupadors no arriben a un acord entre ells. Altrament, aquest comitè pren un rol consultiu per a qualsevol desenvolupador que no pren una decisió per a la qual és responsable. És important fixar-se que només s'involucra quan és cridat a fer-ho per alguna de les parts en qüestió.
Finalment, la constitució defineix el càrrec de «secretario del proyecto», que està a càrrec de l'organització de les votacions relacionades amb les vàries eleccions i resolucions generals.
El procés de “resolució general” (GR o «general resolution» en anglès) està completament detallat a la constitució, des del període inicial de discussió fins al recompte final dels vots. L'aspecte més interessant del procés és a l'hora de votar: els desenvolupadors han d'ordenar les diferents opcions de vot entre elles, i el guanyador és triat amb el mètode Condorcet (més específicament, el mètode Schulze). Per a més detalls veieu:
Tot i que la constitució estableix una semblança de democràcia, la realitat del dia a dia és molt diferent: Debian segueix de manera natural les regles del programari lliure de la «do-ocracia» (el govern dels que fan, «do» en anglès): aquell que fa les coses és qui decideix com fer-les. Molt temps es pot perdre debatent els respectius mèrits de les diferents maneres d'afrontar un problema: la solució triara serà la primera que sigui alhora funcional i satisfactòria... que sortirà del temps que una persona competent hi ha dedicat.
Aquesta és l'única manera de guanyar-se medalles: fes quelcom útil i ensenya que funciona bé. Molts equips «administratius» a Debian operen per cooptació, preferint voluntaris que ja han contribuït i demostrat la seva competència. La naturalesa pública de la feina d'aquesta equips fa possible als nous contribuïdors l'observar i començar a ajudar sense caler cap privilegi especial. És per això que Debian és sovint descrit com una «meritocràcia».
Aquesta manera d'operar és efectiva i garanteix la qualitat dels contribuïdors en els equips «clau» de Debian. Aquest mètode no és perfecte i ocasionalment hi ha qui no accepta aquesta manera de funcionar. La selecció dels desenvolupadors acceptats als equips pot semblar una mica arbitrària, o fins i tot injusta. I encara més: no tothom té la mateixa definició del servei esperat per aquests equips. Per alguns, és inacceptable haver d'esperar vuit dies per a la inclusió d'un nou paquet Debian, mentre que d'altres esperaran pacientment durant tres setmanes sense problema. Per això, hi ha queixes regularment per part dels descontents sobre la «qualitat de servei» d'alguns equips.

1.3.2. El paper actiu dels usuaris

Hom es pot preguntar si és rellevant mencionar els usuaris entre aquells que treballen dins del projecte Debian, però la resposta és clarament que sí: ells juguen un paper crític al projecte. Lluny de ser "passius", alguns usuaris usen versions de Debian en desenvolupament i regularment registren informes d'error per indicar problemes. Altres fins i tot van més enllà i envien idees per a millores mitjançant un registre d'error amb un nivell de criticitat de "wishlist", o fins i tot enviant correccions al codi font anomenades pedaços ("patches" en anglès) (veieu Secció 1.3.2.3, «Enviant correccions»).

1.3.2.1. Informant errors

L'eina fonamental per a l'enviament d'errors a Debian és el Debian Bug Tracking System (Debian BTS, sistema de seguiment d'errors de Debian), que és usat en molts àmbits del projecte. La part pública (la interfície web) permet als usuaris veure tots els errors registrats, amb l'opció de mostrar-los ordenadament i filtrats segons diferents criteris, com ara el paquet afectat, la severitat, l'estat, l'adreça del reportador, l'adreça del mantenidor encarregat, etiqueta, etc. També és possible veure el llistat històric de totes les discussions associades a cadascun dels errors.
Sota la superfície, el BTS de Debian és basat en el email: tota la informació que es desa ve de missatges enviats per les diferents persones involucrades. Qualsevol correu enviat a serà, així, associat a la història de l'error amb número 12345. Les persones autoritzades poden «tancar» un error escrivint un missatge que descrigui la motivació per tancar-lo a (un error es tanca quan el problema indicat queda resolt o deixa de ser rellevant). Es pot reportar un error nou enviant un missatge a d'acord amb el format específic que identifica el paquet afectat. L'adreça permet l'edició de tota la «metainformació» relacionada amb l'error.
El BTS de Debian té altres característiques funcionals, com ara l'ús d'etiquetes per associar als errors. Per a més informació, mira
Els usuaris també poden usar la línia de comandes per enviar informes d'error en un paquet Debian amb l'eina reportbug. Aquesta ajuda en assegurar-se que l'error no hagi estat prèviament informat, evitant així la redundància al sistema. Recorda a l'usuari les definicions dels nivells de severitat, per tal que l'informe sigui el més acurat possible (el desenvolupador podrà sempre afinar aquest paràmetre si fos necessari). Ajuda a escriure un informe complet de l'error, sense que l'usuari hagi de conèixer la sintaxi precisa, redactant-lo i permetent a l'usuari modificar-lo. Aquest report serà enviat a través d'un servidor de correu (per defecte serà un de remot operat per Debian, però reportbug pot usar també un servidor local).
Aquesta eina primer es focalitza en les versions de desenvolupament, que és on els errors seran resolts. En efecte, els canvis no són benvinguts en una versió estable de Debian, amb molt poques excepcions en cas d'actualitzacions de seguretat o d'importància (si, per exemple, un paquet no funcionés en absolut). Una correcció d'un error menor en un paquet Debian ha de, per tant, esperar a la següent versió estable.

1.3.2.2. Traducció i documentació

Addicionalment, nombrosos usuaris satisfets dels serveis oferts per Debian volen contribuir el seu granet de sorra al projecte. Així com no tothom té els nivell apropiat d'experiència en programació, poden triar en col·laborar en la traducció i la revisió de la documentació. Hi llistes de correu específiques per a idiomes per a coordinar aquesta feina.

1.3.2.3. Enviant correccions

Els usuaris més avançats seran capaços de proporcionar una correcció per a un programa enviant un pedaç.
Un pedaç ("patch" en anglès) és un arxiu que descriu els canvis que cal fer a un o més altres arxius de referència. Específicament, contindrà una llista de línies per a ser eliminades o bé afegides al codi, així com, de vegades, línies agafades del text de referència, amb les modificacions en el context (permeten identificar la ubicació dels canvis si els números de línia haguessin canviat).
L'eina usada per aplicar les modificacions en un arxiu és simplement anomenada patch. L'eina que les crea es diu diff, i s'usa d'aquesta manera:
$ diff -u arxiu.antic arxiu.nou >arxiu.pedaç
L'arxiu arxiu.pedaç conté les instruccions per canviar el contingut d'arxiu.antic a arxiu.nou. Podem enviar-lo a algú que podrà llavors usar-lo per a generar arxiu.nou a partir dels altres dos així:
$ patch -p0 arxiu.antic <arxiu.pedaç
L'arxiu arxiu.antic serà ara idèntic a arxiu.nou.
A la pràctica, la majoria del programari és actualment mantingut el repositoris Git i d'aquesta manera els contribuïdors és més probable que usin la comanda git per obtenir el codi font i proposar canvis. L'ordre git diff generarà un arxiu en el mateix format que crea diff -u i git apply pot fer el mateix que la comanda patch.
Mentre que el resultat de git diff és un arxiu que pot ser compartit amb altres desenvolupadors, normalment hi ha millors maneres d'enviar canvis. Si els desenvolupadors prefereixen rebre els pedaços via correu electrònic, normalment els prefereixen generats amb git format-patch de manera que poden ser directament integrats al repositori amb git am. Això preserva les metainformació dels «commits» i fa possible el compartir-ne múltiples d'un sol cop.
Aquesta manera de treballar basada en correu electrònic encara és popular però tendeix a ser reemplaçat per l'ús de merge requests (o pull requests) quan el programa està hostatjat en una plataforma com ara GitHub o GitLab — i Debian usa Gitlab al seu servidor salsa.debian.org. En aquests sistemes, un cop hi has creat un compte, tu fas un fork del repositori creant una còpia efectiva del repositori al teu propi compte, i llavors pots clonar el repositori i aplicar-hi els teus propis canvis. A partir d'aquí, la interfície web et suggerirà d'enviar una petició d'unió ("merge request"), avisant als programadors originals dels teus canvis i facilitant-los la feina de revisar-los i acceptar-los amb un sol clic.

1.3.2.4. Altres maneres de contribuir

Tots aquests mecanismes de contribució són més eficients amb el comportament dels usuaris. Lluny de ser un seguit de persones isolades, els usuaris són una autèntica comunitat on nombrosos intercanvis hi tenen lloc. Volem fer especialment palesa la impressionant activitat a la llista de correu de discusió dels usuaris, (Capítol 7, Solucionar problemes i trobar informació rellevanten parla amb més detall).
No només els usuaris s'ajuden entre si (i també a d'altres) en aspectes tècnics que directament els afecten, sinó que també discuteixen sobre les millors maneres de contribuir al projecte Debian i ajudar a què es mogui endavant — discussions que sovint acaben en suggeriments per a millores.
Atès que Debian no gasta fons en campanyes de promoció, els seus usuaris tenen un paper essencial en la seva difusió, assegurant la fama amb el boca-orella.
Aquest mètode funciona força bé, ja que els fans de Debian es troben per tot arreu de la comunitat del programari lliure: des de festes d'instal·lació (tallers on usuaris amb experiència assisteixen als no iniciats a instal·lar el sistema) organitzats per LUGs o “Linux User Groups” (Grups d'Usuaris de Linux), fins a estands de l'associació en grans convencions tècniques relacionades amb el Linux, etc.
Els voluntaris fan pòsters, fulletons, adhesius i altres materials de promoció del projecte, que són posats a disposició de tothom, i que Debian ofereix lliurement al lloc web i a la wiki:

1.3.3. Equips, «Blends» i subprojectes

Debian s'ha organitzat al voltant del concepte de paquets font, cadascun amb el seu mantenidor o grup de mantenidors. Molts equips de treball han aparegut amb el temps, assegurant l'administració de la infraestructura, la gestió de tasques no específiques a cap paquet en particular (control de qualitat, Normativa Debian, l'instal·lador, etc.), amb els darrers equips creixent a l'entorn de subprojectes i «blends».

1.3.3.1. Subprojectes i «blends» Debian existents

Un Debian personalitzat per a cadascú! Un subprojecte és un grup de voluntaris interessats en adaptar Debian a necessitats específiques. Més enllà de la selecció d'un subgrup de programes destinats a un domini particular (educació, medicina, creació multimèdia, etc. ), els subprojectes també estan implicats en la millora dels paquets existents, l'empaquetament del programari que falta, l'adaptació de l'instal·lador, la creació de documentació específica, i més. Encara que un «blend» (en anglès, barreja) pot no ser exactament el mateix, funciona de manera molt similar i també intenta proporcionar una solució per a grups de persones que tenen la intenció d'utilitzar Debian per a un domini en particular. Es podria dir que «Debian Pure Blends» (o “Barreges pures de Debian”) és el successor dels subprojectes.
Aquí hi ha una petita selecció dels actualment publicats «Debian Pure Blends»:
  • Debian Junior, de Ben Armstrong, oferint un sistema Debian atractiu i fàcil d'utilitzar per a nens;
  • Debian Edu, de Petter Reinholdtsen, centrada en la creació d'una distribució especialitzada per al món acadèmic i educatiu;
  • Debian Med, d'Andreas Tille, dedicada al camp mèdic;
  • Debian Multimedia, que s'ocupa de l'àudio i del treball multimèdia;
  • Debian GIS, que s'encarrega de les aplicacions i usuaris de Sistemes d'Informació Geogràfica;
  • Debian Astro, tant per a astrònoms professionals com aficionats;
  • Debian Science, que treballa per proporcionar a investigadors i científics una millor experiència usant Debian;
  • Freedombox, feta per a desenvolupar, dissenyar i promoure els servidors personals usant programari lliure per a comunicacions privades i personals;
  • Debian Games, que proporciona jocs a Debian des d'«arcades» i aventures fins a simulació i estràtègia;
  • DebiChem, destinat a la Química, proporciona suites i programes químics.
El nombre de projectes probablement continuarà creixent amb el temps i la percepció millorada dels avantatges dels Debian Pure Blends. Completament suportats per la infraestructura de Debian existent, poden, de fet, centrar-se en el treball amb un valor afegit real, sense preocupar-se de romandre sincronitzats amb Debian, ja que es desenvolupen dins del projecte.

1.3.3.2. Grups administratius

La majoria dels equips administratius estan relativament tancats i només es recluta mitjançant cooptació. El millor mitjà per a formar part d'un és ajudar de manera intel·ligent als membres actuals, demostrant que s'han comprès els seus objectius i mètodes de funcionament.
Els ftpmasters estan a càrrec de l'arxiu oficial dels paquets Debian. Mantenen el programa que rep els paquets enviats pels desenvolupadors i els emmagatzema automàticament, després d'algunes comprovacions, al servidor de referència (ftp-master.debian.org).
També han de verificar les llicències de tots els paquets nous, per tal d'assegurar que Debian els pugui distribuir, abans d'incloure'ls en el corpus dels paquets existents. Quan un desenvolupador vol eliminar un paquet, s'adreça a aquest equip a través del sistema de seguiment d'errors i el «pseudopaquet»ftp.debian.org.
L'equip Debian System Administrators (DSA, ), com es podria esperar, és responsable de l'administració del sistema dels molts servidors utilitzats pel projecte. Garanteixen un funcionament òptim de tots els serveis bàsics (DNS, Web, correu electrònic, shell, etc.), instal·len programari sol·licitat per desenvolupadors de Debian, i prenen totes les precaucions pel que fa a la seguretat.
Els listmasters administren el servidor de correu electrònic que gestiona les llistes de correu. Creen noves llistes, manegen els rebots (avisos d'error de lliurament), i mantenen filtres de correu brossa (un correu electrònic massiu no sol·licitat).
Cada servei específic té el seu propi equip d'administració, generalment compost per voluntaris que l'han instal·lat (i també sovint han programat les eines corresponents). Aquest és el cas del sistema del sistema seguiment d'errors (BTS), el seguidor de paquets salsa.debian.org (servidor GitLab, veieu el quadre EINA GitLab, amfitrió de repositoris git i molt més), els serveis disponibles a qa.debian.org, lintian.debian.org, buildd.debian.org, cdimage.debian.org, etc.

1.3.3.3. Equips de desenvolupament, equips transversals

A diferència dels equips administratius, els equips de desenvolupament són bastant oberts, fins i tot als col·laboradors externs. Encara que Debian no té vocació de crear programari, el projecte necessita alguns programes específics per complir els seus objectius. Per descomptat, desenvolupat sota una llicència de programari lliure, aquestes eines fan ús de mètodes provats en altres llocs del món del programari lliure.
Debian ha desenvolupat poc programari propi, però alguns programes han assumit un paper protagonista, i la seva fama s'ha estès més enllà de l'abast del projecte. Bons exemples són dpkg, el programa de gestió de paquets de Debian (és, de fet, una abreviatura de Debian PacKaGe, i generalment es pronuncia en anglès com “dee-package”), i apt, una eina per instal·lar automàticament qualsevol paquet Debian, i les seves dependències, garantint la consistència del sistema després d'una actualització (el seu nom és un acrònim d'Advanced Package Tool). No obstant això, els seus equips són molt més petits, ja que es requereix un alt nivell d'habilitat de programació per obtenir una comprensió global de les operacions d'aquests tipus de programes.
L'equip més important és probablement el del programa d'instal·lació de Debian, debian-installer, que ha realitzat una obra de proporcions transcendentals des de la seva concepció el 2001. Es van necessitar nombrosos col·laboradors, ja que és difícil escriure un sol programa capaç d'instal·lar Debian en una dotzena d'arquitectures diferents. Cada un té el seu propi mecanisme per arrencar i el seu propi carregador d'arrencada. Tot aquest treball està coordinat a la llista de correu , sota la direcció de Cyril Brulebois.
El (molt petit) equip del programa debian-cd té un objectiu encara més modest. Molts contribuïdors «petits» són responsables de la seva arquitectura, ja que el desenvolupador principal no pot conèixer totes les subtileses, ni la manera exacta d'iniciar l'instal·lador des del CD-ROM.
Molts equips han de col·laborar amb D'altres en l'activitat de l'empaquetament: , per exemple, intenta assegurar la qualitat a tots els nivells del projecte Debian. La llista desenvolupa la Normativa de Debian d'acord amb propostes de tot arreu. Els equips encarregats de cada arquitectura () compilen tots els paquets, adaptant-los a la seva arquitectura en particular, si és necessari.
Altres equips gestionen els paquets més importants per tal de garantir el manteniment sense posar una càrrega massa pesada sobre unes úniques espatlles; aquest és el cas de la biblioteca C i , el compilador de C a la llista , o Xorg a (aquest grup també es coneix com la Força d'Atac X).