Руководство для сопровождающих 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 Рафаэль Херцог

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

Аннотация

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

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

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

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


Содержание

1. Предисловие
2. Обзор
3. Необходимые предварительные требования
3.1. Люди вокруг Debian
3.2. Как принять участие
3.3. Социальная динамика Debian
3.4. Техническая памятка
3.5. Документация Debian
3.6. Справочные ресурсы
3.7. Ситуация с архивом
3.8. Подходы к участию
3.9. Начинающий участник и сопровождающий
4. Настройка инструментов
4.1. Email setup
4.2. mc setup
4.3. git setup
4.4. quilt setup
4.5. devscripts setup
4.6. sbuild setup
4.7. Persistent chroot setup
4.8. gbp setup
4.9. HTTP-прокси
4.10. Частный репозиторий Debian
4.11. Virtual machines
4.12. Local network with virtual machines
5. Simple packaging
5.1. Packaging tarball
5.2. Общая картина
5.3. Что такое debmake?
5.4. Что такое debuild?
5.5. Шаг 1: получение исходного кода основной ветки разработки
5.6. Step 2: Generate template files with debmake
5.7. Шаг 3: изменение шаблонных файлов
5.8. Step 4: Building package with debuild
5.9. Step 3 (alternatives): Modification to the upstream source
5.10. Patch by «diff -u» approach
5.11. Patch by dquilt approach
5.12. Patch by «dpkg-source --auto-commit» approach
6. Basics for packaging
6.1. Работа по созданию пакета
6.2. debhelper package
6.3. Имя пакета и версия
6.4. Родной пакет Debian
6.5. debian/rules file
6.6. debian/control file
6.7. debian/changelog file
6.8. debian/copyright file
6.9. debian/patches/* files
6.10. debian/source/include-binaries file
6.11. debian/watch file
6.12. debian/upstream/signing-key.asc file
6.13. debian/salsa-ci.yml file
6.14. Other debian/* files
7. Quality of packaging
7.1. Reformat debian/* files with wrap-and-sort
7.2. Validate debian/* files with debputy
8. Sanitization of the source
8.1. Fix with Files-Excluded
8.2. Fix with «debian/rules clean»
8.3. Fix with extend-diff-ignore
8.4. Fix with tar-ignore
8.5. Fix with «git clean -dfx»
9. More on packaging
9.1. Package customization
9.2. Customized debian/rules
9.3. Variables for debian/rules
9.4. Новый выпуск основной ветки
9.5. Manage patch queue with dquilt
9.6. Build commands
9.7. Note on sbuild
9.8. Special build cases
9.9. Загрузите orig.tar.gz
9.10. Пропущенные загрузки
9.11. Bug reports
10. Продвинутые темы работы над пакетом
10.1. Historical perspective
10.2. Current trends
10.3. Note on build system
10.4. Непрерывная интеграция
10.5. Предзагрузка
10.6. Усиление безопасности компилятора
10.7. Повторяемая сборка
10.8. Переменные подстановки
10.9. Пакет библиотеки
10.10. Multiarch
10.11. Split of a Debian binary package
10.12. Сценарии и примеры разделения пакета
10.13. Multiarch library path
10.14. Multiarch header file path
10.15. Multiarch *.pc file path
10.16. Библиотека символов
10.17. Library package name
10.18. Смена библиотек
10.19. Безопасная binNMU-загрузка
10.20. Отладочная информация
10.21. -dbgsym package
10.22. debconf
11. Packaging with git
11.1. Salsa repository
11.2. Salsa account setup
11.3. Salsa CI service
11.4. Branch names
11.5. Patch unapplied Git repository
11.6. Patch applied Git repository
11.7. Note on gbp
11.8. Note on dgit
11.9. Patch by «gbp-pq» approach
11.10. Manage patch queue with gbp-pq
11.11. gbp import-dscs --debsnap
11.12. Note on dgit-maint-debrebase workflow
11.13. Quasi-native Debian packaging
12. Полезные советы
12.1. Сборка с использованием кодировки UTF-8
12.2. Преобразование в кодировку UTF-8
12.3. Hints for Debugging
13. Tool usages
13.1. debdiff
13.2. dget
13.3. mk-origtargz
13.4. origtargz
13.5. git deborig
13.6. dpkg-source -b
13.7. dpkg-source -x
13.8. debc
13.9. piuparts
13.10. bts
14. Дополнительные примеры
14.1. Выборочное применение шаблонов
14.2. Без Makefile (командная оболочка, интерфейс командной оболочки)
14.3. Makefile (командная оболочка, интерфейс командной оболочки)
14.4. pyproject.toml (Python3, CLI)
14.5. Makefile (командная оболочка, графический интерфейс пользователя)
14.6. pyproject.toml (Python3, GUI)
14.7. Makefile (single-binary package)
14.8. Makefile.in + configure (single-binary package)
14.9. Autotools (single-binary package)
14.10. CMake (single-binary package)
14.11. Autotools (multi-binary package)
14.12. CMake (multi-binary package)
14.13. Интернационализация
14.14. Детали
15. Страница руководства debmake(1)
15.1. НАЗВАНИЕ
15.2. СИНТАКСИС
15.3. ОПИСАНИЕ
15.3.1. необязательные аргументы:
15.4. ПРИМЕРЫ
15.5. ВСПОМОГАТЕЛЬНЫЕ ПАКЕТЫ
15.6. ПРЕДОСТЕРЕЖЕНИЯ
15.7. ОТЛАДКА
15.8. АВТОР
15.9. ЛИЦЕНЗИЯ
15.10. СМОТРИТЕ ТАКЖЕ
16. debmake options
16.1. Shortcut options (-a, -i)
16.2. debmake -b
16.3. debmake -cc
16.4. Snapshot upstream tarball (-d, -t)
16.5. debmake -j
16.6. debmake -k
16.7. debmake -P
16.8. debmake -T
16.9. debmake -x