Руководство для сопровождающих 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. Check packaging with cme
9. Sanitization of the source
9.1. Fix with Files-Excluded
9.2. Fix with «debian/rules clean»
9.3. Fix with extend-diff-ignore
9.4. Fix with tar-ignore
9.5. Fix with «git clean -dfx»
10. More on packaging
10.1. Package customization
10.2. Customized debian/rules
10.3. Variables for debian/rules
10.4. Новый выпуск основной ветки
10.5. Manage patch queue with dquilt
10.6. Build commands
10.7. Note on sbuild
10.8. Special build cases
10.9. Upload orig.tar.xz
10.10. Пропущенные загрузки
10.11. Bug reports
11. Продвинутые темы работы над пакетом
11.1. Historical perspective
11.2. Current trends
11.3. Note on build system
11.4. Непрерывная интеграция
11.5. Предзагрузка
11.6. Усиление безопасности компилятора
11.7. Повторяемая сборка
11.8. Переменные подстановки
11.9. Пакет библиотеки
11.10. Multiarch
11.11. Split of a Debian binary package
11.12. Сценарии и примеры разделения пакета
11.13. Multiarch library path
11.14. Multiarch header file path
11.15. Multiarch *.pc file path
11.16. Библиотека символов
11.17. Library package name
11.18. Смена библиотек
11.19. Безопасная binNMU-загрузка
11.20. Отладочная информация
11.21. -dbgsym package
11.22. debconf
12. Packaging with git
12.1. Salsa repository
12.2. Salsa account setup
12.3. Salsa CI service
12.4. Branch names
12.5. Patch unapplied Git repository
12.6. Patch by «gbp-pq» approach
12.7. Manage patch queue with gbp-pq
12.8. gbp import-dscs --debsnap
12.9. Note on gbp
12.10. The Git repository browser
12.11. Git commit history organization
12.12. Quasi-native Debian packaging
12.13. Patch applied Git repository
12.14. Note on dgit
13. Полезные советы
13.1. Сборка с использованием кодировки UTF-8
13.2. Преобразование в кодировку UTF-8
13.3. Hints for Debugging
14. Tool usages
14.1. debdiff
14.2. dget
14.3. mk-origtargz
14.4. origtargz
14.5. git deborig
14.6. dpkg-source -b
14.7. dpkg-source -x
14.8. debc
14.9. bts
14.10. dpkg-depcheck
15. Дополнительные примеры
15.1. Выборочное применение шаблонов
15.2. Без Makefile (командная оболочка, интерфейс командной оболочки)
15.3. Makefile (командная оболочка, интерфейс командной оболочки)
15.4. pyproject.toml (Python3, CLI)
15.5. Makefile (командная оболочка, графический интерфейс пользователя)
15.6. pyproject.toml (Python3, GUI)
15.7. Makefile (single-binary package)
15.8. Makefile.in + configure (single-binary package)
15.9. Autotools (single-binary package)
15.10. CMake (single-binary package)
15.11. Autotools (multi-binary package)
15.12. CMake (multi-binary package)
15.13. Интернационализация
15.14. Детали
16. Страница руководства debmake(1)
16.1. НАЗВАНИЕ
16.2. СИНТАКСИС
16.3. ОПИСАНИЕ
16.4. Positional arguments
16.5. Options
16.6. ПРИМЕРЫ
16.7. ВСПОМОГАТЕЛЬНЫЕ ПАКЕТЫ
16.8. ПРЕДОСТЕРЕЖЕНИЯ
16.9. ОТЛАДКА
16.10. АВТОР
16.11. ЛИЦЕНЗИЯ
16.12. СМОТРИТЕ ТАКЖЕ
17. debmake options
17.1. Shortcut option (-i)
17.2. debmake -b
17.3. debmake -B
17.4. debmake -x