Руководство для сопровождающих 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. Sanitization of the source
7.1. Fix with Files-Excluded
7.2. Fix with «debian/rules clean»
7.3. Fix with extend-diff-ignore
7.4. Fix with tar-ignore
7.5. Fix with «git clean -dfx»
8. More on packaging
8.1. Package customization
8.2. Customized debian/rules
8.3. Variables for debian/rules
8.4. Новый выпуск основной ветки
8.5. Manage patch queue with dquilt
8.6. Build commands
8.7. Note on sbuild
8.8. Special build cases
8.9. Загрузите orig.tar.gz
8.10. Пропущенные загрузки
8.11. Bug reports
9. Продвинутые темы работы над пакетом
9.1. Historical perspective
9.2. Current trends
9.3. Note on build system
9.4. Непрерывная интеграция
9.5. Предзагрузка
9.6. Усиление безопасности компилятора
9.7. Повторяемая сборка
9.8. Переменные подстановки
9.9. Пакет библиотеки
9.10. Multiarch
9.11. Split of a Debian binary package
9.12. Сценарии и примеры разделения пакета
9.13. Multiarch library path
9.14. Multiarch header file path
9.15. Multiarch *.pc file path
9.16. Библиотека символов
9.17. Library package name
9.18. Смена библиотек
9.19. Безопасная binNMU-загрузка
9.20. Отладочная информация
9.21. -dbgsym package
9.22. debconf
10. Packaging with git
10.1. Salsa repository
10.2. Salsa account setup
10.3. Salsa CI service
10.4. Branch names
10.5. Patch unapplied Git repository
10.6. Patch applied Git repository
10.7. Note on gbp
10.8. Note on dgit
10.9. Patch by «gbp-pq» approach
10.10. Manage patch queue with gbp-pq
10.11. gbp import-dscs --debsnap
10.12. Note on dgit-maint-debrebase workflow
10.13. Quasi-native Debian packaging
11. Полезные советы
11.1. Сборка с использованием кодировки UTF-8
11.2. Преобразование в кодировку UTF-8
11.3. Hints for Debugging
12. Tool usages
12.1. debdiff
12.2. dget
12.3. mk-origtargz
12.4. origtargz
12.5. git deborig
12.6. dpkg-source -b
12.7. dpkg-source -x
12.8. debc
12.9. piuparts
12.10. bts
13. Дополнительные примеры
13.1. Выборочное применение шаблонов
13.2. Без Makefile (командная оболочка, интерфейс командной оболочки)
13.3. Makefile (командная оболочка, интерфейс командной оболочки)
13.4. pyproject.toml (Python3, CLI)
13.5. Makefile (командная оболочка, графический интерфейс пользователя)
13.6. pyproject.toml (Python3, GUI)
13.7. Makefile (single-binary package)
13.8. Makefile.in + configure (single-binary package)
13.9. Autotools (single-binary package)
13.10. CMake (single-binary package)
13.11. Autotools (multi-binary package)
13.12. CMake (multi-binary package)
13.13. Интернационализация
13.14. Детали
14. Страница руководства debmake(1)
14.1. НАЗВАНИЕ
14.2. СИНТАКСИС
14.3. ОПИСАНИЕ
14.3.1. необязательные аргументы:
14.4. ПРИМЕРЫ
14.5. ВСПОМОГАТЕЛЬНЫЕ ПАКЕТЫ
14.6. ПРЕДОСТЕРЕЖЕНИЯ
14.7. ОТЛАДКА
14.8. АВТОР
14.9. ЛИЦЕНЗИЯ
14.10. СМОТРИТЕ ТАКЖЕ
15. debmake options
15.1. Shortcut options (-a, -i)
15.2. debmake -b
15.3. debmake -cc
15.4. Snapshot upstream tarball (-d, -t)
15.5. debmake -j
15.6. debmake -k
15.7. debmake -P
15.8. debmake -T
15.9. debmake -x