Product SiteDocumentation Site

5.3. Структура исходного пакета

5.3.1. Формат

Пакет с исходным кодом, как правило, состоит из трех файлов: .dsc, .orig.tar.gz и debian.tar.gz (или .diff.gz). С их помощью можно создавать двоичные пакеты (файлы .deb, описанные выше) из файлов исходного кода программы на том или ином языке программирования.
Файл .dsc (Debian Source Control) представлят собой текстовый файл с заголовком в формате RFC 2822 (точно так же, как файл control, рассмотренный в Раздел 5.2.1, «Описание: файл control»), где описывается исходный пакет и указываются другие файлы, входящие в него. Он подписан сопровождающим, что гарантирует его подлинность. См. Раздел 6.5, «Checking Package Authenticity» для получения дополнительной информации по этому вопросу.

Пример 5.1. Файл .dsc

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

Format: 3.0 (quilt)
Source: zim
Binary: zim
Architecture: all
Version: 0.62-3
Maintainer: Emfox Zhou < 1emfox@debian.org> 2
Uploaders: Raphaël Hertzog < 3hertzog@debian.org> 4
Homepage: http://zim-wiki.org
Standards-Version: 3.9.6
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/zim.git
Vcs-Git: git://anonscm.debian.org/collab-maint/zim.git
Build-Depends: debhelper (> 5= 9), xdg-utils, python (> 6= 2.6.6-3~), libgtk2.0-0 (> 7= 2.6), python-gtk2, python-xdg
Package-List:
 zim deb x11 optional arch=all
Checksums-Sha1:
 ad8de170826682323c10195b65b9f1243fd75637 1772246 zim_0.62.orig.tar.gz
 a4f70d6f7fb404022c9cc4870a4e62ea3ca08388 14768 zim_0.62-3.debian.tar.xz
Checksums-Sha256:
 19d62aebd2c1a92d84d80720c6c1dcdb779c39a2120468fed01b7f252511bdc2 1772246 zim_0.62.orig.tar.gz
 fc2e827e83897d5e33f152f124802c46c3c01c5158b75a8275a27833f1f6f1de 14768 zim_0.62-3.debian.tar.xz
Files:
 43419efba07f7086168442e3d698287a 1772246 zim_0.62.orig.tar.gz
 725a69663a6c2961f07673ae541298e4 14768 zim_0.62-3.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Signed by Raphael Hertzog

iQEcBAEBCAAGBQJUR2jqAAoJEAOIHavrwpq5WFcH/RsdzCHc1oXXxHitU23hEqMj
T6ok29M1UFDJDowMXW75jQ1nT4WPUtvEGygkCHeoO/PvjEvB0sjU8GQlX+N9ddSB
aHfqfAYmVhADNGxrXQT5inZXUa8qGeeq2Sqf6YcWtsnuD56lDbvxkyf/XYopoIEl
oltfl05z/AI+vYsW482YrCz0fxNAKAvkyuPhDebYI8jnKWeAANoqmKpsNc/HYyvT
+ZiA5o57OiGdOKT6XGy3/FiF3dkHiRY8lXW7xdr1BbIgulwl9UmiUNwuxwOYbQO7
edtjiTJqOaFUA0x1zB/XGv5tHr1MjP8naT+kfVoVHTOox51CDbeu5D3DZY4imcY=
=Wtoa
-----END PGP SIGNATURE-----
Обратите внимание, что исходный пакет тоже имеет зависимости (Build-Depends), кардинально отличающиеся от зависимостей для двоичных пакетов, поскольку они включают в себя инструменты, необходимые для компиляции программного обеспечения и сборки двоичного пакета.
Файл .orig.tar.gz — это архив, содержащий исходный код в том виде, в каком он предоставляется оригинальным разработчиком. Сопровождающим пакетов Debian не рекомендовано изменять этот архив, чтобы иметь возможность легко проверить подлинность и целостность файла (путём простого сравнения контрольной суммы), а также в угоду пожеланиям некоторых авторов.
Архив .debian.tar.gz содержит все изменения, произведённые сопровождающим пакета, в частности добавление каталога debian, содержащего инструкции для выполнения сборки пакета Debian.

5.3.2. Использование в Debian

Пакеты с исходными кодами являются основой всего в системе Debian. При помощи них собраны все остальные пакеты Debian, и любое изменение в двоичных пакетах — следствие изменений, внесенных в исходный пакет. Сопровождающие Debian работают только с исходными пакетами, однако знают, какими окажутся последствия их действий для двоичных пакетов. Так что плоды их трудов находятся в исходных пакетах: к ним можно легко вернуться, и они есть начало всего.
При появлении новой версии пакета (исходного пакета и одного или нескольких двоичных пакетов) на сервере Debian наиболее важным является исходный пакет. Ведь именно он будет использоваться сетью машин с разными архитектурами для компиляции под различные архитектуры, поддерживаемые Debian. Тот факт, что разработчик заодно посылает один или несколько двоичных пакетов для той или иной архитектуры (как правило, это i386 или amd64) не имеет столь большого значения, поскольку они и так могли бы быть сгенерированы автоматически.