Product SiteDocumentation Site

5.3. Structure d'un paquet source

5.3.1. Format

A source package is usually comprised of three files, a .dsc, a .orig.tar.gz, and a .debian.tar.xz (or .diff.gz). They allow creation of binary packages (.deb files described above) from the source code files of the program, which are written in a programming language.
Le fichier .dsc (Debian Source Control, ou contrôle des sources de Debian) est un court fichier texte contenant un en-tête RFC 2822 (tout comme le fichier control étudié dans la Section 5.2.1, « Description : fichier control ») qui décrit le paquet source et indique quels autres fichiers en font partie. Il est signé par son mainteneur, ce qui en garantit l'authenticité — consulter la Section 6.6, « Vérification d'authenticité des paquets » pour plus de détails à ce sujet.

Exemple 5.1. Un fichier .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-----
On notera au passage que le paquet source compte lui aussi des dépendances (Build-Depends), totalement distinctes de celles des paquets binaires, puisqu'il s'agit d'outils nécessaires pour compiler le logiciel concerné et construire son paquet binaire.
Le fichier .orig.tar.gz est une archive contenant les codes sources du programme tels qu'ils ont été fournis par son auteur. Il est demandé aux développeurs de ne pas modifier cette archive afin de pouvoir vérifier facilement la provenance et l'intégrité du fichier (par simple comparaison d'une somme de contrôle) et par respect pour la volonté de certains auteurs.
Le fichier .debian.tar.xz contient quant à lui l'ensemble des modifications apportées par le mainteneur Debian, notamment l'ajout d'un répertoire debian contenant les instructions à exécuter pour construire un ou plusieurs paquets binaires Debian.

5.3.2. Utilité chez Debian

Le paquet source est à la base de tout chez Debian. Tous les paquets Debian proviennent d'un paquet source et chaque changement dans un paquet Debian est la conséquence d'une modification réalisée au niveau du paquet source. Les mainteneurs Debian travaillent au niveau du paquet source, en connaissant cependant les conséquences de leurs actions sur les paquets binaires. Le fruit de leur travail se retrouve donc dans les paquets sources disponibles chez Debian : on peut y remonter facilement et tout en découle. Chapitre 15, Conception d'un paquet Debian contient quelques exemples.
Lorsqu'une nouvelle version d'un paquet source parvient sur le serveur Debian, il sera ensuite utilisé par tout un réseau de machines d'architectures différentes pour une compilation sur les différentes architectures prises en charge par Debian.