4. Resources for Debian Members

In this chapter you will find a very brief roadmap of the Debian mailing lists, the Debian machines which may be available to you as a member, and all the other resources that are available to help you in your work.

4.1. Mailing list

Gran parte delle conversazioni tra gli sviluppatori Debian (e gli utenti) sono gestite attraverso una vasta gamma di mailing list che ospitiamo su lists.debian.org. Per saperne di più su come iscriversi o cancellarsi, come inviare e come non inviare, dove trovare vecchi post e come cercarli, come contattare i maintainer delle liste e visionare varie altre informazioni sulle mailing list, leggere https://www.debian.org/MailingLists/. Questa sezione tratterà solo gli aspetti delle mailing list che sono di particolare interesse per gli sviluppatori.

4.1.1. Regole di base per l'utilizzo

Quando si risponde ai messaggi della mailing list, non inviare una copia per conoscenza (CC) al mittente originale a meno che non lo richiedano esplicitamente. Chiunque invii messaggi ad una mailing list dovrebbe leggerla per vedere le risposte.

L'invio incrociato (invio dello stesso messaggio a più mailing list) è sconsigliato. Come sempre in rete, tagliare la citazione di articoli a cui si sta rispondendo. In generale, rispettare le consuete convenzioni per l'invio di messaggi.

Si prega di leggere il codice di condotta per ulteriori informazioni. Vale anche la pena di leggere le Debian Community Guidelines.

4.1.2. Mailing list dello sviluppo centrale

Le principali mailing list Debian che gli sviluppatori dovrebbero utilizzare sono:

  • debian-devel-announce@lists.debian.org, usata per annunciare cose importanti per gli sviluppatori. Tutti gli sviluppatori dovrebbero essere iscritti a questa lista.

  • debian-devel@lists.debian.org, utilizzata per discutere di vari problemi tecnici legati allo sviluppo.

  • debian-policy@lists.debian.org, dove vengono discusse e votate le Debian Policy.

  • debian-project@lists.debian.org, utilizzata per discutere di varie questioni non tecniche legate al progetto.

Ci sono altre mailing list disponibili per una varietà di particolari argomenti, si consulti https://lists.debian.org/ per un elenco.

4.1.3. Mailing list speciali

debian-private@lists.debian.org è una mailing list speciale per discussioni private tra gli sviluppatori Debian. È pensata per essere utilizzata per i messaggi che per qualsiasi ragione non dovrebbero essere pubblicati pubblicamente. Come tale, è una lista a basso traffico, e gli utenti sono invitati a non usare debian-private@lists.debian.org a meno che non sia veramente necessario. Inoltre, non inoltrare email da tale lista a nessuno. Archivi di questa lista non sono disponibili sul web per ovvie ragioni, ma è possibile vederli usando il proprio account di shell su master.debian.org e guardando nella directory ~debian/archive/debian-private/.

debian-email@lists.debian.org, è una mailing list speciale usata come raccogli tutto per la corrispondenza relativa a Debian come per contattare gli autori originali su licenze, bug, etc. o discutere il progetto con altri, nei casi in cui potrebbe essere utile avere la discussione archiviata da qualche parte.

4.2. Canali IRC

Diversi canali IRC sono dedicati allo sviluppo di Debian. Essi sono principalmente ospitati sulla rete Open and free technology community (OFTC). La voce DNS irc.debian.org è un alias per irc.oftc.net.

Il principale canale di Debian in generale è #debian. Questo è un grande canale generico dove gli utenti possono trovare le notizie recenti nel topic oltre che fornite dai bot. #debian è per chi parla inglese, ci sono anche #debian.de, #debian-fr, #debian-br e altri canali con nomi simili per utenti di altre lingue.

Il canale principale per lo sviluppo di Debian è #debian-devel. È un canale molto attivo; in genere avrà un minimo di 150 persone in ogni momento della giornata. È un canale per le persone che lavorano su Debian, non è un canale di supporto (c'è #debian per quello). È comunque aperto a chiunque voglia dare un'occhiata (e imparare). Il suo topic è generalmente pieno di informazioni interessanti per gli sviluppatori.

Siccome #debian-devel è un canale aperto, non si dovrebbe parlare di problemi che vengono discussi in debian-private@lists.debian.org. C'è un altro canale per questo scopo, si chiama #debian-private ed è protetto da una chiave. Questa chiave è disponibile presso master.debian.org:~debian/misc/irc-password.

There are other additional channels dedicated to specific subjects. #debian-bugs is used for coordinating bug squashing parties. #debian-boot is used to coordinate the work on the debian-installer. #debian-doc is occasionally used to talk about documentation, like the document you are reading. Other channels are dedicated to an architecture or a set of packages: #debian-kde, #debian-dpkg, #debian-perl, #debian-python...

Esistono anche alcuni canali di sviluppatori non inglesi, per esempio #debian-devel-fr per le persone di lingua francese interessate allo sviluppo di Debian.

Channels dedicated to Debian also exist on other IRC networks.

4.3. La documentazione

This document contains a lot of information which is useful to Debian developers, but it cannot contain everything. Most of the other interesting documents are linked from The Developers' Corner. Take the time to browse all the links; you will learn many more things.

4.4. Le macchine Debian

Debian ha diversi computer che lavorano come server, molti dei quali utilizzati per le funzioni critiche del progetto Debian. La maggior parte delle macchine sono utilizzate per le attività di port e tutte hanno una connessione permanente a Internet.

Alcune delle macchine sono disponibili per essere utilizzate da singoli sviluppatori, a patto che gli seguano le regole stabilite nella Policy Debian per l'utilizzo delle macchine.

In generale, è possibile utilizzare queste macchine come meglio si crede per scopi relativi a Debian. Essere gentili con gli amministratori di sistema, e di non utilizzare tonnellate e tonnellate di spazio su disco, larghezza di banda, o CPU senza prima ottenere l'approvazione degli amministratori di sistema. Di solito queste macchine sono gestite da volontari.

Fare attenzione a proteggere le proprie password e le chiavi SSH Debian installate sulle macchine Debian. Evitare il login o metodi di caricamento che inviano le password su Internet in chiaro, come Telnet, FTP, POP, etc.

Non inserire alcun materiale che non riguarda Debian sui server Debian, se non è stato prima ottenuto il permesso.

L'elenco attuale delle macchine Debian è disponibile presso https://db.debian.org/machines.cgi. Quella pagina web contiene i nomi delle macchine, informazioni di contatto, informazioni su chi può accedere, le chiavi SSH, etc.

Se si ha un problema con il funzionamento di un server Debian, e si pensa che i gestori del sistema devono essere avvisati di ciò, è possibile consultare l'elenco dei problemi aperti nella coda DSA del nostro sistema di tracciamento delle richieste all'indirizzo https://rt.debian.org/ (si può effettuare il login con user «debian», la cui password è disponibile su master.debian.org:~debian/misc/rt-password). Per segnalare un nuovo problema, è sufficiente inviare una email all'indirizzo admin@rt.debian.org e fare in modo di mettere la stringa «Debian RT» in qualche parte nell'oggetto.

Se si ha un problema con un certo servizio, non legato all'amministrazione del sistema (come ad esempio i pacchetti da rimuovere dall'archivio, suggerimenti per il sito web, etc.), generalmente si segnala un bug su uno «pseudo-pacchetto». Per informazioni su come segnalare bug si consulti Segnalare i bug.

Alcuni dei server centrali sono riservati, ma le informazioni sono duplicate su un altro server.

4.4.1. Il server dei bug

bugs.debian.org è il percorso canonico per il Bug Tracking System (BTS).

Se si ha intenzione di fare un po' di analisi statistiche o qualche elaborazione dei dati sui bug Debian, questo sarebbe il posto per farlo. Tuttavia si descrivano le intenzioni su debian-devel@lists.debian.org prima di attuare qualsiasi cosa, per ridurre inutili duplicazioni di attività o di tempo di elaborazione sprecato.

4.4.2. Il server ftp-master

The ftp-master.debian.org server holds the canonical copy of the Debian archive. Generally, packages uploaded to ftp.upload.debian.org end up on this server; see Caricare un pacchetto.

È riservato; un server specchio è disponibile su mirror.ftp-master.debian.org.

I problemi con l'archivio FTP Debian generalmente necessitano di essere segnalati come bug nei confronti dello pseudo-pacchetto ftp.debian.org o attraverso una email a ftpmaster@debian.org, ma si consultino anche le procedure in Lo spostamento, la rimozione, la ridenominazione, l'adozione, e rendere orfani i pacchetti.

4.4.3. Il server www-master

Il server web principale è www-master.debian.org. Contiene le pagine web ufficiali, il volto di Debian per la maggior parte dei neofiti.

If you find a problem with the Debian web server, you should generally submit a bug against the pseudo-package www.debian.org. Remember to check whether or not someone else has already reported the problem to the Bug Tracking System.

4.4.4. Il web server persone

people.debian.org è il server utilizzato per creare pagine web personali degli sviluppatori su qualsiasi cosa relativa a Debian.

Se si dispone di alcune informazioni specifiche di Debian che si vuole fornire sul web, è possibile farlo mettendo il materiale nella cartella public_html sotto la propria cartella home su people.debian.org. Questa sarà accessibile all'URL http://people.debian.org/~proprio-user-id/.

Si consiglia di utilizzare solo questa particolare posizione, perché ne verrà eseguito il backup, mentre su altri host no.

Di solito l'unica ragione per usare un host diverso è quando si ha bisogno di pubblicare materiali soggetti a restrizioni sull'esportazione degli Stati Uniti, nel qual caso è possibile utilizzare uno degli altri server situati al di fuori degli Stati Uniti.

Si invii una email a debian-devel@lists.debian.org se si hanno domande.

4.4.5. salsa.debian.org: Git repositories and collaborative development platform

If you want to use a git repository for any of your Debian work, you can use Debian's GitLab instance called Salsa for that purpose. Gitlab provides also the possibility to have merge requests, wiki pages, bug trackers among many other services as well as a fine-grained tuning of access permission, to help working on projects collaboratively.

For more information, please see the documentation at https://wiki.debian.org/Salsa/Doc.

4.4.6. GitHub.com: Submitting pull requests to upstream repositories

If some upstream repository is hosted on GitHub.com, you can use the Debian organization to create repository forks and submit changed branches with pull requests to upstream maintainers.

The organization is open to all Debian Members. To request membership, open an issue in the Debian/.github meta repository.

4.4.7. chroot per diverse distribuzioni

Su alcune macchine, ci sono chroot disponibili per differenti distribuzioni. Si possono utilizzare in questo modo:

vore$ dchroot unstable
Executing shell in chroot: /org/vore.debian.org/chroots/user/unstable

In tutti i chroot, sono disponibili le normali cartelle home degli utenti. Si possono scoprire quali chroot sono disponibili tramite https://db.debian.org/machines.cgi.

4.5. Il Database degli sviluppatori

The Developers Database, at https://db.debian.org/, is an LDAP directory for managing Debian developer attributes. You can use this resource to search the list of Debian developers. Part of this information is also available through the finger service on Debian servers; try finger yourlogin@db.debian.org to see what it reports.

Gli sviluppatori possono autenticarsi al database per cambiare varie informazioni su se stessi, come ad esempio:

  • forwarding address for your debian.org email as well as spam handling. See https://db.debian.org/forward.html for a description of all the options.

  • sottoscrizione a debian-private

  • se si è in vacanza

  • informazioni personali, come il proprio indirizzo, la nazione, la latitudine e la longitudine del luogo in cui si vive per l'uso nella mappa del mondo degli sviluppatori Debian, telefono e fax, IRC nickname e pagina web

  • la password e la shell preferita su macchine del progetto Debian

La maggior parte delle informazioni non sono accessibili al pubblico, ovviamente. Per ulteriori informazioni leggere la documentazione online che si può trovare su https://db.debian.org/doc-general.html.

Gli sviluppatori possono inoltre inviare le loro chiavi SSH per essere utilizzate per l'autorizzazione sulle macchine ufficiali di Debian, e persino aggiungere nuove voci DNS *.debian.net. Tali caratteristiche sono documentate su https://db.debian.org/doc-mail.html.

4.6. L'archivio Debian

La distribuzione Debian è composta da molti pacchetti (attualmente circa 30000 pacchetti sorgente) e alcuni file aggiuntivi (come ad esempio la documentazione e le immagini del disco di installazione).

Ecco un esempio di albero di cartelle di un archivio completo di Debian:

dists/stable/main/
dists/stable/main/binary-amd64/
dists/stable/main/binary-armel/
dists/stable/main/binary-i386/
     ...
dists/stable/main/source/
     ...
dists/stable/main/disks-amd64/
dists/stable/main/disks-armel/
dists/stable/main/disks-i386/
     ...

dists/stable/contrib/
dists/stable/contrib/binary-amd64/
dists/stable/contrib/binary-armel/
dists/stable/contrib/binary-i386/
     ...
dists/stable/contrib/source/

dists/stable/non-free/
dists/stable/non-free/binary-amd64/
dists/stable/non-free/binary-armel/
dists/stable/non-free/binary-i386/
     ...
dists/stable/non-free/source/

dists/stable/non-free-firmware/
dists/stable/non-free-firmware/binary-amd64/
dists/stable/non-free-firmware/binary-armel/
dists/stable/non-free-firmware/binary-i386/
     ...
dists/stable/non-free-firmware/source/

dists/testing/
dists/testing/main/
     ...
dists/testing/contrib/
     ...
dists/testing/non-free/
     ...
dists/testing/non-free-firmware/
     ...

dists/unstable
dists/unstable/main/
     ...
dists/unstable/contrib/
     ...
dists/unstable/non-free/
     ...
dists/unstable/non-free-firmware/
     ...

pool/
pool/main/a/
pool/main/a/apt/
     ...
pool/main/b/
pool/main/b/bash/
     ...
pool/main/liba/
pool/main/liba/libalias-perl/
     ...
pool/main/m/
pool/main/m/mailx/
     ...
pool/non-free/d/
pool/non-free/d/doc-rfc/
     ...
pool/non-free-firmware/f/
pool/non-free-firmware/f/firmware-nonfree/
     ...

Come si può vedere, la cartella di livello superiore contiene due cartelle, dists/ e pool/. Quest'ultimo è un «punto di raccolta» in cui si trovano effettivamente i pacchetti e che è gestito dal database di manutenzione dell'archivio e dai programmi di accompagnamento. La prima contiene le distribuzioni, stable, testing e unstable. I file Packages e Sources delle sottocartelle di distribuzione possono fare riferimento ai file in pool/. L'albero delle cartelle sotto ciascuna delle distribuzioni è disposto in modo identico. Ciò che viene descritto qui di seguito per stable è ugualmente applicabile alle distribuzioni unstable e testing.

dists/stable contains four directories, namely main, contrib, non-free and non-free-firmware.

In ciascuna delle aree, vi è una cartella per i pacchetti sorgente (source) e una cartella per ogni architettura supportata (binary-i386, binary-amd64, etc.).

L'area main contiene altre cartelle che contengono le immagini del disco e alcuni pezzi essenziali della documentazione necessari per l'installazione della distribuzione Debian su una specifica architettura (disk-i386, disk-amd64, etc.).

4.6.1. Sezioni

La sezione main dell'archivio Debian è ciò che costituisce ufficiale la distribuzione Debian. La sezione main è ufficiale perché soddisfa pienamente tutte le nostre linee guida. Le altre due sezioni no, a gradi diversi; in quanto tali, esse non sono ufficialmente parte di Debian.

Ogni pacchetto nella sezione main deve soddisfare le Linee guida Debian per il sofware libero (DFSG) e tutti gli altri requisiti delle policy come descritto nel Debian Policy Manual. Le DFSG sono la nostra definizione del «software libero». Si controlli il Debian Policy Manual per maggiori dettagli.

I pacchetti nella sezione contrib sono tenuti a rispettare le DFSG, ma possono non soddisfare altri requisiti. Ad esempio, possono dipendere da pacchetti non-free.

Packages which do not conform to the DFSG are placed in the non-free or non-free-firmware sections. These packages are not considered as part of the Debian distribution, though we enable their use, and we provide infrastructure (such as our bug-tracking system and mailing lists) for these non-free software packages.

The Debian Policy Manual contains a more exact definition of the four sections. The above discussion is just an introduction.

The separation of the four sections at the top-level of the archive is important for all people who want to distribute Debian, either via FTP servers on the Internet or on CD-ROMs: by distributing only the main and contrib sections, one can avoid any legal risks. Some packages in the non-free section do not allow commercial distribution, for example.

D'altra parte, un venditore di CD-ROM potrebbe controllare facilmente le singole licenze dei pacchetti presenti in non-free e includere nel CD-ROM il maggior numero consentito. (Dal momento che questo varia da fornitore a fornitore, questo lavoro non può essere fatto dagli sviluppatori Debian.)

Note that the term section is also used to refer to categories which simplify the organization and browsing of available packages: admin, net, utils, etc. Once upon a time, these sections (subsections, rather) existed in the form of subdirectories within the Debian archive. Nowadays, these exist only in the Section header fields of packages.

4.6.2. Le architetture

I primi tempi, il kernel Linux era disponibile solo per le piattaforme Intel i386 (o superiore), e così è stato per Debian. Ma, man mano che Linux è diventato sempre più popolare, il kernel è stato portato su altre architetture e Debian iniziò a supportarle. E siccome sostenere così tanto hardware non fosse abbastanza, Debian ha deciso di costruire alcuni port sulla base di altri kernel Unix, come hurd e kFreeBSD.

Debian GNU/Linux 1.3 was only available as i386. Debian 2.0 shipped for i386 and m68k architectures. Debian 2.1 shipped for the i386, m68k, alpha, and sparc architectures. Since then Debian has grown hugely. Debian 9 supports a total of ten Linux architectures (amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, and s390x) and two kFreeBSD architectures (kfreebsd-i386 and kfreebsd-amd64).

Informazioni per gli sviluppatori e gli utenti su port specifici sono disponibili presso le pagine web dei Port di Debian.

4.6.3. I pacchetti

Ci sono due tipi di pacchetti Debian, e cioè pacchetti source (sorgente) e binary (binario).

A seconda del formato del pacchetto sorgente, esso sarà composto da uno o più file in aggiunta all'obbligatorio .dsc:

  • con il formato «1.0», esso ha sia un file .tar.gz sia un file .orig.tar.gz sia un .diff.gz;

  • con il formato «3.0 (quilt)», esso ha una un archivio tar originale .orig.tar.{gz,bz2,xz} obbligatoria, diversi opzionali archivi tar .orig-component.tar.{gz,bz2,xz} originali aggiuntivi e un archivio tar debian obbligatorio debian.tar.{gz,bz2,xz};

  • con il formato «3.0 (native)», si ha solo un unico archivio tar .tar.{gz,bz2,xz}.

If a package is developed specially for Debian and is not distributed outside of Debian, there is just one .tar.{gz,bz2,xz} file, which contains the sources of the program; it's called a “native” source package. If a package is distributed elsewhere too, the .orig.tar.{gz,bz2,xz} file stores the so-called upstream source code, that is the source code that's distributed by the upstream maintainer (often the author of the software). In this case, the .diff.gz or the debian.tar.{gz,bz2,xz} contains the changes made by the Debian maintainer.

Il file .dsc elenca tutti i file nel pacchetto sorgente insieme ai codici di controllo (md5sum) e alcune ulteriori informazioni sul pacchetto (maintainer, versione, etc.).

4.6.4. Le distribuzioni

The directory system described in the previous chapter is itself contained within distribution directories. Each distribution is actually contained in the pool directory in the top level of the Debian archive itself.

To summarize, the Debian archive has a root directory within a mirror site. For instance, at the mirror site ftp.us.debian.org the Debian archive itself is contained in /debian, which is a common location (another is /pub/debian).

Una distribuzione comprende pacchetti binari e sorgenti Debian, e i rispettivi file indice Sources e Packages, che contengono le informazioni degli header di tutti quei pacchetti. I primi sono tenuti nella cartella pool/, mentre i secondi sono tenuti neella cartella dists/ dell'archivio (per retro-compatibilità).

4.6.4.1. Stable, testing e unstable

Ci sono sempre distribuzioni chiamate stable (residente in dists/stable), testing (residente in dists/testing) e unstable (residente in dists/unstable). Ciò riflette il processo di sviluppo del progetto Debian.

Lo sviluppo attivo è fatto nella distribuzione unstable (è per questo che questa distribuzione è a volte chiamata distribuzione di sviluppo). Ogni sviluppatore Debian può aggiornare i propri pacchetti in questa distribuzione, in qualsiasi momento. Così, il contenuto di questa distribuzione cambia di giorno in giorno. Dal momento che non viene fatto alcun sforzo particolare per assicurarsi che tutto in questa distribuzione funzioni correttamente, a volte è letteralmente instabile.

La distribuzione testing viene generata automaticamente prendendo i pacchetti da unstable se soddisfano determinati criteri. Tali criteri dovrebbero assicurare una buona qualità per i pacchetti in testing. L'aggiornamento di testing è lanciato due volte al giorno, subito dopo che sono stati installati i nuovi pacchetti. Si consulti La distribuzione testing.

Dopo un periodo di sviluppo, una volta che il responsabile del rilascio lo ritiene opportuno, la distribuzione testing è congelata, il che significa che le politiche che controllano come i pacchetti passano da unstable a testing sono rese più rigide. I pacchetti che hanno troppi bug vengono rimossi. Non sono consentite modifiche in testing tranne che per correzioni di bug. Trascorso un po' di tempo, a seconda dei progressi, la distribuzione testing è congelata ancora di più. Dettagli sulla gestione della distribuzione testing sono pubblicati dal team di rilascio su debian-devel-announce. Dopo che i problemi aperti sono stati risolti in modo soddisfacente per il team di rilascio, la distribuzione viene rilasciata. Rilasciare significa che testing viene rinominata stable, e una nuova copia viene creata per la nuova testing e la precedente stable viene rinominata oldstable e vi rimane fino a quando viene definitivamente archiviata. Una volta archiviata, i contenuti vengono spostati in archive.debian.org.

Questo ciclo di sviluppo si basa sul presupposto che la distribuzione unstable diventa stable, dopo il superamento di un periodo in testing. Anche se una distribuzione è considerata stable, alcuni bug inevitabilmente restano: è per questo che la distribuzione stable è aggiornata ogni tanto. Tuttavia, questi aggiornamenti vengono testati molto attentamente e devono essere introdotti nell'archivio singolarmente per ridurre il rischio di introdurre nuovi bug. Si possono trovare le integrazioni proposte alla stable nella cartella proposed-updates. Questi pacchetti in proposed-updates che superano i test sono periodicamente spostati in gruppo nella distribuzione stable e il livello di revisione della distribuzione stable viene incrementato (ad esempio, «6.0» diventa «6.0.1», «5.0.7» diventa «5.0.8», e così via). Fare riferimento a Caso particolare: caricamenti sulle distribuzioni stable e oldstable per i dettagli.

Note that development in unstable during the freeze should not be continued as usual, as packages are still build in unstable, before they migrate to testing, thus unstable should only contain packages meant for testing. Thus only upload to unstable during freezes, if you are planning to request an unblock (or if the package is not in testing).

If you want to develop new stuff for after the freeze, upload to experimental instead.

4.6.4.2. Maggiori informazioni sulla distribuzione testing

I pacchetti sono generalmente installati nella distribuzione testing dopo aver subito un periodo di prova in unstable.

Per maggiori dettagli, consultare le informazioni La distribuzione testing.

4.6.4.3. Experimental

La distribuzione experimental è una distribuzione speciale. Non è una distribuzione completa nello stesso senso di come lo sono stable, testing e unstable. Invece, essa è destinata ad essere una zona di sosta temporanea per software altamente sperimentale dove c'è una buona probabilità che il software potrebbe bloccare il sistema o un software che è semplicemente troppo instabile anche per la distribuzione unstable (ma vi è un motivo per pacchettizzarlo comunque). Gli utenti che scaricano e installano i pacchetti da experimental si presume siano stati ampiamente avvertiti. In breve, qualsiasi cosa può accadere per la distribuzione experimental.

Queste sono le righe di sources.list 5 per experimental:

deb http://deb.debian.org/debian/ experimental main
deb-src http://deb.debian.org/debian/ experimental main

Se c'è una possibilità che il software potrebbe fare gravi danni a un sistema, è probabile che sia meglio metterlo in experimental. Per esempio, un file system compresso sperimentale dovrebbe probabilmente andare in experiemental.

Ogni volta che c'è una nuova versione di un pacchetto che introduce nuove funzionalità, ma rende non funzionanti molte di quelle vecchie, non dovrebbe essere caricato, o essere caricato in experimental. Una versione beta nuova di alcuni software che utilizza una configurazione completamente diversa può andare in experimental, a discrezione del maintainer. Anche se si sta lavorando su una situazione di aggiornamento incompatibile o complessa, è possibile utilizzare exerimental come area di sosta, in modo che i tester possano iniziarci a lavorare prima.

Alcuni software sperimentali possono comunque andare in unstable, con alcune avvertenze nella descrizione, ma non è raccomandato perché i pacchetti da unstable sono destinati a passare in testing e quindi a stable. Non si deve aver paura di usare experimental dal momento che non causa alcun dolore agli ftpmaster, i pacchetti sperimentali vengono periodicamente rimossi una volta caricato il pacchetto in unstable con un numero di versione superiore.

Il nuovo software che non rischia di danneggiare il sistema può andare direttamente in unstable.

Un'alternativa a experimental è quella di utilizzare il proprio spazio web personale su people.debian.org.

4.6.5. Nomi in codice dei rilasci

Every released Debian distribution has a code name: Debian 9 is called stretch; Debian 10, buster; Debian 11, bullseye; the next release, Debian 12, will be called bookworm and Debian 13 will be called trixie. There is also a pseudo-distribution, called sid, which is the current unstable distribution; since packages are moved from unstable to testing as they approach stability, sid itself is never released. As well as the usual contents of a Debian distribution, sid contains packages for architectures which are not yet officially supported or released by Debian. These architectures are planned to be integrated into the mainstream distribution at some future date. The codenames and versions for older releases are listed on the website.

Dal momento che Debian ha un modello di sviluppo aperto (vale a dire, tutti possono partecipare e seguire lo sviluppo) anche le distribuzioni unstable e testing sono distribuite su Internet attraverso la rete Debian dei server FTP e HTTP. Così, se avessimo chiamato la cartella che contiene la versione candidata al rilascio testing, allora avremmo dovuto rinominarla stable quando la versione viene rilasciata, che obbligherebbe tutti i mirror FTP a ri-recuperare l'intera distribuzione (che è piuttosto grande).

D'altra parte, se avessimo chiamato dal principio le cartelle di distribuzione Debian-x.y, la gente avrebbe potuto pensare che la versione Debian x.y fosse disponibile. (Questo è successo in passato, dove un distributore di CD-ROM Debian 1.0 creò un CD-ROM basato su una versione pre-1.0 di sviluppo. Questa è la ragione per cui il primo rilascio ufficiale di Debian è stato 1.1, e non 1.0.)

Così, i nomi delle cartelle delle distribuzioni presenti nell'archivio sono determinati dai loro nomi in codice e non dal loro stato di rilascio (per esempio, «squeeze»). Questi nomi rimangono invariati durante il periodo di sviluppo e dopo il rilascio; i collegamenti simbolici, che possono essere modificati facilmente, indicano la distribuzione stabile attualmente rilasciata. Ecco perché le cartelle di distribuzione reali utilizzano i nomi in codice, mentre i collegamenti simbolici per stable, testing e unstable puntano alle appropriate cartelle di rilascio.

4.7. Mirror di Debian

I vari archivi di download e il sito web hanno diversi mirror disponibili al fine di alleviare i nostri server canonici da carico pesante. In effetti, alcuni dei server canonici non sono pubblici: un primo livello di mirror bilancia, invece, il carico. In questo modo, gli utenti accedono sempre ai mirror e si abituano al loro utilizzo, che consente a Debian di gestire meglio i suoi requisiti di larghezza di banda su più server e reti, e praticamente evita agli utenti di martellare una sola posizione primaria. Si noti che il primo strato di mirror è sempre aggiornato per quanto possibile dal momento che si aggiorna quando innescato dai siti interni (ciò viene detto «push mirroring»).

Tutte le informazioni sui mirror Debian, tra cui un elenco di server pubblici FTP/HTTP disponibili, possono essere trovate su https://www.debian.org/mirror/. Questa utile pagina contiene anche informazioni e strumenti che possono essere utili se si è interessati a realizzare il proprio mirror, sia per l'accesso interno che pubblico.

Note that mirrors are generally run by third parties who are interested in helping Debian. As such, developers generally do not have accounts on these machines.

4.8. Il sistema Incoming

Il sistema Incoming è responsabile della raccolta dei pacchetti aggiornati e li installa nell'archivio Debian. Si compone di un insieme di cartelle e script che vengono installati su ftp-master.debian.org.

I pacchetti sono caricati da tutti i maintainer in una cartella denominata UploadQueue. Questa cartella viene analizzata ogni pochi minuti da un demone chiamato queued, vengono eseguiti file *.command e i file *.changes restanti e correttamente firmati vengono spostati insieme ai loro file corrispondenti nella directory unchecked. Questa cartella non è visibile alla maggior parte degli sviluppatori, dato che ftp-master è riservato; ma viene sottoposta a scansione ogni 15 minuti dallo script dak process-upload, che verifica l'integrità dei pacchetti caricati e le loro firme crittografiche. Se il pacchetto è considerato pronto per essere installato, viene spostato nella cartella done. Se questo è il primo caricamento del pacchetto (o ha nuovi pacchetti binari), viene spostato nella cartella new, dove attende l'approvazione da parte degli ftpmaster. Se il pacchetto contiene file da installare a mano viene spostato nella cartella byhand, dove attende l'installazione manuale degli ftpmasters. Altrimenti, se è stato rilevato qualche errore, il pacchetto viene rifiutato e viene spostato nella cartella reject.

Una volta che il pacchetto viene accettato, il sistema invia una email di conferma al maintainer e chiude tutti i bug marcati come corretti dal caricamento, e gli auto-builder possono iniziare a ricompilarlo. Il pacchetto è ora accessibile al pubblico presso https://incoming.debian.org/ fino a quando non sarà realmente installato nell'archivio Debian. Questo accade quattro volte al giorno (ed è chiamata anche la «dinstall run» per ragioni storiche), il pacchetto viene quindi rimosso da incoming ed installato nel pool insieme a tutti gli altri pacchetti. Una volta che tutti gli altri aggiornamenti (che generano i nuovi file di indice Packages e Sources per esempio) sono stati apportati, uno speciale script è chiamato per chiedere a tutti i mirror primari di aggiornarsi.

The archive maintenance software will also send the OpenPGP signed .changes file that you uploaded to the appropriate mailing lists. If a package is released with the Distribution set to stable, the announcement is sent to debian-changes@lists.debian.org. If a package is released with Distribution set to unstable or experimental, the announcement will be posted to debian-devel-changes@lists.debian.org or debian-experimental-changes@lists.debian.org instead.

Anche se ftp-master è riservato, una copia dell'installazione è disponibile per tutti gli sviluppatori su mirror.ftp-master.debian.org.

4.9. Informazioni sul pacchetto

4.9.1. Sul web

Ogni pacchetto ha diverse pagine web dedicate. http://packages.debian.org/nome-pachetto visualizza ogni versione del pacchetto disponibile nelle varie distribuzioni. Ogni versione punta ad una pagina che fornisce informazioni, compresa la descrizione del pacchetto, le dipendenze, e i collegamenti per il suo scaricamento.

Il sistema di tracciamento dei bug mantiene traccia dei bug di ogni pacchetto. È possibile visualizzare i bug di un determinato pacchetto all'URL http://bugs.debian.org/nome-pacchetto.

4.9.2. L'utility dak ls

dak ls è parte della suite di strumenti di dak, ed elenca le versioni dei pacchetti disponibili per tutte le distribuzioni e le architetture conosciute. Lo strumento dak è disponibile su ftp-master.debian.org, e sul mirror mirror.ftp-master.debian.org. Esso utilizza un singolo argomento corrispondente a un nome di un pacchetto. Un esempio servirà a chiarire meglio:

$ dak ls evince
evince     | 3.22.1-3+deb9u2  | oldstable           | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
evince     | 3.22.1-3+deb9u2  | oldstable-debug     | source
evince     | 3.30.2-3+deb10u1 | stable              | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
evince     | 3.30.2-3+deb10u1 | stable-debug        | source
evince     | 3.38.2-1         | testing             | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
evince     | 3.38.2-1         | unstable            | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
evince     | 3.38.2-1         | unstable-debug      | source
evince     | 40.4-1           | buildd-experimental | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
evince     | 40.4-1           | experimental        | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
evince     | 40.4-1           | experimental-debug  | source

In questo esempio, si può vedere che la versione in unstable differisce da quella in testing e che c'è stato un NMU solo binario del pacchetto per tutte le architetture. Ciascuna versione del pacchetto è stata ricompilata su tutte le architetture.

4.10. The Debian Package Tracker

Il Package Tracking System (PTS) è uno strumento basato sulla posta elettronica per monitorare l'attività di un pacchetto sorgente. Questo vuol dire che è possibile ottenere gli stessi messaggi di posta elettronica che riceve il maintainer del pacchetto, semplicemente iscrivendosi al pacchetto nel PTS.

Il PTS ha una interfaccia web all'indirizzo http://packages.qa.debian.org/, che mette insieme molte informazioni su ogni pacchetto sorgente. È dotato di molti collegameti utili (BTS, statistiche QA, informazioni sui contatti, lo stato di traduzione DDTP, log dei buildd) e raccoglie molte informazioni da vari luoghi (le ultime 30 voci del changelog, lo stato di testing, etc.). È uno strumento molto utile se si vuole sapere che cosa sta succedendo ad uno specifico pacchetto sorgente. Inoltre c'è un modulo che permette una facile iscrizione al PTS via email.

È possibile accedere direttamente alla pagina web relativa ad uno specifico pacchetto sorgente con un URL del tipo http://packages.qa.debian.org/pacchettosorgente.

For more in-depth information, you should have a look at its documentation. Among other things, it explains you how to interact with it by email, how to filter the mails that it forwards, how to configure your VCS commit notifications, how to leverage its features for maintainer teams, etc.

4.11. Panoramica dei pacchetti per sviluppatori

Un portale web QA (garanzia di qualità) è disponibile all'indirizzo https://qa.debian.org/developer.php che visualizza una tabella che elenca tutti i pacchetti di un singolo sviluppatore (compresi quelli in cui è elencato come co-maintainer). La tabella fornisce una buona sintesi sui pacchetti dello sviluppatore: numero di bug ordinati per gravità, l'elenco delle versioni disponibili in ogni distribuzione, lo stato di testing e molto altro tra cui collegamenti ad ogni altra informazione utile.

È una buona idea cercare i propri dati regolarmente in modo da non dimenticare eventuali bug aperti e in modo da non dimenticare di quali pacchetti si ha la responsabilità.

4.12. L'installazione FusionForge di Debian: Alioth

Until Alioth was deprecated and eventually turned off in June 2018, it was a Debian service based on a slightly modified version of the FusionForge software (which evolved from SourceForge and GForge). This software offered developers access to easy-to-use tools such as bug trackers, patch managers, project/task managers, file hosting services, mailing lists, VCS repositories, etc.

For many previously offered services replacements exist. This is important to know, as there are still many references to alioth which still need fixing. If you encounter such references please take the time to try fixing them, for example by filing bugs or when possible fixing the reference.

4.13. Goodies for Debian Members

Benefits available to Debian Members are documented on https://wiki.debian.org/MemberBenefits.