Product SiteDocumentation Site

5.3. Struttura di un pacchetto sorgente

5.3.1. Formato

Un pacchetto sorgente è normalmente composto da tre file, un .dsc, un .orig.tar.gz e un .debian.tar.gz o .diff.gz. Essi permettono la creazione di pacchetti binari (i file .deb descritti precedentemente) per uno o più programmi dal loro codice sorgente, scritto in un linguaggio di programmazione.
Il file .dsc (Debian Source Control) è un breve file di testo che contiene un'intestazione RFC 2822 (proprio come il file control esaminato nella Sezione 5.2.1, «Descrizione: il file control») che descrive il pacchetto sorgente e indica quali altri file ne fanno parte. È firmato dal suo manutentore, il che garantisce la sua autenticità. Vedere la Sezione 6.5, «Controllare l'autenticità dei pacchetti» per ulteriori dettagli su questo argomento.

Esempio 5.1. Un file .dsc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 3.0 (quilt)
Source: zim
Binary: zim
Architecture: all
Version: 0.48-1
Maintainer: Emfox Zhou <emfox@debian.org>
Uploaders: Raphaël Hertzog <hertzog@debian.org>
Homepage: http://zim-wiki.org
Standards-Version: 3.9.0
Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/deb-maint/zim/trunk?op=log
Vcs-Svn: svn://svn.debian.org/collab-maint/deb-maint/zim/trunk
Build-Depends: debhelper (>= 7.4.12), python-support (>= 0.8), xdg-utils, python (>= 2.5), libgtk2.0-0 (>= 2.6), python-gtk2, python-xdg, python-simplejson | python (>= 2.6)
Checksums-Sha1: 
 bd84fa5104de5ed85a49723d26b350856de93217 966899 zim_0.48.orig.tar.gz
 352111ff372a20579664416c9abd4970839835b3 9615 zim_0.48-1.debian.tar.gz
Checksums-Sha256: 
 77d8df7dc89b233fdc3aab1a8ad959c6888881ae160770f50bf880a56e02f895 966899 zim_0.48.orig.tar.gz
 0fceab5d3b099075cd38c225fa4002d893c1cdf4bbcc51d1391a34248e1e1a22 9615 zim_0.48-1.debian.tar.gz
Files: 
 88cfc18c0c7339528d5f5f463647bb5f 966899 zim_0.48.orig.tar.gz
 608b6e74aa14252dfc6236ab184bdb0c 9615 zim_0.48-1.debian.tar.gz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Signed by Raphael Hertzog

iQEcBAEBCAAGBQJMSUAfAAoJEAOIHavrwpq5qjUIAKmM8p86GcHYTxMmKENoBUoW
UPi5R7DzrLMbFrUXKgXWLvEKQTXpmkJhh2aSWq2iY+5piBSHwMiITfaBTpdTRvzU
5nT/n9MlF8sJFESet/NgZaMPFDzWUbIy5aYbuG1TXmn/7XiDrBaQGiVqKkVLPrqc
yWhsotn3JNKIjbPDW/DjImYyKD5RZpXrbVjuIgDT1E6yxtNYwUyBlK0cx/GITNep
uV48hsT8cj0paqVXl5+P9Ww8XIE3clxNpE/45/tvKvkqGOeysc6OPAqsIw6HYFY9
0EnvMTfMpeQOA68ZqsNpUjomv5r/EGwdCbAWo5iJDsZzXQ1Feh6iSNrjv3yeRzg=
=qnbh
-----END PGP SIGNATURE-----

Notare che anche il pacchetto sorgente ha delle dipendenze (Build-Depends) completamente distinte da quelle del pacchetto binario, dal momento che indicano gli strumenti richiesti per compilare il software in questione e costruire il suo pacchetto binario.
Il .orig.tar.gz è un archivio che contiene il codice sorgente del programma come fornito dallo sviluppatore originale. Ai manutentori dei pacchetti Debian viene chiesto di non modificare questo archivio in modo da poter facilmente verificare la fonte e l'integrità del file (con un semplice confronto con una somma di controllo) e per rispettare i desideri di alcuni autori.
.debian.tar.gz contiene tutte le modifiche fatte dal manutentore Debian, specialmente l'aggiunta della directory debian che contiene le istruzioni da eseguire per costruire un pacchetto Debian.

5.3.2. Uso con Debian

Il pacchetto sorgente è alla base di tutto in Debian. Tutti i pacchetti Debian provengono da un pacchetto sorgente e ogni modifica in un pacchetto Debian è la conseguenza di una modifica fatta al pacchetto sorgente. I manutentori Debian lavorano con i pacchetti sorgenti, conoscendo, però, le conseguenze delle loro azioni sui pacchetti binari. I frutti del loro lavoro si trovano, perciò, nei pacchetti sorgenti disponibili da Debian: si può facilmente tornare indietro e seguire ogni cosa.
Quando una nuova versione di un pacchetto (pacchetto sorgente e uno o più pacchetti binari) arriva su un server Debian, il pacchetto sorgente è il più importante. Infatti, sarà usato da una rete di macchine con architetture differenti per la compilazione delle varie architetture supportate da Debian. Il fatto che lo sviluppatore invii anche uno o più pacchetti binari per una data architettura (solitamente i386 o amd64) è relativamente non importante, dal momento che potrebbero anche essere stati generati automaticamente.