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.xz (o .diff.gz). Essi permettono la creazione di pacchetti binari (i file .deb descritti precedentemente) dal loro codice sorgente, scritti 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.6, «Controllare l'autenticità dei pacchetti» per ulteriori dettagli su questo argomento.

Esempio 5.1. Un file .dsc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 3.0 (quilt)
Source: zim
Binary: zim
Architecture: all
Version: 0.75.1-1
Maintainer: Zim Package Maintainers <zim@packages.debian.org>
Uploaders: Raphaël Hertzog <hertzog@debian.org>
Homepage: https://zim-wiki.org
Standards-Version: 4.6.1
Vcs-Browser: https://salsa.debian.org/debian/zim
Vcs-Git: https://salsa.debian.org/debian/zim.git
Build-Depends: debhelper-compat (= 13), python3, python3-gi, python3-xdg, gir1.2-gtk-3.0, dh-python
Package-List:
 zim deb x11 optional arch=all
Checksums-Sha1:
 b4baa294ebc28b07393739875d94fab9557a2e5e 2510821 zim_0.75.1.orig.tar.gz
 e592c9ab8b12276283c6a7bed2246f2e9a843093 10416 zim_0.75.1-1.debian.tar.xz
Checksums-Sha256:
 88e175d7f7e141896f9e958989d252d722556af17bc4bc6f065e7d54287d0385 2510821 zim_0.75.1.orig.tar.gz
 30847b58bb2503b707f1d5c5c356eead31e61db09e677348f07383fcdda3bcb3 10416 zim_0.75.1-1.debian.tar.xz
Files:
 cc73838c1312b5e161d15a51ae4247c4 2510821 zim_0.75.1.orig.tar.gz
 ad84c5ac373071e4957490caf03f3a8b 10416 zim_0.75.1-1.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Comment: Signed by Raphael Hertzog

iQEzBAEBCgAdFiEE1823g1EQnhJ1LsbSA4gdq+vCmrkFAmO15esACgkQA4gdq+vC
mrkB4AgAj2tYiDW4aQdZfJHr/GGU9rHL99+lTL1VmrXr/I6Z8ggig0JGbTH4Z3lg
QNRu1PbFDJgdO1ho+c0b474iOsT4QTIUu9vHX/enwJ1MiQw8wGDNlsJIS+S33j5n
745p9Y782LTyKaaKPnilHst7pTIGNjmFRlqJr9E8K3gRjZjpTg6HE420epZ6haf1
+gk2npbsy2Psu1LsrbDUCa415COsogar6fpU3Kui3/p8ijT1ED1y9CqoNxATequp
nHkwpnwmi24Y5+RV79SXKW3ECOHTHGKCRWGFtSwCFg0LcAq69cTwnyphXt0gW/+Z
RtG81/jI+mMeRUGsdzdjAVlLK7K75w==
=0po3
-----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 creare 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.
L'archivio .debian.tar.xz contiene tutte le modifiche fatte dal manutentore Debian, specialmente l'aggiunta della directory debian contenente le istruzioni da eseguire per creare uno o più pacchetti binari Debian.

5.3.2. Uso con Debian

Il pacchetto sorgente è alla base di tutto in Debian. Tutti i pacchetti provengono da un pacchetto sorgente e ogni modifica in un pacchetto Debian è la conseguenza di una modifica apportata al pacchetto sorgente. I manutentori Debian lavorano con il pacchetto sorgente, consapevoli delle conseguenze delle loro azioni sui pacchetti binari. Il frutto del loro lavoro si trova quindi nei pacchetti sorgenti disponibili in Debian: si può facilmente risalire ad essi e tutto deriva da essi. Capitolo 15, Creazione di un pacchetto Debian contiene alcuni esempi.
Quando una nuova versione di un pacchetto sorgente arriva sul server Debian, viene utilizzata da una rete di macchine con architetture diverse per la compilazione le varie architetture supportate da Debian.