Руководство для сопровождающих Debian

Лев Ламберов

Russian Translation (2018) 

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Данное руководство было создано на основе информации, содержащейся в следующих документах:

  • «Создание пакета Debian (руководство по debmake)», copyright © 1997 Джалдхар Виас
  • «Практическое руководство нового сопровождающего по созданию пакетов Debian», copyright © 1997 Уилл Лоу
  • «Руководство начинающего разработчика Debian», copyright © 1998—2002 Джосип Родин, 2005—2017 Осаму Аоки, 2010 Крэйг Смолл, а также 2010 Рафаэль Херцог

Последняя версия данного руководства доступна:

Abstract

Данное учебное руководство описывает сборку пакета Debian с помощью команды debmake и предназначено для обычных пользователей Debian и будущих разработчиков.

Руководство сконцентрировано на современном стиле создания пакетов и содержит множество простых примеров:

  • Создание пакета, содержащего сценарий командной оболочки POSIX
  • Создание пакета, содержащего сценарий на языке Python3
  • C и Makefile/Autotools/CMake
  • Несколько двоичных пакетов с разделяемой библиотекой и т.д.

Данное «Руководство для сопровождающих Debian» может рассматриваться как замена «Руководства начинающего разработчика Debian».


Table of Contents

Предисловие
1. Обзор
2. Необходимые предварительные требования
2.1. Люди вокруг Debian
2.2. Как принять участие
2.3. Социальная динамика Debian
2.4. Техническая памятка
2.5. Документация Debian
2.6. Справочные ресурсы
2.7. Ситуация с архивом
2.8. Подходы к участию
2.9. Начинающий участник и сопровождающий
3. Настройка инструментов
3.1. Адрес электронной почты
3.2. mc
3.3. git
3.4. quilt
3.5. devscripts
3.6. sbuild
3.7. git-buildpackage
3.8. HTTP-прокси
3.9. Частный репозиторий Debian
3.10. Virtual machines
3.11. Local network with virtual machines
4. Простой пример
4.1. Packaging tarball
4.2. Общая картина
4.3. Что такое debmake?
4.4. Что такое debuild?
4.5. Шаг 1: получение исходного кода основной ветки разработки
4.6. Шаг 2: создание шаблонных файлов с помощью debmake
4.7. Шаг 3: изменение шаблонных файлов
4.8. Шаг 4: сборка пакета с помощью debuild
4.9. Шаг 3 (альтернативный): изменение исходного кода основной ветки разработки
4.9.1. Создание заплаты с помощью diff -u
4.9.2. Создание заплаты с помощью dquilt
4.9.3. Создание заплаты с помощью dpkg-source --commit
5. Основы
5.1. Работа по созданию пакета
5.1.1. Пакет debhelper
5.2. Historical perspective of Debian packaging practices
5.3. Future perspective on Debian packaging practices
5.4. Имя пакета и версия
5.5. Родной пакет Debian
5.6. debian/rules
5.6.1. dh
5.6.2. Простой сценарий debian/rules
5.6.3. Настроенный файл debian/rules
5.6.4. Переменные debian/rules
5.6.5. Повторяемая сборка
5.7. debian/control
5.7.1. Split of a Debian binary package
5.7.1.1. debmake -b
5.7.1.2. Сценарии и примеры разделения пакета
5.7.1.3. Имя пакета библиотеки
5.7.2. Переменные подстановки
5.7.3. Безопасная binNMU-загрузка
5.8. debian/changelog
5.9. debian/copyright
5.10. debian/patches/*
5.10.1. dpkg-source -x
5.10.2. dquilt и dpkg-source
5.11. debian/upstream/signing-key.asc
5.12. debian/watch и критерии Debian по определению свободного ПО (DFSG)
5.13. Other debian/* Files
5.14. Настройка пакета Debian
5.15. Запись в систему управления версиями (стандарт)
5.16. Запись в систему управления версиями (альтернатива)
5.17. Сборка пакета без постороннего содержимого
5.17.1. Исправление с помощью debian/rules clean
5.17.2. Исправление с помощью систем управления версиями
5.17.3. Исправление с помощью extend-diff-ignore
5.17.4. Исправление с помощью tar-ignore
5.18. Системы сборки основой ветки
5.18.1. Autotools
5.18.2. CMake
5.18.3. Meson
5.18.4. Python distutils
5.19. Отладочная информация
5.19.1. New -dbgsym package (Stretch 9.0 and after)
5.20. Пакет библиотеки
5.20.1. Библиотека символов
5.20.2. Смена библиотек
5.21. debconf
5.22. Multiarch
5.22.1. Путь мультиархитектурной библиотеки
5.22.2. Путь мультархитектурных заголовочных файлов
5.22.3. Мультиархиектурный путь к файлу *.pc
5.23. Усиление безопасности компилятора
5.24. Непрерывная интеграция
5.25. Other new requirements
5.26. Предзагрузка
5.27. Bug reports
6. Опции debmake
6.1. Опции быстрых действий (-a, -i)
6.1.1. Модуль Python
6.2. Snapshot upstream tarball (-d, -t)
6.3. debmake -cc
6.4. debmake -k
6.5. debmake -j
6.6. debmake -x
6.7. debmake -P
6.8. debmake -T
7. Полезные советы
7.1. debdiff
7.2. dget
7.3. debc
7.4. piuparts
7.5. debsign
7.6. dput
7.7. bts
7.8. git-buildpackage
7.8.1. gbp import-dscs --debsnap
7.8.2. git-репозиторий основной ветки
7.9. dgit
7.9.1. Snapshot upstream tarball (alternative git deborig approach)
7.10. chroot
7.11. Новая редакция Debian
7.12. Новый выпуск основной ветки
7.12.1. uupdate + tarball
7.12.2. uscan
7.12.3. gbp
7.12.4. gbp + uscan
7.13. Формат исходного кода 3.0
7.14. CDBS
7.15. Сборка с использованием кодировки UTF-8
7.16. Преобразование в кодировку UTF-8
7.17. Загрузите orig.tar.gz
7.18. Пропущенные загрузки
7.19. Продвинутые темы работы над пакетом
7.20. Другие дистрибутивы
7.21. Отладка
8. Дополнительные примеры
8.1. Выборочное применение шаблонов
8.2. Без Makefile (командная оболочка, интерфейс командной оболочки)
8.3. Makefile (командная оболочка, интерфейс командной оболочки)
8.4. setup.py (Python3, интерфейс командной оболочки)
8.5. Makefile (командная оболочка, графический интерфейс пользователя)
8.6. setup.py (Python3, графический интерфейс пользователя)
8.7. Makefile (single-binary package)
8.8. Makefile.in + configure (single-binary package)
8.9. Autotools (single-binary package)
8.10. CMake (single-binary package)
8.11. Autotools (multi-binary package)
8.12. CMake (multi-binary package)
8.13. Интернационализация
8.14. Детали
A. Страница руководства debmake(1)
A.1. НАЗВАНИЕ
A.2. СИНТАКСИС
A.3. ОПИСАНИЕ
A.3.1. необязательные аргументы:
A.4. ПРИМЕРЫ
A.5. ВСПОМОГАТЕЛЬНЫЕ ПАКЕТЫ
A.6. ПРЕДОСТЕРЕЖЕНИЯ
A.7. ОТЛАДКА
A.8. АВТОР
A.9. ЛИЦЕНЗИЯ
A.10. СМОТРИТЕ ТАКЖЕ